This commit is contained in:
2026-07-01 18:30:50 +08:00
parent 3304b9113f
commit 9c31bf8153
4 changed files with 25 additions and 2 deletions
@@ -96,7 +96,7 @@ public class MemberPersonalInfoMaintainController {
*/
@At
@SaCheckPermission(value = {"member.info.maintain", "member.info.group"}, mode = SaMode.OR)
public Result saveChildren(String userId, @Param("children") String childrenJson) {
public Result saveChildren(String userId, String marriage, @Param("children") String childrenJson) {
try {
// 保存前复用详情权限校验,防止绕过列表入口修改无权限会员的子女信息。
memberInfoService.getPersonalMaintainInfo(userId);
@@ -104,6 +104,7 @@ public class MemberPersonalInfoMaintainController {
if (Strings.isNotBlank(childrenJson)) {
children = Json.fromJsonAsList(MemberChild.class, childrenJson);
}
memberInfoService.savePersonalMaintainMarriage(userId, marriage);
memberChildService.saveUserChildren(userId, children);
return Result.success();
} catch (RuntimeException e) {
@@ -43,6 +43,14 @@ public interface MemberInfoService extends BaseService<Sys_user> {
*/
NutMap getPersonalMaintainInfo(String userId);
/**
* 保存个人信息维护中允许编辑的婚姻状况字段,其他会员原始字段不在此方法中更新。
*
* @param userId 用户ID
* @param marriage 婚姻状况字典值
*/
void savePersonalMaintainMarriage(String userId, String marriage);
/**
* 获取会员历史
* @param pageForm
@@ -195,6 +195,19 @@ public class MemberInfoServiceImpl extends BaseServiceImpl<Sys_user> implements
return Lang.obj2nutmap(user);
}
/**
* 保存个人信息维护开放编辑的婚姻状况字段,权限校验复用详情查询口径。
*
* @param userId 用户ID
* @param marriage 婚姻状况字典值
*/
@Override
public void savePersonalMaintainMarriage(String userId, String marriage) {
// 先执行详情权限校验,确保非系统管理员不能通过保存接口修改其他人员婚姻状况。
getPersonalMaintainInfo(userId);
dao().update(Sys_user.class, Chain.make("marriage", marriage), Cnd.where("id", "=", userId));
}
@Override
public Sql getMemberHistorySql(MemberInfoPageForm pageForm) {
@@ -84,7 +84,7 @@ layout("/layouts/platform.html"){
</el-radio-group>
</el-descriptions-item>
<el-descriptions-item label="婚姻状况">
<el-input v-model="formData.marriage" disabled></el-input>
<dict-select style="width: 100%" v-model="formData.marriage" code="USER_MARRIAGE"></dict-select>
</el-descriptions-item>
<el-descriptions-item label="家庭主要成员" :span="3">
@@ -184,6 +184,7 @@ layout("/layouts/platform.html"){
}).then(() => {
this.$axios.post("/platform/member/info/maintain/saveChildren", {
userId: this.userId,
marriage: this.formData.marriage,
children: JSON.stringify(cleanedChildren)
}).then((res) => {
if (res.code === 0) {