From 3ad8fb4e7cc1391e8090f3da6ffa9c48690a12a3 Mon Sep 17 00:00:00 2001 From: feige <791364011@qq.com> Date: 星期日, 16 六月 2024 13:45:39 +0800 Subject: [PATCH] 修改了权限的代码 --- zhang-content/src/main/java/com/ruoyi/service/impl/ZInfoUserServiceImpl.java | 941 ++++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 768 insertions(+), 173 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 93b18ec..314d72a 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 @@ -3,8 +3,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; -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.common.core.domain.AjaxResult; @@ -12,24 +10,21 @@ import com.ruoyi.common.utils.MapUtils; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.domain.ZInfoUser; -import com.ruoyi.domain.ZfEvent; -import com.ruoyi.domain.ZfRelation; -import com.ruoyi.domain.dto.EmpowerDto; -import com.ruoyi.domain.dto.UserRelationDto; +import com.ruoyi.domain.*; +import com.ruoyi.domain.dto.*; import com.ruoyi.mapper.ZInfoUserMapper; import com.ruoyi.service.ZInfoUserService; +import com.ruoyi.service.ZfFamilyService; import com.ruoyi.service.ZfRelationService; +import com.ruoyi.service.ZfRoleService; 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 java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; +import javax.annotation.Resource; +import java.util.*; import java.util.stream.Collectors; /** @@ -47,12 +42,21 @@ @Autowired private ZfRelationService zfRelationService; + @Autowired + private ZInfoUserService zInfoUserService; + + @Resource + private ZfFamilyService zfFamilyService; + + @Resource + private ZfRoleService zfRoleService; + @Override public AjaxResult selectInfoList(ZInfoUser zInfoUser, Integer pageNum, Integer pageSize) { LambdaQueryWrapper<ZInfoUser> lqw = buildCondition(zInfoUser); - Page<ZInfoUser> zInfoUserPage = new Page<>(pageNum,pageSize); + Page<ZInfoUser> zInfoUserPage = new Page<>(pageNum, pageSize); Page<ZInfoUser> pageResult = page(zInfoUserPage, lqw); HashMap<String, Object> data = MapUtils.getResult(pageResult); @@ -60,26 +64,66 @@ } + @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==infu.getFatherId()) + return true; + if(infu.getMomId()!=null && uid==infu.getMomId()) + return true; + return findByuid(uid, infu.getFatherId()) || findByuid(uid, infu.getMomId()); + } + + @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 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.like(zInfoUser.getBirth()!=null,ZInfoUser::getBirth,zInfoUser.getBirth()); + 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.like(zInfoUser.getBirth() != null, ZInfoUser::getBirth, zInfoUser.getBirth()); return lqw; } @@ -88,61 +132,54 @@ public List<ZInfoUser> selectByCondition(ZInfoUser zInfoUser) { LambdaQueryWrapper<ZInfoUser> lambdaQueryWrapper = buildCondition(zInfoUser); List<ZInfoUser> list = list(lambdaQueryWrapper); - log.info("杩斿洖鐨勬暟鎹负:{}",list); + log.info("杩斿洖鐨勬暟鎹负:{}", list); return list; } @Override - public AjaxResult searchMyRelation(Long userId) { - - LambdaQueryWrapper<ZfRelation> lqw = new LambdaQueryWrapper<>(); - lqw.eq(ZfRelation::getMyId,userId); - List<ZfRelation> relationList = zfRelationService.list(lqw); - - ArrayList<UserRelationDto> otherUserList = new ArrayList<>(); - - relationList.stream().map( - (relation)->{ - Long otherId = relation.getOtherId(); - ZInfoUser otherUser = getById(otherId); - UserRelationDto userRelationDto = new UserRelationDto(); - BeanUtils.copyProperties(otherUser,userRelationDto); - userRelationDto.setRelation(relation.getRelation()); - userRelationDto.setId(relation.getId()); - otherUserList.add(userRelationDto); - return relation; - } - ).collect(Collectors.toList()); - - return AjaxResult.success(otherUserList); + 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("鍒犻櫎鎴愬姛"); } - /** - * 妫�鏌ヤ紶鍏ュ鏂圭殑id鏄惁瀛樺湪 - * @param zfRelation - */ - private void checkRelation(ZfRelation zfRelation){ + @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; + } - LambdaQueryWrapper<ZInfoUser> lqw = new LambdaQueryWrapper<>(); - lqw.eq(ZInfoUser::getUserId, zfRelation.getOtherId()); + @Override + public AjaxResult searchMyRelation() { - ZInfoUser zInfoUser2 = getOne(lqw); - if (zInfoUser2==null){ - throw new RuntimeException("瀵规柟鐨刬d涓嶅瓨鍦�"); - } + 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) { - checkRelation(zfRelation); - - //鑾峰彇鑷繁鐨刬d骞朵紶鍏� SysUser user = SecurityUtils.getLoginUser().getUser(); Long userId = user.getUserId(); zfRelation.setMyId(userId); - zfRelationService.save(zfRelation); return AjaxResult.success(); } @@ -150,146 +187,704 @@ @Override @Transactional public AjaxResult updateRelation(ZfRelation zfRelation) { - checkRelation(zfRelation); zfRelationService.updateById(zfRelation); return AjaxResult.success(); } @Override public AjaxResult deleteRelation(Long[] ids) { - boolean flag = zfRelationService.removeByIds(Arrays.asList(ids)); - if (flag){ - return AjaxResult.success(); - }else { - return AjaxResult.error(); - } + zfRelationService.removeByIds(Arrays.asList(ids)); + return AjaxResult.success(); } - /** - * 缁欑敤鎴锋巿鏉冪殑鏂规硶 - * @param empowerDto - * @return - */ - @Override - @Transactional - public AjaxResult empower(EmpowerDto empowerDto) { +// @Override +// public AjaxResult empower(EmpowerDto empowerDto) { +// return null; +// } - //寰楀埌dto涓殑淇℃伅 - String otherUserId = empowerDto.getUserId(); - String destinationFamilyId = empowerDto.getFamilyId(); - List<String> authorityList = empowerDto.getAuthorityList(); +// /** +// * 缁欑敤鎴锋巿鏉冪殑鏂规硶 +// * @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(); +// } +// +// } - 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="鍙栨秷鎺堟潈"; + private void checkAuthorization(String familyId, String destinationFamilyId, boolean flag) { + String text = null; + if (flag) { + text = "鎺堟潈"; + } else { + text = "鍙栨秷鎺堟潈"; } //瀵规湰浜虹殑瀹跺涵鍙疯繘琛屽鐞� - if(familyId.contains(",")){ + if (familyId.contains(",")) { String[] familyIds = familyId.split(","); List<String> idList = Arrays.asList(familyIds); if (!idList.contains(destinationFamilyId)) { - throw new RuntimeException("涓嶈兘"+text+"涓嶅睘浜庤嚜宸卞搴殑鏁版嵁"); + throw new RuntimeException("涓嶈兘" + text + "涓嶅睘浜庤嚜宸卞搴殑鏁版嵁"); } - }else { - if (!familyId.equals(destinationFamilyId)){ - throw new RuntimeException("涓嶈兘"+text+"涓嶅睘浜庤嚜宸卞搴殑鏁版嵁"); + } else { + if (!familyId.equals(destinationFamilyId)) { + throw new RuntimeException("涓嶈兘" + text + "涓嶅睘浜庤嚜宸卞搴殑鏁版嵁"); } } } - private String getMyFamilyId() { + private Long getMyFamilyId() { //寰楀埌鑷繁鐨勫搴璱d淇℃伅 SysUser user = SecurityUtils.getLoginUser().getUser(); Long myUserId = user.getUserId(); LambdaQueryWrapper<ZInfoUser> lqw = new LambdaQueryWrapper<>(); - lqw.eq(ZInfoUser::getUserId,myUserId); + lqw.eq(ZInfoUser::getUserId, myUserId); ZInfoUser zInfoUser = getOne(lqw); - String familyId = zInfoUser.getFamilyId(); + 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} + String finalStr = destinationFamilyId + authorityListStr; //3{2007 1988 1004} return finalStr; } + /** + * 鑾峰彇瀹舵牴缃� + * + * @return + */ + @Override + public AjaxResult listWithTree(Integer depth) { + + List<ZInfoUser> allPeopleList = list(); + 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()); + + List<ZInfoUser> allPeopleList = list(lqw); +// 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("鎮ㄥ湪鍔犲叆鎴愬憳鐨勬椂鍊欐病鏈夋寚瀹氳鎴愬憳鐨勭埗浜叉垨鑰呮瘝浜�"); + } + + +// 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) { + 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()); + } + 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<>(); + + for (int i = (pageNum - 1) * pageSize; i < pageNum * pageSize + pageSize; i++) { + if (i >= collect.size()) { + break; + } + resultData.add(collect.get(i)); + } + + + //瀵箁esult鍋氫竴涓潯浠剁瓫閫� + Iterator<Genealogy> it = resultData.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().compareTo(genealogy.getBirth())!=0){ + it.remove(); + continue; + } + } + } + + System.out.println(resultData); + + + +// 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); +// } +// } +// +// } + + HashMap<String, Object> resultMap = new HashMap<>(); + resultMap.put("data", resultData); + resultMap.put("total", resultData.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) + { + Long familyId = user.getFamilyId(); + // System.out.println("dddddddddddddddddddd"); + + String roleName = zfRoleService.getById(user.getRoleId()).getName(); + + user.setRoleName(roleName); + System.out.println("dddddddddddddddddddd"); +// System.out.println(familyId); +// if(familyId!=null&&familyId!=-1) +// { +// String familyName = zfFamilyService.getById(familyId).getName(); +// user.setFamilyName(familyName); +// } + } + 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(); + return getById(userId); + } + + @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() { +// List<ZInfoUser> lis = list(); +// for(ZInfoUser tm: lis) +// { +// System.out.println(tm.getRoleId()); +// } + List<ZInfoUser> collect = list().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 -> (one.getFatherId() == people.getUserId() || 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