From 87f979fb201a82ebad5926735ed6dfa75ca004d3 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期一, 21 七月 2025 09:21:42 +0800
Subject: [PATCH] 修改bug

---
 ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/OrderController.java |   93 +++++++++++++++++++++++++++++++++++++---------
 1 files changed, 74 insertions(+), 19 deletions(-)

diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/OrderController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/OrderController.java
index 1cb881e..c89460c 100644
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/OrderController.java
+++ b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/OrderController.java
@@ -5,8 +5,10 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.binarywang.wxpay.bean.order.WxPayMpOrderResult;
 import com.github.binarywang.wxpay.exception.WxPayException;
+import com.ruoyi.common.constant.HttpStatus;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.domain.model.LoginUser;
+import com.ruoyi.common.utils.AliSmsUtil;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.framework.web.service.TokenService;
 import com.ruoyi.system.dto.AddBuyerCompanyInfoDto;
@@ -24,6 +26,7 @@
 
 import javax.validation.Valid;
 import java.util.Date;
+import java.util.HashMap;
 
 @Slf4j
 @RestController
@@ -56,14 +59,23 @@
     @Autowired
     private TbUserService userService;
 
+    @Autowired
+    private TbAgreementService agreementService;
 
-    @ApiOperation(value = "获取我的订单", tags = {"订单模块"})
+
+    @ApiOperation(value = "获取我的订单", tags = {"订单模块"},response =MyPushCompanyListVo.class )
     @GetMapping("/getMyOrderList")
-    public R<Page<MyPushCompanyListVo>> getMyOrderList(MyOrderListQuery query) {
+    public R<HashMap<String, Object>> getMyOrderList(MyOrderListQuery query) {
         LoginUser loginUser = tokenService.getLoginUser();
+        if(loginUser==null){
+            return R.fail(HttpStatus.UNAUTHORIZED,"请重新登录");
+        }
         Long userId = loginUser.getUserId();
         Page<MyPushCompanyListVo> page = orderService.getMyOrderList(query, userId);
-        return R.ok(page);
+        HashMap<String, Object> map = new HashMap<>();
+        map.put("data",page);
+        map = orderService.getMyOrderListNum(userId,map);
+        return R.ok(map);
     }
 
 
@@ -74,8 +86,11 @@
      */
     @ApiOperation(value = "立即支付前填写信息", tags = {"订单模块"})
     @PostMapping("/lastPayOrderData")
-    public R<?> lastPayOrderData(@RequestBody @Valid AddBuyerCompanyInfoDto dto) {
+    public synchronized R<WxPayMpOrderResult> lastPayOrderData(@RequestBody @Valid AddBuyerCompanyInfoDto dto) {
         LoginUser loginUser = tokenService.getLoginUser();
+        if(loginUser==null){
+            return R.fail(HttpStatus.UNAUTHORIZED,"请重新登录");
+        }
         Long userId = loginUser.getUserId();
         TbOrder tbOrder = orderService.getById(dto.getOrderId());
 
@@ -96,12 +111,10 @@
         if (company == null || company.getStatus() == 2 || 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();
+        TbBuyerCompanyInfo one = buyerCompanyInfoService.getOne(new LambdaQueryWrapper<TbBuyerCompanyInfo>().eq(TbBuyerCompanyInfo::getOrderId, dto.getOrderId()));
+        orderService.lastPayOrderData(tbOrder, dto, userId, company,one);
+        R<WxPayMpOrderResult> wxPayMpOrderResultR = payOrder(dto.getOrderId());
+        return wxPayMpOrderResultR;
     }
 
 
@@ -112,6 +125,9 @@
             R.fail("订单id不能为空");
         }
         LoginUser loginUser = tokenService.getLoginUser();
+        if(loginUser==null){
+            return R.fail(HttpStatus.UNAUTHORIZED,"请重新登录");
+        }
         Long userId = loginUser.getUserId();
         TbOrder tbOrder = orderService.getById(orderId);
         if (!tbOrder.getUserId().equals(userId.toString())) {
@@ -144,9 +160,12 @@
     @PostMapping("/placeOrder")
     public synchronized R<?> placeOrder(String companyId) {
         if (StringUtils.isEmpty(companyId)) {
-            R.fail("id不能为空");
+            return R.fail("id不能为空");
         }
         LoginUser loginUser = tokenService.getLoginUser();
+        if(loginUser==null){
+            return R.fail(HttpStatus.UNAUTHORIZED,"请重新登录");
+        }
         Long userId = loginUser.getUserId();
         // 查看现在是否可以单 判断这个公司是否上架  是否已经产生的了订单
         TbCompany company = companyService.getById(companyId);
@@ -170,8 +189,27 @@
         if (company.getStatus() == 4) {
             return R.fail("改公司已被预定");
         }
-        orderService.placeOrder(companyId, company, userId);
-        return R.ok();
+        String orderId = orderService.placeOrder(companyId, company, userId);
+        messageService.addMessage("买家申请了交易", company.getUserId(), orderId,1);
+
+        TbUser user = userService.getById(company.getUserId());
+        AliSmsUtil.sendSuccessMessageSeller(user.getPhone());
+        return R.ok(orderId);
+    }
+
+    @ApiOperation(value = "下单预定-获取信息", tags = {"订单模块"})
+    @GetMapping("/placeOrderInfo")
+    public  R<?> placeOrderInfo(String companyId) {
+        if (StringUtils.isEmpty(companyId)) {
+            R.fail("id不能为空");
+        }
+        TbCompany company = companyService.getById(companyId);
+        String information = company.getInformation();
+        HashMap<String, String> map = new HashMap<>();
+        map.put("information", information);
+        TbAgreement one = agreementService.getOne(new LambdaQueryWrapper<TbAgreement>().eq(TbAgreement::getType, 3));
+        map.put("agreement", one.getContent());
+        return R.ok(map);
     }
 
 
@@ -182,6 +220,9 @@
             R.fail("订单id不能为空");
         }
         LoginUser loginUser = tokenService.getLoginUser();
+        if(loginUser==null){
+            return R.fail(HttpStatus.UNAUTHORIZED,"请重新登录");
+        }
         Long userId = loginUser.getUserId();
         TbOrder order = orderService.getById(orderId);
         if (order == null) {
@@ -196,15 +237,16 @@
         }
         // 订单完成  商品已售卖
         order.setStatus(6);
-        order.updateById();
         order.setFinishTime( new Date());
+
+        order.updateById();
         company.setStatus(3);
 
-        // 分佣
+        // 结算
         orderService.commission(order, company.getUserId());
 
         // 卖家账户明细记录更新
-        TbAccountDetail one = accountDetailService.getOne(new LambdaQueryWrapper<TbAccountDetail>().eq(TbAccountDetail::getOrderId, orderId).eq(TbAccountDetail::getCategory, 2));
+        TbAccountDetail one = accountDetailService.getOne(new LambdaQueryWrapper<TbAccountDetail>().eq(TbAccountDetail::getUserId,company.getUserId()).eq(TbAccountDetail::getOrderId, orderId).eq(TbAccountDetail::getCategory, 2));
         if (one != null) {
             one.setStatus(2);
             one.updateById();
@@ -220,6 +262,9 @@
     @PostMapping("/buyerAddSchedule")
     public synchronized R<?> buyerAddSchedule(@RequestBody @Valid AddScheduleDto dto) {
         LoginUser loginUser = tokenService.getLoginUser();
+        if(loginUser==null){
+            return R.fail(HttpStatus.UNAUTHORIZED,"请重新登录");
+        }
         Long userId = loginUser.getUserId();
         TbOrder order = orderService.getById(dto.getOrderId());
         if (order == null) {
@@ -234,7 +279,7 @@
         scheduleService.buyerAddSchedule(dto, userId);
         String userId1 = companyService.getById(order.getCompanyId()).getUserId();
 
-        messageService.addMessage("您的订单有新的回复", userId1, order.getId());
+        messageService.addMessage("您的订单有新的回复", userId1, order.getId(),1);
         return R.ok();
 
     }
@@ -247,6 +292,9 @@
             R.fail("订单id不能为空");
         }
         LoginUser loginUser = tokenService.getLoginUser();
+        if(loginUser==null){
+            return R.fail(HttpStatus.UNAUTHORIZED,"请重新登录");
+        }
         Long userId = loginUser.getUserId();
         TbOrder order = orderService.getById(orderId);
         if (order == null) {
@@ -255,16 +303,17 @@
         if (!order.getUserId().equals(userId.toString())) {
             return R.fail("非法操作");
         }
-        if (order.getStatus() != 3) {
+        if (order.getStatus() != 3 && order.getStatus() != 2) {
             return R.fail("该订单状态不能取消");
         }
         TbCompany company = companyService.getById(order.getCompanyId());
         company.setStatus(1);
         company.updateById();
         order.setStatus(-1);
+        order.setCancelType(2);
         order.updateById();
 
-        messageService.addMessage("您发布的订单买家已取消", company.getUserId(), order.getId());
+        messageService.addMessage("您发布的订单买家已取消", company.getUserId(), order.getId(),1);
         return R.ok();
 
     }
@@ -274,6 +323,9 @@
     @PostMapping("/updateSchedule")
     public R<?> updateSchedule(@RequestBody @Valid EditScheduleDto dto) {
         LoginUser loginUser = tokenService.getLoginUser();
+        if(loginUser==null){
+            return R.fail(HttpStatus.UNAUTHORIZED,"请重新登录");
+        }
         Long userId = loginUser.getUserId();
         TbSchedule schedule = scheduleService.getById(dto.getScheduleId());
         if (schedule == null) {
@@ -293,6 +345,9 @@
     @DeleteMapping("/delSchedule/{scheduleId}")
     public R<?> delSchedule(@PathVariable("scheduleId") String scheduleId) {
         LoginUser loginUser = tokenService.getLoginUser();
+        if(loginUser==null){
+            return R.fail(HttpStatus.UNAUTHORIZED,"请重新登录");
+        }
         Long userId = loginUser.getUserId();
         TbSchedule schedule = scheduleService.getById(scheduleId);
         if (schedule == null) {

--
Gitblit v1.7.1