From 45d364822a232151cf977cde0f4cf7a2b332c45f Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期三, 07 二月 2024 16:24:38 +0800 Subject: [PATCH] 修改bug --- UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java | 452 +++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 286 insertions(+), 166 deletions(-) diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java index 49ad62e..dae9c77 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java @@ -12,18 +12,18 @@ 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.*; import com.stylefeng.guns.modular.system.util.*; -import com.stylefeng.guns.modular.system.util.Tingg.model.CallbackRequest; -import com.stylefeng.guns.modular.system.util.Tingg.model.CallbackResponse; -import com.stylefeng.guns.modular.system.util.Tingg.model.CheckoutRequest; -import com.stylefeng.guns.modular.system.util.Tingg.model.Payments; +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; @@ -94,6 +94,9 @@ private ITransactionDetailsService transactionDetailsService; @Autowired + private IPaymentRecordService paymentRecordService; + + @Autowired private IOrderCancelService orderCancelService; @Autowired @@ -114,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){ @@ -181,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){ @@ -190,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)); @@ -233,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); } @@ -261,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); @@ -317,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; @@ -330,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); @@ -339,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); @@ -347,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); @@ -356,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); @@ -431,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()){ //读取文件(字符流) @@ -490,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(); @@ -538,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(); @@ -807,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: @@ -874,6 +906,47 @@ } + /** + * 取消订单退款回调 + * @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; + } + } + + + /** * 取消操作支付 @@ -883,16 +956,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){ @@ -900,7 +974,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: @@ -974,18 +1048,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){ @@ -1014,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){ @@ -1023,17 +1097,17 @@ 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); - break; - case 3: - list = orderCrossCityService.queryCoupon(orderId, uid, pageNum, size); - break; -// case 4: -// list = orderLogisticsService.queryCoupon(orderId, uid, pageNum, size); +// 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(language,orderId, uid, pageNum, size); + break; // case 5: // list = orderLogisticsService.queryCoupon(orderId, uid, pageNum, size); // break; @@ -1057,16 +1131,17 @@ */ @ResponseBody @PostMapping("/api/taxi/payTaxiOrder") - @ApiOperation(value = "订单完成支付订单操作【1.0】", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城", "用户端-小件物流"}, notes = "") + @ApiOperation(value = "订单完成支付订单操作【1.1】", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城", "用户端-小件物流"}, notes = "") @ApiImplicitParams({ - @ApiImplicitParam(value = "支付方式(1=线上支付,3=余额,4=线下支付)", name = "payType", required = true, dataType = "int"), + @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 = "支付端(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 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 type, Integer language, HttpServletRequest request){ try { Integer uid = userInfoService.getUserIdFormRedis(request); if(null == uid){ @@ -1074,13 +1149,13 @@ } switch (orderType){ case 1: - return orderPrivateCarService.payPrivateCarOrder(payType, "user_" + uid, orderId, couponId, type, language); + return orderPrivateCarService.payPrivateCarOrder(payType, bankCardId, orderId, couponId, 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, "user_" + uid, orderId, type, language); + return orderLogisticsService.payLogisticsOrder(payType, bankCardId, orderId,couponId, type, language); // case 5: // return orderLogisticsService.payLogisticsOrder(payType, orderId, type, language); } @@ -1185,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){ @@ -1233,17 +1309,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); @@ -1273,35 +1350,36 @@ @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(); } } + /** @@ -1329,25 +1407,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); @@ -1387,21 +1465,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; @@ -1420,30 +1498,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; } @@ -1455,24 +1552,47 @@ @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(); } } + + + + @ResponseBody + @PostMapping("/base/IGO/tinggPayoutCallback") + public PayoutCallbackResponse tinggPayoutCallback(@RequestBody PayoutCallbackRequest request){ + 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 beepTransactionID = packet.getBeepTransactionID(); + String payerTransactionID = packet.getPayerTransactionID(); + results.setBeepTransactionID(beepTransactionID); + results.setPayerTransactionID(payerTransactionID); + results.setStatusCode("188"); + results.setStatusDescription("Response was received"); + payoutCallbackResponse.setResults(results); + return payoutCallbackResponse; + } } -- Gitblit v1.7.1