From 7e92d9c7f76777c48f76376c99ffaae2e16fe7ed Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期二, 01 七月 2025 14:37:08 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/WxChatPayCallBack.java | 73 ++++++++++++++++++++++++------------ 1 files changed, 49 insertions(+), 24 deletions(-) diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/WxChatPayCallBack.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/WxChatPayCallBack.java index 799dfd0..80955f9 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/WxChatPayCallBack.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/WxChatPayCallBack.java @@ -12,15 +12,9 @@ import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.vo.UserDto; import com.ruoyi.common.security.annotation.RequiresPermissions; -import com.ruoyi.order.entity.ChangeDispatch; -import com.ruoyi.order.entity.Order; -import com.ruoyi.order.entity.Withdraw; -import com.ruoyi.order.entity.WithdrawDetail; +import com.ruoyi.order.entity.*; import com.ruoyi.order.request.ChangeDispatchRequest; -import com.ruoyi.order.service.ChangeDispatchService; -import com.ruoyi.order.service.OrderService; -import com.ruoyi.order.service.WithdrawDetailService; -import com.ruoyi.order.service.WithdrawService; +import com.ruoyi.order.service.*; import com.ruoyi.order.vx.HttpUtil; import com.ruoyi.system.api.RemoteUserService; import com.ruoyi.user.api.feignClient.UserClient; @@ -63,6 +57,8 @@ @Autowired private WithdrawDetailService withdrawDetailService; + @Autowired + private WithdrawRecordService withdrawRecordService; @Resource private OrderService orderService; @Autowired @@ -97,26 +93,40 @@ System.err.println("微信解密的字符串信息"+decryptedData); JSONObject jsonInfo = (JSONObject) JSONObject.parse(decryptedData); String transferBillNo = jsonInfo.getString("transfer_bill_no"); + String outBillNo = jsonInfo.getString("out_bill_no"); String state = jsonInfo.getString("state"); - WithdrawDetail withdrawDetail = withdrawDetailService.lambdaQuery().eq(WithdrawDetail::getOutBatchNo, transferBillNo).one(); + WithdrawDetail withdrawDetail = withdrawDetailService.lambdaQuery().eq(WithdrawDetail::getOutBatchNo, outBillNo).one(); Withdraw withdraw = withdrawService.getById(withdrawDetail.getWithdrawId()); Order order = orderService.getById(withdraw.getOrderId()); UserDto data = userClient.getUser(order.getUserId()).getData(); + if (order.getIsWithdrawal()==3){ + return "SUCCESS"; + } if ("SUCCESS".equals(state)){ - order.setIsWithdrawal(1); + order.setIsWithdrawal(3); withdrawDetail.setStatus("SUCCESS"); withdrawDetailService.updateById(withdrawDetail); orderService.updateById(order); - }else if ("CANCELLED".equals(state)){ + WithdrawRecord withdrawRecord = new WithdrawRecord(); + withdrawRecord.setWithdrawId(withdraw.getId()); + withdrawRecord.setOrderId(withdraw.getOrderId()); + withdrawRecord.setUserId(withdraw.getUserId()); + withdrawRecord.setWithdrawType(4); + withdrawRecord.setCreateTime(new Date()); + withdrawRecord.setAuditStatus(1); + withdrawRecordService.save(withdrawRecord); + + + }else if ("CANCELLED".equals(state)||"CANCELING".equals(state)||"FAIL".equals(state)){ // 校验提现 - List<Withdraw> list = withdrawService.lambdaQuery().eq(Withdraw::getUserId, order.getUserId()) - .eq(Withdraw::getOrderId, order.getId()).list(); - List<Integer> stateList = list.stream().map(Withdraw::getState).collect(Collectors.toList()); - if (stateList.contains(Constants.ONE)) { - throw new GlobalException("当前订单提现申请已通过!"); - } +// List<Withdraw> list = withdrawService.lambdaQuery().eq(Withdraw::getUserId, order.getUserId()) +// .eq(Withdraw::getOrderId, order.getId()).list(); +// List<Integer> stateList = list.stream().map(Withdraw::getState).collect(Collectors.toList()); +// if (stateList.contains(Constants.ONE)) { +// throw new GlobalException("当前订单提现申请已通过!"); +// } // 超时未收款 撤销 重新发起转账 更新packageInfo - weChatPay(order.getOrderMoney(), data.getOpenId(),list.get(0).getId(),order.getServeName()); + weChatPay(order.getOrderMoney(), data.getOpenId(),withdraw.getId(),order.getServeName()); } map.put("code", "SUCCESS"); map.put("message", "成功"); @@ -148,14 +158,14 @@ // 订单号 String s = String.valueOf(UUID.randomUUID()).replaceAll("-", ""); postMap.put("out_bill_no", s); - System.err.println("====="+postMap.get(WechatConstants.OUT_BATCH_NO)); + System.err.println("====="+postMap.get("out_bill_no")); postMap.put(WechatConstants.OPEN_ID, openId); // 转账金额 postMap.put("transfer_amount", transferAmount); // 转账备注 - postMap.put("transfer_remark", transferAmount); + postMap.put("transfer_remark", "二手回收提现确认收款"); // 回调地址 - postMap.put("notify_url", transferAmount); + postMap.put("notify_url", "https://hyhsbqgc.com/api/ruoyi-order/wx/wxChatPay"); // 转账场景报备信息 Map<String, Object> info = new HashMap<>(); info.put("info_type","回收商品名称"); @@ -166,7 +176,10 @@ com.alibaba.fastjson2.JSONObject.toJSONString(postMap), "7EEA04429B006E12AAA421C002EC48BBEED5BE94", "1665330417", - "E:\\ershoucert\\apiclient_key.pem", WechatConstants.WE_CHAT_URL_SUF); +// "/usr/local/vx/apiclient_key.pem", + "D:\\apiclient_key.pem", + + WechatConstants.WE_CHAT_URL_SUF); com.alibaba.fastjson2.JSONObject jsonObject = com.alibaba.fastjson2.JSONObject.parseObject(result); // WithdrawDetail withdrawDetail = new WithdrawDetail(); // withdrawDetail.setWithdrawId(withdrawId); @@ -179,11 +192,11 @@ WithdrawDetail one = withdrawDetailService.lambdaQuery().eq(WithdrawDetail::getWithdrawId, withdrawId).last("limit 1").one(); if (one!=null){ one.setOutBatchNo(s); - one.setStatus("FAIL"); + one.setStatus("PENDING"); withdrawDetailService.updateById(one); Order order = orderService.getById(withdraw.getOrderId()); order.setPackageInfo(string); - order.setIsWithdrawal(0); + order.setIsWithdrawal(2); orderService.updateById(order); } } else { @@ -196,4 +209,16 @@ return allTransfersSuccessful; } + public static void main(String[] args) { + String s = "e965efcc225b4250864658d2fa969a18"; + String s1 = HttpUtil.queryTransBatRequest(WechatConstants.WE_CHAT_PAY_QUERY_URL_PRE + s, + "7EEA04429B006E12AAA421C002EC48BBEED5BE94", + "1665330417", + "D:\\apiclient_key.pem", WechatConstants.WE_CHAT_QUERY_URL_SUF + s); + System.err.println(s1); + JSONObject jsonObject = JSONObject.parseObject(s1); + String string = jsonObject.getString("state"); + System.err.println(string); + } + } -- Gitblit v1.7.1