From a40429e0df56c94fecd29dbfb4c99cf2d393a1a8 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期五, 05 九月 2025 11:14:09 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/haizhentong

---
 ruoyi-system/src/main/resources/mapper/system/TSysInspectionMapper.xml               |   21 +
 ruoyi-system/src/main/resources/mapper/system/TSysOrderMapper.xml                    |    6 
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/TSysOrderMapper.java              |   11 
 ruoyi-system/src/main/java/com/ruoyi/system/model/TSysAppUser.java                   |   13 
 ruoyi-system/src/main/java/com/ruoyi/system/task/jobs/LivePushJob.java               |   29 +
 ruoyi-system/src/main/java/com/ruoyi/system/service/TSysOrderService.java            |    9 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysAppUserServiceImpl.java |   63 +++
 ruoyi-system/src/main/resources/mapper/system/TRegionMapper.xml                      |   21 +
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysOrderServiceImpl.java   |   26 +
 ruoyi-system/src/main/java/com/ruoyi/system/service/TSysAppUserService.java          |   23 +
 ruoyi-system/src/main/java/com/ruoyi/system/service/TRegionService.java              |   23 +
 ruoyi-system/src/main/java/com/ruoyi/system/vo/TSysOrderVO.java                      |   18 +
 generator/src/test/java/com/xizang/CodeGeneratorTests.java                           |    2 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysInspectionController.java |   89 +++++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TRegionController.java        |   51 +++
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/TRegionMapper.java                |   18 +
 ruoyi-system/src/main/java/com/ruoyi/system/task/base/AbstractJob.java               |    7 
 ruoyi-system/src/main/resources/mapper/system/TSysAppUserMapper.xml                  |   53 +++
 ruoyi-admin/src/main/java/com/ruoyi/web/core/config/DataUpdateHandlerConfig.java     |    9 
 ruoyi-system/src/main/java/com/ruoyi/system/vo/TSysAppUserVO.java                    |   34 ++
 ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java                     |    9 
 ruoyi-system/src/main/java/com/ruoyi/system/model/TSysInspection.java                |   75 ++++
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TRegionServiceImpl.java     |   35 ++
 ruoyi-system/src/main/java/com/ruoyi/system/task/base/TimeJobType.java               |    2 
 /dev/null                                                                            |   25 -
 ruoyi-system/src/main/java/com/ruoyi/system/model/TRegion.java                       |   62 +++
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysLiveServiceImpl.java    |   25 +
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysAppUserController.java    |  179 ++++++++++
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/TSysAppUserMapper.java            |   21 +
 ruoyi-system/src/main/java/com/ruoyi/system/query/TSysAppUserQuery.java              |   29 +
 30 files changed, 945 insertions(+), 43 deletions(-)

diff --git a/generator/src/test/java/com/xizang/CodeGeneratorTests.java b/generator/src/test/java/com/xizang/CodeGeneratorTests.java
index 725e5d6..c87f2a6 100644
--- a/generator/src/test/java/com/xizang/CodeGeneratorTests.java
+++ b/generator/src/test/java/com/xizang/CodeGeneratorTests.java
@@ -144,7 +144,7 @@
 //         strategy.setTablePrefix(pc.getModuleName() + "");
 //        strategy.setLikeTable(new LikeTable("room"));
         //strategy.setLikeTable(new LikeTable("member"));
-        strategy.setLikeTable(new LikeTable("t_crm_change_points"));// 生成表名
+        strategy.setLikeTable(new LikeTable("t_sys_inspection"));// 生成表名
 //        strategy.setLikeTable(new LikeTable("t_hotel"));// 生成表名
 //        strategy.setLikeTable(new LikeTable("t_scan_message"));// 生成表名
 //        strategy.setNotLikeTable(new LikeTable("hotel_info"));// 不生成表名
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TRegionController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TRegionController.java
new file mode 100644
index 0000000..67334f7
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TRegionController.java
@@ -0,0 +1,51 @@
+package com.ruoyi.web.controller.api;
+
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.system.model.TRegion;
+import com.ruoyi.system.service.TRegionService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 省市管理 前端控制器
+ * </p>
+ *
+ * @author xiaochen
+ * @since 2024-02-29
+ */
+@Api(tags = "省市管理")
+@RestController
+@RequestMapping("/tRegion")
+public class TRegionController {
+
+    private final TRegionService regionService;
+
+    @Autowired
+    public TRegionController(TRegionService regionService) {
+        this.regionService = regionService;
+    }
+
+
+    @ApiOperation(value = "查询省市管理")
+    @GetMapping(value = "/getRegion")
+    public R<List<TRegion>> getRegion() {
+        return R.ok(regionService.getRegion());
+    }
+
+    @ApiOperation(value = "查询省")
+    @PostMapping(value = "/getProvince")
+    public R<List<TRegion>> getProvince() {
+        return R.ok(regionService.list(Wrappers.lambdaQuery(TRegion.class).eq(TRegion::getParentId,0)));
+    }
+}
+
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysAppUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysAppUserController.java
index 401f0b7..4b9c45c 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysAppUserController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysAppUserController.java
@@ -1,8 +1,31 @@
 package com.ruoyi.web.controller.api;
 
 
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.system.model.TSysAppUser;
+import com.ruoyi.system.model.TSysChronicDisease;
+import com.ruoyi.system.model.TSysInspection;
+import com.ruoyi.system.query.TSysAppUserQuery;
+import com.ruoyi.system.service.TSysAppUserService;
+import com.ruoyi.system.service.TSysChronicDiseaseService;
+import com.ruoyi.system.service.TSysInspectionService;
+import com.ruoyi.system.service.TSysOrderService;
+import com.ruoyi.system.vo.TSysAppUserVO;
+import com.ruoyi.system.vo.TSysOrderVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Arrays;
+import java.util.List;
 
 /**
  * <p>
@@ -12,9 +35,161 @@
  * @author xiaochen
  * @since 2025-08-20
  */
+@Api(tags = "用户管理")
 @RestController
 @RequestMapping("/t-sys-app-user")
 public class TSysAppUserController {
 
+    private final TSysAppUserService sysAppUserService;
+    private final TSysInspectionService sysInspectionService;
+    private final TSysOrderService sysOrderService;
+    private final TSysChronicDiseaseService sysChronicDiseaseService;
+    @Autowired
+    public TSysAppUserController(TSysAppUserService sysAppUserService, TSysInspectionService sysInspectionService, TSysOrderService sysOrderService, TSysChronicDiseaseService sysChronicDiseaseService) {
+        this.sysAppUserService = sysAppUserService;
+        this.sysInspectionService = sysInspectionService;
+        this.sysOrderService = sysOrderService;
+        this.sysChronicDiseaseService = sysChronicDiseaseService;
+    }
+
+    /**
+     * 获取用户管理管理列表
+     */
+    @ApiOperation(value = "获取用户管理分页列表")
+    @PostMapping(value = "/pageList")
+    public R<PageInfo<TSysAppUserVO>> pageList(@RequestBody TSysAppUserQuery query) {
+        return R.ok(sysAppUserService.pageList(query));
+    }
+
+    /**
+     * 获取用户管理管理列表
+     */
+    @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() {
+        return R.ok(sysAppUserService.list(Wrappers.lambdaQuery(TSysAppUser.class)
+                .eq(TSysAppUser::getStatus,1)
+                .orderByDesc(TSysAppUser::getCreateTime)));
+    }
+
+    /**
+     * 添加用户管理管理
+     */
+    @Log(title = "用户管理信息-新增用户管理", businessType = BusinessType.INSERT)
+    @ApiOperation(value = "添加用户管理")
+    @PostMapping(value = "/add")
+    public R<Boolean> add(@Validated @RequestBody TSysAppUser dto) {
+        if (sysAppUserService.isExit(dto)) {
+            return R.fail("用户管理信息已存在");
+        }
+        return R.ok(sysAppUserService.save(dto));
+    }
+
+    /**
+     * 修改用户管理
+     */
+    @Log(title = "用户管理信息-修改用户管理", businessType = BusinessType.UPDATE)
+    @ApiOperation(value = "修改用户管理")
+    @PostMapping(value = "/update")
+    public R<Boolean> update(@Validated @RequestBody TSysAppUser dto) {
+        if (sysAppUserService.isExit(dto)) {
+            return R.fail("用户管理信息已存在");
+        }
+        return R.ok(sysAppUserService.updateById(dto));
+    }
+
+    /**
+     * 查看用户管理详情
+     */
+    @ApiOperation(value = "查看用户管理详情")
+    @GetMapping(value = "/getDetailById")
+    public R<TSysAppUserVO> getDetailById(@RequestParam String id) {
+        TSysAppUser sysAppUser = sysAppUserService.getById(id);
+        TSysAppUserVO sysAppUserVO = new TSysAppUserVO();
+        BeanUtils.copyProperties(sysAppUser, sysAppUserVO);
+        // 查询慢性病
+        String chronicDiseaseId = sysAppUserVO.getChronicDiseaseId();
+        if(StringUtils.isNotBlank(chronicDiseaseId)){
+            String[] split = chronicDiseaseId.split(",");
+            List<TSysChronicDisease> sysChronicDiseases = sysChronicDiseaseService.list(Wrappers.lambdaQuery(TSysChronicDisease.class).in(TSysChronicDisease::getId, Arrays.asList(split)));
+            sysAppUserVO.setSysChronicDiseases(sysChronicDiseases);
+        }
+        // 查询检测信息
+        List<TSysInspection> sysInspections = sysInspectionService.list(Wrappers.lambdaQuery(TSysInspection.class).eq(TSysInspection::getAppUserId, id));
+        sysAppUserVO.setSysInspections(sysInspections);
+        // 订单信息
+        List<TSysOrderVO> sysOrders = sysOrderService.queryListByAppUserId(id);
+        sysAppUserVO.setSysOrders(sysOrders);
+        return R.ok(sysAppUserVO);
+    }
+
+    /**
+     * 根据用户id查询检测信息
+     */
+    @ApiOperation(value = "根据用户id查询检测信息")
+    @GetMapping(value = "/getInspectionByAppUserId")
+    public R<List<TSysInspection>> getInspectionByAppUserId(@RequestParam String appUserId) {
+        // 订单信息
+        List<TSysInspection> sysInspections = sysInspectionService.list(Wrappers.lambdaQuery(TSysInspection.class).eq(TSysInspection::getAppUserId, appUserId));
+        return R.ok(sysInspections);
+    }
+
+    /**
+     * 查看用户管理详情
+     */
+    @ApiOperation(value = "查看用户管理详情")
+    @GetMapping(value = "/getOrderByAppUserId")
+    public R<List<TSysOrderVO>> getOrderByAppUserId(@RequestParam String appUserId) {
+        List<TSysOrderVO> sysOrders = sysOrderService.queryListByAppUserId(appUserId);
+        return R.ok(sysOrders);
+    }
+
+    /**
+     * 删除用户管理
+     */
+    @Log(title = "用户管理信息-删除用户管理", businessType = BusinessType.DELETE)
+    @ApiOperation(value = "删除用户管理")
+    @DeleteMapping(value = "/deleteById")
+    public R<Boolean> deleteById(@RequestParam String id) {
+        return R.ok(sysAppUserService.removeById(id));
+    }
+
+    /**
+     * 批量删除用户管理
+     */
+    @Log(title = "用户管理信息-删除用户管理", businessType = BusinessType.DELETE)
+    @ApiOperation(value = "批量删除用户管理")
+    @DeleteMapping(value = "/deleteByIds")
+    public R<Boolean> deleteByIds(@RequestBody List<String> ids) {
+        return R.ok(sysAppUserService.removeByIds(ids));
+    }
+
+    /**
+     * 批量删除用户管理
+     */
+    @Log(title = "用户管理信息-分公司管理解冻冻结", businessType = BusinessType.UPDATE)
+    @ApiOperation(value = "分公司管理解冻冻结",notes = "状态 1=使用中 2=冻结")
+    @PutMapping(value = "/thawOrFreeze")
+    public R<Boolean> thawOrFreeze(@RequestParam(value = "id")String id,
+                                   @RequestParam(value = "status")Integer status) {
+        TSysAppUser sysAppUser = sysAppUserService.getById(id);
+        sysAppUser.setStatus(status);
+        sysAppUserService.updateById(sysAppUser);
+        if(status == 2){
+            // TODO 退出账号 冻结
+
+        }
+        return R.ok();
+    }
+
 }
 
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysInspectionController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysInspectionController.java
index c873c0b..f2b83a4 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysInspectionController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysInspectionController.java
@@ -1,8 +1,19 @@
 package com.ruoyi.web.controller.api;
 
 
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.system.model.TSysInspection;
+import com.ruoyi.system.service.TSysInspectionService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
 
 /**
  * <p>
@@ -12,9 +23,83 @@
  * @author xiaochen
  * @since 2025-08-20
  */
+@Api(tags = "用户检测信息管理")
 @RestController
 @RequestMapping("/t-sys-inspection")
 public class TSysInspectionController {
 
+    private final TSysInspectionService sysInspectionService;
+    @Autowired
+    public TSysInspectionController(TSysInspectionService sysInspectionService) {
+        this.sysInspectionService = sysInspectionService;
+    }
+
+//    /**
+//     * 获取用户检测信息管理管理列表
+//     */
+//    @ApiOperation(value = "获取用户检测信息管理分页列表")
+//    @PostMapping(value = "/pageList")
+//    public R<PageInfo<TSysInspection>> pageList(@RequestBody TSysInspectionQuery query) {
+//        return R.ok(sysInspectionService.pageList(query));
+//    }
+
+    /**
+     * 获取用户检测信息管理管理列表
+     */
+    @ApiOperation(value = "获取用户检测信息管理列表")
+    @PostMapping(value = "/list")
+    public R<List<TSysInspection>> list() {
+        return R.ok(sysInspectionService.list(Wrappers.lambdaQuery(TSysInspection.class).orderByDesc(TSysInspection::getCreateTime)));
+    }
+
+    /**
+     * 添加用户检测信息管理管理
+     */
+    @Log(title = "用户检测信息管理信息-新增用户检测信息管理", businessType = BusinessType.INSERT)
+    @ApiOperation(value = "添加用户检测信息管理")
+    @PostMapping(value = "/add")
+    public R<Boolean> add(@Validated @RequestBody TSysInspection dto) {
+        return R.ok(sysInspectionService.save(dto));
+    }
+
+    /**
+     * 修改用户检测信息管理
+     */
+    @Log(title = "用户检测信息管理信息-修改用户检测信息管理", businessType = BusinessType.UPDATE)
+    @ApiOperation(value = "修改用户检测信息管理")
+    @PostMapping(value = "/update")
+    public R<Boolean> update(@Validated @RequestBody TSysInspection dto) {
+        return R.ok(sysInspectionService.updateById(dto));
+    }
+
+    /**
+     * 查看用户检测信息管理详情
+     */
+    @ApiOperation(value = "查看用户检测信息管理详情")
+    @GetMapping(value = "/getDetailById")
+    public R<TSysInspection> getDetailById(@RequestParam String id) {
+        return R.ok(sysInspectionService.getById(id));
+    }
+
+    /**
+     * 删除用户检测信息管理
+     */
+    @Log(title = "用户检测信息管理信息-删除用户检测信息管理", businessType = BusinessType.DELETE)
+    @ApiOperation(value = "删除用户检测信息管理")
+    @DeleteMapping(value = "/deleteById")
+    public R<Boolean> deleteById(@RequestParam String id) {
+        return R.ok(sysInspectionService.removeById(id));
+    }
+
+    /**
+     * 批量删除用户检测信息管理
+     */
+    @Log(title = "用户检测信息管理信息-删除用户检测信息管理", businessType = BusinessType.DELETE)
+    @ApiOperation(value = "批量删除用户检测信息管理")
+    @DeleteMapping(value = "/deleteByIds")
+    public R<Boolean> deleteByIds(@RequestBody List<String> ids) {
+        return R.ok(sysInspectionService.removeByIds(ids));
+    }
+
 }
 
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/DataUpdateHandlerConfig.java b/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/DataUpdateHandlerConfig.java
index e5836a2..607f8ea 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/DataUpdateHandlerConfig.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/DataUpdateHandlerConfig.java
@@ -29,12 +29,15 @@
     @Override
     public void insertFill(MetaObject metaObject) {
         //  获取登录信息
-        String userName = SecurityUtils.getUsername();
+        String userName = SecurityUtils.getLoginUser().getUser().getNickName();
+        Long userId = SecurityUtils.getUserId();
         if (StringUtils.isNotBlank(userName)) {
             this.setFieldValByName("createBy", userName, metaObject);
+            this.setFieldValByName("createId", userId, metaObject);
             this.setFieldValByName("updateBy", userName, metaObject);
         } else {
             this.setFieldValByName("createBy", userName, metaObject);
+            this.setFieldValByName("createId", userId, metaObject);
             this.setFieldValByName("updateBy", userName, metaObject);
         }
 
@@ -48,12 +51,10 @@
     @Override
     public void updateFill(MetaObject metaObject) {
         //  获取登录信息
-        String userName = SecurityUtils.getUsername();
+        String userName = SecurityUtils.getLoginUser().getUser().getNickName();
         if (StringUtils.isNotBlank(userName)){
-            this.setFieldValByName("createBy", userName, metaObject);
             this.setFieldValByName("updateBy", userName, metaObject);
         } else {
-            this.setFieldValByName("createBy", userName, metaObject);
             this.setFieldValByName("updateBy", userName, metaObject);
         }
 
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java
index 9042014..5086ef8 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java
@@ -369,6 +369,15 @@
     }
 
     /**
+     *  LocalDateTime转为Date
+     * @param time
+     * @return
+     */
+    public static Date localDateTimeToDate(LocalDateTime time) {
+        return Date.from(time.atZone(ZoneId.systemDefault()).toInstant());
+    }
+
+    /**
      * localdate转为字符串
      *
      * @param time localdate
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TRegionMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TRegionMapper.java
new file mode 100644
index 0000000..a690520
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TRegionMapper.java
@@ -0,0 +1,18 @@
+package com.ruoyi.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.system.model.TRegion;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 省市 Mapper 接口
+ * </p>
+ *
+ * @author xiaochen
+ * @since 2024-02-29
+ */
+@Mapper
+public interface TRegionMapper extends BaseMapper<TRegion> {
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TSysAppUserMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TSysAppUserMapper.java
index f9fa25e..1b924a5 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TSysAppUserMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TSysAppUserMapper.java
@@ -1,7 +1,13 @@
 package com.ruoyi.system.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.system.model.TSysAppUser;
+import com.ruoyi.system.query.TSysAppUserQuery;
+import com.ruoyi.system.vo.TSysAppUserVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +19,19 @@
  */
 public interface TSysAppUserMapper extends BaseMapper<TSysAppUser> {
 
+    /**
+     * 分页查询
+     * @param query
+     * @param pageInfo
+     * @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);
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TSysOrderMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TSysOrderMapper.java
index 1c4a15f..220ed52 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TSysOrderMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TSysOrderMapper.java
@@ -2,6 +2,10 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ruoyi.system.model.TSysOrder;
+import com.ruoyi.system.vo.TSysOrderVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +17,11 @@
  */
 public interface TSysOrderMapper extends BaseMapper<TSysOrder> {
 
+    /**
+     * 根据appUserId查询订单列表
+     *
+     * @param id appUserId
+     * @return 订单列表
+     */
+    List<TSysOrderVO> queryListByAppUserId(@Param("id") String id);
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TRegion.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TRegion.java
new file mode 100644
index 0000000..e1875d9
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TRegion.java
@@ -0,0 +1,62 @@
+package com.ruoyi.system.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * <p>
+ * 省市管理
+ * </p>
+ *
+ * @author xiaochen
+ * @since 2024-02-29
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("t_region")
+@ApiModel(value="TRegion对象", description="省市管理")
+public class TRegion implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    @ApiModelProperty(value = "城市名称")
+    @TableField("name")
+    private String name;
+
+    @ApiModelProperty(value = "城市代码")
+    @TableField("code")
+    private String code;
+
+    @ApiModelProperty(value = "城市code")
+    @TableField("cityCode")
+    private String cityCode;
+
+    @ApiModelProperty(value = "父级ID")
+    @TableField("parentId")
+    private Long parentId;
+
+    @ApiModelProperty(value = "英文名称")
+    @TableField("english")
+    private String english;
+
+    @ApiModelProperty(value = "首字母")
+    @TableField("initial")
+    private String initial;
+
+    @ApiModelProperty(value = "子项")
+    @TableField(exist = false)
+    private List<TRegion> children;
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TSysAppUser.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TSysAppUser.java
index bb307db..27942c1 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TSysAppUser.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TSysAppUser.java
@@ -51,4 +51,17 @@
     @TableField("open_id")
     private String openId;
 
+    @ApiModelProperty(value = "慢性病id,逗号分割")
+    @TableField("chronic_disease_id")
+    private String chronicDiseaseId;
+
+    @ApiModelProperty(value = "状态 1=使用中 2=冻结")
+    @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;
+
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TSysInspection.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TSysInspection.java
index 4a046b3..b738d84 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TSysInspection.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TSysInspection.java
@@ -33,8 +33,83 @@
     @TableField("app_user_id")
     private String appUserId;
 
+    @ApiModelProperty(value = "诊所id")
+    @TableField("clinic_id")
+    private String clinicId;
+
+    @ApiModelProperty(value = "检测类型 1=诊所检测 2=小程序自检")
+    @TableField("inspection_type")
+    private Integer inspectionType;
+
     @ApiModelProperty(value = "检测信息")
     @TableField("inspection_info")
     private String inspectionInfo;
 
+    @ApiModelProperty(value = "检测使用设备登录用户所属会员团队编码")
+    @TableField("team_code")
+    private String teamCode;
+
+    @ApiModelProperty(value = "检测使用设备登录用户所属会员团队名称")
+    @TableField("team_name")
+    private String teamName;
+
+    @ApiModelProperty(value = "检测使用的设备编码")
+    @TableField("device_code")
+    private String deviceCode;
+
+    @ApiModelProperty(value = "检测使用的设备名称")
+    @TableField("device_name")
+    private String deviceName;
+
+    @ApiModelProperty(value = "检测人名称")
+    @TableField("person_name")
+    private String personName;
+
+    @ApiModelProperty(value = "检测人性别(1=男,2=女)")
+    @TableField("person_sex")
+    private Integer personSex;
+
+    @ApiModelProperty(value = "检测人年龄")
+    @TableField("person_age")
+    private Integer personAge;
+
+    @ApiModelProperty(value = "检测人手机号")
+    @TableField("person_phone")
+    private String personPhone;
+
+    @ApiModelProperty(value = "检测人身高(单位cm)")
+    @TableField("person_height")
+    private Double personHeight;
+
+    @ApiModelProperty(value = "检测人体重(单位kg)")
+    @TableField("person_weight")
+    private Double personWeight;
+
+    @ApiModelProperty(value = "检测时间")
+    @TableField("check_time")
+    private String checkTime;
+
+    @ApiModelProperty(value = "检测 PDF 报告 URL")
+    @TableField("pdf_url")
+    private String pdfUrl;
+
+    @ApiModelProperty(value = "健康指数,其值越大表示健康状态越好")
+    @TableField("health_index")
+    private Double healthIndex;
+
+    @ApiModelProperty(value = "体质")
+    @TableField("constitution_names")
+    private String constitutionNames;
+
+    @ApiModelProperty(value = "证型,进一步判断体质(constitutionNames)的结果,更为准确体现用户的真实体质")
+    @TableField("symptom_name")
+    private String symptomName;
+
+    @ApiModelProperty(value = "舌象特征分析")
+    @TableField("tongue_feature")
+    private String tongueFeature;
+
+    @ApiModelProperty(value = "风险疾病名称")
+    @TableField("disease_risks")
+    private String diseaseRisks;
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/TSysAppUserQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/TSysAppUserQuery.java
new file mode 100644
index 0000000..e5b96e3
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/TSysAppUserQuery.java
@@ -0,0 +1,29 @@
+package com.ruoyi.system.query;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.ruoyi.common.core.domain.model.TimeRangeQueryBody;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("用户管理查询参数TSysAppUserQuery")
+public class TSysAppUserQuery extends TimeRangeQueryBody {
+
+
+    @ApiModelProperty(value = "用户姓名")
+    private String nickName;
+
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+
+    @ApiModelProperty(value = "是否慢性病患者 1=是 0=否")
+    private Integer isInspection;
+
+    @ApiModelProperty(value = "状态 1=使用中 2=冻结")
+    private Integer status;
+
+    @ApiModelProperty(value = "慢性病id")
+    private String inspectionId;
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TRegionService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TRegionService.java
new file mode 100644
index 0000000..4b6fab6
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TRegionService.java
@@ -0,0 +1,23 @@
+package com.ruoyi.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.system.model.TRegion;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 省市管理 服务类
+ * </p>
+ *
+ * @author xiaochen
+ * @since 2024-02-29
+ */
+public interface TRegionService extends IService<TRegion> {
+
+    /**
+     * 查询省市管理
+     * @return
+     */
+    List<TRegion> getRegion();
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TSysAppUserService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TSysAppUserService.java
index aa0b9c7..83dce4b 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TSysAppUserService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TSysAppUserService.java
@@ -1,7 +1,10 @@
 package com.ruoyi.system.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.system.model.TSysAppUser;
+import com.ruoyi.system.query.TSysAppUserQuery;
+import com.ruoyi.system.vo.TSysAppUserVO;
 
 /**
  * <p>
@@ -13,4 +16,24 @@
  */
 public interface TSysAppUserService extends IService<TSysAppUser> {
 
+    /**
+     * 分页列表
+     * @param query
+     * @return
+     */
+    PageInfo<TSysAppUserVO> pageList(TSysAppUserQuery query);
+
+    /**
+     * 判断是否存在
+     * @param dto
+     * @return
+     */
+    boolean isExit(TSysAppUser dto);
+
+    /**
+     * 获取慢性病患者分页列表
+     * @param query
+     * @return
+     */
+    PageInfo<TSysAppUserVO> pageChronicDiseaseUserList(TSysAppUserQuery query);
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TSysOrderService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TSysOrderService.java
index ca9459f..26fec74 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TSysOrderService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TSysOrderService.java
@@ -2,6 +2,9 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.system.model.TSysOrder;
+import com.ruoyi.system.vo.TSysOrderVO;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +16,10 @@
  */
 public interface TSysOrderService extends IService<TSysOrder> {
 
+    /**
+     * 根据用户id查询订单列表
+     * @param id
+     * @return
+     */
+    List<TSysOrderVO> queryListByAppUserId(String id);
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TRegionServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TRegionServiceImpl.java
new file mode 100644
index 0000000..cf5a63d
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TRegionServiceImpl.java
@@ -0,0 +1,35 @@
+package com.ruoyi.system.service.impl;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.system.mapper.TRegionMapper;
+import com.ruoyi.system.model.TRegion;
+import com.ruoyi.system.service.TRegionService;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * 省市管理 服务实现类
+ * </p>
+ *
+ * @author xiaochen
+ * @since 2024-02-29
+ */
+@Service
+public class TRegionServiceImpl extends ServiceImpl<TRegionMapper, TRegion> implements TRegionService {
+
+    @Override
+    public List<TRegion> getRegion() {
+        List<TRegion> tRegions = this.baseMapper.selectList(Wrappers.lambdaQuery(TRegion.class));
+        List<TRegion> parent = tRegions.stream().filter(e -> e.getParentId().equals(0L)).collect(Collectors.toList());
+        for (TRegion region : parent) {
+            List<TRegion> children = tRegions.stream().filter(e -> e.getParentId().equals(region.getId())).collect(Collectors.toList());
+            region.setChildren(children);
+        }
+        return parent;
+    }
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysAppUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysAppUserServiceImpl.java
index 9ca141c..fcc0411 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysAppUserServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysAppUserServiceImpl.java
@@ -1,10 +1,24 @@
 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.util.List;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -17,4 +31,53 @@
 @Service
 public class TSysAppUserServiceImpl extends ServiceImpl<TSysAppUserMapper, TSysAppUser> implements TSysAppUserService {
 
+    @Autowired
+    private TSysChronicDiseaseMapper sysChronicDiseaseMapper;
+
+    @Override
+    public PageInfo<TSysAppUserVO> pageList(TSysAppUserQuery query) {
+        PageInfo<TSysAppUserVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
+        List<TSysAppUserVO> list = this.baseMapper.pageList(query,pageInfo);
+        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<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;
+    }
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysLiveServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysLiveServiceImpl.java
index 496e7eb..c5456e0 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysLiveServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysLiveServiceImpl.java
@@ -1,18 +1,25 @@
 package com.ruoyi.system.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.google.common.collect.ImmutableMap;
 import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.system.mapper.TSysLiveMapper;
 import com.ruoyi.system.model.TSysEducationalInfo;
 import com.ruoyi.system.model.TSysLive;
 import com.ruoyi.system.query.TSysLiveQuery;
 import com.ruoyi.system.service.TSysLiveService;
+import com.ruoyi.system.task.base.QuartzManager;
+import com.ruoyi.system.task.base.TimeJobType;
+import com.ruoyi.system.task.jobs.LivePushJob;
 import com.ruoyi.system.vo.TSysLiveVO;
 import org.springframework.stereotype.Service;
 
 import java.time.LocalDateTime;
+import java.util.Date;
 import java.util.List;
+import java.util.Map;
 import java.util.Objects;
 
 /**
@@ -30,10 +37,24 @@
     public R pushUser(String id, String pushType) {
         TSysLive sysLive = this.getById(id);
         if (Objects.nonNull(sysLive)){
+            // 判断直播开始时间是否在当前时间之后
+            if (sysLive.getStartTime().isBefore(LocalDateTime.now())){
+                return R.fail("直播已开始,无法配置推送");
+            }
             sysLive.setPushType(pushType);
             this.updateById(sysLive);
-            // TODO 添加定时推送
-
+            // 添加定时任务 直播开始推送
+            Map<String, ? extends Object> maps =
+                    new ImmutableMap.Builder<String, String>().
+                            put("id", sysLive.getId())
+                            .build();
+            QuartzManager.addJob(
+                    LivePushJob.class,
+                    (LivePushJob.name+sysLive.getId()).toUpperCase(),
+                    TimeJobType.LIVE_PUSH,
+                    DateUtils.localDateTimeToDate(sysLive.getStartTime()),
+                    maps
+            );
         }
         return R.ok();
     }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysOrderServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysOrderServiceImpl.java
index fa46e03..aaa4d00 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysOrderServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysOrderServiceImpl.java
@@ -1,10 +1,19 @@
 package com.ruoyi.system.service.impl;
 
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.system.mapper.TSysOrderGoodsMapper;
 import com.ruoyi.system.mapper.TSysOrderMapper;
 import com.ruoyi.system.model.TSysOrder;
+import com.ruoyi.system.model.TSysOrderGoods;
 import com.ruoyi.system.service.TSysOrderService;
+import com.ruoyi.system.vo.TSysOrderVO;
+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>
@@ -17,4 +26,21 @@
 @Service
 public class TSysOrderServiceImpl extends ServiceImpl<TSysOrderMapper, TSysOrder> implements TSysOrderService {
 
+    @Autowired
+    private TSysOrderGoodsMapper sysOrderGoodsMapper;
+
+    @Override
+    public List<TSysOrderVO> queryListByAppUserId(String id) {
+        List<TSysOrderVO> sysOrderVOS = this.baseMapper.queryListByAppUserId(id);
+        if(CollectionUtils.isEmpty(sysOrderVOS)){
+            return sysOrderVOS;
+        }
+        List<String> orderIds = sysOrderVOS.stream().map(TSysOrderVO::getId).collect(Collectors.toList());
+        List<TSysOrderGoods> sysOrderGoodsList = sysOrderGoodsMapper.selectList(Wrappers.lambdaQuery(TSysOrderGoods.class)
+                .in(TSysOrderGoods::getOrderId, orderIds));
+        for (TSysOrderVO sysOrderVO : sysOrderVOS) {
+            sysOrderVO.setSysOrderGoods(sysOrderGoodsList.stream().filter(sysOrderGoods -> sysOrderGoods.getOrderId().equals(sysOrderVO.getId())).collect(Collectors.toList()));
+        }
+        return this.baseMapper.queryListByAppUserId(id);
+    }
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/task/base/AbstractJob.java b/ruoyi-system/src/main/java/com/ruoyi/system/task/base/AbstractJob.java
index 0950214..e738867 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/task/base/AbstractJob.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/task/base/AbstractJob.java
@@ -3,6 +3,7 @@
 import com.aizuda.bpm.mybatisplus.mapper.FlwTaskActorMapper;
 import com.aizuda.bpm.mybatisplus.mapper.FlwTaskMapper;
 import com.ruoyi.system.service.ISysUserService;
+import com.ruoyi.system.service.TSysLiveService;
 import com.ruoyi.system.task.utils.SpringContextsUtil;
 import org.quartz.Job;
 import org.quartz.JobExecutionContext;
@@ -16,14 +17,12 @@
 	@Override
 	public abstract void execute(JobExecutionContext context) throws JobExecutionException;
 
-	protected FlwTaskMapper flwTaskMapper;
-	protected FlwTaskActorMapper flwTaskActorMapper;
 	protected ISysUserService sysUserService;
+	protected TSysLiveService sysLiveService;
 
 	public AbstractJob(){
-		this.flwTaskMapper = SpringContextsUtil.getBean(FlwTaskMapper.class);
-		this.flwTaskActorMapper = SpringContextsUtil.getBean(FlwTaskActorMapper.class);
 		this.sysUserService = SpringContextsUtil.getBean(ISysUserService.class);
+		this.sysLiveService = SpringContextsUtil.getBean(TSysLiveService.class);
 	}
 
 	 
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/task/base/TimeJobType.java b/ruoyi-system/src/main/java/com/ruoyi/system/task/base/TimeJobType.java
index 8bacc4a..67782ff 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/task/base/TimeJobType.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/task/base/TimeJobType.java
@@ -5,7 +5,7 @@
  * @date 2025年2月17日 下午7:22:28
  */
 public enum TimeJobType {
-	AUTO_AUDIT("auto_audit","自动审核");
+	LIVE_PUSH("live_push","直播推送");
 	private String type;
 	private String desc;
 	private TimeJobType(String type, String desc) {
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/task/jobs/LivePushJob.java b/ruoyi-system/src/main/java/com/ruoyi/system/task/jobs/LivePushJob.java
new file mode 100644
index 0000000..defd05a
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/task/jobs/LivePushJob.java
@@ -0,0 +1,29 @@
+package com.ruoyi.system.task.jobs;
+
+import com.ruoyi.system.task.base.AbstractJob;
+import org.quartz.JobDataMap;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+
+/**
+ * 直播推送定时任务
+ * @author Administrator
+ *
+ */
+public class LivePushJob extends AbstractJob {
+	
+	public static final String name = "livePush_";
+	
+	@Override
+	public void execute(JobExecutionContext context)
+			throws JobExecutionException {
+		JobDataMap maps = context.getMergedJobDataMap();
+		Long liveId = maps.getLong("id");
+		try {
+			System.out.println("开始执行直播推送任务");
+		}catch(Exception e){
+			e.printStackTrace();
+		}
+	}
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/task/jobs/StateProcessJob.java b/ruoyi-system/src/main/java/com/ruoyi/system/task/jobs/StateProcessJob.java
deleted file mode 100644
index 025f67f..0000000
--- a/ruoyi-system/src/main/java/com/ruoyi/system/task/jobs/StateProcessJob.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.ruoyi.system.task.jobs;
-
-import com.ruoyi.system.task.base.AbstractJob;
-import org.quartz.JobExecutionContext;
-import org.quartz.JobExecutionException;
-
-/**
- * 发票定时任务
- * @author Administrator
- *
- */
-public class StateProcessJob extends AbstractJob {
-	
-	public static final String name = "stateProcess_";
-	
-	@Override
-	public void execute(JobExecutionContext context)
-			throws JobExecutionException {
-		try {
-		}catch(Exception e){
-			e.printStackTrace();
-		}
-	}
-
-}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TSysAppUserVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TSysAppUserVO.java
new file mode 100644
index 0000000..f9d32dc
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TSysAppUserVO.java
@@ -0,0 +1,34 @@
+package com.ruoyi.system.vo;
+
+import com.ruoyi.system.model.TSysAppUser;
+import com.ruoyi.system.model.TSysChronicDisease;
+import com.ruoyi.system.model.TSysInspection;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel(value = "用户管理对象TSysAppUserVO")
+public class TSysAppUserVO extends TSysAppUser {
+
+    @ApiModelProperty(value = "是否慢性病患者 1=是 0=否")
+    private Integer isInspection;
+
+    @ApiModelProperty(value = "最近检测时间")
+    private String lastInspectionTime;
+
+    @ApiModelProperty(value = "慢性病列表")
+    private List<TSysChronicDisease> sysChronicDiseases;
+
+    @ApiModelProperty(value = "检测列表")
+    private List<TSysInspection> sysInspections;
+
+    @ApiModelProperty(value = "购药信息列表")
+    private List<TSysOrderVO> sysOrders;
+
+    @ApiModelProperty(value = "慢性病名称拼接")
+    private String sysChronicDiseaseNames;
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TSysOrderVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TSysOrderVO.java
new file mode 100644
index 0000000..4246580
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TSysOrderVO.java
@@ -0,0 +1,18 @@
+package com.ruoyi.system.vo;
+
+import com.ruoyi.system.model.TSysOrder;
+import com.ruoyi.system.model.TSysOrderGoods;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel(value = "订单信息VO")
+public class TSysOrderVO extends TSysOrder {
+
+    @ApiModelProperty(value = "订单商品列表")
+    private List<TSysOrderGoods> sysOrderGoods;
+
+}
diff --git a/ruoyi-system/src/main/resources/mapper/system/TRegionMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TRegionMapper.xml
new file mode 100644
index 0000000..f9437e8
--- /dev/null
+++ b/ruoyi-system/src/main/resources/mapper/system/TRegionMapper.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.system.mapper.TRegionMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.ruoyi.system.model.TRegion">
+        <id column="id" property="id" />
+        <result column="name" property="name" />
+        <result column="code" property="code" />
+        <result column="cityCode" property="cityCode" />
+        <result column="parentId" property="parentId" />
+        <result column="english" property="english" />
+        <result column="initial" property="initial" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, `name`, code, cityCode, parentId, english, initial
+    </sql>
+
+</mapper>
diff --git a/ruoyi-system/src/main/resources/mapper/system/TSysAppUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TSysAppUserMapper.xml
index ed86f4f..2fc698c 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TSysAppUserMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TSysAppUserMapper.xml
@@ -10,6 +10,9 @@
         <result column="birth_time" property="birthTime" />
         <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" />
@@ -19,7 +22,55 @@
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, nick_name, phone, birth_time, sex, open_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.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 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.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})
+            </if>
+            <if test="query.isInspection != null and query.isInspection == 1">
+                and tsau.chronic_disease_id IS NOT NULL
+            </if>
+            <if test="query.isInspection != null and query.isInspection == 0">
+                and tsau.chronic_disease_id IS NULL
+            </if>
+            <if test="query.status != null">
+                and tsau.status = #{query.status}
+            </if>
+            AND tsau.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+        </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>
diff --git a/ruoyi-system/src/main/resources/mapper/system/TSysInspectionMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TSysInspectionMapper.xml
index a599d58..94f9fb8 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TSysInspectionMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TSysInspectionMapper.xml
@@ -6,7 +6,26 @@
     <resultMap id="BaseResultMap" type="com.ruoyi.system.model.TSysInspection">
         <id column="id" property="id" />
         <result column="app_user_id" property="appUserId" />
+        <result column="clinic_id" property="clinicId" />
+        <result column="inspection_type" property="inspectionType" />
         <result column="inspection_info" property="inspectionInfo" />
+        <result column="team_code" property="teamCode" />
+        <result column="team_name" property="teamName" />
+        <result column="device_code" property="deviceCode" />
+        <result column="device_name" property="deviceName" />
+        <result column="person_name" property="personName" />
+        <result column="person_sex" property="personSex" />
+        <result column="person_age" property="personAge" />
+        <result column="person_phone" property="personPhone" />
+        <result column="person_height" property="personHeight" />
+        <result column="person_weight" property="personWeight" />
+        <result column="check_time" property="checkTime" />
+        <result column="pdf_url" property="pdfUrl" />
+        <result column="health_index" property="healthIndex" />
+        <result column="constitution_names" property="constitutionNames" />
+        <result column="symptom_name" property="symptomName" />
+        <result column="tongue_feature" property="tongueFeature" />
+        <result column="disease_risks" property="diseaseRisks" />
         <result column="create_time" property="createTime" />
         <result column="update_time" property="updateTime" />
         <result column="create_by" property="createBy" />
@@ -16,7 +35,7 @@
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, app_user_id, inspection_info, create_time, update_time, create_by, update_by, disabled
+        id, app_user_id,clinic_id, inspection_info, team_code, team_name, device_code, device_name, person_name, person_sex, person_age, person_phone, person_height, person_weight, check_time, pdf_url, health_index, constitution_names, symptom_name, tongue_feature, disease_risks, create_time, update_time, create_by, update_by, disabled, create_id
     </sql>
 
 </mapper>
diff --git a/ruoyi-system/src/main/resources/mapper/system/TSysOrderMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TSysOrderMapper.xml
index 8adf955..bd05255 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TSysOrderMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TSysOrderMapper.xml
@@ -21,5 +21,11 @@
     <sql id="Base_Column_List">
         id, app_user_id, inspection_id, order_number, total_money, check_time, create_time, update_time, create_by, update_by, disabled
     </sql>
+    <select id="queryListByAppUserId" resultType="com.ruoyi.system.vo.TSysOrderVO">
+        select
+        <include refid="Base_Column_List"/>
+            from t_sys_order
+        where app_user_id = #{appUserId} and disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+    </select>
 
 </mapper>

--
Gitblit v1.7.1