puzhibing
2023-07-05 7a14e1592dd0c2cfd6cd4e8b11f95c9f46f2ffe7
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
@@ -880,16 +880,17 @@
     */
    @ResponseBody
    @PostMapping("/api/taxi/cancleOrderTaxi")
    @ApiOperation(value = "取消操作支付", 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=线上支付,3=余额)", name = "payType", 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"),
            @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 cancleOrderTaxi(Integer id, Integer orderType, Integer payType, Integer cancleId, Integer type, Integer language, HttpServletRequest request){
    public ResultUtil cancleOrderTaxi(Integer id, Integer orderType, Integer payType, Integer bankCardId, Integer cancleId, Integer type, Integer language, HttpServletRequest request){
        try {
            Integer uid = userInfoService.getUserIdFormRedis(request);
            if(null == uid){
@@ -897,7 +898,7 @@
            }
            switch (orderType){
                case 1:
                    return orderPrivateCarService.cancleOrderPrivateCar(id, payType, "user_" + uid, cancleId, type, language);
                    return orderPrivateCarService.cancleOrderPrivateCar(id, payType, bankCardId, cancleId, type, language);
//                case 2:
//                    return orderTaxiService.cancleOrderTaxi(id, payType, cancleId, type);
//                case 3:
@@ -971,18 +972,18 @@
                case 1:
                    map = orderPrivateCarService.queryBalance(orderId, uid);
                    break;
                case 2:
                    map = orderTaxiService.queryBalance(orderId, uid);
                    break;
                case 3:
                    map = orderCrossCityService.queryBalance(orderId, uid);
                    break;
//                case 2:
//                    map = orderTaxiService.queryBalance(orderId, uid);
//                    break;
//                case 3:
//                    map = orderCrossCityService.queryBalance(orderId, uid);
//                    break;
                case 4:
                    map = orderLogisticsService.queryBalance(orderId, uid);
                    break;
                case 5:
                    map = orderLogisticsService.queryBalance(orderId, uid);
                    break;
//                case 5:
//                    map = orderLogisticsService.queryBalance(orderId, uid);
//                    break;
            }
            return ResultUtil.success(map);
        }catch (Exception e){
@@ -1022,12 +1023,12 @@
                case 1:
                    list = orderPrivateCarService.queryCoupon(orderId, uid, pageNum, size);
                    break;
                case 2:
                    list = orderTaxiService.queryCoupon(orderId, uid, pageNum, size);
                    break;
                case 3:
                    list = orderCrossCityService.queryCoupon(orderId, uid, pageNum, size);
                    break;
//                case 2:
//                    list = orderTaxiService.queryCoupon(orderId, uid, pageNum, size);
//                    break;
//                case 3:
//                    list = orderCrossCityService.queryCoupon(orderId, uid, pageNum, size);
//                    break;
//                case 4:
//                    list = orderLogisticsService.queryCoupon(orderId, uid, pageNum, size);
//                    break;
@@ -1231,17 +1232,18 @@
                String order_id = payments.getPayer_transaction_id();
                if(ToolUtil.isNotEmpty(out_trade_no)){
                    Integer type = Integer.valueOf(out_trade_no.substring(17, 18));
                    Integer id = Integer.valueOf(out_trade_no.substring(18));
                    Integer language = Integer.valueOf(out_trade_no.substring(18, 19));
                    Integer id = Integer.valueOf(out_trade_no.substring(19));
                    switch (type){
                        case 1:
                            orderPrivateCarService.payCancelOrderPrivateCar(id, order_id, 1);
                            orderPrivateCarService.payCancelOrderPrivateCar(id, order_id, language);
                            break;
                        case 2:
                            orderTaxiService.payCancelOrderTaxi(id, order_id, 1);
                            break;
                        case 3:
                            orderCrossCityService.payCancelOrderCrossCity(id, order_id, 1);
                            break;
//                        case 2:
//                            orderTaxiService.payCancelOrderTaxi(id, order_id, 1);
//                            break;
//                        case 3:
//                            orderCrossCityService.payCancelOrderCrossCity(id, order_id, 1);
//                            break;
                    }
                    callbackResponse.setCheckout_request_id(order_id);
                    callbackResponse.setMerchant_transaction_id(out_trade_no);
@@ -1271,31 +1273,31 @@
    @PostMapping("/base/aliCancelOrderTaxi")
    public void aliCancelOrderTaxi(HttpServletRequest request, HttpServletResponse response){
        try {
            Map<String, String> map = payMoneyUtil.alipayCallback(request);//icbcPayUtil.payCallback(request);
            if(null != map){
                String out_trade_no = map.get("out_trade_no");
                String order_id = map.get("trade_no");
                if(ToolUtil.isNotEmpty(out_trade_no)){
                    String[] split = out_trade_no.split("_");
                    Integer id = Integer.valueOf(split[0]);
                    Integer type = Integer.valueOf(split[1]);
                    switch (type){
                        case 1:
                            orderPrivateCarService.payCancelOrderPrivateCar(id, order_id, 2);
                            break;
                        case 2:
                            orderTaxiService.payCancelOrderTaxi(id, order_id, 2);
                            break;
                        case 3:
                            orderCrossCityService.payCancelOrderCrossCity(id, order_id, 2);
                            break;
                    }
                }
                response.setContentType("text/html;charset=UTF-8");
                PrintWriter out;
                out = response.getWriter();
                out.println("success"); // 请不要修改或删除
            }
//            Map<String, String> map = payMoneyUtil.alipayCallback(request);//icbcPayUtil.payCallback(request);
//            if(null != map){
//                String out_trade_no = map.get("out_trade_no");
//                String order_id = map.get("trade_no");
//                if(ToolUtil.isNotEmpty(out_trade_no)){
//                    String[] split = out_trade_no.split("_");
//                    Integer id = Integer.valueOf(split[0]);
//                    Integer type = Integer.valueOf(split[1]);
//                    switch (type){
//                        case 1:
//                            orderPrivateCarService.payCancelOrderPrivateCar(id, order_id, 2);
//                            break;
//                        case 2:
//                            orderTaxiService.payCancelOrderTaxi(id, order_id, 2);
//                            break;
//                        case 3:
//                            orderCrossCityService.payCancelOrderCrossCity(id, order_id, 2);
//                            break;
//                    }
//                }
//                response.setContentType("text/html;charset=UTF-8");
//                PrintWriter out;
//                out = response.getWriter();
//                out.println("success"); // 请不要修改或删除
//            }
        }catch (Exception e){
            e.printStackTrace();
        }
@@ -1328,25 +1330,25 @@
                Payments payments = callbackRequest.getPayments().get(0);
                String order_id = payments.getPayer_transaction_id();
                if(ToolUtil.isNotEmpty(out_trade_no)){
                    Integer type = Integer.valueOf(out_trade_no.substring(17, 18));
                    Integer orderType = Integer.valueOf(out_trade_no.substring(17, 18));
                    Integer language = Integer.valueOf(out_trade_no.substring(18, 19));
                    Integer id = Integer.valueOf(out_trade_no.substring(19));
                    switch (type){
                    switch (orderType){
                        case 1:
                            orderPrivateCarService.payOrderPrivateCarCallback(id, order_id, 1, language);
                            orderPrivateCarService.payOrderPrivateCarCallback(id, order_id, language);
                            break;
                        case 2:
                            orderTaxiService.payOrderTaxiCallback(id, order_id, 1);
                            break;
                        case 3:
                            orderCrossCityService.payOrderCrossCityCallback(id, order_id, 1);
                            break;
//                        case 2:
//                            orderTaxiService.payOrderTaxiCallback(id, order_id, 1);
//                            break;
//                        case 3:
//                            orderCrossCityService.payOrderCrossCityCallback(id, order_id, 1);
//                            break;
                        case 4:
                            orderLogisticsService.payOrderLogisticsCallback(id, order_id, 1, language);
                            orderLogisticsService.payOrderLogisticsCallback(id, order_id, language);
                            break;
                        case 5:
                            orderLogisticsService.payOrderLogisticsCallback(id, order_id, 1, language);
                            break;
//                        case 5:
//                            orderLogisticsService.payOrderLogisticsCallback(id, order_id, 1, language);
//                            break;
                    }
                    callbackResponse.setCheckout_request_id(order_id);
                    callbackResponse.setMerchant_transaction_id(out_trade_no);
@@ -1386,21 +1388,21 @@
                    Integer type = Integer.valueOf(split[1]);
                    Integer language = Integer.valueOf(split[2]);
                    switch (type){
                        case 1:
                            orderPrivateCarService.payOrderPrivateCarCallback(id, order_id, 2, language);
                            break;
                        case 2:
                            orderTaxiService.payOrderTaxiCallback(id, order_id, 2);
                            break;
                        case 3:
                            orderCrossCityService.payOrderCrossCityCallback(id, order_id, 2);
                            break;
                        case 4:
                            orderLogisticsService.payOrderLogisticsCallback(id, order_id, 2, language);
                            break;
                        case 5:
                            orderLogisticsService.payOrderLogisticsCallback(id, order_id, 2, language);
                            break;
//                        case 1:
//                            orderPrivateCarService.payOrderPrivateCarCallback(id, order_id, 2, language);
//                            break;
//                        case 2:
//                            orderTaxiService.payOrderTaxiCallback(id, order_id, 2);
//                            break;
//                        case 3:
//                            orderCrossCityService.payOrderCrossCityCallback(id, order_id, 2);
//                            break;
//                        case 4:
//                            orderLogisticsService.payOrderLogisticsCallback(id, order_id, 2, language);
//                            break;
//                        case 5:
//                            orderLogisticsService.payOrderLogisticsCallback(id, order_id, 2, language);
//                            break;
                    }
                    response.setContentType("text/html;charset=UTF-8");
                    PrintWriter out;
@@ -1419,30 +1421,49 @@
    /**
     * 小件物流差价微信支付回调
     * @param request
     */
    @ResponseBody
    @PostMapping("/base/wxPayOrderLogisticsSpread")
    public void wxPayOrderLogisticsSpread(HttpServletRequest request, HttpServletResponse response){
    public CallbackResponse wxPayOrderLogisticsSpread(@RequestBody CallbackRequest callbackRequest){
        CallbackResponse callbackResponse = new CallbackResponse();
        try {
            Map<String, String> map = payMoneyUtil.weixinpayCallback(request);//icbcPayUtil.payCallback(request);
            if(null != map){
                String out_trade_no = map.get("out_trade_no");
                String order_id = map.get("transaction_id");
                String s = null;//icbcPayUtil.queryTransaction("", order_id);
                if(!s.equals("") && !s.equals("2")){
                    //icbcPayUtil.answer(response);//回调应答
            /**
             * 指示服务是否成功或付费的总体请求代码。。
             * 177-部分付费请求
             * 178-表明请求已全额支付
             * 179-表示请求已部分支付但已过期。
             * 129-请求已过期,未付款。
             * 180.商户拒绝请求
             * 183-商户接受请求,我们可以结算资金
             * 188-商户收到请求。
             */
            String request_status_code = callbackRequest.getRequest_status_code();
            String out_trade_no = callbackRequest.getMerchant_transaction_id();
            if("177".equals(request_status_code) || "178".equals(request_status_code)){
                Payments payments = callbackRequest.getPayments().get(0);
                String order_id = payments.getPayer_transaction_id();
                if(ToolUtil.isNotEmpty(out_trade_no)){
                    Integer orderType = Integer.valueOf(out_trade_no.substring(17, 18));
                    Integer language = Integer.valueOf(out_trade_no.substring(18, 19));
                    Integer id = Integer.valueOf(out_trade_no.substring(19));
                    orderLogisticsService.payOrderLogisticsSpreadCallback(id, order_id, language);
                    callbackResponse.setCheckout_request_id(order_id);
                    callbackResponse.setMerchant_transaction_id(out_trade_no);
                    callbackResponse.setStatus_code("183");
                    callbackResponse.setStatus_description("Payment processed successfully");
                    callbackResponse.setReceipt_number(UUIDUtil.getRandomCode(16));
                }
                if(ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id) && s.equals("0")){
                    String[] split = out_trade_no.split(",");
                    Integer id = Integer.valueOf(split[0]);
                    Integer type = Integer.valueOf(split[1]);
                    orderLogisticsService.payOrderLogisticsSpreadCallback(id, order_id, 1);
                }
            }else{
                callbackResponse.setCheckout_request_id(UUIDUtil.getRandomCode(16));
                callbackResponse.setMerchant_transaction_id(out_trade_no);
                callbackResponse.setStatus_code("180");
                callbackResponse.setStatus_description("means payment rejected.");
                callbackResponse.setReceipt_number(UUIDUtil.getRandomCode(16));
            }
        }catch (Exception e){
            e.printStackTrace();
        }
        return callbackResponse;
    }
@@ -1454,22 +1475,22 @@
    @PostMapping("/base/aliPayOrderLogisticsSpread")
    public void aliPayOrderLogisticsSpread(HttpServletRequest request, HttpServletResponse response){
        try {
            Map<String, String> map = payMoneyUtil.alipayCallback(request);//icbcPayUtil.payCallback(request);
            if(null != map){
                String out_trade_no = map.get("out_trade_no");
                String order_id = map.get("trade_no");
                String s = null;//icbcPayUtil.queryTransaction("", order_id);
                if(!s.equals("") && !s.equals("2")){
                    //icbcPayUtil.answer(response);//回调应答
                }
                if(ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id) && s.equals("0")){
                    String[] split = out_trade_no.split(",");
                    Integer id = Integer.valueOf(split[0]);
                    Integer type = Integer.valueOf(split[1]);
                    orderLogisticsService.payOrderLogisticsSpreadCallback(id, order_id, 2);
                }
            }
//            Map<String, String> map = payMoneyUtil.alipayCallback(request);//icbcPayUtil.payCallback(request);
//            if(null != map){
//                String out_trade_no = map.get("out_trade_no");
//                String order_id = map.get("trade_no");
//                String s = null;//icbcPayUtil.queryTransaction("", order_id);
//                if(!s.equals("") && !s.equals("2")){
//                    //icbcPayUtil.answer(response);//回调应答
//                }
//                if(ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id) && s.equals("0")){
//                    String[] split = out_trade_no.split(",");
//                    Integer id = Integer.valueOf(split[0]);
//                    Integer type = Integer.valueOf(split[1]);
//                    orderLogisticsService.payOrderLogisticsSpreadCallback(id, order_id, 2);
//                }
//
//            }
        }catch (Exception e){
            e.printStackTrace();
        }