liujie
2025-06-02 1e621d98f4361158df25f2b4af9b53899bfde32f
ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/OrderController.java
@@ -11,6 +11,7 @@
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.dto.AddBuyerCompanyInfoDto;
import com.ruoyi.system.dto.AddScheduleDto;
import com.ruoyi.system.dto.EditScheduleDto;
import com.ruoyi.system.model.*;
@@ -47,6 +48,15 @@
    @Autowired
    private TbScheduleService scheduleService;
    @Autowired
    private TbBuyerCompanyInfoService buyerCompanyInfoService;
    @Autowired
    private TbMessageService messageService;
    @Autowired
    private TbAccountDetailService accountDetailService;
@@ -60,9 +70,51 @@
    }
    /**
     * 填写了 如果金额变动要修改订单金额
     * @param
     * @return
     */
    @ApiOperation(value = "立即支付前填写信息",tags = {"订单模块"})
    @PostMapping("/lastPayOrderData")
    public R<?> lastPayOrderData(@RequestBody @Valid AddBuyerCompanyInfoDto dto) {
        LoginUser loginUser = tokenService.getLoginUser();
        Long userId = loginUser.getUserId();
        TbOrder tbOrder = orderService.getById(dto.getOrderId());
        if(dto.getNeedRename()==1){
            if(StringUtils.isEmpty(dto.getBackupsName())){
                return R.fail("请填写备选名称");
            }
        }
        if(!tbOrder.getUserId().equals(userId.toString())){
            return R.fail("非法操作");
        }
        if(tbOrder.getStatus()!=3){
            return R.fail("订单状态错误");
        }
        TbCompany company = companyService.getById(tbOrder.getCompanyId());
        // 判断是否在支付前下架了  或者删除了
        if(company==null || company.getStatus()!=1 || company.getIsDelete()==1){
            return R.fail("该公司已下架或者删除");
        }
        long count = buyerCompanyInfoService.count(new LambdaQueryWrapper<TbBuyerCompanyInfo>().eq(TbBuyerCompanyInfo::getOrderId, dto.getOrderId()));
        if(count>0){
            return R.fail("请勿重复填写");
        }
        orderService.lastPayOrderData(tbOrder,dto,userId,company);
        return R.ok();
    }
    @ApiOperation(value = "立即支付",tags = {"订单模块"})
    @PostMapping("/payOrder")
    public R<WxPayMpOrderResult> payOrder(String orderId) {
         if(StringUtils.isEmpty(orderId)){
            R.fail("订单id不能为空");
        }
        LoginUser loginUser = tokenService.getLoginUser();
        Long userId = loginUser.getUserId();
        TbOrder tbOrder = orderService.getById(orderId);
@@ -77,7 +129,10 @@
        if(company==null || company.getStatus()!=1 || company.getIsDelete()==1){
            return R.fail("该公司已下架或者删除");
        }
        long count = buyerCompanyInfoService.count(new LambdaQueryWrapper<TbBuyerCompanyInfo>().eq(TbBuyerCompanyInfo::getOrderId,orderId));
        if(count==0){
            return R.fail("请先填写信息");
        }
        WxPayMpOrderResult result = orderService.payOrder(tbOrder,userId);
        return R.ok(result);
    }
@@ -97,8 +152,8 @@
        if(company.getStatus()!=1){
            return R.fail("公司未上架");
        }
        long count = orderService.count(new LambdaQueryWrapper<TbOrder>().eq(TbOrder::getCompanyId, companyId).ne(TbOrder::getStatus, -1));
        if (count > 0) {
//        long count = orderService.count(new LambdaQueryWrapper<TbOrder>().eq(TbOrder::getCompanyId, companyId).ne(TbOrder::getStatus, -1));
        if (company.getStatus()==4) {
            return R.fail("改公司已被预定");
        }
        orderService.placeOrder(companyId,company,userId);
@@ -128,11 +183,18 @@
        // 订单完成  商品已售卖
        order.setStatus(6);
        order.updateById();
        company.setStatus(2);
        company.setStatus(3);
        // 分佣
        orderService.commission(order,company.getUserId());
        // 卖家账户明细记录更新
        TbAccountDetail one = accountDetailService.getOne(new LambdaQueryWrapper<TbAccountDetail>().eq(TbAccountDetail::getOrderId, orderId).eq(TbAccountDetail::getCategory, 2));
        if (one != null) {
            one.setStatus(2);
            one.updateById();
        }
        company.updateById();
        return R.ok();
@@ -156,6 +218,9 @@
            return R.fail("该订单状态不能回复");
        }
        scheduleService.buyerAddSchedule(dto,userId);
        String userId1 = companyService.getById(order.getCompanyId()).getUserId();
        messageService.addMessage("您的订单有新的回复", userId1,order.getId());
        return R.ok();
    }
@@ -179,8 +244,13 @@
        if(order.getStatus()!=3){
            return R.fail("该订单状态不能取消");
        }
        TbCompany company = companyService.getById(order.getCompanyId());
        company.setStatus(1);
        company.updateById();
        order.setStatus(-1);
        order.updateById();
        messageService.addMessage("您发布的订单买家已取消", company.getUserId(),order.getId());
        return R.ok();
    }