From 5dacdee9b54c78372b68140e2b068d03a620eab9 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期三, 02 七月 2025 19:00:52 +0800
Subject: [PATCH] 修改bug

---
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderCrossCityController.java |  202 ++++++++++++--------------------------------------
 1 files changed, 48 insertions(+), 154 deletions(-)

diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderCrossCityController.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderCrossCityController.java
index 106abe8..869cec6 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderCrossCityController.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderCrossCityController.java
@@ -1,44 +1,41 @@
 package com.stylefeng.guns.modular.system.controller.specialTrain;
 
-import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.plugins.Page;
 import com.stylefeng.guns.core.base.controller.BaseController;
+import com.stylefeng.guns.core.beetl.ShiroExtUtil;
 import com.stylefeng.guns.core.common.constant.factory.PageFactory;
-import com.stylefeng.guns.core.shiro.ShiroKit;
 import com.stylefeng.guns.core.shiro.ShiroUser;
 import com.stylefeng.guns.core.util.SinataUtil;
 import com.stylefeng.guns.core.util.ToolUtil;
-import com.stylefeng.guns.modular.cloudPayment.example.AllocationExample;
-import com.stylefeng.guns.modular.cloudPayment.req.AllocationReq;
 import com.stylefeng.guns.modular.system.controller.general.TDriverController;
-import com.stylefeng.guns.modular.system.controller.util.Base64Util;
 import com.stylefeng.guns.modular.system.controller.util.GetOpenBodySig;
-import com.stylefeng.guns.modular.system.controller.util.Util;
 import com.stylefeng.guns.modular.system.dao.LineShiftDriverMapper;
 import com.stylefeng.guns.modular.system.dao.OrderCancelMapper;
 import com.stylefeng.guns.modular.system.model.*;
 import com.stylefeng.guns.modular.system.service.*;
-import com.stylefeng.guns.modular.system.util.*;
-import com.unionpay.upyzt.exception.UpyztException;
-import com.unionpay.upyzt.resp.AllocationResp;
+import com.stylefeng.guns.modular.system.util.HttpRequestUtil;
+import com.stylefeng.guns.modular.system.util.PayMoneyUtil;
+import com.stylefeng.guns.modular.system.util.PushURL;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
 import org.apache.commons.lang.time.DateFormatUtils;
 import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.ui.Model;
 import org.springframework.beans.factory.annotation.Autowired;
-import com.stylefeng.guns.core.log.LogObjectHolder;
+import org.springframework.data.domain.Sort;
+import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.data.mongodb.core.query.Criteria;
+import org.springframework.data.mongodb.core.query.Query;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStreamReader;
 import java.math.BigDecimal;
-import java.util.*;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * 跨城出行订单控制器
@@ -57,21 +54,24 @@
 
     @Autowired
     private ITServerCarmodelService tServerCarmodelService;
-
+    
     @Autowired
     private ITLineService itLineService;
-
+    
     @Autowired
     private ITOrderPositionService tOrderPositionService;
-
+    
     private ResultUtil resultUtil;
-
+    
     @Autowired
     private ITUserService userService;
-
-    @Value("${filePath}")
-    private String filePath;
-
+    
+    @Resource
+    private MongoTemplate mongoTemplate;
+    @Resource
+    private ShiroExtUtil shiroExtUtil;
+    
+    
     /**
      * 跳转到跨城出行订单首页
      */
@@ -79,7 +79,7 @@
     public String index(Model model) {
         //服务快车车型
         List<TServerCarmodel> carmodelList = tServerCarmodelService.selectList(new EntityWrapper<TServerCarmodel>().eq("type", 2).eq("state", 1));
-        model.addAttribute("carmodelList",carmodelList);
+        model.addAttribute("carmodelList", carmodelList);
         //线路
         List<TLine> lineList = itLineService.selectList(new EntityWrapper<TLine>().last(" where not FIND_IN_SET(state,'3')"));
         model.addAttribute("lineList",lineList);
@@ -104,41 +104,28 @@
         model.addAttribute("tOrderCrossCityId",tOrderCrossCityId);
         return PREFIX + "tOrderCrossCity_track.html";
     }
-
+    
     /**
      * 获取订单轨迹
+     *
      * @param orderDetailId
      * @return
      */
     @ResponseBody
     @RequestMapping(value = "/getOrderTrack", method = RequestMethod.POST)
-    public ResultUtil getOrderTrack(String orderDetailId){
-        if(ToolUtil.isNotEmpty(orderDetailId)){
+    public ResultUtil getOrderTrack(Integer orderDetailId) {
+        if (ToolUtil.isNotEmpty(orderDetailId)) {
             try {
-                //将数据存储到文件中
-                File file = new File(filePath + orderDetailId + "_3.txt");
-                if(!file.exists()){
-                    return ResultUtil.success(new ArrayList<>());
-                }
-                //读取文件(字符流)
-                BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF-8"));
-                //循环取出数据
-                String str = null;
-                StringBuffer sb = new StringBuffer();
-                while ((str = in.readLine()) != null) {
-                    sb.append(str);
-                }
-                List<TOrderPosition> list = JSONArray.parseArray(sb.toString(), TOrderPosition.class);
-//                List<TOrderPosition> list = tOrderPositionService.selectList(new EntityWrapper<TOrderPosition>().eq("orderType", 3).eq("orderId", orderDetailId).orderBy("insertTime"));
-                /*if(list.size() == 0){
-                    return ResultUtil.error("该订单没有运行轨迹");
-                }*/
-                resultUtil = ResultUtil.success(list);
-            }catch (Exception e){
+                Query query = new Query()
+                        .addCriteria(Criteria.where("orderId").is(orderDetailId).and("orderType").is(3))
+                        .with(new Sort(Sort.Direction.ASC, "insertTime"));
+                List<TOrderPosition> positions = mongoTemplate.find(query, TOrderPosition.class);
+                resultUtil = ResultUtil.success(positions);
+            } catch (Exception e) {
                 e.printStackTrace();
                 resultUtil = ResultUtil.runErr();
             }
-        }else {
+        } else {
             resultUtil = ResultUtil.paranErr();
         }
         return resultUtil;
@@ -168,7 +155,7 @@
             endTime = timeArray[1];
         }
         Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
-        page.setRecords(tOrderCrossCityService.getCrossCityOrderList(page,beginTime,endTime,ShiroKit.getUser().getRoleType(),ShiroKit.getUser().getObjectId(),orderNum,orderSource,userName,userPhone,passengers,passengersPhone,serverCarModelId,driver,lineId,state));
+        page.setRecords(tOrderCrossCityService.getCrossCityOrderList(page, beginTime, endTime, shiroExtUtil.getUser().getRoleType(), shiroExtUtil.getUser().getObjectId(), orderNum, orderSource, userName, userPhone, passengers, passengersPhone, serverCarModelId, driver, lineId, state));
         return super.packForBT(page);
     }
 
@@ -204,16 +191,16 @@
     @ResponseBody
     public Object cancel(@RequestParam Integer tOrderCrossCityId) throws Exception {
         TOrderCrossCity tOrderCrossCity = tOrderCrossCityService.selectById(tOrderCrossCityId);
-        ShiroUser user = ShiroKit.getUser();
-
+        ShiroUser user = shiroExtUtil.getUser();
+    
         TOrderCrossCity orderCrossCity = tOrderCrossCityService.selectById(tOrderCrossCityId);
-        if(orderCrossCity.getState() > 5 && orderCrossCity.getState() != 11 && orderCrossCity.getState() != 7){
+        if (orderCrossCity.getState() > 5 && orderCrossCity.getState() != 11 && orderCrossCity.getState() != 7) {
             return ResultUtil.error("订单状态不在可取消范围内");
         }
         orderCrossCity.setState(10);
         tOrderCrossCityService.updateById(orderCrossCity);
-
-        if(orderCrossCity.getDriverId() != null){
+    
+        if (orderCrossCity.getDriverId() != null) {
             //修改司机信息
             LineShiftDriver lineShiftDriver = lineShiftDriverMapper.selectById(orderCrossCity.getLineShiftDriverId());
             lineShiftDriver.setLaveSeat(lineShiftDriver.getLaveSeat() + orderCrossCity.getPeopleNumber() > lineShiftDriver.getTotalSeat() ?
@@ -248,7 +235,6 @@
             if(orderCrossCity.getPayType()==5){
                 TDriver driver = tDriverService.selectById(orderCrossCity.getDriverId());
                 if(orderCrossCity.getPayMoney().doubleValue()>0) {
-                    createAllocationReq(1, driver.getId(), 1, orderCrossCity.getPayMoney().doubleValue());
                 }
             }
 
@@ -260,9 +246,6 @@
                 transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城出行取消退款", orderCrossCity.getPayMoney().doubleValue(), 1, 1, 1, 3, tOrderCrossCityId);
                 if(orderCrossCity.getPayMoney().doubleValue()>0){
                     if(orderCrossCity.getOrderSource()==4){
-                        tDriverController.createAllocationReq(1,orderCrossCity.getDriverId(),1,orderCrossCity.getPayMoney().doubleValue());
-                    }else {
-                        createAllocationReqUser(1,userInfo.getId(),1,orderCrossCity.getPayMoney().doubleValue());
                     }
                 }
             }else{
@@ -290,14 +273,7 @@
                     userService.updateById(userInfo);
                     //添加交易明细
                     transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城出行取消退款", orderCrossCity.getPayMoney().doubleValue(), 1, 1, 1, 3, tOrderCrossCityId);
-                    if(orderCrossCity.getPayMoney().doubleValue()>0) {
-                        if (orderCrossCity.getOrderSource() == 4) {
-                            // 退给司机
-                            createAllocationReq(1, orderCrossCity.getDriverId(), 1, orderCrossCity.getPayMoney().doubleValue());
-                        } else {
-                            createAllocationReqUser(1, orderCrossCity.getUserId(), 1, orderCrossCity.getPayMoney().doubleValue());
-                        }
-                    }
+    
                     System.out.println("退款");
                     String billNo = orderCrossCity.getBillNo();
 //                    cancleMoney(orderCrossCity.getPayMoney(),billNo);
@@ -363,14 +339,8 @@
         tOrderCrossCityService.updateById(tOrderCrossCity);
         return SUCCESS_TIP;
     }
-//    appId: 8a81c1bf831e72e30187ad640adf49be
-//    appKey: 6463dcd46c6d410eb40e68ee40e86e84
-//    md5key: NxDhJztSzCDFzs3Z5Fzck7BAG2sRA4DY5aKScJDZrAzMkCh7
-//    msgSrcId: 34U0
-//    mid: 898150841210108
-//    tid: 84UJWSE8
-//    instMid: QRPAYDEFAULT
-
+    
+    
     public static ResultUtil cancleMoney(BigDecimal amount,String no) throws Exception {
         JSONObject json = new JSONObject();
         json.put("requestTimestamp", DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss"));    // 报文请求时间
@@ -399,81 +369,5 @@
     @Autowired
     private IUserWithdrawalService userWithdrawalService;
 
-    public String createAllocationReq(Integer companyId,Integer userId,int type,double money){
-        List<TEnterpriseWithdrawal> tEnterpriseWithdrawals = tEnterpriseWithdrawalService.selectList(new EntityWrapper<TEnterpriseWithdrawal>().eq("companyId", companyId));
-        TDriver tUser = tDriverService.selectById(userId);
-        List<UserWithdrawal> userWithdrawals = userWithdrawalService.selectList(new EntityWrapper<UserWithdrawal>().eq("phone", tUser.getPhone()));
-        if(userWithdrawals.size()==0){
-            return "error";
-        }
 
-        AllocationReq allocationReq= new AllocationReq();
-        allocationReq.setOutOrderNo(ToolUtil.getRandomString(32));
-        if(type==1){
-
-            allocationReq.setPayBalanceAcctId(tEnterpriseWithdrawals.get(0).getBalanceAcctId());
-            allocationReq.setRecvBalanceAcctId(userWithdrawals.get(0).getBalanceAcctId());
-
-            allocationReq.setPassword(Base64Util.decode(tEnterpriseWithdrawals.get(0).getTransactionAuthorizationCode()));
-        }else {
-            allocationReq.setRecvBalanceAcctId(tEnterpriseWithdrawals.get(0).getBalanceAcctId());
-            allocationReq.setPayBalanceAcctId(userWithdrawals.get(0).getBalanceAcctId());
-            allocationReq.setPassword(Base64Util.decode(userWithdrawals.get(0).getTransactionAuthorizationCode()));
-        }
-        money=money*100;
-        allocationReq.setAmount((int)money);
-        allocationReq.setProductName("分账");
-        allocationReq.setProductCount(1);
-        allocationReq.setOrderNo(ToolUtil.getRandomString(32));
-        allocationReq.setOrderAmount(1l);
-        try {
-            AllocationResp allocationResp = AllocationExample.create(allocationReq);
-            System.out.println(allocationResp);
-            return "ok";
-        } catch (UpyztException e) {
-            e.printStackTrace();
-            return e.getMessage();
-        }
-
-    }
-    public String createAllocationReqUser(Integer companyId,Integer userId,int type,double money){
-        List<TEnterpriseWithdrawal> tEnterpriseWithdrawals = tEnterpriseWithdrawalService.selectList(new EntityWrapper<TEnterpriseWithdrawal>().eq("companyId", companyId));
-        TUser tUser = userService.selectById(userId);
-        List<UserWithdrawal> userWithdrawals = userWithdrawalService.selectList(new EntityWrapper<UserWithdrawal>().eq("phone", tUser.getPhone()));
-        if(userWithdrawals.size()==0){
-            return "error";
-        }
-        AllocationReq allocationReq= new AllocationReq();
-        allocationReq.setOutOrderNo(ToolUtil.getRandomString(32));
-        if(type==1){
-
-            allocationReq.setPayBalanceAcctId(tEnterpriseWithdrawals.get(0).getBalanceAcctId());
-            allocationReq.setRecvBalanceAcctId(userWithdrawals.get(0).getBalanceAcctId());
-
-            allocationReq.setPassword(Base64Util.decode(tEnterpriseWithdrawals.get(0).getTransactionAuthorizationCode()));
-        }else {
-            allocationReq.setRecvBalanceAcctId(tEnterpriseWithdrawals.get(0).getBalanceAcctId());
-            allocationReq.setPayBalanceAcctId(userWithdrawals.get(0).getBalanceAcctId());
-            allocationReq.setPassword(Base64Util.decode(userWithdrawals.get(0).getTransactionAuthorizationCode()));
-        }
-        money=money*100;
-        allocationReq.setAmount((int)money);
-        allocationReq.setProductName("分账");
-        allocationReq.setProductCount(1);
-        allocationReq.setOrderNo(ToolUtil.getRandomString(32));
-        allocationReq.setOrderAmount(1l);
-        try {
-            AllocationResp allocationResp = AllocationExample.create(allocationReq);
-            System.out.println(allocationResp);
-            return "ok";
-        } catch (UpyztException e) {
-            e.printStackTrace();
-            return e.getMessage();
-        }
-
-    }
-
-    public static void main(String[] args) throws Exception {
-        ResultUtil resultUtil = cancleMoney(new BigDecimal(0.01), "34U02023062418175413584261700");
-    }
 }

--
Gitblit v1.7.1