From 1c7d3b4538dcd2ae6c0ec1ffc4a548088bb7b00b Mon Sep 17 00:00:00 2001
From: guyue <1721849008@qq.com>
Date: 星期六, 26 七月 2025 09:09:01 +0800
Subject: [PATCH] 未支付订单查询接口

---
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java |  162 +++++++++++++++++++++++++++++++-----------------------
 1 files changed, 93 insertions(+), 69 deletions(-)

diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
index 56dc129..824830c 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
@@ -5,25 +5,20 @@
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.stylefeng.guns.core.util.ToolUtil;
 import com.stylefeng.guns.modular.CharteredCar.server.IOrderCharteredCarService;
-import com.stylefeng.guns.modular.account.model.TEnterpriseWithdrawal;
 import com.stylefeng.guns.modular.account.server.ITEnterpriseWithdrawalService;
-import com.stylefeng.guns.modular.account.server.UserWithdrawalService;
 import com.stylefeng.guns.modular.call.server.IOrderCallService;
-import com.stylefeng.guns.modular.cloudPayment.example.AllocationExample;
-import com.stylefeng.guns.modular.cloudPayment.example.DepositExample;
-import com.stylefeng.guns.modular.cloudPayment.req.AllocationReq;
-import com.stylefeng.guns.modular.cloudPayment.req.DepositReq;
 import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity;
 import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService;
-import com.stylefeng.guns.modular.enums.PaymentTypeEnum;
 import com.stylefeng.guns.modular.smallLogistics.model.OrderLogistics;
 import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService;
 import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
 import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
 import com.stylefeng.guns.modular.system.dao.SystemPriceMapper;
 import com.stylefeng.guns.modular.system.model.*;
+import com.stylefeng.guns.modular.system.model.vo.UnPayOrderVO;
 import com.stylefeng.guns.modular.system.service.*;
 import com.stylefeng.guns.modular.system.util.*;
+import com.stylefeng.guns.modular.system.util.qianyuntong.model.QYTPaymentCallback;
 import com.stylefeng.guns.modular.system.warpper.*;
 import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
 import com.stylefeng.guns.modular.taxi.model.PaymentRecord;
@@ -31,23 +26,20 @@
 import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
 import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService;
 import com.stylefeng.guns.modular.taxi.service.ITransactionDetailsService;
-import com.unionpay.upyzt.exception.UpyztException;
-import com.unionpay.upyzt.resp.AllocationResp;
-import com.unionpay.upyzt.resp.DepositResp;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.web.bind.annotation.*;
-import sun.security.krb5.internal.crypto.Des;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.PrintWriter;
-import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.*;
 
@@ -55,7 +47,7 @@
  * 订单控制器(综合)
  */
 @Api
-//@CrossOrigin
+@Slf4j
 @RestController
 @RequestMapping("")
 public class OrderController {
@@ -125,22 +117,26 @@
 
     @Autowired
     private IAdditionalFeeService additionalFeeService;
-
+    
     @Autowired
     private ITEnterpriseWithdrawalService enterpriseWithdrawalService;
     @Autowired
-    private  ICompanyService companyService;
+    private ICompanyService companyService;
     @Autowired
     private IUserCouponRecordService userCouponRecordService;
     @Value("${pushMinistryOfTransport}")
     private boolean pushMinistryOfTransport;
-
-
-
-
-
+    
+    @Resource
+    private SystemPriceMapper systemPriceMapper;
+    
+    @Resource
+    private RedisTemplate<String, Object> redisTemplate;
+    
+    
     /**
      * 获取正在进行中的订单
+     *
      * @param request
      * @return
      */
@@ -421,15 +417,8 @@
             return ResultUtil.runErr();
         }
     }
-
-
-
-    @Autowired
-    private RedisUtil redisUtil;
-
-    @Resource
-    private SystemPriceMapper systemPriceMapper;
-
+    
+    
     /**
      * 获取服务中的详情数据
      * @param orderId
@@ -489,7 +478,7 @@
                 }
                 orderList= orderPrivateCarService.queryOrderInfo2(orderId,6,null,null);
                 if(orderInfoWarpper.getState()>1 && orderInfoWarpper.getDriverId()!=0){
-                    String value = redisUtil.getValue("DRIVER" + String.valueOf(orderInfoWarpper.getDriverId()));
+                    String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(orderInfoWarpper.getDriverId()));
                     if(value==null || value.equals("")){
                         if(orderList.isEmpty()){
                             orderList= orderPrivateCarService.queryOrderInfo2(orderId,5,"0","0");
@@ -1579,15 +1568,12 @@
             System.out.println("完成订单微信支付回调");
             Map<String, String> map = payMoneyUtil.weixinpayCallback(request);
             System.out.println("wx支付信息:"+map);
-
-
             if(null != map){
                 String order_id = map.get("transaction_id");
                 String out_trade_no = map.get("out_trade_no");
                 String result = map.get("result");
                 String total_fee = map.get("total_fee");
                 String transaction_id = map.get("transaction_id");
-
                 if(ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id)){
                     PrintWriter out = response.getWriter();
                     out.write(result);
@@ -2006,61 +1992,99 @@
 
     /**
      * 管理后台推单
+     *
      * @param orderType
      * @return
      */
     @ResponseBody
     @PostMapping("/base/taxi/pushOrder")
-    public ResultUtil pushOrder(Integer orderId, Integer orderType){
+    public ResultUtil pushOrder(Integer orderId, Integer orderType) {
         try {
-            switch (orderType){
+            switch (orderType) {
                 case 1:
                     return orderPrivateCarService.pushOrderPrivateCar(orderId);
                 case 2:
                     return orderTaxiService.pushOrderTaxi(orderId);
             }
             return ResultUtil.success();
-        }catch (Exception e){
+        } catch (Exception e) {
             e.printStackTrace();
             return ResultUtil.runErr();
         }
     }
 
 
-//    public  void cloudPay(String total_fee,String transaction_id,int type) {
-//        if(type==1){
-//            BigDecimal divide = new BigDecimal(total_fee).divide(new BigDecimal(100));
-//            total_fee=divide.toString();
-//        }
-//        Company company = companyService.selectOne(new EntityWrapper<Company>()
-//                .eq("type", 1)
-//                .last("LIMIT 1"));
-//        // 查询平台开户信息
-//        TEnterpriseWithdrawal enterpriseWithdrawal = enterpriseWithdrawalService.selectOne(new EntityWrapper<TEnterpriseWithdrawal>()
-//                .eq("companyId", company.getId()));
-//        DepositReq depositReq = new DepositReq();
-//        depositReq.setOutOrderNo(ToolUtil.getRandomString(32));
-//        depositReq.setTotalAmount(new BigDecimal(total_fee).multiply(new BigDecimal(100)).intValue()); // 总金额
-//        depositReq.setAmount(new BigDecimal(total_fee).multiply(new BigDecimal(100)).intValue()); // 支付金额
-//        depositReq.setDiscountAmount(0); // 优惠金额
-//        depositReq.setBalanceAcctId(enterpriseWithdrawal.getBalanceAcctId());
-//        depositReq.setDepositType("1");
-//        depositReq.setPaymentType(PaymentTypeEnum.CUP_APP.getCode());
-//        depositReq.setPaymentTradeNo(transaction_id); // 系统交易流水号
-//        depositReq.setPaymentSucceededAt(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").format(new Date()));
-//        depositReq.setOrderNo(transaction_id);
-//        depositReq.setOrderAmount(new BigDecimal(total_fee).multiply(new BigDecimal(100)).longValue());
-//        depositReq.setProductName("用户支付充值");
-//        depositReq.setProductCount(1);
-//
-//        try {
-//            DepositResp depositResp = DepositExample.create(depositReq);
-//            System.err.println(depositResp);
-//        } catch (Exception e) {
-//            e.printStackTrace();
-//        }
-//    }
+    /**
+     * 黔云通支付回调通知
+     *
+     * @param qytPaymentCallback
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/base/order/qytPaymentCallback")
+    public String qytPaymentCallback(@RequestBody QYTPaymentCallback qytPaymentCallback) {
+        log.info("【黔云通支付回调通知】请求参数:" + JSON.toJSONString(qytPaymentCallback));
+        if (null == qytPaymentCallback) {
+            return "error";
+        }
+        return "success";
+    }
 
 
+    @ResponseBody
+    @PostMapping("/api/get/unPayOrder")
+    @ApiOperation(value = "获取未支付订单", tags = {"用户端-首页"}, notes = "")
+    @ApiImplicitParams({
+           @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城,4=小件物流,null=全部)", name = "orderType", required = false, dataType = "int"),
+           @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil getUnPayOrder( Integer orderType,  HttpServletRequest request){
+        try {
+            // 从Redis中获取当前用户ID
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if (null == uid) {
+                return ResultUtil.tokenErr();
+            }
+
+            List<UnPayOrderVO> unpaidOrders = new ArrayList<>();
+
+            // 根据订单类型查询对应未支付订单
+            if (orderType == null || orderType == 1) {
+                // 查询未支付的专车订单
+                List<UnPayOrderVO> privateCarOrders = orderPrivateCarService.getUnpayPrivateOrders(uid);
+                unpaidOrders.addAll(privateCarOrders);
+            }
+
+            if (orderType == null || orderType == 2) {
+                // 查询未支付的出租车订单
+                List<UnPayOrderVO> taxiOrders = orderTaxiService.getUnpayTaxiOrders(uid);
+                unpaidOrders.addAll(taxiOrders);
+            }
+
+            if (orderType == null || orderType == 3) {
+                // 查询未支付的跨城订单
+                List<UnPayOrderVO> crossCityOrders = orderCrossCityService.getUnpayCrossCityOrders(uid);
+                unpaidOrders.addAll(crossCityOrders);
+            }
+
+            if (orderType == null || orderType == 4 || orderType == 5) {
+                // 查询未支付的物流订单(包含类型4和5)
+                List<UnPayOrderVO> logisticsOrders = orderLogisticsService.getUnpayLogisticsOrders(uid);
+                unpaidOrders.addAll(logisticsOrders);
+            }
+
+            // 按创建时间倒序排序(最新的订单在前)
+            unpaidOrders.sort(Comparator.comparing(UnPayOrderVO::getInsertTime).reversed());
+
+            Map<String, Object> result = new HashMap<>();
+            result.put("total", unpaidOrders.size());
+            result.put("orders", unpaidOrders);
+
+            return ResultUtil.success(result);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
 
 }

--
Gitblit v1.7.1