From e181a8542344f26180b7a6831d749b26f8dc8b33 Mon Sep 17 00:00:00 2001 From: xhxu Date: Thu, 30 Jun 2022 16:05:35 +0800 Subject: [PATCH] //tt coupon order --- .../controller/WxOrderController.java | 130 +++++++++--------- 1 file changed, 66 insertions(+), 64 deletions(-) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java index 18a37d6dd..641cba314 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java @@ -294,70 +294,72 @@ public class WxOrderController extends BaseController { } } -// @ApiOperation(value = "更新订单状态", notes = "{\"payOrderId\":\"string\",\"composeOrderId\":\"string\",\"status\":integer,\"reason\":\"string\"}") -// @PostMapping("/updatePayOrder") -// public ResultData updatePayOrder(@RequestBody Map paramMap) { -// logger.info("/api/pay/updatePayOrder" + paramMap.toString()); -// String orderIdStr = (String) paramMap.get("composeOrderId"); -// if (StringUtils.isBlank(orderIdStr)) { -// logger.info("orderId不能为空: " + paramMap.toString()); -// return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "orderId不能为空"); -// } -// Long orderId = 0L; -// try { -// orderId = Long.valueOf(orderIdStr); -// } catch (NumberFormatException e) { -// logger.error("orderId参数不正确: " + paramMap.toString() + ", e:" + e.getMessage()); -// return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "orderId参数不正确"); -// } -// -// WxBatchOrder batchOrder = wxOrderService.getWxBatchOrder(getTenantInfo(),orderId); -// if(batchOrder == null){ -// return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "未找到订单"); -// } -// -// WxPayOrder payOrder = new WxPayOrder(); -// payOrder.setOrderId(orderId); -// payOrder.updateTenantInfo(getTenantInfo()); -// payOrder.setPayVendor(getPayWay().getCode()); -// payOrder.setComposeOrder(batchOrder.getOrderType()); -// -// try { -// WxPayOrder byObj = wxPayOrderService.getByObj(payOrder); -// if(byObj != null){ -// return new ResultData(Result.SUCCESS, "支付状态更新成功"); -// }else{ -// -// -// WxComposeOrder composeOrder = orderFactory.getOrderAdapterService(payOrder.getComposeOrder()).getComposeOrder(payOrder.getOrderId(), payOrder.getTenantId()); -// -// WxAppinfo appInfo = wxAppinfoService.getCAppInfo(payOrder, EnumPayWay.getEnum(payOrder.getPayVendor()).getPlat()); -// //WxCUser user = getUser(); -// //WxAppinfo appInfo = getAppInfo(user.getAppId()); -// if (null == appInfo) { -// return new ResultData(ErrorCode.PAY_ORDER_ERROR, "当前支付类型["+payOrder.getPayVendor()+"]找不到C端appInfo"); -// } -// WxPayAccount payAccount = wxPayAccountService.getById(appInfo.getPayId()); -// try { -// WxPayOrder wo = wxPayOrderService.handleWxOrderQuery(payOrder, composeOrder,appInfo, payAccount, IdWorker.get(),false); -// if (null != wo) { -// return new ResultData(Result.SUCCESS, "支付状态更新成功", composeOrder); -// } -// }catch(MallinkException e) { -// //已经同步了微信的支付状态,表示已经更新 -// return new ResultData(Result.SUCCESS, "支付状态更新成功", composeOrder); -// } -// -// return new ResultData(ErrorCode.PAY_ORDER_ERROR, "查询微信订单支付状态失败,请稍后!"); -// } -// } catch (MallinkException e) { -// logger.error("支付状态更新失败2: " + payOrder.toString() + ", e:" + e.getMessage(),e); -// return new ResultData(e.getErrorCode(), e.getMessage()); -// } catch (Exception e) { -// logger.error("支付状态更新失败3: " + payOrder.toString() + ", e:" + e.getMessage(),e); -// return new ResultData(ErrorCode.PAY_ORDER_ERROR, "支付状态更新失败3: " + payOrder.toString() + ", e:" + e.getMessage()); -// } -// } + @ApiOperation(value = "继续支付", notes = "{\"composeOrderId\":\"string\"}") + @PostMapping("/continueToPay") + public ResultData continueToPay(@RequestBody Map paramMap) { + logger.info("/api/order/continueToPay" + paramMap.toString()); + String orderIdStr = (String) paramMap.get("composeOrderId"); + if (StringUtils.isBlank(orderIdStr)) { + logger.info("orderId不能为空: " + paramMap.toString()); + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "orderId不能为空"); + } + Long orderId = 0L; + try { + orderId = Long.valueOf(orderIdStr); + } catch (NumberFormatException e) { + logger.error("orderId参数不正确: " + paramMap.toString() + ", e:" + e.getMessage()); + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "orderId参数不正确"); + } + + WxBatchOrder batchOrder = wxOrderService.getWxBatchOrder(getTenantInfo(),orderId); + if(batchOrder == null){ + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "未找到订单"); + } + + WxPayOrder payOrder = new WxPayOrder(); + payOrder.setOrderId(orderId); + payOrder.updateTenantInfo(getTenantInfo()); + payOrder.setPayVendor(batchOrder.getPayVendor()); + payOrder.setComposeOrder(batchOrder.getOrderType()); + + try { + WxPayOrder byObj = wxPayOrderService.getByObj(payOrder); + if(byObj == null){ + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "未找到支付订单"); + } + if(EnumPayStatus.PAY_STATUS_WAIT.getCode().equals(byObj.getPayOrderStatus())){ + WxComposeOrder composeOrder = orderFactory.getOrderAdapterService(payOrder.getComposeOrder()).getComposeOrder(payOrder.getOrderId(), payOrder.getTenantId()); + + WxAppinfo appInfo = wxAppinfoService.getCAppInfo(payOrder, EnumPayWay.getEnum(payOrder.getPayVendor()).getPlat()); + //WxCUser user = getUser(); + //WxAppinfo appInfo = getAppInfo(user.getAppId()); + if (null == appInfo) { + return new ResultData(ErrorCode.PAY_ORDER_ERROR, "当前支付类型["+payOrder.getPayVendor()+"]找不到C端appInfo"); + } + WxPayAccount payAccount = wxPayAccountService.getById(appInfo.getPayId()); + try { + WxPayOrder wo = wxPayOrderService.handleWxOrderQuery(payOrder, composeOrder,appInfo, payAccount, IdWorker.get(),false); + if (null != wo) { + Map map = new HashMap<>(); + map.put("outOrderNo",orderId); + return new ResultData(map); + } + }catch(MallinkException e) { + //已经同步了微信的支付状态,表示已经更新 + return new ResultData(e.getErrorCode(),e.getMessage()); + } + return new ResultData(ErrorCode.PAY_ORDER_QUERY_ERROR.getCode(), "查询微信订单支付状态失败,请稍后!"); + }else{ + return new ResultData(ErrorCode.PAY_ORDER_QUERY_ERROR.getCode(), "订单"+EnumPayStatus.getEnum(payOrder.getPayOrderStatus()).getMessage()); + } + } catch (MallinkException e) { + logger.error("支付状态更新失败2: " + payOrder.toString() + ", e:" + e.getMessage(),e); + return new ResultData(e.getErrorCode(), e.getMessage()); + } catch (Exception e) { + logger.error("支付状态更新失败3: " + payOrder.toString() + ", e:" + e.getMessage(),e); + return new ResultData(ErrorCode.PAY_ORDER_ERROR, "支付状态更新失败3: " + payOrder.toString() + ", e:" + e.getMessage()); + } + }