| | |
| | | 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.*; |
| | |
| | | |
| | | /** |
| | | * 用户信息 |
| | | * |
| | | * |
| | | * @author ruoyi |
| | | */ |
| | | @RestController |
| | |
| | | } |
| | | |
| | | /** |
| | | * 修改用户 |
| | | * 更新用户信息及关联的家庭/婚姻数据 |
| | | * |
| | | * 核心流程: |
| | | * 1. 更新基础用户信息 |
| | | * 2. 家庭成员专属处理(角色ID=102) |
| | | * 2.1 构建家庭成员扩展信息 |
| | | * 2.2 处理家族继承关系(父母/配偶) |
| | | * 2.3 更新配偶数据 |
| | | * 2.4 同步婚姻状态(含离婚特殊逻辑) |
| | | * |
| | | * @param user 前端传入的用户数据对象(含基础信息+家庭关系) |
| | | * @return AjaxResult 统一响应格式(成功/错误信息) |
| | | * @throws IllegalArgumentException 关键数据校验失败时抛出 |
| | | * @apiNote 仅角色ID=102(家庭成员)执行完整更新流程 |
| | | */ |
| | | @PreAuthorize("@ss.hasPermi('system:user:edit')") |
| | | @Log(title = "用户管理", businessType = BusinessType.UPDATE) |
| | | @PostMapping("/updateUserInfo") |
| | | public AjaxResult editUser(@Validated @RequestBody sysUserAndUserInfo user) |
| | | { |
| | | public AjaxResult editUser(@Validated @RequestBody sysUserAndUserInfo user) { |
| | | // ===================== 1. 更新基础用户信息 ===================== |
| | | SysUser us = new SysUser(); |
| | | us.setUserId(user.getSysId()); |
| | | us.setUserName(user.getUserName()); |
| | | us.setNickName(user.getNickName()); |
| | | us.setRoleId(user.getRoleId()); |
| | | us.setSex(user.getSex()); |
| | | us.setStatus(user.getStatus()); |
| | | us.setRemark(user.getRemark()); |
| | | userService.updateUser(us); |
| | | us.setUserId(user.getSysId()); // 系统唯一ID(必填) |
| | | us.setUserName(user.getUserName()); // 登录名(账号标识) |
| | | us.setNickName(user.getNickName()); // 显示昵称 |
| | | us.setRoleId(user.getRoleId()); // 角色ID(102=家庭成员) |
| | | us.setSex(user.getSex()); // 性别(0男/1女) |
| | | us.setStatus(user.getStatus()); // 账户状态(启用/禁用) |
| | | us.setRemark(user.getRemark()); // 备注信息 |
| | | userService.updateUser(us); // 执行SysUser表更新 |
| | | |
| | | // System.out.println(user.getFamilyId()); |
| | | // System.out.println("[[[[]]]]]]"); |
| | | Long userId = user.getSysId(); |
| | | // SysUserRole sysUserRole=sysUserRoleMapper.selectUserById(userId); |
| | | //System.out.println(sysUserRole.getRoleId()); |
| | | System.out.println("你好呀"); |
| | | System.out.println(user.getRoleId()); |
| | | if (user.getRoleId() != null && user.getRoleId().equals(102L)){ |
| | | ZInfoUser infoUser = new ZInfoUser(); |
| | | infoUser.setUserId(user.getUserId()); |
| | | infoUser.setOldName(user.getUserName()); |
| | | infoUser.setNickName(user.getNickName()); |
| | | infoUser.setIsMyFamily(user.getIsMyFamily()); |
| | | infoUser.setMomId(user.getMid()); |
| | | infoUser.setFatherId(user.getFid()); |
| | | if (user.getSex() != null)infoUser.setSex(Integer.valueOf(user.getSex())); |
| | | // infoUser.setFamilyId(user.getFamilyId()); |
| | | infoUser.setSysId(user.getSysId()); |
| | | // ===== 2. 家庭成员专属处理(仅角色ID=102时执行)===== |
| | | if (user.getRoleId() != null && user.getRoleId().equals(102L)) { |
| | | // ----- 2.1 构建家庭成员扩展信息对象 ----- |
| | | ZInfoUser infoUser = new ZInfoUser(); |
| | | infoUser.setUserId(user.getUserId()); // 用户业务ID |
| | | infoUser.setOldName(user.getUserName()); // 历史名称(保留记录) |
| | | infoUser.setNickName(user.getNickName()); // 当前昵称 |
| | | infoUser.setIsMyFamily(user.getIsMyFamily()); // 家庭成员标记(0/1) |
| | | infoUser.setMomId(user.getMid()); // 母亲ID(可为空) |
| | | infoUser.setFatherId(user.getFid()); // 父亲ID(可为空) |
| | | // 婚姻状态空值保护(0未婚/1已婚/2离婚) |
| | | infoUser.setMaritalStatus(user.getMaritalStatus() == null ? null : user.getMaritalStatus()); |
| | | // 性别格式转换(String → Integer) |
| | | if (user.getSex() != null) infoUser.setSex(Integer.valueOf(user.getSex())); |
| | | infoUser.setSysId(user.getSysId()); // 关联系统ID(外键) |
| | | // 配偶ID设置(非必填) |
| | | if(user.getSpouseId() != null) { |
| | | infoUser.setSpouseId(user.getSpouseId()); |
| | | } |
| | | |
| | | |
| | | if(user.getSpouseId()!=null) { |
| | | infoUser.setSpouseId(user.getSpouseId()); |
| | | } |
| | | // ZfFamily zfFamily = zfFamilyService.getByFamId(user.getFamilyId()); |
| | | // if(zfFamily!=null&&zfFamily.getFid()!=null) |
| | | // infoUser.setFatherId(zfFamily.getFid()); |
| | | // if(zfFamily!=null&&zfFamily.getMid()!=null) |
| | | // infoUser.setMomId(zfFamily.getMid()); |
| | | // ----- 2.2 家族关系继承逻辑 ----- |
| | | // 优先获取当前数据库记录 |
| | | ZInfoUser byId = zInfoUserService.getById(user); |
| | | Long myFamily = byId.getFamilyId(); |
| | | if (myFamily != null) infoUser.setFamilyId(myFamily); |
| | | if (user.getFid() != null){ |
| | | //跟随父亲的家族和家庭信息 |
| | | // if (!zInfoUserService.getById(user.getUserId()).getFatherId().equals(user.getFid())){ |
| | | ZInfoUser father = zInfoUserService.getById(user.getFid()); |
| | | System.out.println("11111111111111111111111111111111/"); |
| | | // infoUser.setFamilyId(father.getFamilyId()); |
| | | infoUser.setClanId(father.getClanId()); |
| | | // 保留原家庭ID(确保数据连续性) |
| | | if (myFamily != null) infoUser.setFamilyId(myFamily); |
| | | |
| | | // } |
| | | } |
| | | |
| | | if(user.getMid()!=null) |
| | | { |
| | | //跟随母亲的家族和家庭信息 |
| | | // if (!zInfoUserService.getById(user.getUserId()).getFatherId().equals(user.getFid())){ |
| | | ZInfoUser mother = zInfoUserService.getById(user.getMid()); |
| | | System.out.println("11111111111111111111111111111111/"); |
| | | // infoUser.setFamilyId(mother.getFamilyId()); |
| | | infoUser.setClanId(mother.getClanId()); |
| | | /* 家族继承优先级:父亲 > 母亲 > 配偶 */ |
| | | // 2.2.1 继承父亲家族 |
| | | if (user.getFid() != null) { |
| | | ZInfoUser father = zInfoUserService.getById(user.getFid()); |
| | | if (father != null) { |
| | | infoUser.setClanId(father.getClanId()); // 父系家族ID |
| | | } |
| | | } |
| | | // else if(user.getMid() != null){ |
| | | // ZInfoUser mother = zInfoUserService.getById(user.getMid()); |
| | | // if (mother.getIsMyFamily() == 1) |
| | | // System.out.println("2222222222222222222222222222222222/"); |
| | | // infoUser.setFamilyId(mother.getFamilyId()); |
| | | // } |
| | | System.out.println("{{{{{{{{{{{{{{{"+user); |
| | | |
| | | if (user.getSpouseId() != null ){ |
| | | |
| | | //跟随配偶的家族和家庭信息 |
| | | // if ( !zInfoUserService.getById(user.getUserId()).getSpouseId().equals(user.getSpouseId())){ |
| | | |
| | | //是本家,一种是普通用户更新为家庭用户, |
| | | |
| | | if (zInfoUserService.getById(user.getUserId())==null||zInfoUserService.getById(user.getUserId()).getIsMyFamily() == 0) { |
| | | // 2.2.2 继承母亲家族(覆盖父亲ID) |
| | | if(user.getMid() != null) { |
| | | ZInfoUser mother = zInfoUserService.getById(user.getMid()); |
| | | if (mother != null) { |
| | | infoUser.setClanId(mother.getClanId()); // 母系家族ID |
| | | } |
| | | } |
| | | // 2.2.3 配偶家族继承(最高优先级) |
| | | if (user.getSpouseId() != null ){ |
| | | // 仅当用户首次成为家庭成员时继承配偶家族 |
| | | if (zInfoUserService.getById(user.getUserId()) == null || |
| | | zInfoUserService.getById(user.getUserId()).getIsMyFamily() == 0) { |
| | | ZInfoUser spouse = zInfoUserService.getById(user.getSpouseId()); |
| | | System.out.println("33333333333333333333333333333333333333333/"); |
| | | infoUser.setFamilyId(spouse.getFamilyId()); |
| | | if(spouse.getFatherId() !=null || spouse.getMomId() !=null) { |
| | | infoUser.setFamilyId(spouse.getFamilyId()); // 配偶家庭ID |
| | | // 继承配偶父母信息(建立姻亲关系) |
| | | if(spouse.getFatherId() != null || spouse.getMomId() != null) { |
| | | infoUser.setFatherId(spouse.getFatherId()); |
| | | infoUser.setMomId(spouse.getMomId()); |
| | | } |
| | | infoUser.setClanId(spouse.getClanId()); |
| | | |
| | | // } |
| | | infoUser.setClanId(spouse.getClanId()); // 配偶家族ID |
| | | } |
| | | } |
| | | |
| | | // ----- 2.3 保存家庭信息 ----- |
| | | // 关键校验:家庭ID为空说明不满足家庭成员条件 |
| | | if(infoUser.getFamilyId() != null ) { |
| | | zInfoUserService.saveOrUpdate(infoUser); // 持久化到ZInfoUser表 |
| | | } else { |
| | | // ⚠️ 家庭ID缺失阻断操作 |
| | | return AjaxResult.error("家庭成员不能修改为普通用户"); |
| | | } |
| | | |
| | | } |
| | | if(infoUser.getFamilyId() != null ) |
| | | zInfoUserService.saveOrUpdate(infoUser); |
| | | else { |
| | | System.out.println("家庭成员不能修改为普通用户"); |
| | | return AjaxResult.error("家庭成员不能修改为普通用户"); |
| | | } |
| | | //更新配偶信息 |
| | | if(user.getSpouseId() != null) { |
| | | // ----- 2.4 更新配偶信息 ----- |
| | | ZInfoUser byId2 = zInfoUserService.getById(user.getUserId()); // 刷新数据 |
| | | ZInfoUser zu = new ZInfoUser(); |
| | | zu.setUserId(user.getSpouseId()); |
| | | zu.setSpouseId(infoUser.getUserId()); |
| | | zu.setFatherId(infoUser.getFatherId()); |
| | | zu.setMomId(infoUser.getMomId()); |
| | | // Long spouseMoM = zInfoUserService.getById(user.getSpouseId()).getMomId(); |
| | | // Long spouseDad = zInfoUserService.getById(user.getSpouseId()).getFatherId(); |
| | | // zu.setMomId(spouseMoM); |
| | | // zu.setFatherId(spouseDad); |
| | | // |
| | | zInfoUserService.updateById(zu); |
| | | // 仅当原记录存在配偶时更新 |
| | | if(byId2.getSpouseId() != null) { |
| | | zu.setUserId(byId2.getSpouseId()); // 配偶ID |
| | | // 同步婚姻状态(空值保护) |
| | | zu.setMaritalStatus(user.getMaritalStatus() == null ? null : user.getMaritalStatus()); |
| | | // 建立双向关联 |
| | | if(user.getSpouseId() != null) { |
| | | zu.setSpouseId(infoUser.getUserId()); // 绑定当前用户 |
| | | zu.setFatherId(infoUser.getFatherId()); // 同步父亲 |
| | | Long spouseMoM = zInfoUserService.getById(user.getSpouseId()).getMomId(); |
| | | Long spouseDad = zInfoUserService.getById(user.getSpouseId()).getFatherId(); |
| | | zu.setMomId(spouseMoM); |
| | | zu.setFatherId(spouseDad); |
| | | zu.setMomId(infoUser.getMomId()); // 同步母亲 |
| | | } |
| | | zInfoUserService.updateById(zu); // 更新配偶记录 |
| | | } |
| | | |
| | | //更新MarrySelf和MarryUser |
| | | ZInfoUser zfi = zInfoUserService.getById(user.getUserId()); |
| | | MarryInfoDto marrySelf = new MarryInfoDto(); |
| | | marrySelf.setUid(user.getSpouseId()); |
| | | marrySelf.setName(zfi.getOldName()); |
| | | marrySelf.setSpouseSex(zfi.getSex()==1?"男":"女"); |
| | | //这个可能还要修改 一下 |
| | | marrySelf.setMarryStatus(0); |
| | | marrySelf.setSpouseName(infoUser.getOldName()); |
| | | marrySelf.setSpouseSex(infoUser.getSex()==1?"男":"女"); |
| | | marrySelf.setSpouseMarryStatus(0); |
| | | marrySelfService.updateData(marrySelf); |
| | | //增加MarryUser |
| | | //增加marryUser |
| | | MarryUser marryUser = new MarryUser(); |
| | | marryUser.setUid(user.getSpouseId()); |
| | | marryUser.setName(infoUser.getOldName()); |
| | | marryUser.setSex(infoUser.getSex()==1?"男":"女"); |
| | | marryUser.setMarryStatus(0); |
| | | marryUserService.addData(marryUser); |
| | | // ===== 3. 婚姻状态专项处理 ===== |
| | | if(infoUser.getMaritalStatus() != null) { |
| | | // 3.1 构建本人婚姻信息 |
| | | MarryInfoDto marrySelf = new MarryInfoDto(); |
| | | marrySelf.setUid(user.getSysId()); // 系统ID |
| | | marrySelf.setName(user.getUserName()); // 当前用户名 |
| | | marrySelf.setSex(us.getSex().equals("0") ? "男" : "女"); // 性别转换 |
| | | |
| | | } |
| | | // 3.2 配偶婚姻信息同步 |
| | | if(byId2.getSpouseId() != null) { |
| | | // 自动设置已婚状态(默认值逻辑) |
| | | infoUser.setMaritalStatus(infoUser.getMaritalStatus() == null ? 1 : infoUser.getMaritalStatus()); |
| | | |
| | | return AjaxResult.success(); |
| | | } |
| | | else { |
| | | System.out.println("daniuni"); |
| | | // 获取配偶最新数据 |
| | | ZInfoUser byId1 = zInfoUserService.getById(byId2.getSpouseId()); |
| | | // 更新本人婚姻档案 |
| | | marrySelf.setSpouseName(byId1.getOldName()); // 配偶原名 |
| | | marrySelf.setMarryStatus(infoUser.getMaritalStatus()); // 婚姻状态 |
| | | marrySelf.setSpouseSex(byId1.getSex().equals(0) ? "男" : "女"); // 配偶性别 |
| | | marrySelfService.updateData(marrySelf); // 持久化 |
| | | |
| | | // 3.3 反向更新配偶婚姻档案 |
| | | MarryInfoDto spouse = new MarryInfoDto(); |
| | | spouse.setUid(byId1.getSysId()); // 配偶系统ID |
| | | spouse.setSpouseName(byId2.getOldName()); // 本人历史名 |
| | | spouse.setMarryStatus(infoUser.getMaritalStatus()); // 同步状态 |
| | | spouse.setSpouseSex(marrySelf.getSex()); // 本人性别 |
| | | marrySelfService.updateData(spouse); // 持久化 |
| | | } |
| | | |
| | | // 3.4 离婚特殊处理(状态码=2) |
| | | if(user.getMaritalStatus() != null && user.getMaritalStatus() == 2) { |
| | | // 3.4.1 获取配偶信息 |
| | | Long spouseId = zInfoUserService.getById(user.getUserId()).getSpouseId(); |
| | | String spouseName = null; |
| | | Long spouseSysId = 0L; |
| | | if (spouseId != null) { |
| | | ZInfoUser spouseInfo = zInfoUserService.getById(spouseId); |
| | | spouseName = spouseInfo.getOldName(); |
| | | spouseSysId = spouseInfo.getSysId(); |
| | | |
| | | // 3.4.2 生成本人离婚记录 |
| | | MarryUser marryUser = new MarryUser(); |
| | | marryUser.setUid(user.getSysId()); // 本人ID |
| | | marryUser.setName(spouseName); // 配偶名称 |
| | | marryUser.setSex(user.getSex().equals("0") ? "男" : "女"); // 本人性别 |
| | | marryUser.setMarryStatus(2); // 离婚状态 |
| | | marryUserService.save(marryUser); // 写入历史表 |
| | | } |
| | | |
| | | // 3.4.3 生成配偶离婚记录 |
| | | MarryUser exSpouseRecord = new MarryUser(); |
| | | exSpouseRecord.setUid(spouseSysId); // 配偶ID |
| | | exSpouseRecord.setName(infoUser.getOldName()); // 本人历史名 |
| | | exSpouseRecord.setSex(us.getSex().equals("0") ? "男" : "女"); // 本人性别 |
| | | exSpouseRecord.setMarryStatus(2); // 离婚状态 |
| | | marryUserService.save(exSpouseRecord); // 写入历史表 |
| | | } |
| | | } |
| | | return AjaxResult.success(); // 操作成功 |
| | | } else { |
| | | // ⚠️ 非家庭成员直接阻断 |
| | | return AjaxResult.error("家庭成员不能修改为普通用户"); |
| | | } |
| | | |
| | | // zInfoUserService.update(infoUser); |
| | | // .saveOrUpdate(infoUser); |
| | | |
| | | } |
| | | /** |
| | | * 新增用户 |
| | | */ |
| | | @PreAuthorize("@ss.hasPermi('system:user:add')") |
| | | @Log(title = "用户管理", businessType = BusinessType.INSERT) |
| | | @PostMapping |
| | | public AjaxResult add(@Validated @RequestBody sysUserAndUserInfo userAll) |
| | | { |
| | | SysUser user = new SysUser(); |
| | | // user.setUserId(userAll.getUserId()); |
| | | user.setAvatar(userAll.getAvatar()); |
| | | user.setPassword("123456"); |
| | | user.setNickName(userAll.getNickName()); |
| | | user.setUserName(userAll.getUserName()); |
| | | user.setPhonenumber(userAll.getPhonenumber()); |
| | | user.setRoleId(userAll.getRoleId()); |
| | | user.setRoleIds(userAll.getRoleIds()); |
| | | user.setStatus(userAll.getStatus()); |
| | | user.setSex(userAll.getSex()); |
| | | user.setRemark(userAll.getRemark()); |
| | | user.setUpdateBy(userAll.getUpdateBy()); |
| | | user.setClanId(userAll.getClanId()); |
| | | // user.setSex(userAll.getSex()=="男"?"1":"0"); |
| | | // user.setPostIds(userAll.getPostIds()); |
| | | // user.set |
| | | |
| | | if (!userService.checkNickNameUnique(user)) |
| | | { |
| | | /** |
| | | * 新增用户接口 |
| | | * |
| | | * 核心功能: |
| | | * 1. 创建基础用户信息 |
| | | * 2. 校验用户唯一性(登录名/手机号/邮箱) |
| | | * 3. 分配用户角色 |
| | | * 4. 家庭成员特殊处理(角色ID=102) |
| | | * 4.1 创建家庭扩展信息 |
| | | * 4.2 建立家族关系(父母/配偶) |
| | | * 4.3 初始化婚姻信息 |
| | | * |
| | | * @param userAll 前端传入的用户数据对象(包含基础信息+家庭关系) |
| | | * @return AjaxResult 统一响应格式(成功/错误信息) |
| | | * @apiNote 需具备'system:user:add'权限才能访问[1,4](@ref) |
| | | */ |
| | | @PreAuthorize("@ss.hasPermi('system:user:add')") // 权限校验注解 |
| | | @Log(title = "用户管理", businessType = BusinessType.INSERT) // 操作日志记录 |
| | | @PostMapping |
| | | public AjaxResult add(@Validated @RequestBody sysUserAndUserInfo userAll) { |
| | | // ===================== 1. 初始化用户基础信息 ===================== |
| | | SysUser user = new SysUser(); |
| | | user.setAvatar(userAll.getAvatar()); // 用户头像 |
| | | user.setPassword("123456"); // 默认密码(需加密) |
| | | user.setNickName(userAll.getNickName()); // 用户昵称 |
| | | user.setUserName(userAll.getUserName()); // 登录用户名 |
| | | user.setPhonenumber(userAll.getPhonenumber()); // 手机号 |
| | | user.setRoleId(userAll.getRoleId()); // 主角色ID |
| | | user.setRoleIds(userAll.getRoleIds()); // 多角色ID集合 |
| | | user.setStatus(userAll.getStatus()); // 账户状态(0正常/1停用) |
| | | user.setSex(userAll.getSex()); // 性别(0男/1女) |
| | | user.setRemark(userAll.getRemark()); // 备注信息 |
| | | user.setUpdateBy(userAll.getUpdateBy()); // 更新人 |
| | | user.setClanId(userAll.getClanId()); // 家族ID |
| | | |
| | | // ===================== 2. 唯一性校验(登录名/手机号/邮箱) ===================== |
| | | // 2.1 登录名校验 |
| | | if (!userService.checkNickNameUnique(user)) { |
| | | return error("新增用户'" + user.getNickName() + "'失败,登录账号已存在"); |
| | | } |
| | | else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) |
| | | { |
| | | // 2.2 手机号校验(非空时验证) |
| | | else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) { |
| | | return error("新增用户'" + user.getUserName() + "'失败,手机号码已存在"); |
| | | } |
| | | else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) |
| | | { |
| | | // 2.3 邮箱校验(非空时验证) |
| | | else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) { |
| | | return error("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在"); |
| | | } |
| | | user.setCreateBy(getUsername()); |
| | | user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); |
| | | userService.insertUser(user); |
| | | |
| | | //写到用户与角色对应的表 |
| | | // ===================== 3. 保存核心用户数据 ===================== |
| | | user.setCreateBy(getUsername()); // 设置创建人 |
| | | // 密码加密处理(使用系统安全工具)[5](@ref) |
| | | user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); |
| | | userService.insertUser(user); // 写入sys_user主表 |
| | | |
| | | // ===================== 4. 用户角色关联处理 ===================== |
| | | SysUserRole sysUserRole = new SysUserRole(); |
| | | sysUserRole.setUserId(user.getUserId()); |
| | | sysUserRole.setRoleId(user.getRoleId()); |
| | | sysUserRole.setUserId(user.getUserId()); // 新用户ID |
| | | sysUserRole.setRoleId(user.getRoleId()); // 主角色ID |
| | | List<SysUserRole> sysUserRoles = new ArrayList<>(); |
| | | sysUserRoles.add(sysUserRole); |
| | | // 批量写入用户-角色关系表 |
| | | sysUserRoleMapper.batchUserRole(sysUserRoles); |
| | | |
| | | //写入到 新建立的信息表里面 |
| | | // ZfFamily zfFamily = zfFamilyService.getByFamId(userAll.getFamilyId()); |
| | | if (userAll.getRoleId() == 102){ |
| | | ZInfoUser infoUser = new ZInfoUser(); |
| | | infoUser.setSysId(user.getUserId()); |
| | | // infoUser.setUserId(user.getUserId()); |
| | | infoUser.setNickName(userAll.getNickName()); |
| | | infoUser.setOldName(userAll.getUserName()); |
| | | infoUser.setPhoneNumber(userAll.getPhonenumber()); |
| | | // ===================== 5. 家庭成员特殊处理(角色ID=102) ===================== |
| | | if (userAll.getRoleId() == 102) { |
| | | // ----- 5.1 初始化家庭成员扩展信息 ----- |
| | | ZInfoUser infoUser = new ZInfoUser(); |
| | | infoUser.setSysId(user.getUserId()); // 关联系统用户ID |
| | | infoUser.setNickName(userAll.getNickName()); // 当前昵称 |
| | | infoUser.setOldName(userAll.getUserName()); // 历史名称(保留记录) |
| | | infoUser.setPhoneNumber(userAll.getPhonenumber()); // 联系方式 |
| | | // 性别格式转换(String → Integer) |
| | | infoUser.setSex(userAll.getSex().equals("0") ? 0 : 1); |
| | | infoUser.setSpouseId(userAll.getSpouseId()); // 配偶ID |
| | | infoUser.setFatherId(userAll.getFid()); // 父亲ID |
| | | infoUser.setMomId(userAll.getMid()); // 母亲ID |
| | | infoUser.setIsMyFamily(userAll.getIsMyFamily()); // 家庭成员标记(0/1) |
| | | |
| | | |
| | | //设置新的usid |
| | | // UUID uuid= UUID.fromString(userAll.getUserName()+userAll.getPhonenumber()); |
| | | // String usid = uuid.toString(); |
| | | |
| | | |
| | | String originalString=userAll.getUserName()+"-"+userAll.getPhonenumber(); |
| | | |
| | | String uniqueId = UUID.nameUUIDFromBytes(originalString.getBytes()).toString(); |
| | | infoUser.setUaid(uniqueId); |
| | | |
| | | |
| | | System.out.println(userAll.getSex()); |
| | | System.out.println("性别的原因"); |
| | | |
| | | infoUser.setSex(userAll.getSex().equals("0")?0:1); |
| | | System.out.println(infoUser.getSex()); |
| | | // infoUser.setFamilyId(userAll.getFid()); |
| | | infoUser.setSpouseId(userAll.getSpouseId()); |
| | | |
| | | infoUser.setFatherId(userAll.getFid()); |
| | | infoUser.setMomId(userAll.getMid()); |
| | | // infoUser.setFamilyId(userAll.getFamilyId()); |
| | | |
| | | // if(zfFamily!=null&&zfFamily.getFid()!=null) { |
| | | // infoUser.setFatherId(zfFamily.getFid()); |
| | | // // infoUser.setMomId(zfFamily.getMid()); |
| | | // } |
| | | // if(zfFamily!=null&&zfFamily.getMid()!=null) { |
| | | // infoUser.setFatherId(zfFamily.getMid()); |
| | | // // infoUser.setMomId(zfFamily.getMid()); |
| | | // } |
| | | // System.out.println("-----"); |
| | | // System.out.println(userAll.getIsMyFamily()); |
| | | |
| | | infoUser.setIsMyFamily(userAll.getIsMyFamily()); |
| | | if(userAll.getIsMyFamily()==1) |
| | | { |
| | | ZfFamily zfFamily = new ZfFamily(); |
| | | zfFamily.setName(userAll.getNickName()+"的家庭"); |
| | | zfFamilyService.addFamily(zfFamily); |
| | | infoUser.setFamilyId(zfFamily.getId()); |
| | | } |
| | | // if(userAll.getSpouseId()==0) |
| | | // infoUser.setSpouseId(null); |
| | | // else { |
| | | // infoUser.setSpouseId(userAll.getSpouseId()); |
| | | // |
| | | // } |
| | | if (userAll.getFid() != null && userAll.getMid() != null){ |
| | | //证明是本家的一个,增加进来的 |
| | | |
| | | ZInfoUser father = zInfoUserService.getById(userAll.getFid()); |
| | | ZInfoUser mother = zInfoUserService.getById(userAll.getMid()); |
| | | //如果是本家,就简历一个家庭号 |
| | | if (father.getIsMyFamily() == 1){ |
| | | // infoUser.setFamilyId(father.getFamilyId()); |
| | | infoUser.setClanId(father.getClanId()); |
| | | // ----- 5.2 创建新家庭(当用户标记为本家时) ----- |
| | | if (userAll.getIsMyFamily() == 1) { |
| | | ZfFamily zfFamily = new ZfFamily(); |
| | | zfFamily.setName(userAll.getNickName() + "的家庭"); // 家庭名称 |
| | | zfFamilyService.addFamily(zfFamily); // 创建家庭记录 |
| | | infoUser.setFamilyId(zfFamily.getId()); // 绑定家庭ID |
| | | } |
| | | else if (mother.getIsMyFamily() == 1){ |
| | | // infoUser.setFamilyId(mother.getFamilyId()); |
| | | infoUser.setClanId(mother.getClanId()); |
| | | |
| | | // ----- 5.3 家族关系继承逻辑 ----- |
| | | /* 继承优先级:父亲家族 → 母亲家族 → 配偶家族 */ |
| | | if (userAll.getFid() != null && userAll.getMid() != null) { |
| | | // 5.3.1 获取父母信息 |
| | | ZInfoUser father = zInfoUserService.getById(userAll.getFid()); |
| | | ZInfoUser mother = zInfoUserService.getById(userAll.getMid()); |
| | | |
| | | // 5.3.2 优先继承父亲家族(当父亲是本家) |
| | | if (father.getIsMyFamily() == 1) { |
| | | infoUser.setClanId(father.getClanId()); |
| | | } |
| | | // 5.3.3 其次继承母亲家族(当母亲是本家) |
| | | else if (mother.getIsMyFamily() == 1) { |
| | | infoUser.setClanId(mother.getClanId()); |
| | | } |
| | | } else { |
| | | // 5.3.4 无父母信息时继承配偶家族 |
| | | ZInfoUser spouse = zInfoUserService.getById(userAll.getSpouseId()); |
| | | infoUser.setFamilyId(spouse.getFamilyId()); |
| | | infoUser.setClanId(spouse.getClanId()); |
| | | } |
| | | |
| | | // ----- 5.4 婚姻信息处理 ----- |
| | | // 5.4.1 初始化婚姻档案 |
| | | MarrySelf marrySelf = new MarrySelf(); |
| | | marrySelf.setUid(user.getUserId()); |
| | | marrySelf.setName(infoUser.getOldName()); |
| | | marrySelf.setSex(infoUser.getSex()==1?"男":"女"); |
| | | marrySelf.setMarryStatus(0); |
| | | marrySelfService.save(marrySelf); |
| | | } |
| | | else { |
| | | ZInfoUser spouse = zInfoUserService.getById(userAll.getSpouseId()); |
| | | infoUser.setFamilyId(spouse.getFamilyId()); |
| | | infoUser.setClanId(spouse.getClanId()); |
| | | //通过配偶的信息,更新marrySelf和增加marryUser表 |
| | | MarrySelf marrySelf = new MarrySelf(); |
| | | // marrySelf.setUid(userAll.getSpouseId()); |
| | | marrySelf.setSpouseName(infoUser.getOldName()); |
| | | marrySelf.setSpouseSex(infoUser.getSex()==1?"男":"女"); |
| | | marrySelf.setMarryStatus(1); |
| | | //修改条件 |
| | | QueryWrapper<MarrySelf> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.eq("uid", userAll.getSpouseId()); |
| | | marrySelf.setUid(user.getUserId()); // 用户ID |
| | | marrySelf.setName(userAll.getUserName()); // 姓名 |
| | | marrySelf.setSex(userAll.getSex().equals("0") ? "男" : "女"); // 性别转换 |
| | | // 婚姻状态(空值保护:0未婚) |
| | | marrySelf.setMarryStatus(userAll.getMaritalStatus() == null ? 0 : userAll.getMaritalStatus()); |
| | | |
| | | // 5.4.2 配偶存在时的特殊处理 |
| | | if (userAll.getSpouseId() != null) { |
| | | // 自动设置已婚状态(默认值逻辑) |
| | | infoUser.setMaritalStatus(userAll.getMaritalStatus() == null ? 1 : userAll.getMaritalStatus()); |
| | | |
| | | marrySelfService.update(marrySelf, queryWrapper); |
| | | //增加marryUser |
| | | MarryUser marryUser = new MarryUser(); |
| | | marryUser.setUid(userAll.getSpouseId()); |
| | | marryUser.setName(infoUser.getOldName()); |
| | | marryUser.setSex(infoUser.getSex()==1?"男":"女"); |
| | | marryUser.setMarryStatus(0); |
| | | marryUserService.addData(marryUser); |
| | | // 获取配偶信息 |
| | | ZInfoUser byId = zInfoUserService.getById(userAll.getSpouseId()); |
| | | |
| | | } |
| | | // 更新本人婚姻档案 |
| | | marrySelf.setSpouseName(byId.getOldName()); // 配偶原名 |
| | | marrySelf.setMarryStatus(userAll.getMaritalStatus() == null ? 1 : userAll.getMaritalStatus()); |
| | | marrySelf.setSpouseSex(byId.getSex().equals(0) ? "男" : "女"); // 配偶性别 |
| | | |
| | | //前端保证了角色不为空 |
| | | // if(user.getRoleIds()[0]==102) |
| | | // 5.4.3 更新配偶婚姻档案 |
| | | MarryInfoDto spouseDto = new MarryInfoDto(); |
| | | spouseDto.setUid(byId.getSysId()); // 配偶系统ID |
| | | spouseDto.setSpouseName(userAll.getUserName()); // 当前用户名称 |
| | | spouseDto.setMarryStatus(userAll.getMaritalStatus() == null ? 1 : userAll.getMaritalStatus()); |
| | | spouseDto.setSpouseSex(marrySelf.getSex()); // 当前用户性别 |
| | | marrySelfService.updateData(spouseDto); // 持久化 |
| | | } |
| | | marrySelfService.save(marrySelf); // 保存本人婚姻记录 |
| | | |
| | | // infoUser.setRoleName(user.g); |
| | | // ----- 5.5 家庭成员信息保存 ----- |
| | | if (userAll.getRoleId().equals(102L)) { |
| | | infoUser.setRoleId(3L); // 设置家庭角色ID |
| | | zInfoUserService.save(infoUser); // 保存家庭扩展信息 |
| | | |
| | | // if(userAll.getFamilyId()!=-1) { |
| | | |
| | | if(userAll.getRoleId().equals(102L)) { |
| | | infoUser.setRoleId(3L); |
| | | zInfoUserService.save(infoUser); |
| | | if(userAll.getSpouseId()!=null) |
| | | { |
| | | //更新配偶信息 |
| | | ZInfoUser zu = new ZInfoUser(); |
| | | zu.setUserId(userAll.getSpouseId()); |
| | | zu.setSpouseId(infoUser.getUserId()); |
| | | Long spouseMoM = zInfoUserService.getById(userAll.getSpouseId()).getMomId(); |
| | | Long spouseDad = zInfoUserService.getById(userAll.getSpouseId()).getFatherId(); |
| | | zu.setMomId(spouseMoM); |
| | | zu.setFatherId(spouseDad); |
| | | zInfoUserService.updateById(zu); |
| | | // 5.5.1 更新配偶关联信息 |
| | | if (userAll.getSpouseId() != null) { |
| | | ZInfoUser zu = new ZInfoUser(); |
| | | zu.setUserId(userAll.getSpouseId()); // 配偶ID |
| | | zu.setSpouseId(infoUser.getUserId()); // 绑定当前用户 |
| | | Long spouseMoM = zInfoUserService.getById(userAll.getSpouseId()).getMomId(); |
| | | Long spouseDad = zInfoUserService.getById(userAll.getSpouseId()).getFatherId(); |
| | | zu.setMomId(spouseMoM); |
| | | zu.setFatherId(spouseDad); |
| | | // 同步婚姻状态(空值保护:1已婚) |
| | | zu.setMaritalStatus(userAll.getMaritalStatus() == null ? 1 : userAll.getMaritalStatus()); |
| | | zInfoUserService.updateById(zu); // 更新配偶记录 |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | // zInfoUserService.saveOrUpdate(infoUser); |
| | | // LambdaQueryWrapper<ZInfoUser> lqw = new LambdaQueryWrapper<>(); |
| | | // lqw.eq(ZInfoUser::getSpouseId, userAll.getSpouseId()); |
| | | // List<ZInfoUser> lis = zInfoUserService.list(lqw); |
| | | // if(lis.size()>0) { |
| | | //// ZInfoUser zi = new ZInfoUser(); |
| | | //// zi.setUserId(userAll.getSpouseId()); |
| | | //// // UpdateWrapper wrapper = new UpdateWrapper(); |
| | | //// zi.setSpouseId(lis.get(0).getUserId()); |
| | | //// System.out.println(userAll.getSpouseId()); |
| | | //// System.out.println(lis.get(0).getUserId()); |
| | | // zInfoUserService.lambdaUpdate().eq(ZInfoUser::getUserId, userAll.getSpouseId()) |
| | | // .set(ZInfoUser::getSpouseId, lis.get(0).getUserId()) |
| | | // .update(); |
| | | // } |
| | | // } |
| | | return AjaxResult.success(); |
| | | return AjaxResult.success(); // 操作成功响应 |
| | | } |
| | | |
| | | /** |