| package com.ruoyi.web.controller.api; | 
|   | 
|   | 
| import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | 
| import com.baomidou.mybatisplus.core.toolkit.Wrappers; | 
| import com.ruoyi.common.basic.PageInfo; | 
| import com.ruoyi.common.core.domain.R; | 
| import com.ruoyi.common.core.domain.entity.SysUser; | 
| import com.ruoyi.framework.web.service.TokenService; | 
| import com.ruoyi.system.dto.TSysOrderDto; | 
| import com.ruoyi.system.model.TCrmClinic; | 
| import com.ruoyi.system.model.TSysAppUser; | 
| import com.ruoyi.system.model.TSysOrder; | 
| import com.ruoyi.system.model.TSysOrderGoods; | 
| import com.ruoyi.system.query.TSysAppUserQuery; | 
| import com.ruoyi.system.query.TSysOrderQuery; | 
| import com.ruoyi.system.service.TCrmClinicService; | 
| import com.ruoyi.system.service.TSysAppUserService; | 
| import com.ruoyi.system.service.TSysOrderGoodsService; | 
| import com.ruoyi.system.service.TSysOrderService; | 
| import com.ruoyi.system.vo.TSysOrderDetailVo; | 
| import com.ruoyi.system.vo.TSysOrderPageVo; | 
| import io.swagger.annotations.Api; | 
| import io.swagger.annotations.ApiOperation; | 
| import org.springframework.beans.factory.annotation.Autowired; | 
| import org.springframework.web.bind.annotation.*; | 
|   | 
| import javax.validation.Valid; | 
| import java.util.List; | 
|   | 
| /** | 
|  * <p> | 
|  * 订单管理 前端控制器 | 
|  * </p> | 
|  * | 
|  * @author xiaochen | 
|  * @since 2025-08-20 | 
|  */ | 
| @RestController | 
| @RequestMapping("/sys-order") | 
| @Api(tags = "订单管理") | 
| public class TSysOrderController { | 
|   | 
|     private final TSysOrderService sysOrderService; | 
|     private final TokenService tokenService; | 
|     private final TCrmClinicService crmClinicService; | 
|     private final TSysAppUserService sysAppUserService; | 
|     private final TSysOrderGoodsService sysOrderGoodsService; | 
|   | 
|   | 
|   | 
|     @Autowired | 
|     public TSysOrderController(TokenService tokenService, TSysOrderService sysOrderService, TCrmClinicService crmClinicService, TSysAppUserService sysAppUserService, TSysOrderGoodsService sysOrderGoodsService) { | 
|         this.sysOrderService = sysOrderService; | 
|         this.tokenService = tokenService; | 
|         this.crmClinicService = crmClinicService; | 
|         this.sysAppUserService = sysAppUserService; | 
|         this.sysOrderGoodsService = sysOrderGoodsService; | 
|   | 
|     } | 
|   | 
|     /** | 
|      * 获取诊所患者诊疗 订单列表 | 
|      */ | 
|     @ApiOperation(value = "获取诊所患者诊疗订单列表") | 
|     @PostMapping(value = "/pageList") | 
|     public R<PageInfo<TSysOrderPageVo>> pageList(@RequestBody TSysOrderQuery query) { | 
|   | 
|         SysUser user = tokenService.getLoginUser().getUser(); | 
|         Integer roleType = user.getRoleType(); | 
|         if(roleType == 5){ | 
|             // 诊所 | 
|             TCrmClinic crmClinic = crmClinicService.getOne(Wrappers.lambdaQuery(TCrmClinic.class) | 
|                     .eq(TCrmClinic::getUserId, user.getUserId()) | 
|                     .last("LIMIT 1")); | 
|             query.setClinicId(crmClinic.getId()); | 
|         } | 
|         return R.ok(sysOrderService.pageList(query)); | 
|     } | 
|   | 
|   | 
|   | 
|     @ApiOperation(value = "获取诊所患者诊疗--搜索用户") | 
|     @PostMapping(value = "/userList") | 
|     public R<List<TSysAppUser>> pageList(@RequestBody TSysAppUserQuery query) { | 
|         LambdaQueryWrapper<TSysAppUser> eq = new LambdaQueryWrapper<TSysAppUser>().eq(TSysAppUser::getStatus, 1); | 
|         if(query.getNickName() != null && !query.getNickName().isEmpty()){ | 
|             eq.like(TSysAppUser::getNickName, query.getNickName()); | 
|         } | 
|         if(query.getPhone() != null && !query.getPhone().isEmpty()){ | 
|             eq.like(TSysAppUser::getPhone, query.getPhone()); | 
|         } | 
|         List<TSysAppUser> list = sysAppUserService.list(eq); | 
|         return R.ok(list); | 
|     } | 
|   | 
|   | 
|     @ApiOperation(value = "诊所患者诊疗--确认添加") | 
|     @PostMapping(value = "/add") | 
|     public R<String> add(@RequestBody @Valid TSysOrderDto dto) { | 
|         SysUser user = tokenService.getLoginUser().getUser(); | 
|         Integer roleType = user.getRoleType(); | 
|   | 
|         if(roleType == 5){ | 
|             // 诊所 | 
|             TCrmClinic crmClinic = crmClinicService.getOne(Wrappers.lambdaQuery(TCrmClinic.class) | 
|                     .eq(TCrmClinic::getUserId, user.getUserId()) | 
|                     .last("LIMIT 1")); | 
|             sysOrderService.add(dto,crmClinic); | 
|             return R.ok("添加成功"); | 
|         } | 
|         return R.fail("添加失败"); | 
|     } | 
|   | 
|   | 
|     @ApiOperation(value = "诊所患者诊疗--详情") | 
|     @GetMapping(value = "/detail/{id}") | 
|     public R<TSysOrderDetailVo> detail(@PathVariable String id) { | 
|         TSysOrder tSysOrder = sysOrderService.getById(id); | 
|   | 
|         TSysOrderDetailVo detail = new TSysOrderDetailVo(); | 
|         detail.setId(tSysOrder.getId()); | 
|         String appUserId = tSysOrder.getAppUserId(); | 
|         TSysAppUser appUser = sysAppUserService.getById(appUserId); | 
|         detail.setUserName(appUser.getNickName()); | 
|         detail.setCheckTime(tSysOrder.getCheckTime()); | 
|         detail.setTotalMoney(tSysOrder.getTotalMoney()); | 
|   | 
|         List<TSysOrderGoods> list = sysOrderGoodsService.list(new LambdaQueryWrapper<TSysOrderGoods>().eq(TSysOrderGoods::getOrderId, id)); | 
|         detail.setList(list); | 
|   | 
|         return R.ok(detail); | 
|     } | 
|   | 
|   | 
| } |