From 3e02abec44a648f01174a4c3494a96ccb46a3b1a Mon Sep 17 00:00:00 2001
From: zqy <2522236926@qq.com>
Date: 星期二, 11 十一月 2025 21:39:20 +0800
Subject: [PATCH] 会员&充值相关模块
---
zhang-content/src/main/java/com/ruoyi/service/impl/ZInfoUserServiceImpl.java | 1033 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 1,031 insertions(+), 2 deletions(-)
diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/ZInfoUserServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/ZInfoUserServiceImpl.java
index 97d663b..9e60ac8 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/impl/ZInfoUserServiceImpl.java
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/ZInfoUserServiceImpl.java
@@ -2,12 +2,30 @@
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.domain.ZInfoUser;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.utils.MapUtils;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.uuid.UUID;
+import com.ruoyi.domain.*;
+import com.ruoyi.domain.dto.*;
import com.ruoyi.mapper.ZInfoUserMapper;
-import com.ruoyi.service.ZInfoUserService;
+import com.ruoyi.service.*;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import javax.annotation.Resource;
+import javax.crypto.spec.PSource;
+import java.util.*;
+import java.util.stream.Collectors;
/**
* <p>
* 鏈嶅姟瀹炵幇绫�
@@ -17,6 +35,1017 @@
* @since 2023-03-14
*/
@Service
+@Slf4j
public class ZInfoUserServiceImpl extends ServiceImpl<ZInfoUserMapper, ZInfoUser> implements ZInfoUserService {
+ @Autowired
+ private ZfRelationService zfRelationService;
+
+ @Autowired
+ private ZInfoUserService zInfoUserService;
+
+ @Resource
+ private ZfFamilyService zfFamilyService;
+
+
+ @Resource
+ private ZfRoleService zfRoleService;
+
+ @Resource
+ private ZfClanService zfClanService;
+
+
+
+ /** 浣跨浉鍚岀敤鎴峰悕+鐢佃瘽鍙风爜鐩稿悓鐨勭敤鎴峰搴旂殑uaid鍚屾*/
+ @Override
+ public Boolean setUaidSame(String phone, String username,String uniqueId){
+ UpdateWrapper<ZInfoUser> wrapper = new UpdateWrapper<>();
+ wrapper.eq(phone!=null,"phone_number", phone)
+ .eq(username!=null,"old_name",username)
+ .set("uaid",uniqueId );
+ this.update(null, wrapper); // 鎵ц鏇存柊
+
+ return true;
+ }
+
+ /** 浣跨浉鍚岀敤鎴峰悕+鐢佃瘽鍙风爜鐩稿悓鐨勭敤鎴峰搴旂殑inforuser琛ㄥ悓姝�*/
+ @Override
+ public void setUserInfoSame(ZInfoUser zInfoUser){
+
+ ZInfoUser zInfoUser1 = new ZInfoUser();
+ zInfoUser1.setPhoneNumber(zInfoUser.getPhoneNumber());
+ zInfoUser1.setOldName(zInfoUser.getOldName());
+ LambdaQueryWrapper<ZInfoUser> lqw = buildCondition(zInfoUser1);
+ if (list(lqw).size() != 0){
+ ZInfoUser newUser = new ZInfoUser();
+ // 鎷疯礉鎵�鏈夊睘鎬�
+ BeanUtils.copyProperties(list(lqw).get(0), newUser);
+
+ newUser.setUserId(zInfoUser.getUserId());
+ newUser.setSysId(zInfoUser.getSysId());
+ newUser.setFamilyId(null);
+ newUser.setFatherId(null);
+ newUser.setMomId(null);
+ newUser.setUrl(null);
+ newUser.setSpouseId(null);
+ newUser.setIsMyFamily(null);
+ newUser.setCreateTime(null);
+ newUser.setClanId(null);
+ newUser.setNickName(null);
+
+ System.out.println("ddddd"+newUser);
+
+
+ this.updateById(newUser);
+ }
+
+ }
+
+
+ @Override
+ public void setSpouseOnly(Long spouse){
+ UpdateWrapper<ZInfoUser> wrapper = new UpdateWrapper<>();
+ System.out.println("{{{{{{{{{{{{{"+spouse);
+ wrapper.eq("spouse_id", spouse) // 浣跨敤瀛楃涓插瓧娈靛悕
+ .set("spouse_id", null); // 鐩存帴璁剧疆瀛楁鍊�
+ this.update(null, wrapper); // 鎵ц鏇存柊
+ }
+
+
+ @Override
+ public AjaxResult selectInfoList(ZInfoUser zInfoUser, Integer pageNum, Integer pageSize) {
+
+ LambdaQueryWrapper<ZInfoUser> lqw = buildCondition(zInfoUser);
+
+ Page<ZInfoUser> zInfoUserPage = new Page<>(pageNum, pageSize);
+ Page<ZInfoUser> pageResult = page(zInfoUserPage, lqw);
+
+ HashMap<String, Object> data = MapUtils.getResult(pageResult);
+ return AjaxResult.success(data);
+
+ }
+
+ @Override
+ public Boolean findByuid(Long uid, Long tfid) {
+
+
+ if(uid==null)
+ return false;
+ // System.out.println(tfid);
+ // System.out.println("00000000000---------------");
+ ZInfoUser infu = this.getById(tfid);
+ if(infu==null)
+ return false;
+ if(infu.getFatherId()!=null && uid.equals(infu.getFatherId()))
+ return true;
+ if(infu.getMomId()!=null && uid.equals(infu.getMomId()))
+ return true;
+ return findByuid(uid, infu.getFatherId()) || findByuid(uid, infu.getMomId());
+ }
+
+ @Override
+ public List<ZInfoUser> findByUaidToFaid(String usid) {
+ if(usid!=null) {
+ ZInfoUser zInfoUser = new ZInfoUser();
+ zInfoUser.setUaid(usid);
+ LambdaQueryWrapper<ZInfoUser> lqw = buildCondition(zInfoUser);
+ List<ZInfoUser> ls = list(lqw);
+ // System.out.println(ls.size()+":==========sdfs55dfsdf");
+ return ls;
+ }else {
+ return new ArrayList<>();
+ }
+ }
+
+ @Override
+ public List<ZInfoUser> selectByClanId(Integer clanId) {
+ ZInfoUser zInfoUser = new ZInfoUser();
+ zInfoUser.setClanId(clanId);
+ LambdaQueryWrapper<ZInfoUser> lqw = buildCondition(zInfoUser);
+ return list(lqw);
+ }
+
+
+// public List<ZInfoUser> selectByNickName(String nickName){
+// ZInfoUser zInfoUser = new ZInfoUser();
+// zInfoUser.setNickName(nickName);
+// LambdaQueryWrapper<ZInfoUser> lqw = buildCondition(zInfoUser);
+// return list(lqw);
+// }
+
+ @Override
+ public AjaxResult findUserNameAClan(List<String> nickNames)
+ {
+ List<ZfShareOther> shareOtherClans = new ArrayList<>();
+ for (String nickName:nickNames) {
+ ZInfoUser zInfoUser = new ZInfoUser();
+ zInfoUser.setNickName(nickName);
+
+ LambdaQueryWrapper<ZInfoUser> lqw = buildCondition(zInfoUser);
+ List<ZInfoUser> zInfoUsers = list(lqw);
+
+
+ for (ZInfoUser zInfoUser1: zInfoUsers) {
+ ZfShareOther shareOtherClan = new ZfShareOther();
+ shareOtherClan.setUserName(zInfoUser1.getNickName());
+ shareOtherClan.setUserId(zInfoUser1.getUserId().intValue());
+ shareOtherClan.setClanId(zInfoUser1.getClanId());
+ shareOtherClan.setClanName(zfClanService.getById(zInfoUser1.getClanId()).getClanName());
+ shareOtherClans.add(shareOtherClan);
+ }}
+ return AjaxResult.success(shareOtherClans);
+ }
+
+ @Override
+ public ZInfoUser getInfoBysysId(Long sysid) {
+ LambdaQueryWrapper<ZInfoUser> lqw = new LambdaQueryWrapper<>();
+ lqw.eq(ZInfoUser::getSysId, sysid);
+ List<ZInfoUser> list = list(lqw);
+ if(list.size()>0)
+ return list.get(0);
+ else
+ return null;
+ }
+
+
+ @Override
+ public List<ZInfoUser> getDataBySex(Integer sex, Integer clanId){
+ LambdaQueryWrapper<ZInfoUser> lqw = new LambdaQueryWrapper<>();
+ lqw.eq(ZInfoUser::getSex, sex);
+ lqw.eq(ZInfoUser::getClanId, clanId);
+ List<ZInfoUser> list = list(lqw);
+ return list;
+ }
+
+ @Override
+ public AjaxResult getInfoByfid(Long fid) {
+ LambdaQueryWrapper<ZInfoUser> lqw = new LambdaQueryWrapper<>();
+ lqw.eq(ZInfoUser::getFamilyId, fid);
+ lqw.eq(ZInfoUser::getIsMyFamily, 1L);
+ lqw.isNull(ZInfoUser::getSpouseId);
+ List<ZInfoUser> list = list(lqw);
+
+ return AjaxResult.success(list);
+ }
+
+ private LambdaQueryWrapper<ZInfoUser> buildCondition(ZInfoUser zInfoUser) {
+
+ LambdaQueryWrapper<ZInfoUser> lqw = new LambdaQueryWrapper<>();
+ lqw.eq(zInfoUser.getUserId() != null, ZInfoUser::getUserId, zInfoUser.getUserId());
+ lqw.like(StringUtils.isNotEmpty(zInfoUser.getAlwaysAddress()), ZInfoUser::getAlwaysAddress, zInfoUser.getAlwaysAddress());
+ lqw.like(StringUtils.isNotEmpty(zInfoUser.getAlwaysPolice()), ZInfoUser::getAlwaysPolice, zInfoUser.getAlwaysPolice());
+ lqw.like(StringUtils.isNotEmpty(zInfoUser.getIdNum()), ZInfoUser::getIdNum, zInfoUser.getIdNum());
+ lqw.like(StringUtils.isNotEmpty(zInfoUser.getLocationAddress()), ZInfoUser::getLocationAddress, zInfoUser.getLocationAddress());
+ lqw.like(StringUtils.isNotEmpty(zInfoUser.getLocationPolice()), ZInfoUser::getLocationPolice, zInfoUser.getLocationPolice());
+ lqw.like(StringUtils.isNotEmpty(zInfoUser.getNation()), ZInfoUser::getNation, zInfoUser.getNation());
+ lqw.like(StringUtils.isNotEmpty(zInfoUser.getNationality()), ZInfoUser::getNationality, zInfoUser.getNationality());
+ lqw.like(StringUtils.isNotEmpty(zInfoUser.getNickName()), ZInfoUser::getNickName, zInfoUser.getNickName());
+ lqw.like(StringUtils.isNotEmpty(zInfoUser.getOldName()), ZInfoUser::getOldName, zInfoUser.getOldName());
+ lqw.like(StringUtils.isNotEmpty(zInfoUser.getPhoneNumber()), ZInfoUser::getPhoneNumber, zInfoUser.getPhoneNumber());
+ lqw.like(StringUtils.isNotEmpty(zInfoUser.getPoliticalOutlook()), ZInfoUser::getPoliticalOutlook, zInfoUser.getPoliticalOutlook());
+ lqw.like(StringUtils.isNotEmpty(zInfoUser.getPosition()), ZInfoUser::getPosition, zInfoUser.getPosition());
+ lqw.like(StringUtils.isNotEmpty(zInfoUser.getUnit()), ZInfoUser::getUnit, zInfoUser.getUnit());
+ lqw.like(zInfoUser.getSex() != null, ZInfoUser::getSex, zInfoUser.getSex());
+ lqw.like(zInfoUser.getMaritalStatus() != null, ZInfoUser::getMaritalStatus, zInfoUser.getMaritalStatus());
+ lqw.le(zInfoUser.getBirth() != null, ZInfoUser::getBirth, zInfoUser.getBirth());
+ lqw.like(zInfoUser.getClanId() != null, ZInfoUser::getClanId, zInfoUser.getClanId());
+
+ lqw.eq(zInfoUser.getUaid() !=null, ZInfoUser::getUaid, zInfoUser.getUaid());
+ return lqw;
+
+ }
+
+ @Override
+ public List<ZInfoUser> selectByCondition(ZInfoUser zInfoUser) {
+ LambdaQueryWrapper<ZInfoUser> lambdaQueryWrapper = buildCondition(zInfoUser);
+ List<ZInfoUser> list = list(lambdaQueryWrapper);
+ log.info("杩斿洖鐨勬暟鎹负:{}", list);
+
+ return list;
+
+ }
+
+ @Override
+ public AjaxResult removeByUserName(List<String> userName) {
+ LambdaQueryWrapper<ZInfoUser> lqw = new LambdaQueryWrapper<>();
+ lqw.in(ZInfoUser::getNickName,String.valueOf(userName.get(0)));
+ System.out.println(userName.get(0));
+ List<ZInfoUser> beanRecords = list(lqw);
+ System.out.println("555555555555555555"+beanRecords);
+ List<Long> ids = list(lqw).stream().map(ZInfoUser::getUserId).collect(Collectors.toList());;
+ removeByIds(ids);
+ return AjaxResult.success("鍒犻櫎鎴愬姛");
+ }
+
+ @Override
+ public List<ZInfoUser> selectByFamId(long fid) {
+ LambdaQueryWrapper<ZfFamily> lqw = new LambdaQueryWrapper<>();
+ lqw.eq(ZfFamily::getId, fid);
+ ZfFamily zfFamily = zfFamilyService.list(lqw).get(0);
+ LambdaQueryWrapper<ZInfoUser> lqws = new LambdaQueryWrapper<>();
+ lqws.eq(ZInfoUser::getFatherId, zfFamily.getFid());
+ // lqws.eq(ZInfoUser::getMomId, zfFamily.getMid());
+ List<ZInfoUser> list = list(lqws);
+ return list;
+ }
+
+ @Override
+ public AjaxResult searchMyRelation() {
+
+ SysUser user = SecurityUtils.getLoginUser().getUser();
+ Long userId = user.getUserId();
+
+ LambdaQueryWrapper<ZfRelation> lqw = new LambdaQueryWrapper<>();
+ lqw.eq(ZfRelation::getMyId, userId);
+
+ List<ZfRelation> list = zfRelationService.list(lqw);
+ return AjaxResult.success(list);
+ }
+
+ @Override
+ @Transactional
+ public AjaxResult addRelation(ZfRelation zfRelation) {
+ SysUser user = SecurityUtils.getLoginUser().getUser();
+ Long userId = user.getUserId();
+ zfRelation.setMyId(userId);
+ zfRelationService.save(zfRelation);
+ return AjaxResult.success();
+ }
+
+ @Override
+ @Transactional
+ public AjaxResult updateRelation(ZfRelation zfRelation) {
+ zfRelationService.updateById(zfRelation);
+ return AjaxResult.success();
+ }
+
+ @Override
+ public AjaxResult deleteRelation(Long[] ids) {
+ zfRelationService.removeByIds(Arrays.asList(ids));
+ return AjaxResult.success();
+ }
+
+// @Override
+// public AjaxResult empower(EmpowerDto empowerDto) {
+// return null;
+// }
+
+// /**
+// * 缁欑敤鎴锋巿鏉冪殑鏂规硶
+// * @param empowerDto
+// * @return
+// */
+// @Override
+// @Transactional
+// public AjaxResult empower(EmpowerDto empowerDto) {
+//
+// //寰楀埌dto涓殑淇℃伅
+// String otherUserId = empowerDto.getUserId();
+// String destinationFamilyId = empowerDto.getFamilyId();
+// List<String> authorityList = empowerDto.getAuthorityList();
+//
+// String familyId = getMyFamilyId();
+// checkAuthorization(familyId, destinationFamilyId,true);
+//
+// //鎺堟潈 //3{2007 1988 1004}
+// String finalStr = getFinalStr(destinationFamilyId, authorityList);
+//
+// //鏇存柊琚巿鏉冪敤鎴风殑鏉冮檺
+// LambdaQueryWrapper<ZInfoUser> lqw2 = new LambdaQueryWrapper<>();
+// lqw2.eq(ZInfoUser::getUserId,otherUserId);
+// ZInfoUser otherUser = getOne(lqw2);
+// String secondFamilyId = otherUser.getSecondFamilyId();
+//
+// String replaceFamilyId=null;
+//
+// boolean save=true;
+//
+// if (StringUtils.isNotEmpty(secondFamilyId)){
+// //濡傛灉鍘熸潵灏卞凡缁忔湁琚祴浜堟潈闄愪簡锛岄偅涔堥渶瑕佸垽鏂槸涓嶆槸璺熻繖涓搴彿鏈夊叧鐨勬潈闄�
+//
+// //杩欎釜secondFamilyId鏄綋鍓嶇敤鎴风殑瀹屾暣鏉冮檺瀛楁
+// if(secondFamilyId.contains(",")){
+// String[] split = secondFamilyId.split(",");
+// for (int i = 0; i < split.length; i++) {
+// String fid = split[i].substring(0, split[i].indexOf("{"));//浠庢潈闄愬潡涓嬁鍒拌鎺堟潈鐨勫搴彿
+// if(fid.equals(finalStr.substring(0,finalStr.indexOf("{")))){
+// //濡傛灉鍖归厤鍒颁簡瀵瑰簲鐨勫搴彿锛岄偅涔堝氨鏇挎崲鎺夊搴旂殑鏉冮檺鍧楀氨鍙互浜嗭紝涓嶉渶瑕佽拷鍔�
+// save=false;
+// split[i]=finalStr;
+// break;
+// }
+// }
+// List<String> finalList = Arrays.asList(split);
+// StringBuilder stringBuilder = new StringBuilder();
+// for (String s : finalList) {
+// stringBuilder.append(s).append(",");
+// }
+// stringBuilder.deleteCharAt(stringBuilder.length()-1);
+//
+// replaceFamilyId = stringBuilder.toString();
+//
+// }else {
+// String fid = secondFamilyId.substring(0, secondFamilyId.indexOf("{"));//浠庢潈闄愬潡涓嬁鍒拌鎺堟潈鐨勫搴彿
+// if(fid.equals(finalStr.substring(0,finalStr.indexOf("{")))){
+// //濡傛灉鍖归厤鍒颁簡瀵瑰簲鐨勫搴彿锛岄偅涔堝氨鏇挎崲鎺夊搴旂殑鏉冮檺鍧楀氨鍙互浜嗭紝涓嶉渶瑕佽拷鍔�
+// save=false;
+// replaceFamilyId=finalStr;
+// }
+// }
+//
+// if(save){
+// //闇�瑕佽拷鍔�,娌℃湁鍖归厤鍒板搴旂殑瀹跺涵鍙�
+// replaceFamilyId=secondFamilyId+","+finalStr;
+// }else {
+// //涓嶉渶瑕佽拷鍔�
+// }
+//
+// }else {
+// //鍘熸潵灏辨病鏈夋潈闄愪簡
+// replaceFamilyId=finalStr;
+// }
+//
+// LambdaUpdateWrapper<ZInfoUser> uw = new LambdaUpdateWrapper<>();
+// uw.eq(ZInfoUser::getUserId,otherUserId).set(ZInfoUser::getSecondFamilyId,replaceFamilyId);
+// if (update(null,uw)) {
+// return AjaxResult.success();
+// }else {
+// return AjaxResult.error();
+// }
+//
+// }
+
+
+ private void checkAuthorization(String familyId, String destinationFamilyId, boolean flag) {
+ String text = null;
+ if (flag) {
+ text = "鎺堟潈";
+ } else {
+ text = "鍙栨秷鎺堟潈";
+ }
+
+ //瀵规湰浜虹殑瀹跺涵鍙疯繘琛屽鐞�
+ if (familyId.contains(",")) {
+ String[] familyIds = familyId.split(",");
+ List<String> idList = Arrays.asList(familyIds);
+ if (!idList.contains(destinationFamilyId)) {
+ throw new RuntimeException("涓嶈兘" + text + "涓嶅睘浜庤嚜宸卞搴殑鏁版嵁");
+ }
+ } else {
+ if (!familyId.equals(destinationFamilyId)) {
+ throw new RuntimeException("涓嶈兘" + text + "涓嶅睘浜庤嚜宸卞搴殑鏁版嵁");
+ }
+ }
+ }
+
+ private Long getMyFamilyId() {
+ //寰楀埌鑷繁鐨勫搴璱d淇℃伅
+ SysUser user = SecurityUtils.getLoginUser().getUser();
+ Long myUserId = user.getUserId();
+ LambdaQueryWrapper<ZInfoUser> lqw = new LambdaQueryWrapper<>();
+ lqw.eq(ZInfoUser::getUserId, myUserId);
+ ZInfoUser zInfoUser = getOne(lqw);
+ Long familyId = zInfoUser.getFamilyId();
+ return familyId;
+ }
+
+ private String getFinalStr(String destinationFamilyId, List<String> authorityList) {
+ String authorityListStr = authorityList.stream().collect(Collectors.joining(" ", "{", "}"));
+ String finalStr = destinationFamilyId + authorityListStr; //3{2007 1988 1004}
+ return finalStr;
+ }
+
+
+ /**
+ * 鑾峰彇瀹舵牴缃�
+ *
+ * @return
+ */
+ @Override
+ public AjaxResult listWithTree(Integer depth, Integer clanId) {
+ LambdaQueryWrapper<ZInfoUser> lqw = new LambdaQueryWrapper<>();
+ lqw.eq(clanId!=null, ZInfoUser::getClanId, clanId);
+ // List<ZfEvent> list = list(lqw);
+ List<ZInfoUser> allPeopleList = list(lqw);
+ List<ZInfoUser> result = null;
+// try {
+// result = allPeopleList.stream().filter(people -> people.getUserId()!=1&&(people.getFatherId() == 0||people.getMomId()==0))
+// .map(people -> {
+// if(depth>1){
+// people.setIdentity(1);
+// //鏍规嵁閰嶅伓id鏌ヨ閰嶅伓鐨勬暟鎹紝灏佽濂戒竴璧疯繑鍥�
+// Long spouseId = people.getSpouseId();
+// ZInfoUser spouse = zInfoUserService.getById(spouseId);
+// spouse.setIdentity(1);
+// people.setSpouse(spouse);
+// people.setChildList(fillChildren(people, allPeopleList, depth-1));
+// }
+// return people;
+// }).collect(Collectors.toList());
+// } catch (NullPointerException e) {
+// throw new RuntimeException("鎮ㄥ湪鍔犲叆鎴愬憳鐨勬椂鍊欐病鏈夋寚瀹氳鎴愬憳鐨勭埗浜叉垨鑰呮瘝浜�");
+// }
+
+ List<ZInfoUser> myFamilyPeopleList = allPeopleList.stream().filter(people -> people.getUserId() != 1 && people.getIsMyFamily() == 1).collect(Collectors.toList());
+
+result = allPeopleList.stream().filter(people -> people!=null && people.getUserId() != 1 && ((people.getFatherId()!=null &&people.getFatherId() == 0 )|| (people.getMomId()!=null&&people.getMomId() == 0)) && people.getIsMyFamily() == 1)
+ .map(people -> {
+// System.out.println("=======================================");
+// System.out.println(people);
+ if (depth > 1) {
+ if(people!=null) {
+ people.setIdentity(1);
+ //鏍规嵁閰嶅伓id鏌ヨ閰嶅伓鐨勬暟鎹紝灏佽濂戒竴璧疯繑鍥�
+ Long spouseId = people.getSpouseId();
+ if (spouseId != null) {
+ ZInfoUser spouse = zInfoUserService.getById(spouseId);
+ spouse.setIdentity(1);
+ people.setSpouse(spouse);
+ }
+ people.setChildList(fillChildren(people, myFamilyPeopleList, depth - 1));
+ }
+ }
+// System.out.println("+++++++++++++++++++++++++++++");
+// System.out.println(people);
+ return people;
+ }).collect(Collectors.toList());
+//
+//System.out.println("--------------++++++++++++++++--------------");
+//System.out.println(result);
+ return AjaxResult.success(result);
+
+ }
+
+ /**
+ * 鏉′欢鑾峰彇瀹跺涵鎴愬憳
+ *
+ * @return
+ */
+ public AjaxResult listWithTreeByCondition(Integer depth, Genealogy genealogy) {
+
+ ZInfoUser zInfoUser = new ZInfoUser();
+ BeanUtils.copyProperties(genealogy, zInfoUser);
+ LambdaQueryWrapper<ZInfoUser> lqw = new LambdaQueryWrapper<>();
+// lqw.eq(zInfoUser.getSex() != null, ZInfoUser::getSex, zInfoUser.getSex());
+// lqw.like(StringUtils.isNotEmpty(zInfoUser.getNickName()), ZInfoUser::getNickName, zInfoUser.getNickName());
+// lqw.between(zInfoUser.getBirth() != null, ZInfoUser::getBirth, zInfoUser.getBirth(),zInfoUser.getBirth());
+ lqw.eq(zInfoUser.getClanId()!=null, ZInfoUser::getClanId,zInfoUser.getClanId());
+ List<ZInfoUser> allPeopleList = list(lqw);
+ // System.out.println(allPeopleList);
+ //System.out.println("============z=============zzzzzzzzzzzzzzzzzzz");
+
+// List<ZInfoUser> allPeopleList = list();
+ List<ZInfoUser> result = null;
+ try {
+ result = allPeopleList.stream().filter(people -> people.getUserId() != 1 && ((people.getFatherId()!=null&&people.getFatherId() == 0) || (people.getMomId()!=null&&people.getMomId() == 0)))
+ .map(people -> {
+ if (depth >= 1) {
+ people.setIdentity(1);
+ people.setChildList(fillChildren2(people, allPeopleList, depth - 1));
+ }
+ return people;
+ }).collect(Collectors.toList());
+ } catch (NullPointerException e) {
+ throw new RuntimeException("鎮ㄥ湪鍔犲叆鎴愬憳鐨勬椂鍊欐病鏈夋寚瀹氳鎴愬憳鐨勭埗浜叉垨鑰呮瘝浜�");
+ }
+
+ // System.out.println(result);
+
+// result.stream().map(
+// data->{
+// if(genealogy.getIdentity()!=null){
+// if(data.getIdentity()!=genealogy.getIdentity()){
+// result.remove(data);
+// }
+// }
+//
+// if(genealogy.getNickName()!=null){
+//
+// }
+//
+// if(genealogy.getSex()!=null){
+//
+// }
+//
+// if(genealogy.getBirth()!=null){
+//
+// }
+// }
+// )
+
+
+// if(genealogy.getIdentity()!=null){
+// result = result.stream().filter(data -> data.getIdentity() == genealogy.getIdentity()).collect(Collectors.toList());
+// }
+
+ return AjaxResult.success(result);
+
+ }
+
+ private List<ZInfoUser> userList = new ArrayList<>();
+
+ /**
+ * 瀹惰氨淇℃伅
+ *
+ * @param genealogy
+ * @return
+ */
+ @Override
+ public AjaxResult listGenealogy(Genealogy genealogy, Integer pageNum, Integer pageSize) {
+ userList.clear();
+ List<ZInfoUser> treeList = (List<ZInfoUser>) listWithTreeByCondition(100, genealogy).get("data");
+ recursionFindUser(treeList);
+
+ List<Genealogy> allData = userList.stream().map(
+ zInfoUser -> {
+ Genealogy newGenealogy = new Genealogy();
+ BeanUtils.copyProperties(zInfoUser, newGenealogy);
+
+ if (zInfoUser.getSpouseId() != null) {
+ ZInfoUser spouse = getById(zInfoUser.getSpouseId());
+
+ Genealogy spouseInfo = new Genealogy();
+ BeanUtils.copyProperties(spouse,spouseInfo);
+ newGenealogy.setSpouse(spouseInfo);
+ spouseInfo.setIdentity(newGenealogy.getIdentity());
+ spouseInfo.setSpouseName(zInfoUser.getNickName());
+ newGenealogy.setSpouseName(spouse.getNickName());
+ }
+ System.out.println(newGenealogy);
+ return newGenealogy;
+ }
+ ).collect(Collectors.toList());
+ List<Genealogy> collect = allData.stream()
+ .distinct()
+ .filter((data)-> data.getIsMyFamily() == 1)
+ .sorted(Comparator.comparing(Genealogy::getIdentity))
+ .collect(Collectors.toList());
+ List<Genealogy> resultData = new ArrayList<>();
+
+
+ // System.out.println(resultData);
+ // System.out.println("999999999988888888888++++++++++++++++++++++");
+//
+//
+ //瀵箁esult鍋氫竴涓潯浠剁瓫閫�
+ Iterator<Genealogy> it = collect.iterator();
+ while(it.hasNext()){
+ Genealogy data = it.next();
+
+ if(genealogy.getIdentity()!=null){
+ if(data.getIdentity()!=genealogy.getIdentity()){
+ it.remove();
+ continue;
+ }
+ }
+
+ if(genealogy.getNickName()!=null){
+ if(!data.getNickName().contains(genealogy.getNickName())){
+ it.remove();
+ continue;
+ }
+ }
+
+ if(genealogy.getSex()!=null){
+ if(data.getSex()!=genealogy.getSex()){
+ it.remove();
+ continue;
+ }
+ }
+
+ if(genealogy.getPhoneNumber()!=null){
+ if(data.getPhoneNumber()!=genealogy.getPhoneNumber()){
+ it.remove();
+ continue;
+ }
+ }
+
+ if(genealogy.getUnit()!=null){
+ if(data.getUnit()!=genealogy.getUnit()){
+ it.remove();
+ continue;
+ }
+ }
+
+ if(genealogy.getBirth()!=null){
+ if(data.getBirth()!=null) {
+ if (data.getBirth().compareTo(genealogy.getBirth()) != 0) {
+ it.remove();
+ }
+ }
+ else it.remove();
+ }
+ }
+
+ // System.out.println(resultData);
+
+ // System.out.println("================++++++++++++++66666666666666666999999999");
+
+
+// for (Genealogy data : resultData) {
+//
+// if(genealogy.getIdentity()!=null){
+// if(data.getIdentity()!=genealogy.getIdentity()){
+// resultData.remove(data);
+// }
+// }
+//
+// if(genealogy.getNickName()!=null){
+// if(!data.getNickName().contains(genealogy.getNickName())){
+// resultData.remove(data);
+// }
+// }
+//
+// if(genealogy.getSex()!=null){
+// if(data.getSex()!=genealogy.getSex()){
+// resultData.remove(data);
+// }
+// }
+//
+// if(genealogy.getBirth()!=null){
+// if(data.getBirth()!=genealogy.getBirth()){
+// resultData.remove(data);
+// }
+// }
+//
+// }
+ for (int i = (pageNum - 1) * pageSize; i < pageNum * pageSize; i++) {
+ if (i >= collect.size()) {
+ break;
+ }
+ System.out.println(i+"//////"+collect.get(i));
+ resultData.add(collect.get(i));
+ }
+
+ HashMap<String, Object> resultMap = new HashMap<>();
+ resultMap.put("data", resultData);
+ resultMap.put("total", collect.size());
+ resultMap.put("pageNum", pageNum);
+ resultMap.put("pageSize", pageSize);
+
+ return AjaxResult.success(resultMap);
+ }
+
+ @Override
+ public List<Genealogy> selectByIds(Long[] ids) {
+ List<ZInfoUser> zInfoUsers = listByIds(Arrays.asList(ids));
+ ArrayList<Genealogy> result = new ArrayList<>();
+ for (ZInfoUser zInfoUser : zInfoUsers) {
+ Genealogy genealogy = new Genealogy();
+ BeanUtils.copyProperties(zInfoUser, genealogy);
+ if (zInfoUser.getSpouseId() != null) {
+ ZInfoUser spouse = getById(zInfoUser.getSpouseId());
+ Genealogy spouseInfo = new Genealogy();
+ BeanUtils.copyProperties(spouse,spouseInfo);
+ spouseInfo.setIdentity(genealogy.getIdentity());
+ spouseInfo.setSpouseName(zInfoUser.getNickName());
+ genealogy.setSpouse(spouseInfo);
+ genealogy.setSpouseName(spouse.getNickName());
+ }
+ result.add(genealogy);
+ }
+
+ System.out.println("瀵煎嚭鐨勬暟鎹负:" + result);
+ return result;
+
+ }
+
+ @Override
+ public List<Genealogy> selectDatas(List<GenealogyExportDto> params) {
+ ArrayList<Long> ids = new ArrayList<>();
+ for (GenealogyExportDto param : params) {
+ ids.add(param.getId());
+ }
+
+ List<ZInfoUser> zInfoUsers = listByIds(ids);
+ ArrayList<Genealogy> result = new ArrayList<>();
+ for (int i = 0; i < zInfoUsers.size(); i++) {
+ Genealogy genealogy = new Genealogy();
+ BeanUtils.copyProperties(zInfoUsers.get(i), genealogy);
+ genealogy.setIdentity(params.get(i).getIdentity());
+ if (zInfoUsers.get(i).getSpouseId() != null) {
+ ZInfoUser spouse = getById(zInfoUsers.get(i).getSpouseId());
+ Genealogy spouseInfo = new Genealogy();
+ BeanUtils.copyProperties(spouse,spouseInfo);
+ spouseInfo.setIdentity(genealogy.getIdentity());
+ genealogy.setSpouseName(spouse.getNickName());
+ spouseInfo.setSpouseName(zInfoUsers.get(i).getNickName());
+ genealogy.setSpouse(spouseInfo);
+
+ }
+ result.add(genealogy);
+
+ }
+ System.out.println("瀵煎嚭鐨勬暟鎹负:" + result);
+ return result;
+
+
+ }
+
+ @Override
+ public ZInfoUser getInfoById(Long userId) {
+ ZInfoUser user = getInfoBysysId(userId);
+
+ if(user==null) {
+ //鍒╃敤userId鏌ヨ
+ LambdaQueryWrapper<ZInfoUser> lqw = new LambdaQueryWrapper<>();
+ lqw.eq(ZInfoUser::getUserId, userId);
+ List<ZInfoUser> list = list(lqw);
+ if(list.size()>0)
+ user = list.get(0);
+ else
+ return null;
+
+ }
+
+ Long familyId = user.getFamilyId();
+ // System.out.println("dddddddddddddddddddd");
+ if(user.getRoleId()==null)
+ user.setRoleId(3L);
+ String roleName = zfRoleService.getById(user.getRoleId()).getName();
+
+ user.setRoleName(roleName);
+ return user;
+ }
+
+// @Override
+// public ZInfoUser getInfoById(Long userId) {
+//
+// ZInfoUser user = getById(userId);
+//
+// //鐢ㄩ�楀彿闅斿紑鐨勫搴璱d
+// String familyId = user.getFamilyId();
+//
+// //鍦ㄨ嚜宸卞搴腑瑙掕壊鐨刬d
+// Long roleId = user.getRoleId();
+//
+// ArrayList<String> familyList = new ArrayList<>();
+//
+// //濉厖鎵�灞炲搴�
+// if(familyId.contains(",")){
+// String[] familyIds = familyId.split(",");
+// for (String id : familyIds) {
+// familyList.add(zfFamilyService.getById(id).getName());
+// }
+// }else {
+// familyList.add(zfFamilyService.getById(familyId).getName());
+// }
+//
+// user.setFamilyList(familyList);
+//
+// //濉厖鎵�鍦ㄥ搴殑瑙掕壊
+// user.setRole(zfRoleService.getById(roleId).getName());
+//
+// return user;
+// }
+
+ @Override
+ public ZInfoUser getMyself() {
+ SysUser user = SecurityUtils.getLoginUser().getUser();
+ Long userId = user.getUserId();
+ // System.out.println(userId);
+ //System.out.println("-----------------++++++++9999++++++++++----------");
+ ZInfoUser zInfoUser = new ZInfoUser();
+ zInfoUser.setSysId(userId);
+ LambdaQueryWrapper<ZInfoUser> lqw = new LambdaQueryWrapper<>();
+ lqw.eq(zInfoUser.getSysId() != null, ZInfoUser::getSysId, zInfoUser.getSysId());
+ List<ZInfoUser> list = list(lqw);
+ if(!list.isEmpty())
+ return list.get(0);
+ else
+ return null;
+ }
+
+ @Override
+ public AjaxResult listGenealogy2(Genealogy genealogy, Integer pageNum, Integer pageSize) {
+
+ return null;
+ }
+
+
+
+
+ private void recursionFindUser(List<ZInfoUser> treeList) {
+ if (treeList == null || treeList.isEmpty()) {
+ return;
+ }
+ for (ZInfoUser zInfoUser : treeList) {
+ userList.add(zInfoUser);
+ if (!zInfoUser.getChildList().isEmpty()) {
+ recursionFindUser(zInfoUser.getChildList());
+ }
+ }
+ }
+
+ /**
+ * 涓轰簡瀹舵牴缃戙�佹柊澧炴垨鑰呬慨鏀圭埗瀛愬叧绯�
+ *
+ * @param fatherId
+ * @param motherId
+ * @return
+ */
+ @Override
+ public AjaxResult addParent(Long fatherId, Long motherId) {
+ SysUser user = SecurityUtils.getLoginUser().getUser();
+ Long userId = user.getUserId();
+ LambdaQueryWrapper<ZInfoUser> zInfoUserLambdaQueryWrapper = new LambdaQueryWrapper<>();
+ zInfoUserLambdaQueryWrapper.eq(ZInfoUser::getUserId, userId);
+ ZInfoUser zInfoUser = getOne(zInfoUserLambdaQueryWrapper);
+
+ zInfoUser.setFatherId(fatherId);
+ zInfoUser.setMomId(motherId);
+
+ updateById(zInfoUser);
+ return AjaxResult.success();
+ }
+
+ @Override
+ public AjaxResult listAllExceptAdmin() {
+ List<ZInfoUser> collect = list().stream().filter(zInfoUser -> zInfoUser.getUserId() != 1).collect(Collectors.toList());
+ return AjaxResult.success(collect);
+
+ }
+
+ @Override
+ public AjaxResult listAllFamilyPeople(Integer clanId) {
+// List<ZInfoUser> lis = list();
+// for(ZInfoUser tm: lis)
+// {
+// System.out.println(tm.getRoleId());
+// }
+ LambdaQueryWrapper<ZInfoUser> zInfoUserLambdaQueryWrapper = new LambdaQueryWrapper<>();
+ zInfoUserLambdaQueryWrapper.eq(ZInfoUser::getClanId, clanId);
+ List<ZInfoUser> lis = list(zInfoUserLambdaQueryWrapper);
+ List<ZInfoUser> collect = lis.stream().filter(zInfoUser -> zInfoUser!=null&&zInfoUser.getRoleId()!=null&&zInfoUser.getRoleId()== 3).collect(Collectors.toList());
+
+
+ return AjaxResult.success(collect);
+ }
+
+ @Override
+ public AjaxResult listMySelfAndSpouse(Long id) {
+ LambdaQueryWrapper<ZInfoUser> lqw1 = new LambdaQueryWrapper<>();
+ lqw1.eq(ZInfoUser::getUserId, id);
+ ZInfoUser myself = getOne(lqw1);
+ Long spouseId = myself.getSpouseId();
+
+ LambdaQueryWrapper<ZInfoUser> lqw2 = new LambdaQueryWrapper<>();
+ lqw2.eq(ZInfoUser::getUserId, spouseId);
+ ZInfoUser spouse = getOne(lqw2);
+
+ ArrayList<ZInfoUser> zInfoUsers = new ArrayList<>();
+ zInfoUsers.add(myself);
+ zInfoUsers.add(spouse);
+
+ return AjaxResult.success(zInfoUsers);
+ }
+
+
+ /**
+ * 閫掑綊绠楁硶
+ *
+ * @param people
+ * @param allPeopleList
+ * @return
+ */
+ private List<ZInfoUser> fillChildren(ZInfoUser people, List<ZInfoUser> allPeopleList, Integer depth) {
+
+ // TODO: 2023-05-05 鎺у埗閫掑綊鐨勬鏁�
+ // if(depth==layer)
+
+ // layer = layer + 1;
+ // System.out.println(depth);
+
+// List<ZInfoUser> myFamilyPeopleList = allPeopleList.stream().filter(
+// one -> (one.getFatherId() == people.getUserId() || one.getMomId() == people.getUserId()) && (people.getIsMyFamily() == 1)
+// ).collect(Collectors.toList());
+
+ List<ZInfoUser> collect = allPeopleList.stream().filter(
+
+ one -> (((one.getFamilyId()!=null && Objects.equals(one.getFatherId(), people.getUserId())) || (one.getMomId()!=null&& one.getMomId().equals(people.getUserId()))) && (one.getIsMyFamily() == 1))
+ ).map(
+ one -> {
+ // System.out.println("++++++++++----0009999");
+ // System.out.println(one);
+ if (depth == 0) {
+ one.setIdentity(people.getIdentity() + 1);
+ //鏍规嵁閰嶅伓id鏌ヨ閰嶅伓鐨勬暟鎹紝灏佽濂戒竴璧疯繑鍥�
+ Long spouseId = one.getSpouseId();
+ if (spouseId != null) {
+ ZInfoUser spouse = zInfoUserService.getById(spouseId);
+ spouse.setIdentity(people.getIdentity() + 1);
+ one.setSpouse(spouse);
+ }
+ return one;
+ }
+ else {
+ one.setIdentity(people.getIdentity() + 1);
+ //鏍规嵁閰嶅伓id鏌ヨ閰嶅伓鐨勬暟鎹紝灏佽濂戒竴璧疯繑鍥�
+ Long spouseId = one.getSpouseId();
+ if (spouseId != null) {
+ ZInfoUser spouse = zInfoUserService.getById(spouseId);
+ // System.out.println(spouseId);
+ // System.out.println(spouse);
+ // System.out.println("0000))))))))))))))))");
+ spouse.setIdentity(people.getIdentity() + 1);
+ one.setSpouse(spouse);
+ }
+ List<ZInfoUser> zinfo = fillChildren(one, allPeopleList, depth - 1);
+ one.setChildList(zinfo);
+ // System.out.println(one);
+ return one;
+ }
+
+ //return one;
+ }
+ ).collect(Collectors.toList());
+ // System.out.println(collect);
+ return collect;
+
+ }
+
+ /**
+ * 閫掑綊绠楁硶瀹惰氨鐢�
+ *
+ * @param people
+ * @param allPeopleList
+ * @return
+ */
+ private List<ZInfoUser> fillChildren2(ZInfoUser people, List<ZInfoUser> allPeopleList, Integer depth) {
+
+ // TODO: 2023-05-05 鎺у埗閫掑綊鐨勬鏁�
+ // if(depth==layer)
+
+ // layer = layer + 1;
+ // System.out.println(depth);
+ List<ZInfoUser> collect = allPeopleList.stream().filter(
+ one -> Objects.equals(one.getFatherId(), people.getUserId()) || Objects.equals(one.getMomId(),people.getUserId())
+ ).map(
+ one -> {
+ if (depth == 1)
+ return one;
+ else {
+ one.setIdentity(people.getIdentity() + 1);
+ //鏍规嵁閰嶅伓id鏌ヨ閰嶅伓鐨勬暟鎹紝灏佽濂戒竴璧疯繑鍥�
+ Long spouseId = one.getSpouseId();
+ if (spouseId != null) {
+ ZInfoUser spouse = zInfoUserService.getById(spouseId);
+ spouse.setIdentity(people.getIdentity() + 1);
+ one.setSpouse(spouse);
+ }
+ List<ZInfoUser> zinfo = fillChildren2(one, allPeopleList, depth - 1);
+ one.setChildList(zinfo);
+ // System.out.println(one);
+ return one;
+ }
+
+ //return one;
+ }
+ ).collect(Collectors.toList());
+ // System.out.println(collect);
+ return collect;
+
+ }
+
+
}
--
Gitblit v1.9.1