xuhy
2025-09-05 09e0581125bb2fb26395ac1b8e8429201b6f7871
慢性病患者管理
8个文件已修改
99 ■■■■■ 已修改文件
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysAppUserController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/TSysAppUserMapper.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/model/TSysAppUser.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/query/TSysAppUserQuery.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/TSysAppUserService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysAppUserServiceImpl.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/vo/TSysAppUserVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/TSysAppUserMapper.xml 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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>