liujie
6 天以前 39e9e0600ed31ee6eff5c3b1287c36c7b7196b90
Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/QianYunTong
15个文件已修改
4784 ■■■■ 已修改文件
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java 144 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java 94 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/HomeController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/resources/application-test.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java 4407 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/EmailUtil.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/mapping/OrderTaxiMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/OrderTaxi.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -862,8 +862,35 @@
        pushUtil.removeTask(orderId, 1);//删除定时任务,结束推送数据
        systemNoticeService.addSystemNotice(1, "司机已结束本次行程,谢谢使用", orderPrivateCar.getUserId(), 1);
        //根据订单类型处理司机状态
        if(3 != orderPrivateCar.getRideType()){
            driver.setState(2);
        }else{
            //拼单需要所有的订单结束才修改司机状态
            //未拼成
            if(0 == orderPrivateCar.getSpellSuccess()){
                driver.setState(2);
            }else{
                Integer pid = orderPrivateCar.getPid();
                if(null == pid){
                    //当前订单作为主订单查询所有子订单是否都完成
                    int count = this.selectCount(new EntityWrapper<OrderPrivateCar>().eq("pid", orderPrivateCar.getId())
                            .in("state", Arrays.asList(2, 3, 4, 5, 6, 11)).eq("isDelete", 1));
                    if(0 == count){
                        driver.setState(2);
                    }
                }else{
                    //查询所有子订单和主订单是都完成
                    int count = this.selectCount(new EntityWrapper<OrderPrivateCar>().eq("pid", orderPrivateCar.getPid())
                            .in("state", Arrays.asList(2, 3, 4, 5, 6, 11)).eq("isDelete", 1));
                    OrderPrivateCar privateCar = this.selectById(orderPrivateCar.getPid());
                    if(0 == count && !Arrays.asList(2, 3, 4, 5, 6, 11).contains(privateCar.getState())){
                        driver.setState(2);
                    }
                }
            }
        }
        //回滚司机状态为空闲
        driver.setState(2);
        driverService.updateById(driver);
        OrderPrivateCar finalOrderTaxi = orderPrivateCar;
@@ -1071,9 +1098,11 @@
        System.out.println("一口价内容"+contentPrice);
        //乘车类型(1=独享,2=一口价,3=拼车)
        orderPrivateCar.setWaitRule(jsonObject.toJSONString());
        //独享
        if(orderPrivateCar.getRideType()==1){
            orderPrivateCar = calculationPrice(orderPrivateCar,contentExclusive,jsonObject.getLongValue("num1"),jsonObject.getDouble("num2"),parkingFee,crossingFee);
        }else if(orderPrivateCar.getRideType()==2){
            //一口价
            double d = (null == orderPrivateCar.getMileage() ? 0D : orderPrivateCar.getMileage());
            System.out.println("行驶里程数"+d);
            double estimateMileage = (null == orderPrivateCar.getEstimateMileage() ? 0D : orderPrivateCar.getEstimateMileage());
@@ -1089,7 +1118,9 @@
                System.out.println("返回订单数据"+orderPrivateCar);
            }
        }else{
            //拼车
            //判断是否是拼单
            //未拼成
            if(orderPrivateCar.getSpellSuccess()==0){
                if(orderPrivateCar.getPeopleNum()==1){
                    orderPrivateCar = calculationPrice(orderPrivateCar,contentNotOne,jsonObject.getLongValue("num1"),jsonObject.getDouble("num2"),parkingFee,crossingFee);
@@ -1102,6 +1133,7 @@
                    orderPrivateCar.setChargeRules(contentPutThree.toJSONString());
                }
            }else{
                //已拼成
                if(orderPrivateCar.getPeopleNum()==1){
                    orderPrivateCar = calculationPrice(orderPrivateCar,contentPutOne,jsonObject.getLongValue("num1"),jsonObject.getDouble("num2"),parkingFee,crossingFee);
                    orderPrivateCar.setChargeRules(contentNotOne.toJSONString());
@@ -1113,38 +1145,22 @@
                    orderPrivateCar.setChargeRules(contentNotThree.toJSONString());
                }
            }
            /*if(orderPrivateCar.getPid()==null){
                Integer number = orderPrivateCarMapper.selectCount(new EntityWrapper<OrderPrivateCar>().eq("pid",orderPrivateCar.getId()).ne("state",10).ne("state",12));
                if(number<=0){
                  if(orderPrivateCar.getPeopleNum()==1){
                      orderPrivateCar = calculationPrice(orderPrivateCar,contentNotOne,jsonObject.getLongValue("num1"),jsonObject.getDouble("num2"),parkingFee,crossingFee);
                  }else if(orderPrivateCar.getPeopleNum()==2){
                      orderPrivateCar = calculationPrice(orderPrivateCar,contentNotTwo,jsonObject.getLongValue("num1"),jsonObject.getDouble("num2"),parkingFee,crossingFee);
                  }else{
                      orderPrivateCar = calculationPrice(orderPrivateCar,contentNotThree,jsonObject.getLongValue("num1"),jsonObject.getDouble("num2"),parkingFee,crossingFee);
                  }
                }else{
                    if(orderPrivateCar.getPeopleNum()==1){
                        orderPrivateCar = calculationPrice(orderPrivateCar,contentPutOne,jsonObject.getLongValue("num1"),jsonObject.getDouble("num2"),parkingFee,crossingFee);
                    }else if(orderPrivateCar.getPeopleNum()==2){
                        orderPrivateCar = calculationPrice(orderPrivateCar,contentPutTwo,jsonObject.getLongValue("num1"),jsonObject.getDouble("num2"),parkingFee,crossingFee);
                    }else{
                        orderPrivateCar = calculationPrice(orderPrivateCar,contentPutThree,jsonObject.getLongValue("num1"),jsonObject.getDouble("num2"),parkingFee,crossingFee);
                    }
                }
            }else{
                if(orderPrivateCar.getPeopleNum()==1){
                    orderPrivateCar = calculationPrice(orderPrivateCar,contentPutOne,jsonObject.getLongValue("num1"),jsonObject.getDouble("num2"),parkingFee,crossingFee);
                }else if(orderPrivateCar.getPeopleNum()==2){
                    orderPrivateCar = calculationPrice(orderPrivateCar,contentPutTwo,jsonObject.getLongValue("num1"),jsonObject.getDouble("num2"),parkingFee,crossingFee);
                }else{
                    orderPrivateCar = calculationPrice(orderPrivateCar,contentPutThree,jsonObject.getLongValue("num1"),jsonObject.getDouble("num2"),parkingFee,crossingFee);
                }
            }*/
        }
        return orderPrivateCar;
    }
    /**
     * 公共费用计算
     * @param orderPrivateCar
     * @param rule  计费规则
     * @param wait  规则-等待时长
     * @param waitMoney 规则-等待单价
     * @param parkingFee    停车费
     * @param crossingFee   过路费
     * @return
     * @throws Exception
     */
    public OrderPrivateCar  calculationPrice(OrderPrivateCar orderPrivateCar,JSONObject rule, long wait,Double waitMoney, Double parkingFee, Double crossingFee) throws Exception {
        orderPrivateCar.setChargeRule(rule.toJSONString());
        double amount = 0.0;
@@ -1172,24 +1188,26 @@
        e.setTime(date);
        e.set(Calendar.HOUR_OF_DAY, Integer.valueOf(rule.getString("num14").split(" - ")[1].split(":")[0]));
        e.set(Calendar.MINUTE, Integer.valueOf(rule.getString("num14").split(" - ")[1].split(":")[1]));
        //跨天处理
        if(s.getTimeInMillis() > e.getTimeInMillis()){
            e.add(Calendar.DAY_OF_YEAR, 1);
        }
        if(date.getTime() > s.getTimeInMillis() && date.getTime() < e.getTimeInMillis()){
            //夜间范围内
            //远途费计算
            if(d > rule.getDouble("num6") && d < rule.getDouble("num7")){
                yt1 = rule.getDouble("num18") * d;
//                orderPrivateCar.setLongDistance(new BigDecimal((d > rule.getDouble("num6")) ? d - rule.getDouble("num6") : 0).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
            }
            if(d >  rule.getDouble("num9") && d < rule.getDouble("num10")){
                yt1 = rule.getDouble("num18") * rule.getDouble("num7");
                yt2 = rule.getDouble("num19") * (d - rule.getDouble("num9"));
//                orderPrivateCar.setLongDistance(new BigDecimal((d > rule.getDouble("num9")) ? d - rule.getDouble("num9") : 0).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
            }
            if(d > rule.getDouble("num12")){
                yt1 = rule.getDouble("num18") * rule.getDouble("num7");
                yt2 = rule.getDouble("num19") * (rule.getDouble("num10") - rule.getDouble("num9"));
                yt3 = rule.getDouble("num20") * (d - rule.getDouble("num12"));
//                orderPrivateCar.setLongDistance(new BigDecimal((d > rule.getDouble("num12")) ? d - rule.getDouble("num12") : 0).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
            }
//            amount = rule.getDouble("num15") + (d1 * rule.getDouble("num16")) + (t1 * rule.getDouble("num17")) + (w1 * waitMoney) + yt1 + yt2 + yt3;
            orderPrivateCar.setStartMileage(rule.getDouble("num2"));
            orderPrivateCar.setStartMoney(rule.getDouble("num15"));//起步价
            orderPrivateCar.setMileageKilometers(new BigDecimal(d1).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
@@ -1198,7 +1216,6 @@
            orderPrivateCar.setDurationMoney(new BigDecimal(t1 * rule.getDouble("num17")).setScale(2, BigDecimal.ROUND_DOWN).doubleValue());//时长费
            orderPrivateCar.setWait(new BigDecimal(w1).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
            orderPrivateCar.setWaitMoney(new BigDecimal(w1 * waitMoney).setScale(2, BigDecimal.ROUND_DOWN).doubleValue());//等待费
//            orderPrivateCar.setLongDistance(new BigDecimal((d > rule.getDouble("num6")) ? d - rule.getDouble("num6") : 0).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
            orderPrivateCar.setLongDistance(new BigDecimal((d > rule.getDouble("num6")) ? d - rule.getDouble("num6") : 0).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
            orderPrivateCar.setLongDistanceMoney(new BigDecimal(yt1 + yt2 + yt3).setScale(2, BigDecimal.ROUND_DOWN).doubleValue());//远途费
            orderPrivateCar.setParkMoney(parkingFee);//停车费
@@ -1211,6 +1228,7 @@
                    orderPrivateCar.getDurationMoney() + orderPrivateCar.getWaitMoney() + orderPrivateCar.getLongDistanceMoney();
            orderPrivateCar.setOrderMoney(amount+orderPrivateCar.getParkMoney()+orderPrivateCar.getRoadTollMoney());
        }else{
            //第一个高峰段
            Calendar s1 = Calendar.getInstance();
            s1.setTime(date);
            s1.set(Calendar.HOUR_OF_DAY, Integer.valueOf(rule.getString("num21").split(" - ")[0].split(":")[0]));
@@ -1220,7 +1238,12 @@
            e1.setTime(date);
            e1.set(Calendar.HOUR_OF_DAY, Integer.valueOf(rule.getString("num21").split(" - ")[1].split(":")[0]));
            e1.set(Calendar.MINUTE, Integer.valueOf(rule.getString("num21").split(" - ")[1].split(":")[1]));
            //跨天处理
            if(s1.getTimeInMillis() > e1.getTimeInMillis()){
                e1.add(Calendar.DAY_OF_YEAR, 1);
            }
            //第二个高峰段
            Calendar s2 = Calendar.getInstance();
            s2.setTime(date);
            s2.set(Calendar.HOUR_OF_DAY, Integer.valueOf(rule.getString("num22").split(" - ")[0].split(":")[0]));
@@ -1230,24 +1253,25 @@
            e2.setTime(date);
            e2.set(Calendar.HOUR_OF_DAY, Integer.valueOf(rule.getString("num22").split(" - ")[1].split(":")[0]));
            e2.set(Calendar.MINUTE, Integer.valueOf(rule.getString("num22").split(" - ")[1].split(":")[1]));
            //跨天处理
            if(s2.getTimeInMillis() > e2.getTimeInMillis()){
                e2.add(Calendar.DAY_OF_YEAR, 1);
            }
            //高峰时段处理逻辑
            if((date.getTime() > s1.getTimeInMillis() && date.getTime() < e1.getTimeInMillis()) || (date.getTime() > s2.getTimeInMillis() && date.getTime() < e2.getTimeInMillis())){
                if(d > rule.getDouble("num6") && d < rule.getDouble("num7")){
                    yt1 = rule.getDouble("num26") * d;
//                    orderPrivateCar.setLongDistance(new BigDecimal((d > rule.getDouble("num6")) ? d - rule.getDouble("num6") : 0).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                }
                if(d >  rule.getDouble("num9") && d < rule.getDouble("num10")){
                    yt1 = rule.getDouble("num26") * rule.getDouble("num7");
                    yt2 = rule.getDouble("num27") * (d - rule.getDouble("num9"));
//                    orderPrivateCar.setLongDistance(new BigDecimal((d > rule.getDouble("num9")) ? d - rule.getDouble("num9") : 0).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                }
                if(d > rule.getDouble("num12")){
                    yt1 = rule.getDouble("num26") * rule.getDouble("num7");
                    yt2 = rule.getDouble("num27") * (rule.getDouble("num10") - rule.getDouble("num9"));
                    yt3 = rule.getDouble("num28") * (d - rule.getDouble("num12"));
//                    orderPrivateCar.setLongDistance(new BigDecimal((d > rule.getDouble("num12")) ? d - rule.getDouble("num12") : 0).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                }
//                amount = rule.getDouble("num23") + (d1 * rule.getDouble("num24")) + (t1 * rule.getDouble("num25")) + (w1 * waitMoney) + yt1 + yt2 + yt3;
                orderPrivateCar.setStartMileage(rule.getDouble("num2"));
                orderPrivateCar.setStartMoney(rule.getDouble("num23"));//起步价
                orderPrivateCar.setMileageKilometers(new BigDecimal(d1).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
@@ -1256,7 +1280,6 @@
                orderPrivateCar.setDurationMoney(new BigDecimal(t1 * rule.getDouble("num25")).setScale(2, BigDecimal.ROUND_DOWN).doubleValue());//时长费
                orderPrivateCar.setWait(new BigDecimal(w1).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                orderPrivateCar.setWaitMoney(new BigDecimal(w1 * waitMoney).setScale(2, BigDecimal.ROUND_DOWN).doubleValue());//等待费
//                orderPrivateCar.setLongDistance(new BigDecimal((d > rule.getDouble("num6")) ? d - rule.getDouble("num6") : 0).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                orderPrivateCar.setLongDistance(new BigDecimal((d > rule.getDouble("num6")) ? d - rule.getDouble("num6") : 0).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                orderPrivateCar.setLongDistanceMoney(new BigDecimal(yt1 + yt2 + yt3).setScale(2, BigDecimal.ROUND_DOWN).doubleValue());//远途费
                orderPrivateCar.setParkMoney(parkingFee);//停车费
@@ -1265,12 +1288,6 @@
                orderPrivateCar.setCouponMoney(0D);//优惠券抵扣
                orderPrivateCar.setDiscount(0D);//优惠抵扣
                orderPrivateCar.setPayMoney(0D);//支付金额
//                amount = new BigDecimal(orderPrivateCar.getStartMoney())
//                        .add(new BigDecimal(orderPrivateCar.getMileageMoney()))
//                        .add(new BigDecimal(orderPrivateCar.getDurationMoney()))
//                        .add(new BigDecimal(orderPrivateCar.getWaitMoney()))
//                        .add(new BigDecimal(orderPrivateCar.getLongDistanceMoney()));
//                orderPrivateCar.setOrderMoney(amount.add(new BigDecimal(parkingFee)).add(new BigDecimal(parkingFee)).setScale(2, BigDecimal.ROUND_DOWN).doubleValue());
                amount = orderPrivateCar.getStartMoney() + orderPrivateCar.getMileageMoney() +
                        orderPrivateCar.getDurationMoney() + orderPrivateCar.getWaitMoney() + orderPrivateCar.getLongDistanceMoney();
                orderPrivateCar.setOrderMoney(amount+orderPrivateCar.getParkMoney()+orderPrivateCar.getRoadTollMoney());
@@ -1278,20 +1295,16 @@
                //其他时间段的计算
                if(d > rule.getDouble("num6") && d < rule.getDouble("num7")){
                    yt1 = rule.getDouble("num8") * d;
//                    orderPrivateCar.setLongDistance(new BigDecimal((d > rule.getDouble("num6")) ? d - rule.getDouble("num6") : 0).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                }
                if(d >  rule.getDouble("num9") && d < rule.getDouble("num10")){
                    yt1 = rule.getDouble("num8") * rule.getDouble("num7");
                    yt2 = rule.getDouble("num11") * (d - rule.getDouble("num9"));
//                    orderPrivateCar.setLongDistance(new BigDecimal((d > rule.getDouble("num9")) ? d - rule.getDouble("num9") : 0).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                }
                if(d > rule.getDouble("num12")){
                    yt1 = rule.getDouble("num8") * rule.getDouble("num7");
                    yt2 = rule.getDouble("num11") * (rule.getDouble("num10") - rule.getDouble("num9"));
                    yt3 = rule.getDouble("num13") * (d - rule.getDouble("num12"));
//                    orderPrivateCar.setLongDistance(new BigDecimal((d > rule.getDouble("num12")) ? d - rule.getDouble("num12") : 0).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                }
//                amount = rule.getDouble("num1") + (d1 * rule.getDouble("num4")) + (t1 * rule.getDouble("num5")) + (w1 * waitMoney) + yt1 + yt2 + yt3;
                orderPrivateCar.setStartMileage(rule.getDouble("num2"));
                orderPrivateCar.setStartMoney(rule.getDouble("num1"));//起步价
                orderPrivateCar.setMileageKilometers(new BigDecimal(d1).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
@@ -1300,7 +1313,6 @@
                orderPrivateCar.setDurationMoney(new BigDecimal(t1 * rule.getDouble("num5")).setScale(2, BigDecimal.ROUND_DOWN).doubleValue());//时长费
                orderPrivateCar.setWait(new BigDecimal(w1).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                orderPrivateCar.setWaitMoney(new BigDecimal(w1 * waitMoney).setScale(2, BigDecimal.ROUND_DOWN).doubleValue());//等待费
//                orderPrivateCar.setLongDistance(new BigDecimal((d > rule.getDouble("num6")) ? d - rule.getDouble("num6") : 0).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                orderPrivateCar.setLongDistance(new BigDecimal((d > rule.getDouble("num6")) ? d - rule.getDouble("num6") : 0).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                orderPrivateCar.setLongDistanceMoney(new BigDecimal(yt1 + yt2 + yt3).setScale(2, BigDecimal.ROUND_DOWN).doubleValue());//远途费
                orderPrivateCar.setParkMoney(parkingFee);//停车费
@@ -1348,25 +1360,24 @@
        e.setTime(date);
        e.set(Calendar.HOUR_OF_DAY, Integer.valueOf(rule.getString("num14").split(" - ")[1].split(":")[0]));
        e.set(Calendar.MINUTE, Integer.valueOf(rule.getString("num14").split(" - ")[1].split(":")[1]));
        //跨天处理
        if(s.getTimeInMillis() > e.getTimeInMillis()){
            e.add(Calendar.DAY_OF_YEAR, 1);
        }
        if(date.getTime() > s.getTimeInMillis() && date.getTime() < e.getTimeInMillis()){
            System.out.println("夜间服务处理逻辑");
            if(d > rule.getDouble("num6") && d < rule.getDouble("num7")){
                yt1 = rule.getDouble("num18") * d;
//                orderPrivateCar.setLongDistance(new BigDecimal((d > rule.getDouble("num6")) ? d - rule.getDouble("num6") : 0).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
            }
            if(d >  rule.getDouble("num9") && d < rule.getDouble("num10")){
                yt1 = rule.getDouble("num18") * rule.getDouble("num7");
                yt2 = rule.getDouble("num19") * (d - rule.getDouble("num9"));
//                orderPrivateCar.setLongDistance(new BigDecimal((d > rule.getDouble("num9")) ? d - rule.getDouble("num9") : 0).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
            }
            if(d > rule.getDouble("num12")){
                yt1 = rule.getDouble("num18") * rule.getDouble("num7");
                yt2 = rule.getDouble("num19") * (rule.getDouble("num10") - rule.getDouble("num9"));
                yt3 = rule.getDouble("num20") * (d - rule.getDouble("num12"));
//                orderPrivateCar.setLongDistance(new BigDecimal((d > rule.getDouble("num12")) ? d - rule.getDouble("num12") : 0).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
            }
//            amount = rule.getDouble("num15") + (d1 * rule.getDouble("num16")) + (t1 * rule.getDouble("num17")) + (w1 * waitMoney) + yt1 + yt2 + yt3;
            orderPrivateCar.setStartMileage(rule.getDouble("num2"));
            orderPrivateCar.setStartMoney(rule.getDouble("num15"));//起步价
            orderPrivateCar.setMileageKilometers(new BigDecimal(d1).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
@@ -1375,7 +1386,6 @@
            orderPrivateCar.setDurationMoney(new BigDecimal(t1 * rule.getDouble("num17")).setScale(2, BigDecimal.ROUND_DOWN).doubleValue());//时长费
            orderPrivateCar.setWait(new BigDecimal(w1).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
            orderPrivateCar.setWaitMoney(new BigDecimal(w1 * waitMoney).setScale(2, BigDecimal.ROUND_DOWN).doubleValue());//等待费
//            orderPrivateCar.setLongDistance(new BigDecimal((d > rule.getDouble("num6")) ? d - rule.getDouble("num6") : 0).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
            orderPrivateCar.setLongDistance(new BigDecimal((d > rule.getDouble("num6")) ? d - rule.getDouble("num6") : 0).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
            orderPrivateCar.setLongDistanceMoney(new BigDecimal(yt1 + yt2 + yt3).setScale(2, BigDecimal.ROUND_DOWN).doubleValue());//远途费
            orderPrivateCar.setParkMoney(parkingFee);//停车费
@@ -1388,7 +1398,8 @@
                    orderPrivateCar.getDurationMoney() + orderPrivateCar.getWaitMoney() + orderPrivateCar.getLongDistanceMoney();
            orderPrivateCar.setOrderMoney(amount+orderPrivateCar.getParkMoney()+orderPrivateCar.getRoadTollMoney());
        }else{
            System.out.println("非夜间服务处理逻辑");
            //非夜间处理逻辑
            //第一段高峰期
            Calendar s1 = Calendar.getInstance();
            s1.setTime(date);
            s1.set(Calendar.HOUR_OF_DAY, Integer.valueOf(rule.getString("num21").split(" - ")[0].split(":")[0]));
@@ -1398,7 +1409,12 @@
            e1.setTime(date);
            e1.set(Calendar.HOUR_OF_DAY, Integer.valueOf(rule.getString("num21").split(" - ")[1].split(":")[0]));
            e1.set(Calendar.MINUTE, Integer.valueOf(rule.getString("num21").split(" - ")[1].split(":")[1]));
            //跨天处理
            if(s1.getTimeInMillis() > e1.getTimeInMillis()){
                e1.add(Calendar.DAY_OF_YEAR, 1);
            }
            //第二段高峰期
            Calendar s2 = Calendar.getInstance();
            s2.setTime(date);
            s2.set(Calendar.HOUR_OF_DAY, Integer.valueOf(rule.getString("num22").split(" - ")[0].split(":")[0]));
@@ -1408,25 +1424,25 @@
            e2.setTime(date);
            e2.set(Calendar.HOUR_OF_DAY, Integer.valueOf(rule.getString("num22").split(" - ")[1].split(":")[0]));
            e2.set(Calendar.MINUTE, Integer.valueOf(rule.getString("num22").split(" - ")[1].split(":")[1]));
            //跨天处理
            if(s2.getTimeInMillis() > e2.getTimeInMillis()){
                e2.add(Calendar.DAY_OF_YEAR, 1);
            }
            //高峰时段处理逻辑
            if((date.getTime() > s1.getTimeInMillis() && date.getTime() < e1.getTimeInMillis()) || (date.getTime() > s2.getTimeInMillis() && date.getTime() < e2.getTimeInMillis())){
                System.out.println("高峰时段处理逻辑");
                if(d > rule.getDouble("num6") && d < rule.getDouble("num7")){
                    yt1 = rule.getDouble("num26") * d;
//                    orderPrivateCar.setLongDistance(new BigDecimal((d > rule.getDouble("num6")) ? d - rule.getDouble("num6") : 0).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                }
                if(d >  rule.getDouble("num9") && d < rule.getDouble("num10")){
                    yt1 = rule.getDouble("num26") * rule.getDouble("num7");
                    yt2 = rule.getDouble("num27") * (d - rule.getDouble("num9"));
//                    orderPrivateCar.setLongDistance(new BigDecimal((d > rule.getDouble("num9")) ? d - rule.getDouble("num9") : 0).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                }
                if(d > rule.getDouble("num12")){
                    yt1 = rule.getDouble("num26") * rule.getDouble("num7");
                    yt2 = rule.getDouble("num27") * (rule.getDouble("num10") - rule.getDouble("num9"));
                    yt3 = rule.getDouble("num28") * (d - rule.getDouble("num12"));
//                    orderPrivateCar.setLongDistance(new BigDecimal((d > rule.getDouble("num12")) ? d - rule.getDouble("num12") : 0).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                }
//                amount = rule.getDouble("num23") + (d1 * rule.getDouble("num24")) + (t1 * rule.getDouble("num25")) + (w1 * waitMoney) + yt1 + yt2 + yt3;
                orderPrivateCar.setStartMileage(rule.getDouble("num2"));
                orderPrivateCar.setStartMoney(rule.getDouble("num23"));//起步价
                orderPrivateCar.setMileageKilometers(new BigDecimal(d1).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
@@ -1435,7 +1451,6 @@
                orderPrivateCar.setDurationMoney(new BigDecimal(t1 * rule.getDouble("num25")).setScale(2, BigDecimal.ROUND_DOWN).doubleValue());//时长费
                orderPrivateCar.setWait(new BigDecimal(w1).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                orderPrivateCar.setWaitMoney(new BigDecimal(w1 * waitMoney).setScale(2, BigDecimal.ROUND_DOWN).doubleValue());//等待费
//                orderPrivateCar.setLongDistance(new BigDecimal((d > rule.getDouble("num6")) ? d - rule.getDouble("num6") : 0).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                orderPrivateCar.setLongDistance(new BigDecimal((d > rule.getDouble("num6")) ? d - rule.getDouble("num6") : 0).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                orderPrivateCar.setLongDistanceMoney(new BigDecimal(yt1 + yt2 + yt3).setScale(2, BigDecimal.ROUND_DOWN).doubleValue());//远途费
                orderPrivateCar.setParkMoney(parkingFee);//停车费
@@ -1452,20 +1467,16 @@
                //其他时间段的计算
                if(d > rule.getDouble("num6") && d < rule.getDouble("num7")){
                    yt1 = rule.getDouble("num8") * d;
//                    orderPrivateCar.setLongDistance(new BigDecimal((d > rule.getDouble("num6")) ? d - rule.getDouble("num6") : 0).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                }
                if(d >  rule.getDouble("num9") && d < rule.getDouble("num10")){
                    yt1 = rule.getDouble("num8") * rule.getDouble("num7");
                    yt2 = rule.getDouble("num11") * (d - rule.getDouble("num9"));
//                    orderPrivateCar.setLongDistance(new BigDecimal((d > rule.getDouble("num9")) ? d - rule.getDouble("num9") : 0).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                }
                if(d > rule.getDouble("num12")){
                    yt1 = rule.getDouble("num8") * rule.getDouble("num7");
                    yt2 = rule.getDouble("num11") * (rule.getDouble("num10") - rule.getDouble("num9"));
                    yt3 = rule.getDouble("num13") * (d - rule.getDouble("num12"));
//                    orderPrivateCar.setLongDistance(new BigDecimal((d > rule.getDouble("num12")) ? d - rule.getDouble("num12") : 0).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                }
//                amount = rule.getDouble("num1") + (d1 * rule.getDouble("num4")) + (t1 * rule.getDouble("num5")) + (w1 * waitMoney) + yt1 + yt2 + yt3;
                orderPrivateCar.setStartMileage(rule.getDouble("num2"));
                orderPrivateCar.setStartMoney(rule.getDouble("num1"));//起步价
                orderPrivateCar.setMileageKilometers(new BigDecimal(d1).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
@@ -1474,7 +1485,6 @@
                orderPrivateCar.setDurationMoney(new BigDecimal(t1 * rule.getDouble("num5")).setScale(2, BigDecimal.ROUND_DOWN).doubleValue());//时长费
                orderPrivateCar.setWait(new BigDecimal(w1).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                orderPrivateCar.setWaitMoney(new BigDecimal(w1 * waitMoney).setScale(2, BigDecimal.ROUND_DOWN).doubleValue());//等待费
//                orderPrivateCar.setLongDistance(new BigDecimal((d > rule.getDouble("num6")) ? d - rule.getDouble("num6") : 0).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                orderPrivateCar.setLongDistance(new BigDecimal((d > rule.getDouble("num6")) ? d - rule.getDouble("num6") : 0).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                orderPrivateCar.setLongDistanceMoney(new BigDecimal(yt1 + yt2 + yt3).setScale(2, BigDecimal.ROUND_DOWN).doubleValue());//远途费
                orderPrivateCar.setParkMoney(parkingFee);//停车费
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml
@@ -502,12 +502,12 @@
        (
        (select count(id) from t_order_private_car where driverId = a.id and state !=10 and to_days(insertTime) = to_days(now())) +
        (select count(id) from t_order_taxi where driverId = a.id and state !=10  and to_days(insertTime) = to_days(now())) +
        (select count(id) from t_order_cross_city where driverId = a.id state !=10  and to_days(insertTime) = to_days(now())) +
        (select count(id) from t_order_cross_city where driverId = a.id and state !=10  and to_days(insertTime) = to_days(now())) +
        (select count(id) from t_order_logistics where driverId = a.id and state in (6, 9) and to_days(insertTime) = to_days(now()))
        ) as dayNum,
        (
        (select count(id) from t_order_private_car where driverId = a.id and state !=10  and DATE_FORMAT(insertTime, '%Y%m') = DATE_FORMAT(now(), '%Y%m')) +
        (select count(id) from t_order_taxi where driverId = a.id and state state !=10  and DATE_FORMAT(insertTime, '%Y%m') = DATE_FORMAT(now(), '%Y%m')) +
        (select count(id) from t_order_taxi where driverId = a.id and state !=10  and DATE_FORMAT(insertTime, '%Y%m') = DATE_FORMAT(now(), '%Y%m')) +
        (select count(id) from t_order_cross_city where driverId = a.id and state !=10  and DATE_FORMAT(insertTime, '%Y%m') = DATE_FORMAT(now(), '%Y%m')) +
        (select count(id) from t_order_logistics where driverId = a.id and state in (6, 9) and DATE_FORMAT(insertTime, '%Y%m') = DATE_FORMAT(now(), '%Y%m'))
        ) as mouthNum,
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
@@ -1630,11 +1630,11 @@
    public DriverIndexVo queryHomeDataFromDriver(Integer uid) {
        DriverIndexVo driverIndexVo = new DriverIndexVo();
        // 获取快车订单
        List<OrderPrivateCar> orderPrivateCars = orderPrivateCarMapper.selectList(new EntityWrapper<OrderPrivateCar>().ne("state", 10).eq("driverId", uid).like("insertTime", LocalDate.now().toString()));
        List<OrderPrivateCar> orderPrivateCars = orderPrivateCarMapper.selectList(new EntityWrapper<OrderPrivateCar>().in("state", Arrays.asList(7, 8, 9)).eq("driverId", uid).like("insertTime", LocalDate.now().toString()));
        // 跨城订单
        List<OrderCrossCity> orderCrossCities = orderCrossCityMapper.selectList(new EntityWrapper<OrderCrossCity>().ne("state", 10).eq("driverId", uid).like("insertTime", LocalDate.now().toString()));
        List<OrderCrossCity> orderCrossCities = orderCrossCityMapper.selectList(new EntityWrapper<OrderCrossCity>().in("state", Arrays.asList(7, 8, 9)).eq("driverId", uid).like("insertTime", LocalDate.now().toString()));
        // 出租车订单
        List<OrderTaxi> orderTaxis = orderTaxiMapper.selectList(new EntityWrapper<OrderTaxi>().ne("state", 10).eq("driverId", uid).like("insertTime", LocalDate.now().toString()));
        List<OrderTaxi> orderTaxis = orderTaxiMapper.selectList(new EntityWrapper<OrderTaxi>().in("state", Arrays.asList(7, 8, 9)).eq("driverId", uid).like("insertTime", LocalDate.now().toString()));
        driverIndexVo.setTodayOrderNum(orderPrivateCars.size() + orderCrossCities.size() + orderTaxis.size());
DriverQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java
@@ -1,47 +1,47 @@
package com.stylefeng.guns;
import com.stylefeng.guns.modular.system.model.Driver;
import com.stylefeng.guns.modular.system.service.IDriverService;
import com.stylefeng.guns.modular.system.util.zhenglian.TokenUtil;
import com.stylefeng.guns.modular.system.util.zhenglian.model.TokenRequest;
import com.stylefeng.guns.modular.system.util.zhenglian.model.TradeTerminalInfo;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class GunsApplicationTest {
    @Autowired
    private MongoTemplate mongoTemplate;
    @Autowired
    private IDriverService driverService;
    @Test
    public void test() {
        Driver driver = driverService.selectById(14);
        TokenRequest tokenRequest = new TokenRequest();
        tokenRequest.setAppUserId(driver.getEmpId().toString());
        tokenRequest.setUserName(driver.getName());
        tokenRequest.setCertNo(driver.getIdCard());
        tokenRequest.setPhone(driver.getPhone());
        TradeTerminalInfo tradeTerminalInfo = new TradeTerminalInfo();
        tradeTerminalInfo.setIp("127.0.0.1");
        tradeTerminalInfo.setTerminal("1");
        tradeTerminalInfo.setMac("111-111-111-111");
        tokenRequest.setTradeTerminalInfo(tradeTerminalInfo);
        tokenRequest.setType("04");
        try {
            String token = TokenUtil.getToken(tokenRequest);
            System.err.println(token);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
}
//package com.stylefeng.guns;
//
//import com.stylefeng.guns.modular.system.model.Driver;
//import com.stylefeng.guns.modular.system.service.IDriverService;
//import com.stylefeng.guns.modular.system.util.zhenglian.TokenUtil;
//import com.stylefeng.guns.modular.system.util.zhenglian.model.TokenRequest;
//import com.stylefeng.guns.modular.system.util.zhenglian.model.TradeTerminalInfo;
//import org.junit.Test;
//import org.junit.runner.RunWith;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.boot.test.context.SpringBootTest;
//import org.springframework.data.mongodb.core.MongoTemplate;
//import org.springframework.test.context.junit4.SpringRunner;
//
//@RunWith(SpringRunner.class)
//@SpringBootTest
//public class GunsApplicationTest {
//
//    @Autowired
//    private MongoTemplate mongoTemplate;
//    @Autowired
//    private IDriverService driverService;
//
//
//    @Test
//    public void test() {
//
//        Driver driver = driverService.selectById(14);
//        TokenRequest tokenRequest = new TokenRequest();
//        tokenRequest.setAppUserId(driver.getEmpId().toString());
//        tokenRequest.setUserName(driver.getName());
//        tokenRequest.setCertNo(driver.getIdCard());
//        tokenRequest.setPhone(driver.getPhone());
//        TradeTerminalInfo tradeTerminalInfo = new TradeTerminalInfo();
//        tradeTerminalInfo.setIp("127.0.0.1");
//        tradeTerminalInfo.setTerminal("1");
//        tradeTerminalInfo.setMac("111-111-111-111");
//        tokenRequest.setTradeTerminalInfo(tradeTerminalInfo);
//        tokenRequest.setType("04");
//        try {
//            String token = TokenUtil.getToken(tokenRequest);
//            System.err.println(token);
//        } catch (Exception e) {
//            throw new RuntimeException(e);
//        }
//    }
//}
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/HomeController.java
@@ -399,7 +399,7 @@
        System.out.println(tDrivers.toString());
        for (TDriver tDriver : tDrivers) {
            Map<String, Object> d = new HashMap<>();
            String value = (String) redisTemplate.opsForValue().get("DRIVER" + tDriver.getId());
            String value = (String) redisTemplate.opsForValue().get("dache:DRIVER" + tDriver.getId());
            System.out.println(value);
            if (ToolUtil.isEmpty(value)) {
                continue;
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java
@@ -899,12 +899,12 @@
            }
        }
        tDriverService.updateById(driver);
        String value = (String) redisTemplate.opsForValue().get("DRIVER_" + driver.getPhone());
        String value = (String) redisTemplate.opsForValue().get("dache:DRIVER_" + driver.getPhone());
        if (ToolUtil.isNotEmpty(value)) {
            redisTemplate.delete(value);
        }
        redisTemplate.delete("DRIVER_" + driver.getId());
        redisTemplate.delete("DRIVER_" + driver.getPhone());
        redisTemplate.delete("dache:DRIVER_" + driver.getId());
        redisTemplate.delete("dache:DRIVER_" + driver.getPhone());
        return SUCCESS_TIP;
    }
    /**
@@ -938,12 +938,12 @@
                    }
                }).start();
    
                String value = (String) redisTemplate.opsForValue().get("DRIVER_" + tDriver.getPhone());
                String value = (String) redisTemplate.opsForValue().get("dache:DRIVER_" + tDriver.getPhone());
                if (ToolUtil.isNotEmpty(value)) {
                    redisTemplate.delete(value);
                }
                redisTemplate.delete("DRIVER_" + tDriver.getId());
                redisTemplate.delete("DRIVER_" + tDriver.getPhone());
                redisTemplate.delete("dache:DRIVER_" + tDriver.getId());
                redisTemplate.delete("dache:DRIVER_" + tDriver.getPhone());
            }
            tDriver.setRemark(remark);
            //审核通过,在中台添加司机账号
ManagementQYTTravel/guns-admin/src/main/resources/application-test.yml
@@ -60,7 +60,7 @@
spring:
  data:
    mongodb:
      host: 10.88.204.206,10.88.204.207,10.88.204.208
      host: 10.88.204.206
      port: 27009
      username: qn_riding_adm
      password: QN_riding@Prom2025
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
@@ -1,6 +1,8 @@
package com.stylefeng.guns.modular.api;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.stylefeng.guns.core.util.ToolUtil;
import com.stylefeng.guns.modular.system.model.Driver;
import com.stylefeng.guns.modular.system.service.IDriverService;
import com.stylefeng.guns.modular.system.service.IOrderEvaluateService;
@@ -13,16 +15,19 @@
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.data.geo.Point;
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.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
@@ -32,6 +37,7 @@
@Api
@RestController
@RequestMapping("")
@Slf4j
public class DriverController {
    @Autowired
@@ -42,6 +48,9 @@
    
    @Autowired
    private MongoTemplate mongoTemplate;
    @Resource
    private RedisTemplate<String, Object> redisTemplate;
@@ -142,20 +151,25 @@
        //mongodb查询附近5公里范围内的坐标
        Query query = Query.query(Criteria.where("point").nearSphere(new Point(Double.parseDouble(lon), Double.parseDouble(lat))).maxDistance(5000));
        List<DriverPosition> driverPositions = mongoTemplate.find(query, DriverPosition.class);
        log.info("地理空间检索出的数据:{}", JSON.toJSONString(driverPositions));
        List<Map<String, Object>> collect = new ArrayList<>();
        if(driverPositions.size() > 0){
            List<Integer> driverIds = driverPositions.stream().map(DriverPosition::getDriverId).collect(Collectors.toList());
            List<Driver> drivers = driverService.selectList(new EntityWrapper<Driver>().in("id", driverIds)
                    .eq("authState", 2).eq("state", 2));
            collect = drivers.stream().map(driver -> {
                Optional<DriverPosition> driverPosition = driverPositions.stream().filter(position -> position.getDriverId().equals(driver.getId())).findFirst();
                Map<String, Object> map = new HashMap<>();
                map.put("driverId", driver.getId());
                map.put("name", driver.getName());
                map.put("lot", driverPosition.isPresent() ? driverPosition.get().getPoint().getX() : "");
                map.put("lat", driverPosition.isPresent() ? driverPosition.get().getPoint().getY() : "");
                return map;
            }).collect(Collectors.toList());
                String value = (String) redisTemplate.opsForValue().get("dache:DRIVER" + String.valueOf(driver.getId()));
                if(ToolUtil.isNotEmpty(value)){
                    Optional<DriverPosition> driverPosition = driverPositions.stream().filter(position -> position.getDriverId().equals(driver.getId())).findFirst();
                    Map<String, Object> map = new HashMap<>();
                    map.put("driverId", driver.getId());
                    map.put("name", driver.getName());
                    map.put("lot", driverPosition.isPresent() ? driverPosition.get().getPoint().getX() : "");
                    map.put("lat", driverPosition.isPresent() ? driverPosition.get().getPoint().getY() : "");
                    return map;
                }
                return null;
            }).filter(Objects::nonNull).collect(Collectors.toList());
        }
        return ResultUtil.success(collect);
    }
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
Diff too large
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml
@@ -280,7 +280,7 @@
        state as state,
        oldState as oldState,
        thankYouFee
        from t_order_private_car where userId = #{uid} order by insertTime desc limit #{pageNum}, #{size}
        from t_order_private_car where userId = #{uid} and isGenerateRecoveryOrder = 0 order by insertTime desc limit #{pageNum}, #{size}
    </select>
@@ -584,11 +584,10 @@
    <select id="queryMyTripList" resultType="map">
        select
            id as orderId,
            rideType as rideType,
            DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i') as orderTime,
            DATE_FORMAT(travelTime, '%m月?d日 %H:%i') as time,
        select id                                        as orderId,
               rideType                                  as rideType,
               DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i') as orderTime,
               DATE_FORMAT(travelTime, '%m月?d日 %H:%i') as time,
        startAddress as startAddress,
        endAddress as endAddress,
        driverId as driverId,
@@ -604,7 +603,9 @@
        boardingTime,
        boardingLon,
        boardingLat
        from t_order_private_car where userId = #{uid}  and state in (8, 9)  order by insertTime desc limit #{pageNum}, #{size}
        from t_order_private_car
        where userId = #{uid} and state in (8, 9)
        order by insertTime desc limit #{pageNum}, #{size}
    </select>
    <select id="queryMyTripListAll" resultType="map">
        select
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java
@@ -488,6 +488,14 @@
     * 是否是追缴单(0=否,1=是)
     */
    private Integer recoveryOrder;
    /**
     * 是否生成追缴单(0=否,1=是)
     */
    private Integer isGenerateRecoveryOrder;
    /**
     * 原始订单id
     */
    private Integer oldOrderId;
    
    public String getPromotionUser() {
        return promotionUser;
@@ -1280,7 +1288,23 @@
    public void setPromotionActivityId(Long promotionActivityId) {
        this.promotionActivityId = promotionActivityId;
    }
    public Integer getIsGenerateRecoveryOrder() {
        return isGenerateRecoveryOrder;
    }
    public void setIsGenerateRecoveryOrder(Integer isGenerateRecoveryOrder) {
        this.isGenerateRecoveryOrder = isGenerateRecoveryOrder;
    }
    public Integer getOldOrderId() {
        return oldOrderId;
    }
    public void setOldOrderId(Integer oldOrderId) {
        this.oldOrderId = oldOrderId;
    }
    @Override public String toString() {
    return "OrderPrivateCar{" +
            "id=" + id +
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/EmailUtil.java
@@ -8,6 +8,7 @@
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import javax.mail.MessagingException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeUtility;
import java.io.File;
@@ -31,7 +32,14 @@
        MimeMessageHelper helper = new MimeMessageHelper(message, true);
        // 设置发件人(必须与配置的spring.mail.username一致)
        helper.setFrom(fromEmail);
        String nick="";
        try {
            nick=javax.mail.internet.MimeUtility.encodeText("贵人家园出行");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        // 设置发件人
        helper.setFrom(new InternetAddress(nick + " <" + fromEmail + ">"));
        // 设置收件人
        helper.setTo(to);
        // 设置邮件主题和内容
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java
@@ -220,6 +220,8 @@
                    BeanUtils.copyProperties(orderPrivateCar, orderPrivateCar1);
                    orderPrivateCar1.setId(null);
                    orderPrivateCar1.setRecoveryOrder(1);
                    orderPrivateCar1.setIsGenerateRecoveryOrder(0);
                    orderPrivateCar1.setOldOrderId(orderPrivateCar.getId());
                    
                    //修改原始订单为支付状态
                    orderPrivateCar.setState(9);
@@ -346,6 +348,8 @@
                    BeanUtils.copyProperties(orderTaxi, orderTaxi1);
                    orderTaxi1.setId(null);
                    orderTaxi1.setRecoveryOrder(1);
                    orderTaxi1.setIsGenerateRecoveryOrder(0);
                    orderTaxi1.setOldOrderId(orderTaxi.getId());
                    
                    //修改原始订单为支付状态
                    orderTaxi.setState(9);
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/mapping/OrderTaxiMapper.xml
@@ -148,7 +148,7 @@
        state as state,
        oldState as oldState,
        thankYouFee
        from t_order_taxi where userId = #{uid} order by insertTime desc limit #{pageNum}, #{size}
        from t_order_taxi where userId = #{uid} and isGenerateRecoveryOrder = 0 order by insertTime desc limit #{pageNum}, #{size}
    </select>
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/OrderTaxi.java
@@ -415,6 +415,14 @@
     * 是否是追缴单(0=否,1=是)
     */
    private Integer recoveryOrder;
    /**
     * 是否生成追缴单(0=否,1=是)
     */
    private Integer isGenerateRecoveryOrder;
    /**
     * 原始订单id
     */
    private Integer oldOrderId;
    
    public Long getPromotionActivityId() {
        return promotionActivityId;
@@ -1089,7 +1097,23 @@
    public void setRecoveryOrder(Integer recoveryOrder) {
        this.recoveryOrder = recoveryOrder;
    }
    public Integer getIsGenerateRecoveryOrder() {
        return isGenerateRecoveryOrder;
    }
    public void setIsGenerateRecoveryOrder(Integer isGenerateRecoveryOrder) {
        this.isGenerateRecoveryOrder = isGenerateRecoveryOrder;
    }
    public Integer getOldOrderId() {
        return oldOrderId;
    }
    public void setOldOrderId(Integer oldOrderId) {
        this.oldOrderId = oldOrderId;
    }
    @Override
    public String toString() {
        return "OrderTaxi{" +