luo
2024-01-31 021640e69b32dbd9b88a538402671c47f280df9e
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
@@ -12,6 +12,7 @@
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.service.*;
@@ -19,8 +20,10 @@
import com.stylefeng.guns.modular.system.util.Tingg.model.*;
import com.stylefeng.guns.modular.system.warpper.*;
import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
import com.stylefeng.guns.modular.taxi.model.PaymentRecord;
import com.stylefeng.guns.modular.taxi.model.TransactionDetails;
import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService;
import com.stylefeng.guns.modular.taxi.service.ITransactionDetailsService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -91,6 +94,9 @@
    private ITransactionDetailsService transactionDetailsService;
    @Autowired
    private IPaymentRecordService paymentRecordService;
    @Autowired
    private IOrderCancelService orderCancelService;
    @Autowired
@@ -111,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){
@@ -178,7 +187,7 @@
            @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<OrderWarpper>> queryMyOrderList(Integer type, Integer pageNum, Integer size, HttpServletRequest request){
    public ResultUtil<List<OrderWarpper>> queryMyOrderList(Integer type, Integer pageNum, Integer size, Integer language, HttpServletRequest request){
        try {
            Integer uid = userInfoService.getUserIdFormRedis(request);
            if(null == uid){
@@ -187,19 +196,19 @@
            List<Map<String, Object>> list = null;
            switch (type){
                case 1:
                    list = orderPrivateCarService.queryMyOrderList(uid, pageNum, size);
                    list = orderPrivateCarService.queryMyOrderList(language, uid, pageNum, size);
                    break;
                case 2:
                    list = orderTaxiService.queryMyOrderList(uid, pageNum, size);
                    list = orderTaxiService.queryMyOrderList(language, uid, pageNum, size);
                    break;
                case 3:
                    list = orderCrossCityService.queryMyOrderList(uid, pageNum, size);
                    list = orderCrossCityService.queryMyOrderList(language, uid, pageNum, size);
                    break;
                case 4:
                    list = orderLogisticsService.queryMyOrderList(uid, pageNum, size);
                    list = orderLogisticsService.queryMyOrderList(uid, pageNum, size, language);
                    break;
                case 5:
                    list = orderCharteredCarService.queryMyOrderList(uid, pageNum, size);
                    list = orderCharteredCarService.queryMyOrderList(language, uid, pageNum, size);
                    break;
            }
            return ResultUtil.success(OrderWarpper.getOrderWarpper(list));
@@ -230,24 +239,24 @@
            if(null == uid){
                return ResultUtil.tokenErr();
            }
            String name = language == 1 ? "专车订单" : language == 2 ? "Private car order" : "Commande de voiture exclusive";
            String name = language == 1 ? "打车" : language == 2 ? "Ride" : "Course";
            pageNum = (pageNum - 1) * size;
            List<Map<String, Object>> maps = orderCancelService.queryCancel(uid, 2);
            List<Map<String, Object>> maps = orderCancelService.queryCancel(language, uid, 2);
            for (Map<String, Object> map : maps) {
                Integer orderType = Integer.valueOf(map.get("orderType").toString());
                if(1 == orderType){
                    map.put("name", language == 1 ? "专车订单取消" : language == 2 ? "Private car order cancelled" : "Annulation de commande de voiture exclusive");
                    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 ? "The small parts logistics order in the city has been cancelled" : "Annulation de commande pour la logistique de petites pièces dans la ville");
                    map.put("name", language == 1 ? "包裹订单取消" : language == 2 ? "Parcel order cancellation" : "Annulation de commande de livraison");
                }
            }
            List<Map<String, Object>> list = orderPrivateCarService.queryMyTravelRecord(uid);//专车
            List<Map<String, Object>> list = orderPrivateCarService.queryMyTravelRecord(language, uid);//专车
            for (Map<String, Object> map : list) {
                map.put("name", name);
            }
            name = language == 1 ? "市内小件物流" : language == 2 ? "Small parts logistics in the city" : "Logistique de petites pièces dans la ville";
            List<Map<String, Object>> list3 = orderLogisticsService.queryMyTravelRecord(uid);//小件物流
            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);
            }
@@ -258,7 +267,7 @@
            for(TransactionDetails transactionDetails1 : transactionDetails){
                Map<String, Object> map = new HashMap<>();
                map.put("money", transactionDetails1.getMoney());
                map.put("time", sdf.format(transactionDetails1.getInsertTime()));
                map.put("time", DateUtil.conversionFormat(language, sdf.format(transactionDetails1.getInsertTime())));
                map.put("name", "跨城订单取消退款");
                map.put("insertTime", Double.valueOf(transactionDetails1.getInsertTime().getTime() / 1000).intValue());
                list4.add(map);
@@ -314,7 +323,7 @@
            @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<OrderWarpper>> queryInvoiceOrder(Integer type, Integer orderType, Date startTime,
    public ResultUtil<List<OrderWarpper>> queryInvoiceOrder(Integer language, Integer type, Integer orderType, Date startTime,
                                                            Date endTime, Double startMoney, Double endMoney,
                                                            Integer pageNum, Integer size, HttpServletRequest request){
        pageNum = (pageNum - 1) * size;
@@ -327,7 +336,7 @@
            if(null != orderType){
                switch (orderType){
                    case 1://专车
                        list = orderPrivateCarService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid);
                        list = orderPrivateCarService.queryInvoiceOrder(language, type, startTime, endTime, startMoney, endMoney, uid);
                        break;
//                    case 2://出租车
//                        list = orderTaxiService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid);
@@ -336,7 +345,7 @@
//                        list = orderCrossCityService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid);
//                        break;
                    case 4://同城小件物流
                        list = orderLogisticsService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid, orderType);
                        list = orderLogisticsService.queryInvoiceOrder(language, type, startTime, endTime, startMoney, endMoney, uid, orderType);
                        break;
//                    case 5://跨城小件物流
//                        list = orderLogisticsService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid, orderType);
@@ -344,7 +353,7 @@
                }
            }else{
                //专车
                List<Map<String, Object>> maps = orderPrivateCarService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid);
                List<Map<String, Object>> maps = orderPrivateCarService.queryInvoiceOrder(language, type, startTime, endTime, startMoney, endMoney, uid);
                list.addAll(maps);
//                //出租车
//                List<Map<String, Object>> list1 = orderTaxiService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid);
@@ -353,7 +362,7 @@
//                List<Map<String, Object>> list2 = orderCrossCityService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid);
//                list.addAll(list2);
                //同城小件物流
                List<Map<String, Object>> list3 = orderLogisticsService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid, orderType);
                List<Map<String, Object>> list3 = orderLogisticsService.queryInvoiceOrder(language, type, startTime, endTime, startMoney, endMoney, uid, orderType);
                list.addAll(list3);
//                //跨城小件物流
//                List<Map<String, Object>> list4 = orderLogisticsService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid, orderType);
@@ -428,30 +437,39 @@
            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际,4=同城小件,5=跨城小件)", name = "orderType", required = true, dataType = "int"),
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil<OrderInfoWarpper> queryOrderInfo(Integer orderId, Integer orderType){
    public ResultUtil<OrderInfoWarpper> queryOrderInfo(Integer orderId, Integer orderType, Integer language){
        try {
            Map<String, Object> map = null;
            switch (orderType){
                case 1://专车
                    map = orderPrivateCarService.queryOrderInfo(orderId);
                    map = orderPrivateCarService.queryOrderInfo(language, orderId);
                    break;
                case 2://出租车
                    map = orderTaxiService.queryOrderInfo(orderId);
                    map = orderTaxiService.queryOrderInfo(language, orderId);
                    break;
                case 3://跨城
                    map = orderCrossCityService.queryOrderInfo(orderId);
                    map = orderCrossCityService.queryOrderInfo(language, orderId);
                    break;
                case 4://同城小件
                    map = orderLogisticsService.queryOrderInfo(orderId);
                    map = orderLogisticsService.queryOrderInfo(language, orderId);
                    break;
                case 5://跨城小件
                    map = orderLogisticsService.queryOrderInfo(orderId);
                    map = orderLogisticsService.queryOrderInfo(language, orderId);
                    break;
            }
            if(map.get("telX") != null){
                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");
            if(file.exists()){
                //读取文件(字符流)
@@ -487,31 +505,39 @@
            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际,4=同城小件,5=跨城小件)", name = "orderType", required = true, dataType = "int"),
    })
    public ResultUtil<OrderInfoWarpper> queryOrderInfo_(Integer orderId, Integer orderType){
    public ResultUtil<OrderInfoWarpper> queryOrderInfo_(Integer orderId, Integer orderType, Integer language){
        try {
            Map<String, Object> map = null;
            switch (orderType){
                case 1://专车
                    map = orderPrivateCarService.queryOrderInfo(orderId);
                    map = orderPrivateCarService.queryOrderInfo(language, orderId);
                    break;
                case 2://出租车
                    map = orderTaxiService.queryOrderInfo(orderId);
                    map = orderTaxiService.queryOrderInfo(language, orderId);
                    break;
                case 3://跨城
                    map = orderCrossCityService.queryOrderInfo(orderId);
                    map = orderCrossCityService.queryOrderInfo(language, orderId);
                    break;
                case 4://同城小件
                    map = orderLogisticsService.queryOrderInfo(orderId);
                    map = orderLogisticsService.queryOrderInfo(language, orderId);
                    break;
                case 5://跨城小件
                    map = orderLogisticsService.queryOrderInfo(orderId);
                    map = orderLogisticsService.queryOrderInfo(language, orderId);
                    break;
            }
            if(null != map.get("telX")){
                map.put("driverPhone", map.get("telX"));
            }
            return ResultUtil.success(OrderInfoWarpper.getOrderInfoWarpper(map));
            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();
            return ResultUtil.runErr();
@@ -535,27 +561,36 @@
            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际)", 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){
    public ResultUtil<OrderInfoWarpper> queryCancelPage(Integer orderId, Integer orderType, Integer language){
        try {
            Map<String, Object> map = null;
            switch (orderType) {
                case 1://专车
                    map = orderPrivateCarService.queryOrderInfo(orderId);
                    ResultUtil<BaseWarpper> res = orderPrivateCarService.queryCancleAmount(orderId);
                    map = orderPrivateCarService.queryOrderInfo(language, orderId);
                    ResultUtil<BaseWarpper> res = orderPrivateCarService.queryCancleAmount(orderId, language);
                    map.put("cancelPayMoney", res.getData().getAmount());
                    break;
                case 2://出租车
                    map = orderTaxiService.queryOrderInfo(orderId);
                    map = orderTaxiService.queryOrderInfo(language, orderId);
                    ResultUtil<BaseWarpper> re = orderTaxiService.queryCancleAmount(orderId);
                    map.put("cancelPayMoney", re.getData().getAmount());
                    break;
                case 3://跨城
                    map = orderCrossCityService.queryOrderInfo(orderId);
                    map = orderCrossCityService.queryOrderInfo(language, orderId);
                    ResultUtil<BaseWarpper> r = orderCrossCityService.queryCancleAmount(orderId);
                    map.put("cancelPayMoney", r.getData().getAmount());
                    break;
            }
            return ResultUtil.success(OrderInfoWarpper.getOrderInfoWarpper(map));
            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();
            return ResultUtil.runErr();
@@ -804,11 +839,11 @@
            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", 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){
    public ResultUtil<BaseWarpper> queryCancleAmount(Integer id, Integer orderType, Integer language){
        try {
            switch (orderType){
                case 1:
                    return orderPrivateCarService.queryCancleAmount(id);
                    return orderPrivateCarService.queryCancleAmount(id, language);
                case 2:
                    return orderTaxiService.queryCancleAmount(id);
                case 3:
@@ -869,6 +904,47 @@
            return ResultUtil.runErr();
        }
    }
    /**
     * 取消订单退款回调
     * @param request
     * @return
     */
    @ResponseBody
    @PostMapping("/base/orderCancelRefundCallback")
    public PayoutCallbackResponse orderCancelRefundCallback(@RequestBody PayoutCallbackRequest request){
        try {
            System.err.println("转账回调>>>>" + JSON.toJSONString(request));
            PayoutCallbackResponse payoutCallbackResponse = new PayoutCallbackResponse();
            AuthStatus authStatus = new AuthStatus();
            authStatus.setAuthStatusCode(131);
            authStatus.setAuthStatusDescription("Authentication was successful");
            payoutCallbackResponse.setAuthStatus(authStatus);
            Results results = new Results();
            PayoutPacket packet = request.getPayload().getPacket();
            String statusCode = packet.getStatusCode();
            String beepTransactionID = packet.getBeepTransactionID();
            String payerTransactionID = packet.getPayerTransactionID();
            String id = payerTransactionID.substring(17);
            OrderCancel orderCancel = orderCancelService.selectById(id);
            OrderLogistics orderLogistics = orderLogisticsService.selectById(orderCancel.getOrderId());
            PaymentRecord query = paymentRecordService.query(1, orderLogistics.getUserId(), 1, orderLogistics.getId(), orderLogistics.getType(), 1, 2);
            transactionDetailsService.saveData(orderLogistics.getUserId(), "包裹取消退款", query.getAmount(), 1, 1, 1, 4, orderLogistics.getId());
            results.setBeepTransactionID(beepTransactionID);
            results.setPayerTransactionID(payerTransactionID);
            results.setStatusCode("188");
            results.setStatusDescription("Response was received");
            payoutCallbackResponse.setResults(results);
            return payoutCallbackResponse;
        }catch (Exception e){
            e.printStackTrace();
            return null;
        }
    }
@@ -1012,7 +1088,7 @@
            @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 queryCoupon(Integer orderId, Integer orderType, Integer pageNum, Integer size, HttpServletRequest request){
    public ResultUtil queryCoupon(Integer language, Integer orderId, Integer orderType, Integer pageNum, Integer size, HttpServletRequest request){
        try {
            Integer uid = userInfoService.getUserIdFormRedis(request);
            if(null == uid){
@@ -1021,7 +1097,7 @@
            List<Map<String, Object>> list = new ArrayList<>();
            switch (orderType){
                case 1:
                    list = orderPrivateCarService.queryCoupon(orderId, uid, pageNum, size);
                    list = orderPrivateCarService.queryCoupon(language, orderId, uid, pageNum, size);
                    break;
//                case 2:
//                    list = orderTaxiService.queryCoupon(orderId, uid, pageNum, size);
@@ -1184,6 +1260,7 @@
    @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){