package com.ruoyi.system.service.impl; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.mapper.TSysAppUserMapper; import com.ruoyi.system.mapper.TSysChronicDiseaseMapper; import com.ruoyi.system.model.TSysAppUser; import com.ruoyi.system.model.TSysActivity; import com.ruoyi.system.model.TSysAppUser; import com.ruoyi.system.model.TSysChronicDisease; import com.ruoyi.system.query.TSysAppUserQuery; import com.ruoyi.system.service.TSysAppUserService; import com.ruoyi.system.vo.TSysAppUserVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.time.LocalDateTime; import java.time.temporal.ChronoUnit; import java.util.List; import java.util.stream.Collectors; /** *

* 用户管理 服务实现类 *

* * @author xiaochen * @since 2025-08-20 */ @Service public class TSysAppUserServiceImpl extends ServiceImpl implements TSysAppUserService { @Autowired private TSysChronicDiseaseMapper sysChronicDiseaseMapper; @Override public PageInfo pageList(TSysAppUserQuery query) { PageInfo pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); List list = this.baseMapper.pageList(query,pageInfo); if(CollectionUtils.isEmpty(list)){ return pageInfo; } // 年龄计算 list.forEach(tSysAppUserVO -> { if(tSysAppUserVO.getBirthTime() != null){ long age = ChronoUnit.YEARS.between(tSysAppUserVO.getBirthTime(), LocalDateTime.now()); tSysAppUserVO.setAge(age); } }); pageInfo.setRecords(list); return pageInfo; } @Override public boolean isExit(TSysAppUser dto) { if(StringUtils.isNotEmpty(dto.getId())){ // 修改 return this.count(Wrappers.lambdaQuery(TSysAppUser.class).ne(TSysAppUser::getId, dto.getId()).eq(TSysAppUser::getPhone, dto.getPhone())) > 0; }else { // 新增 return this.count(Wrappers.lambdaQuery(TSysAppUser.class).eq(TSysAppUser::getPhone, dto.getPhone())) > 0; } } @Override public PageInfo pageChronicDiseaseUserList(TSysAppUserQuery query) { PageInfo pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); List list = this.baseMapper.pageChronicDiseaseUserList(query,pageInfo); if(CollectionUtils.isEmpty(list)){ return pageInfo; } List sysChronicDiseaseList = sysChronicDiseaseMapper.selectList(Wrappers.lambdaQuery(TSysChronicDisease.class)); for (TSysAppUserVO sysAppUserVO : list) { String chronicDiseaseId = sysAppUserVO.getChronicDiseaseId(); String[] split = chronicDiseaseId.split(","); StringBuilder stringBuilder = new StringBuilder(); for (String diseaseId : split) { List chronicDiseaseList = sysChronicDiseaseList.stream().filter(disease -> disease.getId().equals(diseaseId)).collect(Collectors.toList()); // 最后一位不拼接逗号 if(diseaseId.equals(split[split.length-1])){ stringBuilder.append(chronicDiseaseList.get(0).getChronicName()); }else{ stringBuilder.append(chronicDiseaseList.get(0).getChronicName()).append(","); } } sysAppUserVO.setSysChronicDiseaseNames(stringBuilder.toString()); } pageInfo.setRecords(list); return pageInfo; } }