From 4502f650f4816e55b5c7bf751ffce3aa0dce72dd Mon Sep 17 00:00:00 2001
From: zqy <2522236926@qq.com>
Date: 星期二, 14 十月 2025 18:13:07 +0800
Subject: [PATCH] 找回密码功能
---
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java | 552 +++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 417 insertions(+), 135 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 51db1d4..e2c875b 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
@@ -1,20 +1,25 @@
package com.ruoyi.web.controller.system;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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.domain.ZInfoUser;
-import com.ruoyi.domain.ZfFamily;
-import com.ruoyi.domain.sysUserAndUserInfo;
-import com.ruoyi.service.ZInfoUserService;
-import com.ruoyi.service.ZfFamilyService;
+import com.ruoyi.common.utils.uuid.UUID;
+import com.ruoyi.domain.*;
+import com.ruoyi.domain.dto.MarryInfoDto;
+import com.ruoyi.service.*;
+import com.ruoyi.system.domain.SysUserRole;
+import com.ruoyi.system.mapper.SysRoleMapper;
+import com.ruoyi.system.mapper.SysUserRoleMapper;
import org.apache.commons.lang3.ArrayUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
@@ -46,7 +51,7 @@
/**
* 鐢ㄦ埛淇℃伅
- *
+ *
* @author ruoyi
*/
@RestController
@@ -68,6 +73,18 @@
private ZInfoUserService zInfoUserService;
@Resource
private ZfFamilyService zfFamilyService;
+
+ @Resource
+ private ZfAncestorService zfAncestorService;
+
+ @Resource
+ private SysUserRoleMapper sysUserRoleMapper;
+ @Resource
+
+ MarrySelfService marrySelfService;
+ @Resource
+ MarryUserService marryUserService;
+
/**
* 鑾峰彇鐢ㄦ埛鍒楄〃
*/
@@ -76,8 +93,28 @@
public TableDataInfo list(SysUser user)
{
startPage();
+ System.out.println(user.getClanId());
+ System.out.println("----------------++++++++++++==0------------");
List<SysUser> list = userService.selectUserList(user);
return getDataTable(list);
+ }
+ @GetMapping("/listCommonUser")
+ public TableDataInfo listCommonUser(SysUser user)
+ {
+ startPage();
+ // System.out.println(user.getClanId());
+ System.out.println("----------------++++++++++++==0------------");
+ List<SysUser> list = userService.selectCommonUserList(user);
+ return getDataTable(list);
+ }
+ @Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.EXPORT)
+ @PreAuthorize("@ss.hasPermi('system:user:export')")
+ @PostMapping("/exportCommonUser")
+ public void exportCommonUser(HttpServletResponse response, SysUser user)
+ {
+ List<SysUser> list = userService.selectCommonUserList(user);
+ ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
+ util.exportExcel(response, list, "鐢ㄦ埛鏁版嵁");
}
@Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.EXPORT)
@@ -116,7 +153,7 @@
@GetMapping(value = { "/", "/{userId}" })
public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId)
{
- userService.checkUserDataScope(userId);
+ // userService.checkUserDataScope(userId);
AjaxResult ajax = AjaxResult.success();
List<SysRole> roles = roleService.selectRoleAll();
//濡傛灉鏄痑dmin鍒欑洿鎺ヨ繑鍥炴墍鏈夌殑瑙掕壊锛屽惁鍒欏氨杩斿洖涓嶆槸绠$悊鍛樼殑瑙掕壊淇℃伅
@@ -127,158 +164,403 @@
SysUser sysUser = userService.selectUserById(userId);
ajax.put(AjaxResult.DATA_TAG, sysUser);
ajax.put("postIds", postService.selectPostListByUserId(userId));
- ajax.put("roleIds", sysUser.getRoles().stream().map(SysRole::getRoleId).collect(Collectors.toList()));
+// ajax.put("roleIds", sysUser.getRoles().stream().map(SysRole::getRoleId).collect(Collectors.toList()));
}
return ajax;
}
/**
- * 淇敼鐢ㄦ埛
+ * 鏇存柊鐢ㄦ埛淇℃伅鍙婂叧鑱旂殑瀹跺涵/濠氬Щ鏁版嵁
*
+ * 鏍稿績娴佺▼锛�
+ * 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());
- 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());
+ us.setEmail(user.getEmail());// 澶囨敞淇℃伅
+ userService.updateUser(us); // 鎵цSysUser琛ㄦ洿鏂�
- // System.out.println(user.getFamilyId());
- // System.out.println("[[[[]]]]]]");
- ZInfoUser infoUser = new ZInfoUser();
- infoUser.setUserId(user.getUserId());
- infoUser.setOldName(user.getUserName());
- infoUser.setIsMyFamily(user.getIsMyFamily());
- infoUser.setMomId(user.getMid());
- infoUser.setFatherId(user.getFid());
-// infoUser.setFamilyId(user.getFamilyId());
- infoUser.setSysId(user.getSysId());
- 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());
- zInfoUserService.saveOrUpdate(infoUser);
- // zInfoUserService.update(infoUser);
- // .saveOrUpdate(infoUser);
- return AjaxResult.success();
+ // ===== 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());
+ infoUser.setEmail(user.getEmail());// 鐖朵翰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());
+ }
+
+ 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);
+ });
+
+ // 淇濈暀鍘熷搴璉D锛堢‘淇濇暟鎹繛缁�э級
+ if (myFamily != null) infoUser.setFamilyId(myFamily);
+
+ /* 瀹舵棌缁ф壙浼樺厛绾э細鐖朵翰 > 姣嶄翰 > 閰嶅伓 */
+ // 2.2.1 缁ф壙鐖朵翰瀹舵棌
+ if (user.getFid() != null) {
+ ZInfoUser father = zInfoUserService.getById(user.getFid());
+ if (father != null) {
+ infoUser.setClanId(father.getClanId()); // 鐖剁郴瀹舵棌ID
+ }
+ }
+ // 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 ){
+ //灏嗕慨鏀圭殑瀵瑰簲鐢ㄦ埛鍘熸湰id娓呯┖
+ zInfoUserService.setSpouseOnly(user.getUserId());
+ // 浠呭綋鐢ㄦ埛棣栨鎴愪负瀹跺涵鎴愬憳鏃剁户鎵块厤鍋跺鏃�
+ if (zInfoUserService.getById(user.getUserId()) == null ||
+ zInfoUserService.getById(user.getUserId()).getIsMyFamily() == 0) {
+ ZInfoUser spouse = zInfoUserService.getById(user.getSpouseId());
+ infoUser.setFamilyId(spouse.getFamilyId()); // 閰嶅伓瀹跺涵ID
+ // 缁ф壙閰嶅伓鐖舵瘝淇℃伅锛堝缓绔嬪Щ浜插叧绯伙級
+ if(spouse.getFatherId() != null || spouse.getMomId() != null) {
+ infoUser.setFatherId(spouse.getFatherId());
+ infoUser.setMomId(spouse.getMomId());
+ }
+ infoUser.setClanId(spouse.getClanId()); // 閰嶅伓瀹舵棌ID
+ }
+ }
+
+ // ----- 2.3 淇濆瓨瀹跺涵淇℃伅 -----
+ // 鍏抽敭鏍¢獙锛氬搴璉D涓虹┖璇存槑涓嶆弧瓒冲搴垚鍛樻潯浠�
+ if(infoUser.getFamilyId() != null ) {
+ zInfoUserService.saveOrUpdate(infoUser); // 鎸佷箙鍖栧埌ZInfoUser琛�
+ } else {
+ // 鈿狅笍 瀹跺涵ID缂哄け闃绘柇鎿嶄綔
+ return AjaxResult.error("瀹跺涵鎴愬憳涓嶈兘淇敼涓烘櫘閫氱敤鎴�");
+ }
+
+ // ----- 2.4 鏇存柊閰嶅伓淇℃伅 -----
+ ZInfoUser byId2 = zInfoUserService.getById(user.getUserId()); // 鍒锋柊鏁版嵁
+ ZInfoUser zu = new ZInfoUser();
+ // 浠呭綋鍘熻褰曞瓨鍦ㄩ厤鍋舵椂鏇存柊
+ 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); // 鏇存柊閰嶅伓璁板綍
+ }
+
+ // ===== 3. 濠氬Щ鐘舵�佷笓椤瑰鐞� =====
+ // 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());
+
+ // 鑾峰彇閰嶅伓鏈�鏂版暟鎹�
+ 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("瀹跺涵鎴愬憳涓嶈兘淇敼涓烘櫘閫氱敤鎴�");
+ }
}
+
/**
- * 鏂板鐢ㄦ埛
+ * 鏂板鐢ㄦ埛鎺ュ彛
+ *
+ * 鏍稿績鍔熻兘锛�
+ * 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)
+ @PreAuthorize("@ss.hasPermi('system:user:add')") // 鏉冮檺鏍¢獙娉ㄨВ
+ @Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.INSERT) // 鎿嶄綔鏃ュ織璁板綍
@PostMapping
- public AjaxResult add(@Validated @RequestBody sysUserAndUserInfo userAll)
- {
+ public AjaxResult add(@Validated @RequestBody sysUserAndUserInfo userAll) {
+ // ===================== 1. 鍒濆鍖栫敤鎴峰熀纭�淇℃伅 =====================
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.setPostIds(userAll.getPostIds());
- // user.set
- if (!userService.checkUserNameUnique(user))
- {
- return error("鏂板鐢ㄦ埛'" + user.getUserName() + "'澶辫触锛岀櫥褰曡处鍙峰凡瀛樺湪");
+ 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
+ user.setPaid(userAll.getPaid());
+ user.setEmail(userAll.getEmail());
+
+ // ===================== 2. 鍞竴鎬ф牎楠岋紙鐧诲綍鍚�/鎵嬫満鍙�/閭锛� =====================
+ // 2.1 鐧诲綍鍚嶆牎楠�
+ if (!userService.checkNickNameUnique(user)) {
+ return error("鏂板鐢ㄦ埛'" + user.getNickName() + "'澶辫触锛岀櫥褰曡处鍙峰凡瀛樺湪");
}
- else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user))
- {
- return error("鏂板鐢ㄦ埛'" + user.getUserName() + "'澶辫触锛屾墜鏈哄彿鐮佸凡瀛樺湪");
- }
- else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user))
- {
+ // 2.2 鎵嬫満鍙锋牎楠岋紙闈炵┖鏃堕獙璇侊級
+// 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() + "'澶辫触锛岄偖绠辫处鍙峰凡瀛樺湪");
}
- user.setCreateBy(getUsername());
+
+ // ===================== 3. 淇濆瓨鏍稿績鐢ㄦ埛鏁版嵁 =====================
+ user.setCreateBy(getUsername()); // 璁剧疆鍒涘缓浜�
+ // 瀵嗙爜鍔犲瘑澶勭悊锛堜娇鐢ㄧ郴缁熷畨鍏ㄥ伐鍏凤級[5](@ref)
user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
- userService.insertUser(user);
- //鍐欏叆鍒� 鏂板缓绔嬬殑淇℃伅琛ㄩ噷闈�
-//
-// ZfFamily zfFamily = zfFamilyService.getByFamId(userAll.getFamilyId());
- ZInfoUser infoUser = new ZInfoUser();
- infoUser.setSysId(user.getUserId());
- // infoUser.setUserId(user.getUserId());
- infoUser.setNickName(userAll.getNickName());
- infoUser.setOldName(userAll.getUserName());
- infoUser.setPhoneNumber(userAll.getPhonenumber());
- infoUser.setSex(userAll.getSex()=="鐢�"?1:0);
- infoUser.setFamilyId(userAll.getFid());
- infoUser.setSpouseId(userAll.getSpouseId());
+ userService.insertUser(user); // 鍐欏叆sys_user涓昏〃
- infoUser.setFatherId(userAll.getFid());
- infoUser.setMomId(userAll.getMid());
- // infoUser.setFamilyId(userAll.getFamilyId());
+ // ===================== 4. 鐢ㄦ埛瑙掕壊鍏宠仈澶勭悊 =====================
+ SysUserRole sysUserRole = new SysUserRole();
+ sysUserRole.setUserId(user.getUserId()); // 鏂扮敤鎴稩D
+ sysUserRole.setRoleId(user.getRoleId()); // 涓昏鑹睮D
+ List<SysUserRole> sysUserRoles = new ArrayList<>();
+ sysUserRoles.add(sysUserRole);
+ // 鎵归噺鍐欏叆鐢ㄦ埛-瑙掕壊鍏崇郴琛�
+ sysUserRoleMapper.batchUserRole(sysUserRoles);
-// 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());
+ // ===================== 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()); // 鑱旂郴鏂瑰紡
+ infoUser.setEmail(userAll.getEmail());
+ String originalString=userAll.getUserName()+"-"+userAll.getPhonenumber();
- infoUser.setIsMyFamily(userAll.getIsMyFamily());
-// if(userAll.getSpouseId()==0)
-// infoUser.setSpouseId(null);
-// else {
-// infoUser.setSpouseId(userAll.getSpouseId());
-//
-// }
- //鍓嶇淇濊瘉浜嗚鑹蹭笉涓虹┖
- // if(user.getRoleIds()[0]==102)
+ String uniqueId = UUID.nameUUIDFromBytes(originalString.getBytes()).toString();
+ infoUser.setUaid(uniqueId);
- // infoUser.setRoleName(user.g);
+ Boolean same = false;
+ if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) {
+ same = zInfoUserService.setUaidSame(user.getPhonenumber(), user.getUserName(), uniqueId);
+ }
+ // 鎬у埆鏍煎紡杞崲锛圫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锛�
- // if(userAll.getFamilyId()!=-1) {
- if(userAll.getRoleId()==102) {
- infoUser.setRoleId(3L);
- zInfoUserService.save(infoUser);
- if(userAll.getSpouseId()!=null)
- {
- ZInfoUser zu = new ZInfoUser();
- zu.setUserId(userAll.getSpouseId());
- zu.setSpouseId(infoUser.getUserId());
- zInfoUserService.updateById(zu);
+ // ----- 5.2 鍒涘缓鏂板搴紙褰撶敤鎴锋爣璁颁负鏈鏃讹級 -----
+ if (userAll.getIsMyFamily() == 1) {
+ ZfFamily zfFamily = new ZfFamily();
+ zfFamily.setName(userAll.getNickName() + "鐨勫搴�"); // 瀹跺涵鍚嶇О
+ zfFamilyService.addFamily(zfFamily); // 鍒涘缓瀹跺涵璁板綍
+ infoUser.setFamilyId(zfFamily.getId()); // 缁戝畾瀹跺涵ID
+ }
+
+ // ----- 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()); // 鐢ㄦ埛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());
+
+ // 鑾峰彇閰嶅伓淇℃伅
+ 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) ? "鐢�" : "濂�"); // 閰嶅伓鎬у埆
+
+ // 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); // 淇濆瓨鏈汉濠氬Щ璁板綍
+
+ // ----- 5.5 瀹跺涵鎴愬憳淇℃伅淇濆瓨 -----
+ if (userAll.getRoleId().equals(102L)) {
+ infoUser.setRoleId(3L); // 璁剧疆瀹跺涵瑙掕壊ID
+ zInfoUserService.save(infoUser); // 淇濆瓨瀹跺涵鎵╁睍淇℃伅
+
+ if(same){
+ zInfoUserService.setUserInfoSame(infoUser);
+ marrySelfService.setMarryInfoSame(infoUser,marrySelf.getId());
+
+ }
+
+ // 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(); // 鎿嶄綔鎴愬姛鍝嶅簲
}
/**
@@ -291,9 +573,9 @@
{
userService.checkUserAllowed(user);
userService.checkUserDataScope(user.getUserId());
- if (!userService.checkUserNameUnique(user))
+ if (!userService.checkNickNameUnique(user))
{
- return error("淇敼鐢ㄦ埛'" + user.getUserName() + "'澶辫触锛岀櫥褰曡处鍙峰凡瀛樺湪");
+ return error("淇敼鐢ㄦ埛'" + user.getNickName() + "'澶辫触锛岀櫥褰曡处鍙峰凡瀛樺湪");
}
else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user))
{
@@ -334,8 +616,8 @@
@PutMapping("/resetPwd")
public AjaxResult resetPwd(@RequestBody SysUser user)
{
- userService.checkUserAllowed(user);
- userService.checkUserDataScope(user.getUserId());
+ // userService.checkUserAllowed(user);
+// userService.checkUserDataScope(user.getUserId());
user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
user.setUpdateBy(getUsername());
return toAjax(userService.resetPwd(user));
--
Gitblit v1.9.1