package com.ruoyi.web.controller.api; 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.time.LocalDateTime; import java.time.temporal.ChronoUnit; import java.util.Arrays; import java.util.List; /** *

* 用户管理 前端控制器 *

* * @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> pageList(@RequestBody TSysAppUserQuery query) { return R.ok(sysAppUserService.pageList(query)); } /** * 获取用户管理管理列表 */ @ApiOperation(value = "获取慢性病患者分页列表") @PostMapping(value = "/pageChronicDiseaseUserList") public R> pageChronicDiseaseUserList(@RequestBody TSysAppUserQuery query) { return R.ok(sysAppUserService.pageChronicDiseaseUserList(query)); } /** * 获取用户管理管理列表 */ @ApiOperation(value = "获取用户管理列表") @PostMapping(value = "/list") public R> 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 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 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 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 sysChronicDiseases = sysChronicDiseaseService.list(Wrappers.lambdaQuery(TSysChronicDisease.class).in(TSysChronicDisease::getId, Arrays.asList(split))); sysAppUserVO.setSysChronicDiseases(sysChronicDiseases); } // 查询检测信息 List sysInspections = sysInspectionService.list(Wrappers.lambdaQuery(TSysInspection.class).eq(TSysInspection::getAppUserId, id)); sysAppUserVO.setSysInspections(sysInspections); // 订单信息 List sysOrders = sysOrderService.queryListByAppUserId(id); sysAppUserVO.setSysOrders(sysOrders); if(sysAppUserVO.getBirthTime() != null){ long age = ChronoUnit.YEARS.between(sysAppUserVO.getBirthTime(), LocalDateTime.now()); sysAppUserVO.setAge(age); } return R.ok(sysAppUserVO); } /** * 根据用户id查询检测信息 */ @ApiOperation(value = "根据用户id查询检测信息") @GetMapping(value = "/getInspectionByAppUserId") public R> getInspectionByAppUserId(@RequestParam String appUserId) { // 订单信息 List sysInspections = sysInspectionService.list(Wrappers.lambdaQuery(TSysInspection.class).eq(TSysInspection::getAppUserId, appUserId)); return R.ok(sysInspections); } /** * 查看用户管理详情 */ @ApiOperation(value = "查看用户购药详情") @GetMapping(value = "/getOrderByAppUserId") public R> getOrderByAppUserId(@RequestParam String appUserId) { List sysOrders = sysOrderService.queryListByAppUserId(appUserId); return R.ok(sysOrders); } /** * 删除用户管理 */ @Log(title = "用户管理信息-删除用户管理", businessType = BusinessType.DELETE) @ApiOperation(value = "删除用户管理") @DeleteMapping(value = "/deleteById") public R deleteById(@RequestParam String id) { return R.ok(sysAppUserService.removeById(id)); } /** * 批量删除用户管理 */ @Log(title = "用户管理信息-删除用户管理", businessType = BusinessType.DELETE) @ApiOperation(value = "批量删除用户管理") @DeleteMapping(value = "/deleteByIds") public R deleteByIds(@RequestBody List ids) { return R.ok(sysAppUserService.removeByIds(ids)); } /** * 分公司管理解冻冻结 */ @Log(title = "用户管理信息-分公司管理解冻冻结", businessType = BusinessType.UPDATE) @ApiOperation(value = "分公司管理解冻冻结",notes = "状态 1=使用中 2=冻结") @PutMapping(value = "/thawOrFreeze") public R 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(); } }