liujie
2025-10-13 5d4ebe6d0b7dda230b19f4913bdeb60556b46678
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysOrderController.java
@@ -1,8 +1,32 @@
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.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>
@@ -13,8 +37,101 @@
 * @since 2025-08-20
 */
@RestController
@RequestMapping("/t-sys-order")
@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);
    }
}