Pu Zhibing
6 天以前 4c99ee7028c3fe58a2cd4b8273b22c75c45574fc
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
@@ -4,6 +4,7 @@
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.google.api.client.http.UrlEncodedParser;
import com.stylefeng.guns.core.util.MD5Util;
import com.stylefeng.guns.core.util.ToolUtil;
import com.stylefeng.guns.modular.CharteredCar.server.IOrderCharteredCarService;
import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity;
@@ -132,7 +133,7 @@
    
    /**
     * 获取正在进行中的订单
     * 获取正在sudo rm -rf的订单
     * @param request
     * @return
     */
@@ -186,6 +187,19 @@
                orderStatusWarpper.setOrderType(3);
                orderStatusWarpper.setState(orderCrossCity.getState());
//                orderStatusWarpper.setTripId(orderPrivateCar.getTripId());
                data.add(orderStatusWarpper);
            }
            List<OrderLogistics> orderLogistics = orderLogisticsService.selectList(new EntityWrapper<OrderLogistics>().eq("userId", uid)
                    .in("state", Arrays.asList(1, 2, 3, 4, 5, 6, 7, 11, 12)).eq("isDelete", 1));
            for(OrderLogistics orderLogistics1 : orderLogistics){
                if(orderLogistics1.getState() == 11){
                    orderLogistics1.setState(orderLogistics1.getOldState());
                }
                OrderStatusWarpper orderStatusWarpper = new OrderStatusWarpper();
                orderStatusWarpper.setOrderId(orderLogistics1.getId());
                orderStatusWarpper.setOrderType(4);
                orderStatusWarpper.setState(orderLogistics1.getState());
                orderStatusWarpper.setTripId(orderLogistics1.getTripId());
                data.add(orderStatusWarpper);
            }
            return ResultUtil.success(data);
@@ -662,31 +676,7 @@
    })
    public ResultUtil queryTrack_(Integer orderId, Integer orderType){
        try {
            List<Map<String, Object>> list = new ArrayList<>();
                    switch (orderType){
                case 1:
                    OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId);
                    Map<String, Object> map = new HashMap<>();
                    map.put("lon", orderPrivateCar.getStartLon());
                    map.put("lat", orderPrivateCar.getStartLat());
                    list.add(map);
                    map = new HashMap<>();
                    map.put("lon", orderPrivateCar.getEndLon());
                    map.put("lat", orderPrivateCar.getEndLat());
                    list.add(map);
                    break;
                case 4:
                    OrderLogistics orderLogistics = orderLogisticsService.selectById(orderId);
                    Map<String, Object> map1 = new HashMap<>();
                    map1.put("lon", orderLogistics.getStartLon());
                    map1.put("lat", orderLogistics.getStartLat());
                    list.add(map1);
                    map1 = new HashMap<>();
                    map1.put("lon", orderLogistics.getEndLon());
                    map1.put("lat", orderLogistics.getEndLat());
                    list.add(map1);
                    break;
            }
            List<Map<String, Object>> list = orderPositionService.queryTrack(orderId, orderType);
            return ResultUtil.success(list);
        }catch (Exception e){
            e.printStackTrace();
@@ -703,7 +693,7 @@
     */
    @ResponseBody
    @PostMapping("/base/order/sendOrderState")
    public ResultUtil cancelOrder(Integer id, Integer orderType){
    public ResultUtil cancelOrder(Integer id, Integer orderType, String from){
        try {
            Integer driverId = null;
            Integer userId = null;
@@ -715,7 +705,7 @@
                    userId = orderPrivateCar.getUserId();
                    state = orderPrivateCar.getState();
                    if(null != driverId){
                        pushUtil.pushOrderState(2, driverId, id, orderType, state, 0, "");
                        pushUtil.pushOrderState(2, driverId, id, orderType, state, 0, "", from);
                    }
                    break;
                case 2:
@@ -724,7 +714,7 @@
                    userId = orderTaxi.getUserId();
                    state = orderTaxi.getState();
                    if(null != driverId){
                        pushUtil.pushOrderState(2, driverId, id, orderType, state, 0, "");
                        pushUtil.pushOrderState(2, driverId, id, orderType, state, 0, "", from);
                    }
                    break;
                case 3:
@@ -735,7 +725,7 @@
                    if(orderCrossCity.getPayMoney() == null && state == 10){//支付的情况才推送取消
                        break;
                    }else{
                        pushUtil.pushOrderState(2, driverId, id, orderType, state, 0, "");
                        pushUtil.pushOrderState(2, driverId, id, orderType, state, 0, "", from);
                    }
                    break;
                case 4:
@@ -746,7 +736,7 @@
                    if(orderLogistics.getPayMoney() == null && state == 10){//支付的情况才推送取消
                        break;
                    }else{
                        pushUtil.pushOrderState(2, driverId, id, orderType, state, 0, "");
                        pushUtil.pushOrderState(2, driverId, id, orderType, state, 0, "", from);
                    }
                    break;
                case 5:
@@ -757,11 +747,11 @@
                    if(orderLogistics1.getPayMoney() == null && state == 10){//支付的情况才推送取消
                        break;
                    }else{
                        pushUtil.pushOrderState(2, driverId, id, orderType, state, 0, "");
                        pushUtil.pushOrderState(2, driverId, id, orderType, state, 0, "", from);
                    }
                    break;
            }
            pushUtil.pushOrderState(1, userId, id, orderType, state, 0, "");
            pushUtil.pushOrderState(1, userId, id, orderType, state, 0, "", from);
            return ResultUtil.success();
        }catch (Exception e){
            e.printStackTrace();
@@ -1044,6 +1034,13 @@
            if(null == uid){
                return ResultUtil.tokenErr();
            }
            String format = String.format("uid=%s&id=%s&orderType=%s&payType=%s&type=%s", uid, id, orderType, payType, type);
            String key = MD5Util.encrypt(format);
            String value = redisUtil.getValue(key);
            if(ToolUtil.isNotEmpty(value) && (System.currentTimeMillis() - Long.valueOf(value)) <= 1000){
                return ResultUtil.error(language == 1 ? "请勿重复操作" : language == 2 ? "Don't repeat the operation" : "Ne répétez pas l’opération");
            }
            redisUtil.setStrValue(key, System.currentTimeMillis() + "", 5);
            switch (orderType){
                case 1:
                    return orderPrivateCarService.cancleOrderPrivateCar(id, payType, bankCardId, cancleId, type, language);
@@ -1121,10 +1118,12 @@
            }
            Map<String, Object> map = new HashMap<>();
            Double payMoney = 0D;
            Integer companyId = null;
            switch (orderType){
                case 1:
                    map = orderPrivateCarService.queryBalance(orderId, uid);
                    OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId);
                    companyId = orderPrivateCar.getCompanyId();
                    payMoney = orderPrivateCar.getOrderMoney();
                    UserActivityDiscount1 query = userActivityDiscount1Mapper.query(orderPrivateCar.getCompanyId());
                    if(null != query){
@@ -1150,6 +1149,7 @@
                case 4:
                    map = orderLogisticsService.queryBalance(orderId, uid);
                    OrderLogistics orderLogistics = orderLogisticsService.selectById(orderId);
                    companyId = orderLogistics.getCompanyId();
                    payMoney = orderLogistics.getOrderMoney();
                    UserActivityDiscount1 query2 = userActivityDiscount1Mapper.query(orderLogistics.getCompanyId());
                    if(null != query2){
@@ -1169,7 +1169,12 @@
//                    map = orderLogisticsService.queryBalance(orderId, uid);
//                    break;
            }
            Double aDouble = userRedPacketRecordService.queryRemainingAmount(uid);
            List<UserRedPacketRecord> userRedPacketRecords = userRedPacketRecordService.selectList(new EntityWrapper<UserRedPacketRecord>()
                    .eq("companyId", companyId).eq("state", 1).eq("userId", uid));
            Double aDouble = 0D;
            if(userRedPacketRecords.size() > 0){
                aDouble = userRedPacketRecords.stream().mapToDouble(UserRedPacketRecord::getRemainingAmount).sum();
            }
            map.put("redTotal", aDouble);
            RedEnvelopePaymentSettings redEnvelopePaymentSettings = redEnvelopePaymentSettingsService.getRedEnvelopePaymentSettings();
            if(null == redEnvelopePaymentSettings){
@@ -1265,6 +1270,16 @@
            if(null == uid){
                return ResultUtil.tokenErr();
            }
            System.err.println("支付接口请求参数:payType=" + payType + "&bankCardId=" + bankCardId + "&orderId=" + orderId + "&orderType=" + orderType +
                    "&couponId=" + couponId + "&redDeduction=" + redDeduction + "&type=" + type + "&language=" + language);
            String format = String.format("uid=%s&payType=%s&orderId=%s&orderType=%s", uid, payType, orderId, orderType);
            String key = MD5Util.encrypt(format);
            String value = redisUtil.getValue(key);
            if(ToolUtil.isNotEmpty(value) && (System.currentTimeMillis() - Long.valueOf(value)) <= 1000){
                return ResultUtil.error(language == 1 ? "请勿重复操作" : language == 2 ? "Don't repeat the operation" : "Ne répétez pas l’opération");
            }
            redisUtil.setStrValue(key, System.currentTimeMillis() + "", 5);
            switch (orderType){
                case 1:
                    return orderPrivateCarService.payPrivateCarOrder(payType, bankCardId, orderId, couponId, redDeduction, type, language);
@@ -1417,6 +1432,7 @@
    @ResponseBody
    @PostMapping("/base/wxCancelOrderTaxi")
    public CallbackResponse wxCancelOrderTaxi(@RequestBody CallbackRequest callbackRequest){
        log.info("取消订单支付回调结果:{}", JSON.toJSONString(callbackRequest));
        CallbackResponse callbackResponse = new CallbackResponse();
        try {
            /**
@@ -1468,6 +1484,7 @@
        }catch (Exception e){
            e.printStackTrace();
        }
        log.info("取消订单支付回调处理结束:{}", JSON.toJSONString(callbackResponse));
        return callbackResponse;
    }
@@ -1519,6 +1536,7 @@
    @ResponseBody
    @PostMapping("/base/wxPayOrderTaxi")
    public CallbackResponse wxPayOrderTaxi(@RequestBody CallbackRequest callbackRequest){
        log.info("订单完成支付回调结果:{}", JSON.toJSONString(callbackRequest));
        CallbackResponse callbackResponse = new CallbackResponse();
        try {
            /**
@@ -1573,6 +1591,7 @@
        }catch (Exception e){
            e.printStackTrace();
        }
        log.info("订单完成支付回调处理结束:{}", JSON.toJSONString(callbackResponse));
        return callbackResponse;
    }
@@ -1769,9 +1788,11 @@
                return ResultUtil.tokenErr();
            }
            Double payMoney = 0D;
            Integer companyId = 1;
            switch (orderType){
                case 1:
                    OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId);
                    companyId = orderPrivateCar.getCompanyId();
                    Double orderMoney = orderPrivateCar.getOrderMoney();
                    if(null == orderMoney){
                        orderMoney = 0D;
@@ -1790,6 +1811,7 @@
                    break;
                case 4:
                    OrderLogistics orderLogistics = orderLogisticsService.selectById(orderId);
                    companyId = orderLogistics.getCompanyId();
                    Double orderMoney1 = orderLogistics.getOrderMoney();
                    if(null == orderMoney1){
                        orderMoney1 = 0D;
@@ -1807,9 +1829,10 @@
                    }
                    break;
            }
            Double aDouble = userRedPacketRecordService.queryRemainingAmount(uid);
            List<UserRedPacketRecord> userRedPacketRecords = userRedPacketRecordService.selectList(new EntityWrapper<UserRedPacketRecord>().eq("userId", uid)
                    .eq("state", 1).eq("companyId", companyId).gt("remainingAmount", 0).orderBy("insertTime", false));
            Map<String, Object> map = new HashMap<>();
            map.put("redTotal", aDouble);
            map.put("redTotal", userRedPacketRecords.stream().mapToDouble(UserRedPacketRecord::getRemainingAmount).sum());
            RedEnvelopePaymentSettings redEnvelopePaymentSettings = redEnvelopePaymentSettingsService.getRedEnvelopePaymentSettings();
            if(null == redEnvelopePaymentSettings){
                map.put("deductionAmount", 0D);