ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysAppUserController.java
@@ -64,6 +64,15 @@ /** * 获取用户管理管理列表 */ @ApiOperation(value = "获取慢性病患者分页列表") @PostMapping(value = "/pageChronicDiseaseUserList") public R<PageInfo<TSysAppUserVO>> pageChronicDiseaseUserList(@RequestBody TSysAppUserQuery query) { return R.ok(sysAppUserService.pageChronicDiseaseUserList(query)); } /** * 获取用户管理管理列表 */ @ApiOperation(value = "获取用户管理列表") @PostMapping(value = "/list") public R<List<TSysAppUser>> list() { ruoyi-system/src/main/java/com/ruoyi/system/mapper/TSysAppUserMapper.java
@@ -26,4 +26,12 @@ * @return */ List<TSysAppUserVO> pageList(@Param("query") TSysAppUserQuery query, @Param("pageInfo")PageInfo<TSysAppUserVO> pageInfo); /** * 分页查询 * @param query * @param pageInfo * @return */ List<TSysAppUserVO> pageChronicDiseaseUserList(@Param("query")TSysAppUserQuery query, @Param("pageInfo")PageInfo<TSysAppUserVO> pageInfo); } ruoyi-system/src/main/java/com/ruoyi/system/model/TSysAppUser.java
@@ -59,4 +59,9 @@ @TableField("status") private Integer status; @ApiModelProperty(value = "上次短信提醒时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @TableField("last_reminder_time") private LocalDateTime lastReminderTime; } ruoyi-system/src/main/java/com/ruoyi/system/query/TSysAppUserQuery.java
@@ -23,4 +23,7 @@ @ApiModelProperty(value = "状态 1=使用中 2=冻结") private Integer status; @ApiModelProperty(value = "慢性病id") private String inspectionId; } ruoyi-system/src/main/java/com/ruoyi/system/service/TSysAppUserService.java
@@ -30,4 +30,10 @@ */ boolean isExit(TSysAppUser dto); /** * 获取慢性病患者分页列表 * @param query * @return */ PageInfo<TSysAppUserVO> pageChronicDiseaseUserList(TSysAppUserQuery query); } ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysAppUserServiceImpl.java
@@ -5,15 +5,20 @@ 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.util.List; import java.util.stream.Collectors; /** * <p> @@ -25,6 +30,9 @@ */ @Service public class TSysAppUserServiceImpl extends ServiceImpl<TSysAppUserMapper, TSysAppUser> implements TSysAppUserService { @Autowired private TSysChronicDiseaseMapper sysChronicDiseaseMapper; @Override public PageInfo<TSysAppUserVO> pageList(TSysAppUserQuery query) { @@ -44,4 +52,32 @@ return this.count(Wrappers.lambdaQuery(TSysAppUser.class).eq(TSysAppUser::getPhone, dto.getPhone())) > 0; } } @Override public PageInfo<TSysAppUserVO> pageChronicDiseaseUserList(TSysAppUserQuery query) { PageInfo<TSysAppUserVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); List<TSysAppUserVO> list = this.baseMapper.pageChronicDiseaseUserList(query,pageInfo); if(CollectionUtils.isEmpty(list)){ return pageInfo; } List<TSysChronicDisease> 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<TSysChronicDisease> 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; } } ruoyi-system/src/main/java/com/ruoyi/system/vo/TSysAppUserVO.java
@@ -28,4 +28,7 @@ @ApiModelProperty(value = "购药信息列表") private List<TSysOrderVO> sysOrders; @ApiModelProperty(value = "慢性病名称拼接") private String sysChronicDiseaseNames; } ruoyi-system/src/main/resources/mapper/system/TSysAppUserMapper.xml
@@ -11,6 +11,8 @@ <result column="sex" property="sex" /> <result column="open_id" property="openId" /> <result column="chronic_disease_id" property="chronicDiseaseId" /> <result column="status" property="status" /> <result column="last_reminder_time" property="lastReminderTime" /> <result column="create_time" property="createTime" /> <result column="update_time" property="updateTime" /> <result column="create_by" property="createBy" /> @@ -20,20 +22,20 @@ <!-- 通用查询结果列 --> <sql id="Base_Column_List"> id, nick_name, phone, birth_time, sex, open_id,chronic_disease_id, create_time, update_time, create_by, update_by, disabled id, nick_name, phone, birth_time, sex, open_id,chronic_disease_id,status,last_reminder_time, create_time, update_time, create_by, update_by, disabled </sql> <select id="pageList" resultType="com.ruoyi.system.vo.TSysAppUserVO"> select tsau.id, tsau.nick_name, tsau.phone, tsau.birth_time, tsau.sex, tsau.open_id, tsau.chronic_disease_id, tsau.create_time, tsau.update_time, tsau.create_by, tsau.chronic_disease_id,tsau.status,tsau.last_reminder_time, tsau.create_time, tsau.update_time, tsau.create_by, tsau.update_by, tsau.disabled, tsi.lastInspectionTime from t_sys_app_user tsau left join (select id,app_user_id, max(check_time) as lastInspectionTime from t_sys_inspection limit 1) tsi on tsi.app_user_id = tsau.id <where> <if test="query.phone != null and query.phone != ''"> and phone = #{query.phone} and tsau.phone = #{query.phone} </if> <if test="query.nickName != null and query.nickName != ''"> and nick_name like concat('%',#{query.nickName},'%') and tsau.nick_name like concat('%',#{query.nickName},'%') </if> <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''"> and tsau.id in (select app_user_id from t_sys_inspection where check_time between #{query.startTime} and #{query.endTime}) @@ -51,5 +53,24 @@ </where> ORDER BY tsau.create_time DESC </select> <select id="pageChronicDiseaseUserList" resultType="com.ruoyi.system.vo.TSysAppUserVO"> select tsau.id, tsau.nick_name, tsau.phone, tsau.birth_time, tsau.sex, tsau.open_id, tsau.chronic_disease_id,tsau.status,tsau.last_reminder_time, tsau.create_time, tsau.update_time, tsau.create_by, tsau.update_by, tsau.disabled from t_sys_app_user tsau <where> <if test="query.phone != null and query.phone != ''"> and tsau.phone = #{query.phone} </if> <if test="query.nickName != null and query.nickName != ''"> and tsau.nick_name like concat('%',#{query.nickName},'%') </if> <if test="query.inspectionId != null and query.inspectionId != ''"> and FIND_IN_SET(#{query.inspectionId},tsau.chronic_disease_id) </if> AND tsau.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} </where> ORDER BY tsau.create_time DESC </select> </mapper>