From b02beccf4567068cb47a3f1181a00039456c872d Mon Sep 17 00:00:00 2001 From: zqy <2522236926@qq.com> Date: 星期三, 06 八月 2025 15:37:20 +0800 Subject: [PATCH] 用户修改姓名和电话同步修改uaid --- zhang-content/src/main/java/com/ruoyi/service/impl/ZfPetServiceImpl.java | 361 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 359 insertions(+), 2 deletions(-) diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfPetServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfPetServiceImpl.java index 17cd163..2ed425e 100644 --- a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfPetServiceImpl.java +++ b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfPetServiceImpl.java @@ -1,11 +1,27 @@ package com.ruoyi.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.ruoyi.domain.ZfPet; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.utils.MapUtils; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.domain.*; import com.ruoyi.mapper.ZfPetMapper; -import com.ruoyi.service.ZfPetService; +import com.ruoyi.service.*; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.util.*; +import java.util.stream.Collectors; + +import static com.ruoyi.constant.MenuAuthority.*; /** * <p> @@ -16,6 +32,347 @@ * @since 2023-03-12 */ @Service +@Slf4j public class ZfPetServiceImpl extends ServiceImpl<ZfPetMapper, ZfPet> implements ZfPetService { + @Autowired + ZInfoUserService zInfoUserService; + + @Autowired + ZfMasterService zfMasterService; + + @Autowired + ZfPetService zfPetService; + + @Resource + ZAuthorityService zAuthorityService; + + @Resource + ZfPetNoteService zfPetNoteService; + + @Resource + ZfPetSharService zfPetSharService; + + @Resource + ZfPetDownlService zfPetDownlService; + + @Override + public AjaxResult selectDataList(ZfPet zfPet, Integer pageNum, Integer pageSize) { +// LambdaQueryWrapper<ZfPet> lqw = buildCondition(zfPet); +// lqw.orderByDesc(ZfPet::getCreateTime); +// Page<ZfPet> ZfPetPage = new Page<>(pageNum,pageSize); +// Page<ZfPet> pageResult = page(ZfPetPage, lqw); +// HashMap<String, Object> data = MapUtils.getResult(pageResult); +// return AjaxResult.success(data); + + //瑕佹煡鑷繁瀹跺涵鐨� + ZInfoUser myself = zInfoUserService.getMyself(); + if(myself==null) + { + // System.out.println("ssssss"); + return AjaxResult.success("鎮ㄦ病鍔犲叆鍒板搴旂殑瀹跺涵锛岃鑱旂郴绠$悊鍛�"); + } + Long familyId = myself.getFamilyId(); + + //鏌ョ湅鐖舵瘝鐨勬暟鎹細 + Long fatherFaId = 0L; + if(myself.getFatherId()!=null) + fatherFaId = zInfoUserService.getInfoById(myself.getFatherId()).getFamilyId(); + Long motherFaId = 0L; + if(myself.getMomId()!=null) + motherFaId = zInfoUserService.getInfoById(myself.getMomId()).getFamilyId(); + + //涔熻鏌ュ埆浜烘巿鏉冪殑 + List<ZAuthority> authority = zAuthorityService.getAuthority(); + List<Long> idList = authority.stream().filter(auth -> auth.getAuthority().toString().equals(FAMILY_PET_LIST)).map(ZAuthority::getFid).collect(Collectors.toList()); + //鍔犱笂鑷繁瀹跺涵鐨刬d + idList.add(familyId); + + //鍔犱笂鐖舵瘝瀹舵棌id + idList.add(fatherFaId); + idList.add(motherFaId); + List<Long> fms = zInfoUserService.findByUaidToFaid(myself.getUaid()).stream().map(ZInfoUser::getFamilyId).collect(Collectors.toList()); + if(!fms.isEmpty()) + { + idList.addAll(fms); + } +// String familyIds = listFamilyIds(); +// String secondFamilyAuthority = listSecondFamilyIds(); + LambdaQueryWrapper<ZfPet> lqw = buildCondition(zfPet, idList); + + + Page<ZfPet> zfPetPage = new Page<>(pageNum, pageSize); + Page<ZfPet> pageResult = page(zfPetPage, lqw); + + List<ZfPet> beanRecords = pageResult.getRecords();//寰楀埌鏌ヨ鍑烘潵鐨勬暟鎹� + + List<ZfPet> dtoResult = markOwnData(familyId,fatherFaId, motherFaId, beanRecords); + + HashMap<String, Object> data = MapUtils.getResult(pageResult, dtoResult); + return AjaxResult.success(data); + } + + public List<ZfPet> markOwnData(Long familyId,Long fatherFamilyId, Long motherFamilyId,List<ZfPet> beanRecords){ + return beanRecords.stream().peek( + bean -> { + if (Objects.equals(bean.getFamilyId(), familyId) ||(fatherFamilyId!=0L && fatherFamilyId.equals(familyId))||(motherFamilyId!=0L && motherFamilyId.equals(familyId))) { + bean.setOwnData(1); + } else { + bean.setOwnData(0); + } + } + ).sorted((a,b)-> b.getOwnData()-a.getOwnData()).collect(Collectors.toList()); + } + + + + + @Override + public List<ZfPet> selectByCondition(ZfPet zfPet) { +// LambdaQueryWrapper<ZfPet> lambdaQueryWrapper = buildCondition(zfPet); +// lambdaQueryWrapper.orderByDesc(ZfPet::getCreateTime); +// List<ZfPet> list = list(lambdaQueryWrapper); +// log.info("杩斿洖鐨勬暟鎹负:{}",list); +// return list; + //瑕佹煡鑷繁瀹跺涵鐨� + ZInfoUser myself = zInfoUserService.getMyself(); + Long familyId = myself.getFamilyId(); + + //鏌ョ湅鐖舵瘝鐨勬暟鎹細 + Long fatherFaId = 0L; + if(myself.getFatherId()!=null) + fatherFaId = zInfoUserService.getInfoById(myself.getFatherId()).getFamilyId(); + Long motherFaId = 0L; + if(myself.getMomId()!=null) + motherFaId = zInfoUserService.getInfoBysysId(myself.getMomId()).getFamilyId(); + + //涔熻鏌ュ埆浜烘巿鏉冪殑 + List<ZAuthority> authority = zAuthorityService.getAuthority(); + List<Long> idList = authority.stream().filter(auth -> auth.getAuthority().toString().equals(FAMILY_PET_LIST)).map(ZAuthority::getFid).collect(Collectors.toList()); + //鍔犱笂鑷繁瀹跺涵鐨刬d + idList.add(familyId); + + //鍔犱笂鐖舵瘝瀹舵棌id + idList.add(fatherFaId); + idList.add(motherFaId); + List<Long> fms = zInfoUserService.findByUaidToFaid(myself.getUaid()).stream().map(ZInfoUser::getFamilyId).collect(Collectors.toList()); + if(!fms.isEmpty()) + { + idList.addAll(fms); + } + LambdaQueryWrapper<ZfPet> lambdaQueryWrapper = buildCondition(zfPet, idList); + List<ZfPet> beanRecords = list(lambdaQueryWrapper); + log.info("浠庢暟鎹簱涓煡鍒扮殑涓�:{}", beanRecords); + return markOwnData(familyId,fatherFaId, motherFaId, beanRecords); + } + + @Override + public List<ZfPet> selectByIds(Long[] ids) { + List<ZfPet> list = new ArrayList<>(); + if(ids.length!=0) + list = listByIds(Arrays.asList(ids)); + else + list = list(); + return list; + } + + @Override + public AjaxResult importExcel(MultipartFile file) { + ExcelUtil<ZfPet> util = new ExcelUtil<>(ZfPet.class); + List<ZfPet> dataList = null; + try { + dataList = util.importExcel(file.getInputStream()); + } catch (Exception e) { + throw new RuntimeException(e); + } + log.info("鏁版嵁鍒楄〃涓猴細{}", dataList); + + for (ZfPet zfPet : dataList) { + zfPetService.addData(zfPet); + } + + return AjaxResult.success("瀵煎叆鏁版嵁鎴愬姛"); + } + + @Override + public AjaxResult addData(ZfPet zfPet) { + ZInfoUser myself = zInfoUserService.getMyself(); + Long familyId = myself.getFamilyId(); + + if(familyId == null){ + throw new RuntimeException("鎮ㄨ繕鏈姞鍏ヤ换浣曞搴�"); + } + + List<ZAuthority> authority = zAuthorityService.getAuthority(); + List<Long> familyIdList = authority.stream().filter(auth -> auth.getAuthority().toString().equals(FAMILY_PET_ADD)).map(ZAuthority::getFid).collect(Collectors.toList()); + familyIdList.add(familyId); + + if (zfPet.getFamilyId()!=null && !familyIdList.contains(zfPet.getFamilyId())) { + throw new RuntimeException("浣犳病鏈夋潈闄愭搷浣滄瀹跺涵鐨勬暟鎹�"); + } + + + if(zfPet.getFamilyId() == null){ + //榛樿娣诲姞鑷繁瀹跺涵鐨勬暟鎹� + zfPet.setFamilyId(familyId); + } + + //鍒ゆ柇鏄惁鏈夐噸澶嶆暟鎹� + LambdaQueryWrapper<ZfPet> lqw = uniqueCondition(zfPet); + List<ZfPet> list = list(lqw); + + if(list.size()>0){ + throw new RuntimeException("璇峰嬁鏂板閲嶅鏁版嵁"); + } + + if (save(zfPet)) { + return AjaxResult.success(); + } else { + return AjaxResult.error(); + } + } + + @Resource + ZfLogService zfLogService; + + @Override + public AjaxResult updateData(ZfPet zfPet) { + ZInfoUser myself = zInfoUserService.getMyself(); + Long familyId = myself.getFamilyId(); + + //鍏堟牴鎹甶d鏌ヨ鍑烘暟鎹殑familyId锛岀湅鐪嬫湁娌℃湁鏉冮檺鎿嶄綔 + Long dataFamilyId = getById(zfPet.getId()).getFamilyId(); + + List<ZAuthority> authority = zAuthorityService.getAuthority(); + List<Long> familyIdList = authority.stream().filter(auth -> auth.getAuthority().toString().equals(FAMILY_PET_UPDATE)).map(ZAuthority::getFid).collect(Collectors.toList()); + familyIdList.add(familyId); + + if (dataFamilyId!=null && !familyIdList.contains(dataFamilyId)) { + throw new RuntimeException("浣犳病鏈夋潈闄愭搷浣滄瀹跺涵鐨勬暟鎹�"); + } + + //鎿嶄綔鍚庡姞鍏ユ棩蹇� + ZfLog zfLog = new ZfLog(); + zfLog.setUpdateTime(LocalDateTime.now()); + zfLog.setModule("榄呭疇"); + zfLog.setUpdater(zInfoUserService.getMyself().getNickName()); + zfLogService.save(zfLog); + + if(updateById(zfPet)){ + return AjaxResult.success(); + }else { + return AjaxResult.error(); + } + } + + @Override + public AjaxResult deleteData(Long[] ids) { + List<ZfPet> dataList = zfPetService.listByIds(Arrays.asList(ids)); + + ZInfoUser myself = zInfoUserService.getMyself(); + Long familyId = myself.getFamilyId(); + + List<ZAuthority> authority = zAuthorityService.getAuthority(); + List<Long> familyIdList = authority.stream().filter(auth -> auth.getAuthority().toString().equals(FAMILY_PET_REMOVE)).map(ZAuthority::getFid).collect(Collectors.toList()); + familyIdList.add(familyId); + + for (ZfPet data : dataList) { + if (!familyIdList.contains(data.getFamilyId())){ + throw new RuntimeException("浣犳病鏈夋潈闄愭搷浣滄瀹跺涵鐨勬暟鎹�"); + } + List<ZfPetNote> petNoteByPetId = zfPetNoteService.getPetNoteByPetId(data.getId()); + if(petNoteByPetId.size() != 0) + if (!zfPetNoteService.removeBatchByIds(petNoteByPetId)) + return AjaxResult.error(); + } + if (! (zfPetDownlService.deleteData(ids) && zfPetSharService.deleteByContentId(ids) ) ){ + return AjaxResult.error(); + } + + if (zfPetService.removeByIds(Arrays.asList(ids))) { + return AjaxResult.success(); + }else { + return AjaxResult.error(); + } + } + +// @Override +// @Transactional +// public AjaxResult mySave(ZfPet zfPet) { +// SysUser user = SecurityUtils.getLoginUser().getUser(); +// Long userId = user.getUserId(); +// +// String pid = IdUtils.fastSimpleUUID(); +// zfPet.setId(pid); +// +// //鍒ゆ柇鏄惁鏈夐噸澶嶆暟鎹� +// LambdaQueryWrapper<ZfPet> lqw = uniqueCondition(zfPet); +// List<ZfPet> list = list(lqw); +// if(list.size()>0){ +// throw new RuntimeException("璇峰嬁鏂板閲嶅鏁版嵁"); +// } +// +// //鍏堟煡鎵炬湰浜虹殑鏁版嵁 +// LambdaQueryWrapper<ZInfoUser> zInfoLqw = new LambdaQueryWrapper<>(); +// zInfoLqw.eq(ZInfoUser::getUserId,userId); +// ZInfoUser master = zInfoUserService.getOne(zInfoLqw); +// +// ZfMaster zfMaster = new ZfMaster(); +// zfMaster.setPetId(zfPet.getId()); +// zfMaster.setName(master.getNickName()); +// zfMaster.setCertificateType("韬唤璇�"); +// zfMaster.setCertificateNo(master.getIdNo()); +// zfMaster.setPhoneNo(master.getPhoneNumber()); +// zfMaster.setAddress(master.getAlwaysAddress()); +// +// zfMasterService.save(zfMaster); +// +// zfPetService.save(zfPet); +// +// return AjaxResult.success(); +// +// } + + private LambdaQueryWrapper<ZfPet> uniqueCondition(ZfPet zfPet) { + LambdaQueryWrapper<ZfPet> lqw = new LambdaQueryWrapper<>(); + lqw.eq(zfPet.getFamilyId()!=null,ZfPet::getFamilyId,zfPet.getFamilyId()); + lqw.eq(StringUtils.isNotEmpty(zfPet.getIdNum()),ZfPet::getIdNum,zfPet.getIdNum()); + lqw.eq(StringUtils.isNotEmpty(zfPet.getSecurityCode()),ZfPet::getSecurityCode,zfPet.getSecurityCode()); + lqw.eq(StringUtils.isNotEmpty(zfPet.getType()),ZfPet::getType,zfPet.getType()); + lqw.eq(StringUtils.isNotEmpty(zfPet.getName()),ZfPet::getName,zfPet.getName()); + lqw.eq(zfPet.getBirth()!=null,ZfPet::getBirth,zfPet.getBirth()); + lqw.eq(zfPet.getSex()!=null,ZfPet::getSex,zfPet.getSex()); + lqw.eq(StringUtils.isNotEmpty(zfPet.getColor()),ZfPet::getColor,zfPet.getColor()); + lqw.eq(StringUtils.isNotEmpty(zfPet.getProperties()),ZfPet::getProperties,zfPet.getProperties()); + lqw.eq(StringUtils.isNotEmpty(zfPet.getEatHabit()),ZfPet::getEatHabit,zfPet.getEatHabit()); + lqw.eq(StringUtils.isNotEmpty(zfPet.getLifeHabit()),ZfPet::getLifeHabit,zfPet.getLifeHabit()); + lqw.eq(StringUtils.isNotEmpty(zfPet.getAddress()),ZfPet::getAddress,zfPet.getAddress()); + lqw.eq(StringUtils.isNotEmpty(zfPet.getDialect()),ZfPet::getDialect,zfPet.getDialect()); + lqw.eq(StringUtils.isNotEmpty(zfPet.getDisEatHabit()),ZfPet::getDisEatHabit,zfPet.getDisEatHabit()); + lqw.eq(StringUtils.isNotEmpty(zfPet.getDisLifeHabit()),ZfPet::getDisLifeHabit,zfPet.getDisLifeHabit()); + return lqw; + } + + private LambdaQueryWrapper<ZfPet> buildCondition(ZfPet zfPet,List<Long> familyIdList) { + LambdaQueryWrapper<ZfPet> lqw = new LambdaQueryWrapper<>(); + lqw.orderByDesc(ZfPet::getCreateTime); + lqw.in(ZfPet::getFamilyId,familyIdList); + lqw.eq(zfPet.getId()!=null,ZfPet::getId,zfPet.getId()); + lqw.like(StringUtils.isNotEmpty(zfPet.getIdNum()),ZfPet::getIdNum,zfPet.getIdNum()); + lqw.like(StringUtils.isNotEmpty(zfPet.getSecurityCode()),ZfPet::getSecurityCode,zfPet.getSecurityCode()); + lqw.like(StringUtils.isNotEmpty(zfPet.getType()),ZfPet::getType,zfPet.getType()); + lqw.like(StringUtils.isNotEmpty(zfPet.getName()),ZfPet::getName,zfPet.getName()); +// lqw.like(zfPet.getBirth()!=null,ZfPet::getBirth,zfPet.getBirth()); + lqw.between(zfPet.getBirthStart()!=null && zfPet.getBirthEnd()!=null,ZfPet::getBirth,zfPet.getBirthStart(),zfPet.getBirthEnd()); + lqw.like(zfPet.getSex()!=null,ZfPet::getSex,zfPet.getSex()); + lqw.like(StringUtils.isNotEmpty(zfPet.getColor()),ZfPet::getColor,zfPet.getColor()); + lqw.like(StringUtils.isNotEmpty(zfPet.getProperties()),ZfPet::getProperties,zfPet.getProperties()); + lqw.like(StringUtils.isNotEmpty(zfPet.getEatHabit()),ZfPet::getEatHabit,zfPet.getEatHabit()); + lqw.like(StringUtils.isNotEmpty(zfPet.getLifeHabit()),ZfPet::getLifeHabit,zfPet.getLifeHabit()); + lqw.like(StringUtils.isNotEmpty(zfPet.getAddress()),ZfPet::getAddress,zfPet.getAddress()); + lqw.like(StringUtils.isNotEmpty(zfPet.getDialect()),ZfPet::getDialect,zfPet.getDialect()); + lqw.like(StringUtils.isNotEmpty(zfPet.getDisEatHabit()),ZfPet::getDisEatHabit,zfPet.getDisEatHabit()); + lqw.like(StringUtils.isNotEmpty(zfPet.getDisLifeHabit()),ZfPet::getDisLifeHabit,zfPet.getDisLifeHabit()); + return lqw; + } } -- Gitblit v1.9.1