zqy
9 天以前 bc679a9077a7ede5b61349645cbb5f411d703949
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
@@ -13,6 +13,7 @@
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.ruoyi.common.annotation.Anonymous;
import com.ruoyi.common.core.domain.entity.sysUserInfo;
import com.ruoyi.common.utils.uuid.UUID;
import com.ruoyi.domain.*;
import com.ruoyi.domain.dto.MarryInfoDto;
import com.ruoyi.service.*;
@@ -219,10 +220,29 @@
                infoUser.setSpouseId(user.getSpouseId());
            }
            String originalString=user.getUserName()+"-"+user.getPhonenumber();
            String uniqueId = UUID.nameUUIDFromBytes(originalString.getBytes()).toString();
            infoUser.setUaid(uniqueId);
            zInfoUserService.setUaidSame(user.getPhonenumber(),user.getUserName(),uniqueId);
            // ----- 2.2 家族关系继承逻辑 -----
            // 优先获取当前数据库记录
            ZInfoUser byId = zInfoUserService.getById(user);
            Long myFamily = byId.getFamilyId();
            //获取同一用户的信息 并对其进行修改
            zInfoUserService.findByUaidToFaid(byId.getUaid())
                    .stream()
                    .filter(infoUser1 -> !infoUser1.getUserId().equals(infoUser.getUserId()))
                    .forEach(infoUser1 -> {
                        infoUser1.setOldName(infoUser.getOldName());
                        infoUser1.setMaritalStatus(infoUser.getMaritalStatus());
                        infoUser1.setSex(infoUser.getSex());
                        zInfoUserService.updateById(infoUser1);
                    });
            // 保留原家庭ID(确保数据连续性)
            if (myFamily != null) infoUser.setFamilyId(myFamily);
@@ -318,7 +338,10 @@
                    marrySelfService.updateData(spouse); // 持久化
                }
                // 3.4 离婚特殊处理(状态码=2)
            // 3.4 离婚特殊处理(状态码=2)
                if(user.getMaritalStatus() != null && user.getMaritalStatus() == 2) {
                    // 3.4.1 获取配偶信息
                    Long spouseId = zInfoUserService.getById(user.getUserId()).getSpouseId();
@@ -388,6 +411,7 @@
        user.setRemark(userAll.getRemark());        // 备注信息
        user.setUpdateBy(userAll.getUpdateBy());    // 更新人
        user.setClanId(userAll.getClanId());        // 家族ID
        user.setPaid(userAll.getPaid());
        // ===================== 2. 唯一性校验(登录名/手机号/邮箱) =====================
        // 2.1 登录名校验
@@ -395,9 +419,10 @@
            return error("新增用户'" + user.getNickName() + "'失败,登录账号已存在");
        }
        // 2.2 手机号校验(非空时验证)
        else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) {
            return error("新增用户'" + user.getUserName() + "'失败,手机号码已存在");
        }
//        else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) {
//
//            return error("新增用户'" + user.getUserName() + "'失败,手机号码已存在");
//        }
        // 2.3 邮箱校验(非空时验证)
        else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) {
            return error("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在");
@@ -426,6 +451,14 @@
            infoUser.setNickName(userAll.getNickName()); // 当前昵称
            infoUser.setOldName(userAll.getUserName());  // 历史名称(保留记录)
            infoUser.setPhoneNumber(userAll.getPhonenumber()); // 联系方式
            String originalString=userAll.getUserName()+"-"+userAll.getPhonenumber();
            String uniqueId = UUID.nameUUIDFromBytes(originalString.getBytes()).toString();
            infoUser.setUaid(uniqueId);
            if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) {
                zInfoUserService.setUaidSame(user.getPhonenumber(),user.getUserName(),uniqueId);
            }
            // 性别格式转换(String → Integer)
            infoUser.setSex(userAll.getSex().equals("0") ? 0 : 1);
            infoUser.setSpouseId(userAll.getSpouseId()); // 配偶ID