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; /** *

* 订单管理 前端控制器 *

* * @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> 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> pageList(@RequestBody TSysAppUserQuery query) { LambdaQueryWrapper eq = new LambdaQueryWrapper().eq(TSysAppUser::getStatus, 1); if(query.getNickName() != null && !query.getNickName().isEmpty()){ eq.and(e->e.like(TSysAppUser::getNickName, query.getNickName()).or().like(TSysAppUser::getPhone, query.getNickName())); } // if(query.getPhone() != null && !query.getPhone().isEmpty()){ // eq.like(TSysAppUser::getPhone, query.getPhone()); // } List list = sysAppUserService.list(eq); return R.ok(list); } @ApiOperation(value = "诊所患者诊疗--确认添加") @PostMapping(value = "/add") public R 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 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 list = sysOrderGoodsService.list(new LambdaQueryWrapper().eq(TSysOrderGoods::getOrderId, id)); detail.setList(list); return R.ok(detail); } }