From 4c99ee7028c3fe58a2cd4b8273b22c75c45574fc Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期五, 16 五月 2025 10:27:41 +0800
Subject: [PATCH] 修改文档bug

---
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java |  410 ++++++++++++++++++++++++++++++----------------------------
 1 files changed, 214 insertions(+), 196 deletions(-)

diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
index be1b4d0..d0b3323 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
@@ -55,6 +55,7 @@
 import java.math.MathContext;
 import java.math.RoundingMode;
 import java.util.*;
+import java.util.stream.Collectors;
 
 import static com.stylefeng.guns.modular.taxi.service.impl.OrderTaxiServiceImpl.orderIds;
 
@@ -378,9 +379,8 @@
             new Thread(new Runnable() {
                 @Override
                 public void run() {
-                    pushUtil.pushOrderState(1, orderCrossCity.getUserId(), orderCrossCity.getId(), 3, orderCrossCity.getState(), 0);
-                    pushUtil.pushOrderState(2, orderCrossCity.getDriverId(), orderCrossCity.getId(), 3, orderCrossCity.getState(), 0);
-                    pushUtil.pushDriverPosition(orderCrossCity.getId(), 3);
+                    pushUtil.pushOrderState(1, orderCrossCity.getUserId(), orderCrossCity.getId(), 3, orderCrossCity.getState(), 0, "", "user");
+                    pushUtil.pushOrderState(2, orderCrossCity.getDriverId(), orderCrossCity.getId(), 3, orderCrossCity.getState(), 0, "", "user");
                 }
             }).start();
 
@@ -452,9 +452,8 @@
             new Thread(new Runnable() {
                 @Override
                 public void run() {
-                    pushUtil.pushOrderState(1, orderCrossCity.getUserId(), orderCrossCity.getId(), 3, orderCrossCity.getState(), 0);
-                    pushUtil.pushOrderState(2, orderCrossCity.getDriverId(), orderCrossCity.getId(), 3, orderCrossCity.getState(), 0);
-                    pushUtil.pushDriverPosition(orderCrossCity.getId(), 3);
+                    pushUtil.pushOrderState(1, orderCrossCity.getUserId(), orderCrossCity.getId(), 3, orderCrossCity.getState(), 0, "", "user");
+                    pushUtil.pushOrderState(2, orderCrossCity.getDriverId(), orderCrossCity.getId(), 3, orderCrossCity.getState(), 0, "", "user");
                 }
             }).start();
 
@@ -697,14 +696,22 @@
     @Override
     public Map<String, Object> queryOrderInfo(Integer language, Integer orderId) throws Exception {
         Map<String, Object> map = orderCrossCityMapper.queryOrderInfo(orderId);
-        String insertTime = map.get("insertTime").toString();
-        map.put("insertTime", DateUtil.conversionFormat(language, insertTime));
-        String travelTime = map.get("travelTime").toString();
-        map.put("travelTime", DateUtil.conversionFormat1(language, travelTime));
-        String arriveTime = map.get("arriveTime").toString();
-        map.put("arriveTime", DateUtil.conversionFormat(language, arriveTime));
-        String travelTime1 = map.get("travelTime1").toString();
-        map.put("travelTime1", DateUtil.conversionFormat(language, travelTime1));
+        if(null != map.get("insertTime")){
+            String insertTime = map.get("insertTime").toString();
+            map.put("insertTime", DateUtil.conversionFormat(language, insertTime));
+        }
+        if(null != map.get("travelTime")){
+            String travelTime = map.get("travelTime").toString();
+            map.put("travelTime", DateUtil.conversionFormat1(language, travelTime));
+        }
+        if(null != map.get("arriveTime")){
+            String arriveTime = map.get("arriveTime").toString();
+            map.put("arriveTime", DateUtil.conversionFormat(language, arriveTime));
+        }
+        if(null != map.get("travelTime1")){
+            String travelTime1 = map.get("travelTime1").toString();
+            map.put("travelTime1", DateUtil.conversionFormat(language, travelTime1));
+        }
         if(null != map.get("reassignNotice") && Integer.valueOf(String.valueOf(map.get("reassignNotice"))) == 2){//改派完成,重新获取了新的司机数据,开始修改数据防止继续调用
             OrderCrossCity orderCrossCity = this.selectById(orderId);
             orderCrossCity.setReassignNotice(0);
@@ -737,13 +744,13 @@
             return ResultUtil.error("获取数据失败,订单信息有误");
         }
         double amount = 0;
-        CancleOrder query = cancleOrderService.query(1, 3, orderCrossCity.getCompanyId());
-        if(null != orderCrossCity.getDriverId() &&
-                (orderCrossCity.getSnatchOrderTime().getTime() + query.getMinuteNum() * 60 * 1000) < new Date().getTime()){//收费的情况
-            if(null != query){
-                amount += query.getMoney();
-            }
-        }
+//        CancleOrder query = cancleOrderService.query(1, 3, orderCrossCity.getCompanyId());
+//        if(null != orderCrossCity.getDriverId() &&
+//                (orderCrossCity.getSnatchOrderTime().getTime() + query.getMinuteNum() * 60 * 1000) < new Date().getTime()){//收费的情况
+//            if(null != query){
+//                amount += query.getMoney();
+//            }
+//        }
         BaseWarpper baseWarpper = new BaseWarpper();
         baseWarpper.setAmount(amount);
         return ResultUtil.success(baseWarpper);
@@ -779,70 +786,70 @@
             orderCancel = orderCancelService.selectById(cancleId);
         }
 
-        CancleOrder query = cancleOrderService.query(1, 3, orderCrossCity.getCompanyId());
-        if(null != query){
-            if(payType == 1){//微信支付
-                orderCancel.setPayType(1);
-                orderCancelService.updateById(orderCancel);
-                resultUtil = payMoneyUtil.weixinpay("订单取消",id +"",id + "_3_fei",query.getMoney()+"","/base/wxCancelOrderTaxi","JSAPI",userInfo.getAppletsOpenId());
-                if(resultUtil.getCode()==200){
-                    paymentRecordService.saveData(1, null, null, id, 3, 1, query.getMoney(), null, 1);//添加预支付数据
-                    resultUtil = resultUtil;
-                }else{
-                    resultUtil = ResultUtil.error(language == 1 ? "获取支付信息失败" : language == 2 ? "Failed to obtain payment information" : "Impossible d’obtenir les informations de paiement", "");
-                }
-            }
-            if(payType == 2){//支付宝支付
-                orderCancel.setPayType(2);
-                orderCancelService.updateById(orderCancel);
-                resultUtil = payMoneyUtil.alipay("订单取消","订单取消",id + ",3",query.getMoney()+"","/base/aliCancelOrderTaxi");
-                if(resultUtil.getCode()==200){
-                    paymentRecordService.saveData(1, null, null, id, 3, 2, query.getMoney(), null, 1);//添加预支付数据
-                    resultUtil = resultUtil;
-                }else{
-                    resultUtil = ResultUtil.error(language == 1 ? "获取支付信息失败" : language == 2 ? "Failed to obtain payment information" : "Impossible d’obtenir les informations de paiement", "");
-                }
-            }
-            if(payType == 3){//余额支付
-                if(userInfo.getBalance() != null && userInfo.getBalance() < query.getMoney()){
-                    return ResultUtil.error(language == 1 ? "账户余额不足" : language == 2 ? "Insufficient balance" : "Solde insuffisant");
-                }
-
-                userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(query.getMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
-                //添加交易明细
-                transactionDetailsService.saveData(uid, "取消订单", query.getMoney(), 2, 1, 1, 3, id);
-                userInfoService.updateById(userInfo);
-
-                //解除小号绑定
-                if(orderCrossCity.getBindId() != null){
-                    chinaMobileUtil.midAxbUnBindSend(orderCrossCity.getBindId(),orderCrossCity.getTelX());
-                }
-
-                orderCrossCity.setState(10);
-                orderCrossCity.setTelX("");
-                orderCrossCity.setBindId("");
-                this.updateById(orderCrossCity);
-
-                orderCancel.setState(2);
-                orderCancel.setPayType(3);
-                orderCancelService.updateById(orderCancel);
-
-                //添加已收入明细
-                incomeService.saveData(1, orderCrossCity.getCompanyId(), 3, orderCrossCity.getId(), 3, query.getMoney());
-
-                this.deleteTask(id);//删除定时任务
-
-//                new Thread(new Runnable() {
-//                    @Override
-//                    public void run() {
-//                        pushUtil.pushOrderState(2, orderCrossCity.getDriverId(), orderCrossCity.getId(), 3, orderCrossCity.getState(), 0);
-//                    }
-//                }).start();
-
-                //添加消息
-                systemNoticeService.addSystemNotice(1, "您已使用余额成功支付取消订单费用,谢谢使用!", orderCrossCity.getUserId(), 1);
-            }
-        }
+//        CancleOrder query = cancleOrderService.query(1, 3, orderCrossCity.getCompanyId());
+//        if(null != query){
+//            if(payType == 1){//微信支付
+//                orderCancel.setPayType(1);
+//                orderCancelService.updateById(orderCancel);
+//                resultUtil = payMoneyUtil.weixinpay("订单取消",id +"",id + "_3_fei",query.getMoney()+"","/base/wxCancelOrderTaxi","JSAPI",userInfo.getAppletsOpenId());
+//                if(resultUtil.getCode()==200){
+//                    paymentRecordService.saveData(1, null, null, id, 3, 1, query.getMoney(), null, 1);//添加预支付数据
+//                    resultUtil = resultUtil;
+//                }else{
+//                    resultUtil = ResultUtil.error(language == 1 ? "获取支付信息失败" : language == 2 ? "Failed to obtain payment information" : "Impossible d’obtenir les informations de paiement", "");
+//                }
+//            }
+//            if(payType == 2){//支付宝支付
+//                orderCancel.setPayType(2);
+//                orderCancelService.updateById(orderCancel);
+//                resultUtil = payMoneyUtil.alipay("订单取消","订单取消",id + ",3",query.getMoney()+"","/base/aliCancelOrderTaxi");
+//                if(resultUtil.getCode()==200){
+//                    paymentRecordService.saveData(1, null, null, id, 3, 2, query.getMoney(), null, 1);//添加预支付数据
+//                    resultUtil = resultUtil;
+//                }else{
+//                    resultUtil = ResultUtil.error(language == 1 ? "获取支付信息失败" : language == 2 ? "Failed to obtain payment information" : "Impossible d’obtenir les informations de paiement", "");
+//                }
+//            }
+//            if(payType == 3){//余额支付
+//                if(userInfo.getBalance() != null && userInfo.getBalance() < query.getMoney()){
+//                    return ResultUtil.error(language == 1 ? "账户余额不足" : language == 2 ? "Insufficient balance" : "Solde insuffisant");
+//                }
+//
+//                userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(query.getMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+//                //添加交易明细
+//                transactionDetailsService.saveData(uid, "取消订单", query.getMoney(), 2, 1, 1, 3, id);
+//                userInfoService.updateById(userInfo);
+//
+//                //解除小号绑定
+//                if(orderCrossCity.getBindId() != null){
+//                    chinaMobileUtil.midAxbUnBindSend(orderCrossCity.getBindId(),orderCrossCity.getTelX());
+//                }
+//
+//                orderCrossCity.setState(10);
+//                orderCrossCity.setTelX("");
+//                orderCrossCity.setBindId("");
+//                this.updateById(orderCrossCity);
+//
+//                orderCancel.setState(2);
+//                orderCancel.setPayType(3);
+//                orderCancelService.updateById(orderCancel);
+//
+//                //添加已收入明细
+//                incomeService.saveData(1, orderCrossCity.getCompanyId(), 3, orderCrossCity.getId(), 3, query.getMoney());
+//
+//                this.deleteTask(id);//删除定时任务
+//
+////                new Thread(new Runnable() {
+////                    @Override
+////                    public void run() {
+////                        pushUtil.pushOrderState(2, orderCrossCity.getDriverId(), orderCrossCity.getId(), 3, orderCrossCity.getState(), 0);
+////                    }
+////                }).start();
+//
+//                //添加消息
+//                systemNoticeService.addSystemNotice(1, "您已使用余额成功支付取消订单费用,谢谢使用!", orderCrossCity.getUserId(), 1);
+//            }
+//        }
         return resultUtil;
     }
 
@@ -984,10 +991,7 @@
             }else{//随机金额
                 Double startMoney = Double.valueOf(String.valueOf(query.get("startMoney")));
                 Double endMoney = Double.valueOf(String.valueOf(query.get("endMoney")));
-                int i = new BigDecimal(endMoney).subtract(new BigDecimal(startMoney)).intValue();
-                Random random = new Random();
-                int num = random.nextInt(i);
-                money = new BigDecimal(startMoney).add(new BigDecimal(num)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
+                money = new BigDecimal(startMoney + (Math.random() * (endMoney - startMoney))).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
             }
             //判断当前红包是否大于剩余可领取总金额
             if(money.compareTo(Double.valueOf(query.get("lavePrice").toString())) > 0){
@@ -1001,10 +1005,10 @@
             //添加临时红包数据
             UserRedPacketRecord userRedPacketRecord = new UserRedPacketRecord();
             userRedPacketRecord.setMoney(money);
+            userRedPacketRecord.setRemainingAmount(money);
             Calendar calendar = Calendar.getInstance();
             calendar.setTime(new Date());
             calendar.set(Calendar.DAY_OF_MONTH, calendar.get(Calendar.DAY_OF_MONTH) + Integer.valueOf(String.valueOf(query.get("effective"))));
-            userRedPacketRecord.setExpirationTime(calendar.getTime());
             userRedPacketRecord.setInsertTime(new Date());
             userRedPacketRecord.setCompanyId(Integer.valueOf(String.valueOf(query.get("companyId"))));
             userRedPacketRecord.setState(0);
@@ -1123,10 +1127,14 @@
             if(Integer.valueOf(String.valueOf(map.get("state"))) == 11){
                 map.put("state", map.get("oldState"));
             }
-            String orderTime = map.get("orderTime").toString();
-            map.put("orderTime", DateUtil.conversionFormat(language, orderTime));
-            String time = map.get("time").toString();
-            map.put("time", DateUtil.conversionFormat1(language, time));
+            if(null != map.get("orderTime")){
+                String orderTime = map.get("orderTime").toString();
+                map.put("orderTime", DateUtil.conversionFormat(language, orderTime));
+            }
+            if(null != map.get("time")){
+                String time = map.get("time").toString();
+                map.put("time", DateUtil.conversionFormat1(language, time));
+            }
         }
         return maps;
     }
@@ -1135,8 +1143,10 @@
     public List<Map<String, Object>> queryMyTravelRecord(Integer language, Integer uid) {
         List<Map<String, Object>> list = orderCrossCityMapper.queryMyTravelRecord(uid);
         for (Map<String, Object> map : list) {
-            String time = map.get("time").toString();
-            map.put("time", DateUtil.conversionFormat(language, time));
+            if(null != map.get("time")){
+                String time = map.get("time").toString();
+                map.put("time", DateUtil.conversionFormat(language, time));
+            }
         }
         return list;
     }
@@ -1147,8 +1157,10 @@
         endTime = dateUtil.getStartOrEndDate(endTime, "end");
         List<Map<String, Object>> list = orderCrossCityMapper.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid);
         for (Map<String, Object> map : list) {
-            String time = map.get("time").toString();
-            map.put("time", DateUtil.conversionFormat(language, time));
+            if(null != map.get("time")){
+                String time = map.get("time").toString();
+                map.put("time", DateUtil.conversionFormat(language, time));
+            }
         }
         return list;
     }
@@ -1164,8 +1176,10 @@
     public List<Map<String, Object>> queryRedEnvelope(Integer language, Integer uid) throws Exception {
         List<Map<String, Object>> list = orderCrossCityMapper.queryRedEnvelope(uid);
         for (Map<String, Object> map : list) {
-            String time = map.get("time").toString();
-            map.put("time", DateUtil.conversionFormat(language, time));
+            if(null != map.get("time")){
+                String time = map.get("time").toString();
+                map.put("time", DateUtil.conversionFormat(language, time));
+            }
         }
         return list;
     }
@@ -1184,9 +1198,10 @@
     public ResultUtil addCancle(Integer id, String reason, String remark, Integer uid) throws Exception {
         if(ToolUtil.isNotEmpty(remark)){
             if(ToolUtil.isNotEmpty(remark)){
+                remark = remark.toLowerCase();
                 List<SensitiveWords> sensitiveWords = sensitiveWordsMapper.selectList(null);
-                for(SensitiveWords s : sensitiveWords){
-                    remark = remark.replaceAll(s.getContent(), "***");
+                for(SensitiveWords s : sensitiveWords) {
+                    remark = remark.replaceAll(s.getContent().toLowerCase(), "***");
                 }
             }
         }
@@ -1201,93 +1216,93 @@
         }
 
         //还原座位
-        CancleOrder query1 = cancleOrderService.query(1, 3, orderCrossCity.getCompanyId());
-        if (null != query1) {
-            integer = orderCancelService.saveData(id, 3, reason, remark, null, null, 2, 1, uid);
-            orderCrossCity.setState(10);
-            this.updateById(orderCrossCity);
-
-            if(orderCrossCity.getState() != 7){//已经支付的情况推送给司机提醒
-                new Thread(new Runnable() {
-                    @Override
-                    public void run() {
-                        pushUtil.pushOrderState(2, orderCrossCity.getDriverId(), orderCrossCity.getId(), 3, orderCrossCity.getState(), 0);
-                        System.err.println("推送取消操作---------------------");
-                    }
-                }).start();
-            }
-
-            //修改司机座位
-            LineShiftDriver lineShiftDriver = lineShiftDriverMapper.selectById(orderCrossCity.getLineShiftDriverId());
-            lineShiftDriver.setLaveSeat(lineShiftDriver.getLaveSeat() + orderCrossCity.getPeopleNumber());
-            lineShiftDriver.setLaveSeatNumber(lineShiftDriver.getLaveSeatNumber() + (orderCrossCity.getTravelMode() == 1 ? "," : "") + orderCrossCity.getSeatNumber());
-            lineShiftDriverMapper.updateById(lineShiftDriver);
-
-            //修改司机为空闲
-            List<OrderCrossCity> orderCrossCities = orderCrossCityMapper.queryByDriverId(orderCrossCity.getDriverId(), 2, 3, 4, 5, 11);
-            if(orderCrossCities.size() == 0){
-                Driver driver = driverService.selectById(orderCrossCity.getDriverId());
-                driver.setState(2);
-                driverService.updateById(driver);
-            }
-        }else{
-            return ResultUtil.error("请完善后台取消规则设置");
-        }
-
-        //已支付的情况下进行退款操作
-        if(null != orderCrossCity.getPayType() && null != orderCrossCity.getPayMoney()){
-            if(orderCrossCity.getPayType() == 3){//余额支付
-                UserInfo userInfo = userInfoService.selectById(orderCrossCity.getUserId());
-                userInfo.setBalance(userInfo.getBalance() + orderCrossCity.getPayMoney());
-                userInfoService.updateById(userInfo);
-                //添加交易明细
-                transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城订单取消退款", orderCrossCity.getPayMoney(), 1, 1, 1, 3, id);
-            }else{
-                PaymentRecord query = paymentRecordService.query(1, null, null, id, 3, null, 2);
-                if(null == query){
-                    return ResultUtil.error("订单还未进行支付");
-                }
-                if(orderCrossCity.getPayType() == 1){
-                    payMoneyUtil.wxRefund(query.getCode(),id + ",3",query.getAmount()+"",query.getAmount()+"","");
-                    transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城订单取消退款", query.getAmount(), 1, 1, 1, 3, id);
-                }else{
-                    payMoneyUtil.aliRefund(query.getCode(),query.getAmount()+"");
-                    transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城订单取消退款", query.getAmount(), 1, 1, 1, 3, id);
-                }
-                /*Map<String, Object> merrefund = icbcPayUtil.merrefund(query.getCode(), "", query.getAmount(), id + "_3", orderCrossCity.getOrderNum());
-                if(Integer.valueOf(merrefund.get("code").toString()) == 0){
-                    Map<String, Object> refundqry = icbcPayUtil.refundqry("", query.getCode(), orderCrossCity.getOrderNum());
-                    if(Integer.valueOf(refundqry.get("code").toString()) == 0 && Integer.valueOf(refundqry.get("pay_status").toString()) == 0){//成功
-                        //添加交易明细
-                        transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城订单取消退款", query.getAmount(), 1, 1, 1, 3, id);
-                    }
-                    if(Integer.valueOf(refundqry.get("code").toString()) == 0 && Integer.valueOf(refundqry.get("pay_status").toString()) == 1){//失败
-                        return ResultUtil.error("订单取消失败(退款不成功)");
-                    }
-                    if(Integer.valueOf(refundqry.get("code").toString()) == 0 && Integer.valueOf(refundqry.get("pay_status").toString()) == 2){//未知
-                        return ResultUtil.error("退款返回未知异常");
-                    }
-                }*/
-            }
-
-            //添加负的收入明细
-            List<Income> incomes = incomeService.selectList(new EntityWrapper<Income>().eq("type", 2).eq("incomeId", id).eq("orderType", 3));
-            for(Income income : incomes){
-                if(income.getUserType() == 2){//处理司机的收入
-                    Driver driver = driverService.selectById(income.getObjectId());
-                    driver.setBalance(driver.getBalance() - income.getMoney());
-                    driver.setBusinessMoney(driver.getBusinessMoney() - income.getMoney());
-                    driver.setLaveBusinessMoney(driver.getLaveBusinessMoney() - income.getMoney());
-                    driverService.updateById(driver);
-                }
-                Income income1 = new Income();
-                BeanUtils.copyProperties(income, income1);
-                income1.setMoney(income.getMoney() * -1);
-                income1.setId(null);
-                income1.setInsertTime(new Date());
-                incomeService.insert(income1);
-            }
-        }
+//        CancleOrder query1 = cancleOrderService.query(1, 3, orderCrossCity.getCompanyId());
+//        if (null != query1) {
+//            integer = orderCancelService.saveData(id, 3, reason, remark, null, null, 2, 1, uid);
+//            orderCrossCity.setState(10);
+//            this.updateById(orderCrossCity);
+//
+//            if(orderCrossCity.getState() != 7){//已经支付的情况推送给司机提醒
+//                new Thread(new Runnable() {
+//                    @Override
+//                    public void run() {
+//                        pushUtil.pushOrderState(2, orderCrossCity.getDriverId(), orderCrossCity.getId(), 3, orderCrossCity.getState(), 0);
+//                        System.err.println("推送取消操作---------------------");
+//                    }
+//                }).start();
+//            }
+//
+//            //修改司机座位
+//            LineShiftDriver lineShiftDriver = lineShiftDriverMapper.selectById(orderCrossCity.getLineShiftDriverId());
+//            lineShiftDriver.setLaveSeat(lineShiftDriver.getLaveSeat() + orderCrossCity.getPeopleNumber());
+//            lineShiftDriver.setLaveSeatNumber(lineShiftDriver.getLaveSeatNumber() + (orderCrossCity.getTravelMode() == 1 ? "," : "") + orderCrossCity.getSeatNumber());
+//            lineShiftDriverMapper.updateById(lineShiftDriver);
+//
+//            //修改司机为空闲
+//            List<OrderCrossCity> orderCrossCities = orderCrossCityMapper.queryByDriverId(orderCrossCity.getDriverId(), 2, 3, 4, 5, 11);
+//            if(orderCrossCities.size() == 0){
+//                Driver driver = driverService.selectById(orderCrossCity.getDriverId());
+//                driver.setState(2);
+//                driverService.updateById(driver);
+//            }
+//        }else{
+//            return ResultUtil.error("请完善后台取消规则设置");
+//        }
+//
+//        //已支付的情况下进行退款操作
+//        if(null != orderCrossCity.getPayType() && null != orderCrossCity.getPayMoney()){
+//            if(orderCrossCity.getPayType() == 3){//余额支付
+//                UserInfo userInfo = userInfoService.selectById(orderCrossCity.getUserId());
+//                userInfo.setBalance(userInfo.getBalance() + orderCrossCity.getPayMoney());
+//                userInfoService.updateById(userInfo);
+//                //添加交易明细
+//                transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城订单取消退款", orderCrossCity.getPayMoney(), 1, 1, 1, 3, id);
+//            }else{
+//                PaymentRecord query = paymentRecordService.query(1, null, null, id, 3, null, 2);
+//                if(null == query){
+//                    return ResultUtil.error("订单还未进行支付");
+//                }
+//                if(orderCrossCity.getPayType() == 1){
+//                    payMoneyUtil.wxRefund(query.getCode(),id + ",3",query.getAmount()+"",query.getAmount()+"","");
+//                    transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城订单取消退款", query.getAmount(), 1, 1, 1, 3, id);
+//                }else{
+//                    payMoneyUtil.aliRefund(query.getCode(),query.getAmount()+"");
+//                    transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城订单取消退款", query.getAmount(), 1, 1, 1, 3, id);
+//                }
+//                /*Map<String, Object> merrefund = icbcPayUtil.merrefund(query.getCode(), "", query.getAmount(), id + "_3", orderCrossCity.getOrderNum());
+//                if(Integer.valueOf(merrefund.get("code").toString()) == 0){
+//                    Map<String, Object> refundqry = icbcPayUtil.refundqry("", query.getCode(), orderCrossCity.getOrderNum());
+//                    if(Integer.valueOf(refundqry.get("code").toString()) == 0 && Integer.valueOf(refundqry.get("pay_status").toString()) == 0){//成功
+//                        //添加交易明细
+//                        transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城订单取消退款", query.getAmount(), 1, 1, 1, 3, id);
+//                    }
+//                    if(Integer.valueOf(refundqry.get("code").toString()) == 0 && Integer.valueOf(refundqry.get("pay_status").toString()) == 1){//失败
+//                        return ResultUtil.error("订单取消失败(退款不成功)");
+//                    }
+//                    if(Integer.valueOf(refundqry.get("code").toString()) == 0 && Integer.valueOf(refundqry.get("pay_status").toString()) == 2){//未知
+//                        return ResultUtil.error("退款返回未知异常");
+//                    }
+//                }*/
+//            }
+//
+//            //添加负的收入明细
+//            List<Income> incomes = incomeService.selectList(new EntityWrapper<Income>().eq("type", 2).eq("incomeId", id).eq("orderType", 3));
+//            for(Income income : incomes){
+//                if(income.getUserType() == 2){//处理司机的收入
+//                    Driver driver = driverService.selectById(income.getObjectId());
+//                    driver.setBalance(driver.getBalance() - income.getMoney());
+//                    driver.setBusinessMoney(driver.getBusinessMoney() - income.getMoney());
+//                    driver.setLaveBusinessMoney(driver.getLaveBusinessMoney() - income.getMoney());
+//                    driverService.updateById(driver);
+//                }
+//                Income income1 = new Income();
+//                BeanUtils.copyProperties(income, income1);
+//                income1.setMoney(income.getMoney() * -1);
+//                income1.setId(null);
+//                income1.setInsertTime(new Date());
+//                incomeService.insert(income1);
+//            }
+//        }
 
         //添加消息
         systemNoticeService.addSystemNotice(1, "您已成功取消出行订单,谢谢使用!", orderCrossCity.getUserId(), 1);
@@ -1441,7 +1456,7 @@
         //定义用户所属公司
         OrderTaxi orderTaxi = new OrderTaxi();
         UserInfo userInfo1 = userInfoService.selectById(uid);
-        Company query = companyCityService.query1(startLon, startLat);
+        Company query = companyCityService.query1(uid, startLon, startLat);
         if(null == query){
             return ResultUtil.error("出发点暂未开通");
         }
@@ -1567,7 +1582,7 @@
             if(ToolUtil.isEmpty(userInfo.getPhone())){
                 return ResultUtil.error("请先绑定手机号码");
             }
-            orderPrivateCar.setPassengers(userInfo.getFirstName() + "." + userInfo.getLastName());
+            orderPrivateCar.setPassengers(ToolUtil.isNotEmpty(userInfo.getFirstName()) ? userInfo.getFirstName() + "." + userInfo.getLastName() : "");
             orderPrivateCar.setPassengersPhone(userInfo.getPhone());
         }
         orderPrivateCar.setState(1);
@@ -1575,6 +1590,9 @@
         orderPrivateCar.setTravelTime(travelTime);
         orderPrivateCar.setOrderType(reservation);
         orderPrivateCar.setOrderSource(orderSource);
+        String tripId = redisUtil.getValue("trip" + uid);
+        orderPrivateCar.setTripId(tripId);
+        orderPrivateCar.setIsover(0);
 
         orderPrivateCar.setIsReassign(1);
         orderPrivateCar.setIsDelete(1);
@@ -1611,7 +1629,7 @@
                         if(orderType == 1){//专车
                             OrderPrivateCar orderPrivateCar = orderPrivateCarMapper.selectById(orderId);
                             OrderPrivateCarServiceImpl.orderIds.add(orderPrivateCar.getId());//添加记录,防止调用接口重复提醒无人接单
-                            Company query = companyCityService.query1(String.valueOf(orderPrivateCar.getStartLon()), String.valueOf(orderPrivateCar.getStartLat()));//获取起点所属分公司
+                            Company query = companyCityService.query1(orderPrivateCar.getUserId(), String.valueOf(orderPrivateCar.getStartLon()), String.valueOf(orderPrivateCar.getStartLat()));//获取起点所属分公司
                             List<PushOrder> querys = pushOrderService.querys(null, 1, query.getId());//获取需要推送的次数
                             for(int i = 1; i <= querys.size(); i++){
                                 //订单被抢后的处理
@@ -1645,7 +1663,7 @@
                                 //开始进行推送的处理
                                 PushOrder pushOrder = pushOrderService.querys(i, 1, query.getId()).get(0);
                                 //获取空闲司机
-                                List<Driver> list = driverService.queryIdleDriver(1, orderPrivateCar.getServerCarModelId(), orderPrivateCar.getStartLon(), orderPrivateCar.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机
+                                List<Driver> list = driverService.queryIdleDriver(orderPrivateCar.getUserId(), 1, orderPrivateCar.getServerCarModelId(), orderPrivateCar.getStartLon(), orderPrivateCar.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机
                                 if(list.size() > 0){
                                     double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数
                                     int lastIndex = Double.valueOf(list.size() * driverProportion).intValue();//计算占比转成整数(下标截取)
@@ -1661,7 +1679,7 @@
                                         if(bo){
                                             continue;
                                         }
-                                        pushUtil.pushOrderState(2, driver.getId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), pushOrder.getPushTime());
+                                        pushUtil.pushOrderState(2, driver.getId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), pushOrder.getPushTime(), "", "user");
                                     }
                                 }
 
@@ -1680,7 +1698,7 @@
                         if(orderType == 2){//出租车
                             OrderTaxi orderTaxi = orderTaxiMapper.selectById(orderId);
                             OrderTaxiServiceImpl.orderIds.add(orderTaxi.getId());//添加记录,防止调用接口重复提醒无人接单
-                            Company query = companyCityService.query1(String.valueOf(orderTaxi.getStartLon()), String.valueOf(orderTaxi.getStartLat()));//获取起点所属分公司
+                            Company query = companyCityService.query1(orderTaxi.getUserId(), String.valueOf(orderTaxi.getStartLon()), String.valueOf(orderTaxi.getStartLat()));//获取起点所属分公司
                             List<PushOrder> querys = pushOrderService.querys(null, 2, query.getId());//获取需要推送的次数
                             for(int i = 1; i <= querys.size(); i++){
                                 //处理订单被抢
@@ -1732,7 +1750,7 @@
                                         }
 
 
-                                        pushUtil.pushOrderState(2, driver.getId(), orderTaxi.getId(), 2, orderTaxi.getState(), pushOrder.getPushTime());
+                                        pushUtil.pushOrderState(2, driver.getId(), orderTaxi.getId(), 2, orderTaxi.getState(), pushOrder.getPushTime(), "", "user");
                                     }
                                 }
 

--
Gitblit v1.7.1