zhibing.pu
2024-04-22 b8d9a9cca2e1894ddc8d56576b9bb2ecbee659c4
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
@@ -11,10 +11,7 @@
import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService;
import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
import com.stylefeng.guns.modular.system.model.Driver;
import com.stylefeng.guns.modular.system.model.OrderCancel;
import com.stylefeng.guns.modular.system.model.OrderPosition;
import com.stylefeng.guns.modular.system.model.UserInfo;
import com.stylefeng.guns.modular.system.model.*;
import com.stylefeng.guns.modular.system.service.*;
import com.stylefeng.guns.modular.system.util.*;
import com.stylefeng.guns.modular.system.util.Tingg.model.*;
@@ -36,6 +33,7 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
@@ -81,9 +79,6 @@
    @Autowired
    private IOrderCrossCityService orderCrossCityService;
    /*@Autowired
    private ICBCPayUtil icbcPayUtil;*/
    @Autowired
    private IOrderLogisticsService orderLogisticsService;
@@ -101,10 +96,15 @@
    @Autowired
    private PayMoneyUtil payMoneyUtil;
    @Autowired
    private IRedEnvelopePaymentSettingsService redEnvelopePaymentSettingsService;
    @Value("${filePath}")
    private String filePath;
    @Autowired
    private IUserRedPacketRecordService userRedPacketRecordService;
    /**
     * 获取正在进行中的订单
@@ -117,12 +117,15 @@
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil<List<OrderStatusWarpper>> queryServingOrder(HttpServletRequest request){
    public ResultUtil<List<OrderStatusWarpper>> queryServingOrder(Integer language, HttpServletRequest request){
        try {
            Integer uid = userInfoService.getUserIdFormRedis(request);
            if(null == uid){
                return ResultUtil.tokenErr();
            }
            UserInfo userInfo = userInfoService.selectById(uid);
            userInfo.setLanguage(language);
            userInfoService.updateById(userInfo);
            List<OrderStatusWarpper> data = new ArrayList<>();
            List<OrderPrivateCar> orderPrivateCars = orderPrivateCarService.queryOrder(uid, 1, 2, 3, 4, 5, 6, 7, 11, 12);
            for(OrderPrivateCar orderPrivateCar : orderPrivateCars){
@@ -224,13 +227,13 @@
     */
    @ResponseBody
    @PostMapping("/api/order/queryMyTravelRecord")
    @ApiOperation(value = "获取消费记录", tags = {"用户端-个人中心"}, notes = "")
    @ApiOperation(value = "获取消费记录【2.0】", tags = {"用户端-个人中心"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "页码(首页1)", name = "pageNum", required = true, dataType = "int"),
            @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"),
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil<List<TravelRecordWarpper>> queryMyTravelRecord(Integer pageNum, Integer size, Integer language, HttpServletRequest request){
    public ResultUtil<TravelRecordWarpper> queryMyTravelRecord(Integer pageNum, Integer size, Integer language, HttpServletRequest request){
        try {
            Integer uid = userInfoService.getUserIdFormRedis(request);
            if(null == uid){
@@ -245,14 +248,14 @@
                    map.put("name", language == 1 ? "打车订单取消" : language == 2 ? "Ride order cancelled" : "Commande de trajet annulée");
                }
                if(4 == orderType){
                    map.put("name", language == 1 ? "包裹订单取消" : language == 2 ? "Parcel order cancellation" : "Annulation de commande de colis");
                    map.put("name", language == 1 ? "包裹订单取消" : language == 2 ? "Parcel order cancellation" : "Annulation de commande de livraison");
                }
            }
            List<Map<String, Object>> list = orderPrivateCarService.queryMyTravelRecord(language, uid);//专车
            for (Map<String, Object> map : list) {
                map.put("name", name);
            }
            name = language == 1 ? "包裹" : language == 2 ? "Package" : "Livraison";
            name = language == 1 ? "包裹" : language == 2 ? "Delivery" : "Livraison";
            List<Map<String, Object>> list3 = orderLogisticsService.queryMyTravelRecord(language, uid);//小件物流
            for (Map<String, Object> map : list3) {
                map.put("name", name);
@@ -275,8 +278,10 @@
            list.addAll(list3);
//            list.addAll(list4);
            List<TravelRecordWarpper> orderWarpper = TravelRecordWarpper.getTravelRecordWarpper(list);
            List<TravelRecordListWarpper> orderWarpper = TravelRecordListWarpper.getTravelRecordWarpper(list);
            double sum = orderWarpper.stream().mapToDouble(TravelRecordListWarpper::getMoney).sum();
            //分页
            if(orderWarpper.size() >= (pageNum + 1) * size){
                orderWarpper = orderWarpper.subList(pageNum, pageNum + size);
@@ -285,7 +290,10 @@
            }else{
                orderWarpper = new ArrayList<>();
            }
            return ResultUtil.success(orderWarpper);
            TravelRecordWarpper travelRecordWarpper = new TravelRecordWarpper();
            travelRecordWarpper.setList(orderWarpper);
            travelRecordWarpper.setTotal(sum);
            return ResultUtil.success(travelRecordWarpper);
        }catch (Exception e){
            e.printStackTrace();
            return ResultUtil.runErr();
@@ -428,7 +436,7 @@
     */
    @ResponseBody
    @PostMapping("/api/order/queryOrderInfo")
    @ApiOperation(value = "获取服务中的详情数据【1.0】", tags = {"用户端-服务中"}, notes = "")
    @ApiOperation(value = "获取服务中的详情数据【2.0】", tags = {"用户端-服务中"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际,4=同城小件,5=跨城小件)", name = "orderType", required = true, dataType = "int"),
@@ -458,16 +466,8 @@
                map.put("driverPhone", map.get("telX"));
            }
            OrderInfoWarpper orderInfoWarpper = OrderInfoWarpper.getOrderInfoWarpper(map);
            String driverName = orderInfoWarpper.getDriverName();
            if(language == 2){
                driverName = "Master " + driverName.replace("师傅", "");
            }
            if(language == 3){
                driverName = "Maître " + driverName.replace("师傅", "");
            }
            orderInfoWarpper.setDriverName(driverName);
            File file = new File(filePath + orderId + "_1.txt");
            File file = new File(filePath + orderId + "_" + orderType + ".txt");
            if(file.exists()){
                //读取文件(字符流)
                BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF-8"));
@@ -526,14 +526,14 @@
                map.put("driverPhone", map.get("telX"));
            }
            OrderInfoWarpper orderInfoWarpper = OrderInfoWarpper.getOrderInfoWarpper(map);
            String driverName = orderInfoWarpper.getDriverName();
            if(language == 2){
                driverName = "Master " + driverName.replace("师傅", "");
            }
            if(language == 3){
                driverName = "Maître " + driverName.replace("师傅", "");
            }
            orderInfoWarpper.setDriverName(driverName);
//            String driverName = orderInfoWarpper.getDriverName();
//            if(language == 2){
//                driverName = "Master " + driverName.replace("师傅", "");
//            }
//            if(language == 3){
//                driverName = "Maître " + driverName.replace("师傅", "");
//            }
//            orderInfoWarpper.setDriverName(driverName);
            return ResultUtil.success(orderInfoWarpper);
        }catch (Exception e){
            e.printStackTrace();
@@ -555,7 +555,7 @@
    @ApiOperation(value = "获取订单取消支付页面详情", tags = {"用户端-服务中"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际)", name = "orderType", required = true, dataType = "int"),
            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际,4=同城小件物流)", name = "orderType", required = true, dataType = "int"),
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil<OrderInfoWarpper> queryCancelPage(Integer orderId, Integer orderType, Integer language){
@@ -577,16 +577,13 @@
                    ResultUtil<BaseWarpper> r = orderCrossCityService.queryCancleAmount(orderId);
                    map.put("cancelPayMoney", r.getData().getAmount());
                    break;
                case 4://同城小件物流
                    map = orderLogisticsService.queryOrderInfo(language, orderId);
                    ResultUtil<BaseWarpper> r1 = orderLogisticsService.queryCancleAmount(orderId, language);
                    map.put("cancelPayMoney", r1.getData().getAmount());
                    break;
            }
            OrderInfoWarpper orderInfoWarpper = OrderInfoWarpper.getOrderInfoWarpper(map);
            String driverName = orderInfoWarpper.getDriverName();
            if(language == 2){
                driverName = "Master " + driverName.replace("师傅", "");
            }
            if(language == 3){
                driverName = "Maître " + driverName.replace("师傅", "");
            }
            orderInfoWarpper.setDriverName(driverName);
            return ResultUtil.success(orderInfoWarpper);
        }catch (Exception e){
            e.printStackTrace();
@@ -833,7 +830,7 @@
    @ApiOperation(value = "获取取消订单需要支付的费用金额", tags = {"用户端-出租车", "用户端-专车"}, notes = "返回金额为0则不需要支付")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "订单id", name = "id", required = true, dataType = "int"),
            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"),
            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城, 4=同城小件物流)", name = "orderType", required = true, dataType = "int"),
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil<BaseWarpper> queryCancleAmount(Integer id, Integer orderType, Integer language){
@@ -845,6 +842,8 @@
                    return orderTaxiService.queryCancleAmount(id);
                case 3:
                    return orderCrossCityService.queryCancleAmount(id);
                case 4:
                    return orderLogisticsService.queryCancleAmount(id, language);
            }
            return ResultUtil.success();
        }catch (Exception e){
@@ -866,16 +865,19 @@
     */
    @ResponseBody
    @PostMapping("/api/taxi/addCancle")
    @ApiOperation(value = "添加取消记录", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "")
    @ApiOperation(value = "添加取消记录【2.0】", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "订单id", name = "id", required = true, dataType = "int"),
            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"),
            @ApiImplicitParam(value = "取消原因", name = "reason", required = true, dataType = "string"),
            @ApiImplicitParam(value = "当前经度", name = "lon", required = true, dataType = "Double"),
            @ApiImplicitParam(value = "当前纬度", name = "lat", required = true, dataType = "Double"),
            @ApiImplicitParam(value = "详细地址", name = "address", required = true, dataType = "string"),
            @ApiImplicitParam(value = "备注", name = "remark", required = false, dataType = "string"),
            @ApiImplicitParam(value = "语言类型(1=简体中文,2=英语,3=法语)", name = "language", required = false, dataType = "int"),
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil addCancle(Integer id, Integer orderType, String reason, String remark, Integer language, HttpServletRequest request){
    public ResultUtil addCancle(Integer id, Integer orderType, String reason, String remark, Double lon, Double lat, String address, Integer language, HttpServletRequest request){
        try {
            Integer uid = userInfoService.getUserIdFormRedis(request);
            if(null == uid){
@@ -883,13 +885,13 @@
            }
            switch (orderType){
                case 1:
                    return orderPrivateCarService.addCancle(id, reason, remark, uid, language);
                    return orderPrivateCarService.addCancle(id, reason, remark, uid, lon, lat, address, language);
//                case 2:
//                    return orderTaxiService.addCancle(id, reason, remark, uid);
//                case 3:
//                    return orderCrossCityService.addCancle(id, reason, remark, uid);
                case 4:
                    return orderLogisticsService.addCancle(id, reason, remark, uid, language);
                    return orderLogisticsService.addCancle(id, reason, remark, uid, lon, lat, address, language);
//                case 5:
//                    return orderLogisticsService.addCancle(id, reason, remark, uid);
//                case 6:
@@ -953,10 +955,10 @@
     */
    @ResponseBody
    @PostMapping("/api/taxi/cancleOrderTaxi")
    @ApiOperation(value = "取消操作支付【1.1】", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "")
    @ApiOperation(value = "取消操作支付【1.1】", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城", "用户端-小件物流"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "订单id", name = "id", required = true, dataType = "int"),
            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"),
            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城,4=同城小件物流)", name = "orderType", required = true, dataType = "int"),
            @ApiImplicitParam(value = "支付方式(1=手机支付,2=银行卡支付,3=余额)", name = "payType", required = true, dataType = "int"),
            @ApiImplicitParam(value = "银行卡id", name = "bankCardId", required = false, dataType = "int"),
            @ApiImplicitParam(value = "取消单id(取消操作返回)", name = "cancleId", required = false, dataType = "int"),
@@ -976,6 +978,8 @@
//                    return orderTaxiService.cancleOrderTaxi(id, payType, cancleId, type);
//                case 3:
//                    return orderCrossCityService.cancleOrderCrossCity(id, payType, cancleId, type);
                case 4:
                    return orderLogisticsService.cancleOrderPrivateCar(id, payType, bankCardId, cancleId, type, language);
            }
            return ResultUtil.success();
        }catch (Exception e){
@@ -996,21 +1000,23 @@
     */
    @ResponseBody
    @PostMapping("/api/taxi/complaintService")
    @ApiOperation(value = "添加投诉操作", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "")
    @ApiOperation(value = "添加投诉操作【2.0】", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城", "用户端-小件物流"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城,6=包车)", name = "orderType", required = true, dataType = "int"),
            @ApiImplicitParam(value = "司机id", name = "driverId", required = true, dataType = "int"),
            @ApiImplicitParam(value = "投诉原因", name = "reason", required = true, dataType = "String"),
            @ApiImplicitParam(value = "投诉描述", name = "description", required = true, dataType = "String"),
            @ApiImplicitParam(value = "语言类型(1=简体中文,2=英语,3=法语)", name = "language", required = false, dataType = "int"),
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil complaintService(Integer driverId, String reason, String description, Integer language, HttpServletRequest request){
    public ResultUtil complaintService(Integer orderId, Integer orderType, Integer driverId, String reason, String description, Integer language, HttpServletRequest request){
        try {
            Integer uid = userInfoService.getUserIdFormRedis(request);
            if(null == uid){
                return ResultUtil.tokenErr();
            }
            complaintService.saveData(driverId, reason, description, uid, language);
            complaintService.saveData(orderId, orderType, driverId, reason, description, uid, language);
            return ResultUtil.success();
        }catch (Exception e){
            e.printStackTrace();
@@ -1077,10 +1083,10 @@
     */
    @ResponseBody
    @PostMapping("/api/taxi/queryCoupon")
    @ApiOperation(value = "获取支付页面的优惠券列表", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "")
    @ApiOperation(value = "获取支付页面的优惠券列表", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城", "用户端-小件物流"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"),
            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城,4=小件物流)", name = "orderType", required = true, dataType = "int"),
            @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"),
            @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"),
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
@@ -1102,9 +1108,9 @@
//                case 3:
//                    list = orderCrossCityService.queryCoupon(orderId, uid, pageNum, size);
//                    break;
//                case 4:
//                    list = orderLogisticsService.queryCoupon(orderId, uid, pageNum, size);
//                    break;
                case 4:
                    list = orderLogisticsService.queryCoupon(language,orderId, uid, pageNum, size);
                    break;
//                case 5:
//                    list = orderLogisticsService.queryCoupon(orderId, uid, pageNum, size);
//                    break;
@@ -1128,17 +1134,18 @@
     */
    @ResponseBody
    @PostMapping("/api/taxi/payTaxiOrder")
    @ApiOperation(value = "订单完成支付订单操作【1.1】", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城", "用户端-小件物流"}, notes = "")
    @ApiOperation(value = "订单完成支付订单操作【2.0】", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城", "用户端-小件物流"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "支付方式(1=手机支付,2=银行卡支付,3=余额,4=线下支付)", name = "payType", required = true, dataType = "int"),
            @ApiImplicitParam(value = "银行卡id", name = "bankCardId", required = false, dataType = "int"),
            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城,4=同城小件物流,5=跨城小件物流)", name = "orderType", required = true, dataType = "int"),
            @ApiImplicitParam(value = "优惠券id", name = "couponId", required = false, dataType = "int"),
            @ApiImplicitParam(value = "是否红包抵扣(0=否,1=是)", name = "redDeduction", required = false, dataType = "int"),
            @ApiImplicitParam(value = "支付端(1=用户APP端,2=司机APP端,3=用户小程序端)", name = "type", required = true, dataType = "int"),
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil payTaxiOrder(Integer payType, Integer bankCardId, Integer orderId, Integer orderType, Integer couponId, Integer type, Integer language, HttpServletRequest request){
    public ResultUtil payTaxiOrder(Integer payType, Integer bankCardId, Integer orderId, Integer orderType, Integer couponId, Integer redDeduction, Integer type, Integer language, HttpServletRequest request){
        try {
            Integer uid = userInfoService.getUserIdFormRedis(request);
            if(null == uid){
@@ -1146,13 +1153,13 @@
            }
            switch (orderType){
                case 1:
                    return orderPrivateCarService.payPrivateCarOrder(payType, bankCardId, orderId, couponId, type, language);
                    return orderPrivateCarService.payPrivateCarOrder(payType, bankCardId, orderId, couponId, redDeduction, type, language);
//                case 2:
//                    return orderTaxiService.payTaxiOrder(payType, orderId, couponId, type);
//                case 3:
//                    return orderCrossCityService.payCrossCityOrder(payType, orderId, couponId, type);
                case 4:
                    return orderLogisticsService.payLogisticsOrder(payType, bankCardId, orderId, type, language);
                    return orderLogisticsService.payLogisticsOrder(payType, bankCardId, orderId,couponId, redDeduction, type, language);
//                case 5:
//                    return orderLogisticsService.payLogisticsOrder(payType, orderId, type, language);
            }
@@ -1174,10 +1181,10 @@
     */
    @ResponseBody
    @PostMapping("/api/taxi/orderEvaluate")
    @ApiOperation(value = "订单完成后添加评价操作", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "")
    @ApiOperation(value = "订单完成后添加评价操作【2.0】", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城", "用户端-小件物流"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"),
            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城,4=小件物流)", name = "orderType", required = true, dataType = "int"),
            @ApiImplicitParam(value = "评分", name = "fraction", required = true, dataType = "int"),
            @ApiImplicitParam(value = "评价内容", name = "content", required = false, dataType = "String"),
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
@@ -1202,6 +1209,11 @@
                        orderCrossCity.setState(9);
                        orderCrossCityService.updateById(orderCrossCity);
                        break;
                    case 4:
                        OrderLogistics orderLogistics = orderLogisticsService.selectById(orderId);
                        orderLogistics.setState(9);
                        orderLogisticsService.updateById(orderLogistics);
                        break;
                }
            }
            return resultUtil.getCode() == 200 ? ResultUtil.success() : resultUtil;
@@ -1220,10 +1232,10 @@
     */
    @ResponseBody
    @PostMapping("/api/taxi/queryRedMoney")
    @ApiOperation(value = "评论成功后获取红包金额", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "")
    @ApiOperation(value = "评论成功后获取红包金额", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城", "用户端-小件物流"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"),
            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城,4=小件物流)", name = "orderType", required = true, dataType = "int"),
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil<BaseWarpper> queryRedMoney(Integer orderId, Integer orderType){
@@ -1235,6 +1247,8 @@
                    return orderTaxiService.queryRedMoney(orderId);
                case 3:
                    return orderCrossCityService.queryRedMoney(orderId);
                case 4:
                    return orderLogisticsService.queryRedMoney(orderId);
            }
            return ResultUtil.success();
        }catch (Exception e){
@@ -1253,10 +1267,11 @@
     */
    @ResponseBody
    @PostMapping("/api/taxi/shareRedEnvelope")
    @ApiOperation(value = "分享成功后添加红包操作", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "")
    @ApiOperation(value = "分享成功后添加红包操作", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城", "用户端-小件物流"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
            @ApiImplicitParam(value = "订单类型", name = "orderType", required = true, dataType = "int"),
            @ApiImplicitParam(value = "语言", name = "language", required = true, dataType = "int"),
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil shareRedEnvelope(Integer orderId, Integer orderType, Integer language){
@@ -1268,6 +1283,8 @@
                    return orderTaxiService.shareRedEnvelope(orderId);
                case 3:
                    return orderCrossCityService.shareRedEnvelope(orderId);
                case 4:
                    return orderLogisticsService.shareRedEnvelope(orderId, language);
            }
            return ResultUtil.success();
        }catch (Exception e){
@@ -1317,6 +1334,9 @@
//                        case 3:
//                            orderCrossCityService.payCancelOrderCrossCity(id, order_id, 1);
//                            break;
                        case 4:
                            orderLogisticsService.payCancelOrderPrivateCar(id, order_id, language);
                            break;
                    }
                    callbackResponse.setCheckout_request_id(order_id);
                    callbackResponse.setMerchant_transaction_id(out_trade_no);
@@ -1591,4 +1611,75 @@
        payoutCallbackResponse.setResults(results);
        return payoutCallbackResponse;
    }
    @ResponseBody
    @PostMapping("/api/taxi/updateEndAddress")
    @ApiOperation(value = "修改目的地【2.0】", tags = {"用户端-专车", "用户端-小件物流"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
            @ApiImplicitParam(value = "订单类型", name = "orderType", required = true, dataType = "int"),
            @ApiImplicitParam(value = "终点经度", name = "endLon", required = true, dataType = "String"),
            @ApiImplicitParam(value = "终点纬度", name = "endLat", required = true, dataType = "String"),
            @ApiImplicitParam(value = "终点地址", name = "endAddress", required = true, dataType = "String"),
            @ApiImplicitParam(value = "语言", name = "language", required = true, dataType = "int"),
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil updateEndAddress(Integer orderId, Integer orderType, String endLon, String endLat, String endAddress){
        switch (orderType){
            case 1:
                orderPrivateCarService.updateEndAddress(orderId, endLon, endLat, endAddress);
                break;
            case 4:
                orderLogisticsService.updateEndAddress(orderId, endLon, endLat, endAddress);
                break;
        }
        return ResultUtil.success();
    }
    @ResponseBody
    @PostMapping("/api/taxi/redEnvelopeDeductionAmount")
    @ApiOperation(value = "获取支付页红包抵扣金额【2.0】", tags = {"用户端-专车", "用户端-小件物流"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
            @ApiImplicitParam(value = "订单类型", name = "orderType", required = true, dataType = "int"),
            @ApiImplicitParam(value = "语言", name = "language", required = true, dataType = "int"),
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil redEnvelopeDeductionAmount(Integer orderId, Integer orderType, HttpServletRequest request){
        try {
            Integer uid = userInfoService.getUserIdFormRedis(request);
            if(null == uid){
                return ResultUtil.tokenErr();
            }
            Double payMoney = 0D;
            switch (orderType){
                case 1:
                    OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId);
                    payMoney = orderPrivateCar.getPayMoney();
                    break;
                case 4:
                    OrderLogistics orderLogistics = orderLogisticsService.selectById(orderId);
                    payMoney = orderLogistics.getPayMoney();
                    break;
            }
            Double aDouble = userRedPacketRecordService.queryRemainingAmount(uid);
            Map<String, Object> map = new HashMap<>();
            map.put("redTotal", aDouble);
            RedEnvelopePaymentSettings redEnvelopePaymentSettings = redEnvelopePaymentSettingsService.getRedEnvelopePaymentSettings();
            if(null == redEnvelopePaymentSettings){
                map.put("deductionAmount", 0D);
                return ResultUtil.success(map);
            }
            Double deductionAmount = new BigDecimal(payMoney).multiply(redEnvelopePaymentSettings.getDeductionRatio().divide(new BigDecimal(100))).doubleValue();
            map.put("deductionAmount", deductionAmount);
            return ResultUtil.success(map);
        }catch (Exception e){
            e.printStackTrace();
            return ResultUtil.runErr();
        }
    }
}