From 73b750200f25df08aa64124da49e7461f9de6653 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期五, 13 十二月 2024 15:09:49 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/NTTravel

---
 UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java |   79 +++++++++++++++++++++++----------------
 1 files changed, 47 insertions(+), 32 deletions(-)

diff --git a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
index 4c7ef31..05bf746 100644
--- a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
+++ b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
@@ -33,6 +33,7 @@
 import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService;
 import com.stylefeng.guns.modular.taxi.service.ITransactionDetailsService;
 import com.stylefeng.guns.modular.taxi.service.impl.OrderTaxiServiceImpl;
+import io.swagger.models.auth.In;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -302,17 +303,17 @@
         }
 
         //计算折扣
-        UserActivityDiscount1 query2 = userActivityDiscount1Mapper.query(orderCrossCity.getCompanyId());
-        if(null != query2){
-            Double special = query2.getSpecial();
-            orderCrossCity.setDiscount(special);
-            double v = new BigDecimal(orderMoney).multiply(new BigDecimal(special / 10)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
-            if(orderMoney.compareTo(v) > 0){
-                orderCrossCity.setDiscountMoney(orderMoney - v);
-                orderCrossCity.setActivityId(query2.getId());
-                orderMoney = v;
-            }
-        }
+//        UserActivityDiscount1 query2 = userActivityDiscount1Mapper.query(orderCrossCity.getCompanyId());
+//        if(null != query2){
+//            Double special = query2.getSpecial();
+//            orderCrossCity.setDiscount(special);
+//            double v = new BigDecimal(orderMoney).multiply(new BigDecimal(special / 10)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
+//            if(orderMoney.compareTo(v) > 0){
+//                orderCrossCity.setDiscountMoney(orderMoney - v);
+//                orderCrossCity.setActivityId(query2.getId());
+//                orderMoney = v;
+//            }
+//        }
 
         if(payType == 1){//微信支付
             String app = type == 1 ? "APP" : "JSAPI";
@@ -485,7 +486,8 @@
             System.err.println("预支付数据异常(orderId = "  + id + ")");
         }
     }
-
+    @Resource
+    private DriverWorkMapper driverWorkMapper;
 
     /**
      * 跨城下单操作
@@ -538,6 +540,13 @@
         if(driver.getState() == 1){
             return ResultUtil.error("司机处于离线状态");
         }
+        DriverWork driverWork = driverWorkMapper.queryNewWork(driver.getId(), null, 1);
+        if (!driverWork.getType().contains("3")){
+            return ResultUtil.error("司机暂未开通跨城服务");
+        }
+
+
+
         OrderCrossCity orderCrossCity = new OrderCrossCity();
         orderCrossCity.setUserId(uid);
         orderCrossCity.setServerCarModelId(orderCrossCityWarpper.getServerCarModelId());
@@ -932,7 +941,7 @@
                 String[] split = seatNumber.split(",");
                 boolean b = false;
                 for(String s : split){
-                    if((totalSeat == 4 && s.equals("3")) || (totalSeat == 6 && s.equals("5"))){
+                    if((totalSeat == 4 && s.equals("3")) || (totalSeat == 6 && s.equals("7"))){
                         b = true;
                         break;
                     }
@@ -1264,7 +1273,7 @@
                 userInfo.setBalance(userInfo.getBalance() + orderCrossCity.getPayMoney());
                 userInfoService.updateById(userInfo);
                 //添加交易明细
-                transactionDetailsService.saveData(orderCrossCity.getUserId(), "直通车订单取消退款", orderCrossCity.getPayMoney(), 1, 1, 1, 3, id);
+                transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城订单取消退款", orderCrossCity.getPayMoney(), 1, 1, 1, 3, id);
             }else{
                 PaymentRecord query = paymentRecordService.query(1, orderCrossCity.getUserId(), 1, id, 3, orderCrossCity.getPayType(), 2);
                 if(null == query){
@@ -1280,14 +1289,14 @@
                         return ResultUtil.error(map.get("return_msg"));
                     }
                     //添加交易明细
-                    transactionDetailsService.saveData(query.getUserId(), "直通车订单取消退款", query.getAmount(), 1, 1, query.getType(), 3, id);
+                    transactionDetailsService.saveData(query.getUserId(), "跨城订单取消退款", query.getAmount(), 1, 1, query.getType(), 3, id);
                 }else{//支付宝
                     Map<String, String> map = payMoneyUtil.aliRefund(query.getCode(), query.getAmount().toString());
                     if(!"10000".equals(map.get("code"))){
                         return ResultUtil.error(map.get("msg"));
                     }
                     //添加交易明细
-                    transactionDetailsService.saveData(query.getUserId(), "直通车订单取消退款", query.getAmount(), 1, 1, query.getType(), 3, id);
+                    transactionDetailsService.saveData(query.getUserId(), "跨城订单取消退款", query.getAmount(), 1, 1, query.getType(), 3, id);
                 }
 
 
@@ -1389,7 +1398,7 @@
             if(null == distance){
                 System.err.println("查询距离出错了");
             }else{
-                d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000), new MathContext(2, RoundingMode.HALF_EVEN)).toString();
+                d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000), new MathContext(2, RoundingMode.HALF_EVEN)).toPlainString();
                 t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60), new MathContext(2, RoundingMode.HALF_EVEN)).intValue() + "";
             }
             orderServerWarpper.setReservationMileage("0");
@@ -1421,7 +1430,7 @@
     @Override
     public ResultUtil<BaseWarpper> saveOrderFerry(String serverCarModelIds, Date travelTime, String placementLon, String placementLat, String startLon,
                                               String startLat, String startAddress, String endLon, String endLat, String endAddress, Integer crossCityOrderId,
-                                                  Integer place, Integer orderSource, Integer uid) throws Exception {
+                                                  Integer place, Integer orderSource, Integer uid,String name,String phone) throws Exception {
         if(ToolUtil.isEmpty(serverCarModelIds)){
             return ResultUtil.error("请选择服务车型");
         }
@@ -1444,7 +1453,7 @@
                 map.put("orderType", 2);
                 map.put("orderId", resultUtil.getData().getId());
             }else{
-                ResultUtil<BaseWarpper> resultUtil = this.orderPrivateCar(Integer.valueOf(serverModelId), travelTime, placementLon, placementLat, startLon, startLat, startAddress, endLon, endLat, endAddress, crossCityOrderId, place, orderSource, uid);
+                ResultUtil<BaseWarpper> resultUtil = this.orderPrivateCar(Integer.valueOf(serverModelId), travelTime, placementLon, placementLat, startLon, startLat, startAddress, endLon, endLat, endAddress, crossCityOrderId, place, orderSource, uid,name,phone);
                 if(resultUtil.getCode() != 200){
                     return resultUtil;
                 }
@@ -1571,7 +1580,7 @@
      * @throws Exception
      */
     private synchronized ResultUtil<BaseWarpper> orderPrivateCar(Integer serverCarModelId, Date travelTime, String placementLon, String placementLat, String startLon, String startLat,
-                                       String startAddress, String endLon, String endLat, String endAddress, Integer crossCityOrderId, Integer place, Integer orderSource, Integer uid) throws Exception{
+                                       String startAddress, String endLon, String endLat, String endAddress, Integer crossCityOrderId, Integer place, Integer orderSource, Integer uid,String name,String phone) throws Exception{
         //如果出行时间大于当前10分钟则默认为预约单
         Integer reservation = 1;
         if(travelTime.getTime() > (System.currentTimeMillis() + 600000)){
@@ -1604,6 +1613,8 @@
         orderPrivateCar.setEndLat(Double.valueOf(endLat));
         orderPrivateCar.setEndAddress(endAddress);
         orderPrivateCar.setSubstitute(0);
+        orderPrivateCar.setPassengers(name);
+        orderPrivateCar.setPassengersPhone(phone);
         if(orderPrivateCar.getSubstitute() == 0 || ToolUtil.isEmpty(orderPrivateCar.getPassengers())){
             UserInfo userInfo = userInfoService.selectById(uid);
             if(ToolUtil.isEmpty(userInfo.getPhone())){
@@ -1622,12 +1633,11 @@
         orderPrivateCar.setIsDelete(1);
         orderPrivateCarMapper.insert(orderPrivateCar);
 
-        //添加消息
-        systemNoticeService.addSystemNotice(1, "您的专车订单已下单成功,我们正在为您指派司机,请稍后!", orderPrivateCar.getUserId(), 1);
+        //添加消息        systemNoticeService.addSystemNotice(1, "您的专车订单已下单成功,我们正在为您指派司机,请稍后!", orderPrivateCar.getUserId(), 1);
 
         BaseWarpper baseWarpper = new BaseWarpper();
         baseWarpper.setId(orderPrivateCar.getId());
-        return ResultUtil.success(baseWarpper);
+       return ResultUtil.success(baseWarpper);
     }
 
 
@@ -1637,13 +1647,15 @@
      * @throws Exception
      */
     public void pushOrder(List<Map<String, Integer>> list) throws Exception{
+        System.err.println("====="+list);
         for(Map<String, Integer> map : list){
             Integer orderType = map.get("orderType");
-            Integer orderId = map.get("orderId");
+            Integer orderId1 = map.get("orderId");
             Thread thread = new Thread(new Runnable() {
                 @Override
                 public void run() {
                     List<Map<String, Integer>> datas = list;
+                    final Integer orderId = orderId1;
                     String vehicle = redisUtil.getValue("VEHICLE");
                     List<Integer> integers = new ArrayList<>();
                     if(ToolUtil.isNotEmpty(vehicle)){
@@ -1651,7 +1663,10 @@
                     }
                     try {
                         if(orderType == 1){//专车
+                            Thread.sleep(1000);
+                            System.err.println("====="+orderId);
                             OrderPrivateCar orderPrivateCar = orderPrivateCarMapper.selectById(orderId);
+                            System.err.println("====="+orderPrivateCar);
                             OrderPrivateCarServiceImpl.orderIds.add(orderPrivateCar.getId());//添加记录,防止调用接口重复提醒无人接单
                             Company query = companyCityService.query(String.valueOf(orderPrivateCar.getStartLon()), String.valueOf(orderPrivateCar.getStartLat()));//获取起点所属分公司
                             List<PushOrder> querys = pushOrderService.querys(null, 1, query.getId());//获取需要推送的次数
@@ -1673,12 +1688,12 @@
                                     //删除其他无效数据
                                     for(Map<String, Integer> map : datas){
                                         Integer orderType = map.get("orderType");
-                                        Integer orderId = map.get("orderId");
+                                        Integer orderId1 = map.get("orderId");
                                         if(orderType == 1 && orderId != orderPrivateCar.getId()){
-                                            orderPrivateCarMapper.deleteById(orderId);
+                                            orderPrivateCarMapper.deleteById(orderId1);
                                         }
                                         if(orderType == 2){
-                                            orderTaxiMapper.deleteById(orderId);
+                                            orderTaxiMapper.deleteById(orderId1);
                                         }
                                     }
                                     break;
@@ -1742,12 +1757,12 @@
                                     //删除其他无效数据
                                     for(Map<String, Integer> map : datas){
                                         Integer orderType = map.get("orderType");
-                                        Integer orderId = map.get("orderId");
+                                        Integer orderId1 = map.get("orderId");
                                         if(orderType == 1){
-                                            orderPrivateCarMapper.deleteById(orderId);
+                                            orderPrivateCarMapper.deleteById(orderId1);
                                         }
-                                        if(orderType == 2 && orderId != orderTaxi.getId()){
-                                            orderTaxiMapper.deleteById(orderId);
+                                        if(orderType == 2 && orderId1 != orderTaxi.getId()){
+                                            orderTaxiMapper.deleteById(orderId1);
                                         }
                                     }
                                     break;
@@ -1794,7 +1809,7 @@
                 }
             });
             thread.start();
-            threadMap.put(orderId + "_" + orderType, thread);
+            threadMap.put(orderId1 + "_" + orderType, thread);
         }
     }
 

--
Gitblit v1.7.1