From ec4733f0c90a88f2266731d16c94e6e2fada7528 Mon Sep 17 00:00:00 2001
From: zqy <2522236926@qq.com>
Date: 星期日, 22 六月 2025 22:46:45 +0800
Subject: [PATCH] 修改

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java |  596 +++++++++++++++++++++++++++++------------------------------
 1 files changed, 295 insertions(+), 301 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
index 3deb9dd..d6b2651 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
@@ -13,7 +13,6 @@
 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.*;
@@ -51,7 +50,7 @@
 
 /**
  * 鐢ㄦ埛淇℃伅
- * 
+ *
  * @author ruoyi
  */
 @RestController
@@ -170,358 +169,353 @@
     }
 
     /**
-     * 淇敼鐢ㄦ埛
+     * 鏇存柊鐢ㄦ埛淇℃伅鍙婂叧鑱旂殑瀹跺涵/濠氬Щ鏁版嵁
      *
+     * 鏍稿績娴佺▼锛�
+     * 1. 鏇存柊鍩虹鐢ㄦ埛淇℃伅
+     * 2. 瀹跺涵鎴愬憳涓撳睘澶勭悊锛堣鑹睮D=102锛�
+     *   2.1 鏋勫缓瀹跺涵鎴愬憳鎵╁睍淇℃伅
+     *   2.2 澶勭悊瀹舵棌缁ф壙鍏崇郴锛堢埗姣�/閰嶅伓锛�
+     *   2.3 鏇存柊閰嶅伓鏁版嵁
+     *   2.4 鍚屾濠氬Щ鐘舵�侊紙鍚濠氱壒娈婇�昏緫锛�
+     *
+     * @param user 鍓嶇浼犲叆鐨勭敤鎴锋暟鎹璞★紙鍚熀纭�淇℃伅+瀹跺涵鍏崇郴锛�
+     * @return AjaxResult 缁熶竴鍝嶅簲鏍煎紡锛堟垚鍔�/閿欒淇℃伅锛�
+     * @throws IllegalArgumentException 鍏抽敭鏁版嵁鏍¢獙澶辫触鏃舵姏鍑�
+     * @apiNote 浠呰鑹睮D=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());
+            // 鎬у埆鏍煎紡杞崲锛圫tring 鈫� 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());
+            // 淇濈暀鍘熷搴璉D锛堢‘淇濇暟鎹繛缁�э級
+            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 缁ф壙姣嶄翰瀹舵棌锛堣鐩栫埗浜睮D锛�
+            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 淇濆瓨瀹跺涵淇℃伅 -----
+            // 鍏抽敭鏍¢獙锛氬搴璉D涓虹┖璇存槑涓嶆弧瓒冲搴垚鍛樻潯浠�
+            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鍜孧arryUser
-            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());
+                    // 鏇存柊鏈汉濠氬Щ妗f
+                    marrySelf.setSpouseName(byId1.getOldName()); // 閰嶅伓鍘熷悕
+                    marrySelf.setMarryStatus(infoUser.getMaritalStatus()); // 濠氬Щ鐘舵��
+                    marrySelf.setSpouseSex(byId1.getSex().equals(0) ? "鐢�" : "濂�"); // 閰嶅伓鎬у埆
+                    marrySelfService.updateData(marrySelf); // 鎸佷箙鍖�
+
+                    // 3.3 鍙嶅悜鏇存柊閰嶅伓濠氬Щ妗f
+                    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. 瀹跺涵鎴愬憳鐗规畩澶勭悊锛堣鑹睮D=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());        // 涓昏鑹睮D
+        user.setRoleIds(userAll.getRoleIds());      // 澶氳鑹睮D闆嗗悎
+        user.setStatus(userAll.getStatus());        // 璐︽埛鐘舵�侊紙0姝e父/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()); // 鏂扮敤鎴稩D
+        sysUserRole.setRoleId(user.getRoleId()); // 涓昏鑹睮D
         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. 瀹跺涵鎴愬憳鐗规畩澶勭悊锛堣鑹睮D=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()); // 鑱旂郴鏂瑰紡
+            // 鎬у埆鏍煎紡杞崲锛圫tring 鈫� 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鍜屽鍔爉arryUser琛�
-            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());
 
-        }
+                // 鏇存柊鏈汉濠氬Щ妗f
+                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 鏇存柊閰嶅伓濠氬Щ妗f
+                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(); // 鎿嶄綔鎴愬姛鍝嶅簲
     }
 
     /**

--
Gitblit v1.9.1