From 2aa8efbaa8fe33b82c19e23e43fa1458b326f70b Mon Sep 17 00:00:00 2001 From: winter Date: Mon, 1 Aug 2022 23:45:04 +0800 Subject: [PATCH] fix cashout --- .../db/migration/V20220801000001_cashout.sql | 100 ++++++++++++++++++ .../controller/WxCashOutController.java | 3 + .../com/iformall/domain/po/WxCashOut.java | 3 +- .../java/com/iformall/pay/WxCashOutPV3.java | 4 +- .../com/iformall/pay/WxCashOutPV3Item.java | 2 +- .../service/impl/WxCashOutServiceImpl.java | 1 + .../cashout/wx/WxCashOutAdapterService.java | 24 +++-- .../main/resources/mapper/WxCashOutMapper.xml | 7 +- 8 files changed, 129 insertions(+), 15 deletions(-) create mode 100644 mallinkAdmin/src/main/resources/db/migration/V20220801000001_cashout.sql diff --git a/mallinkAdmin/src/main/resources/db/migration/V20220801000001_cashout.sql b/mallinkAdmin/src/main/resources/db/migration/V20220801000001_cashout.sql new file mode 100644 index 000000000..b3ae8cb4a --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V20220801000001_cashout.sql @@ -0,0 +1,100 @@ +alter table wx_cash_out_0 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_1 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_2 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_3 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_4 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_5 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_6 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_7 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_8 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_9 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_10 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_11 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_12 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_13 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_14 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_15 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_16 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_17 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_18 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_19 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_20 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_21 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_22 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_23 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_24 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_25 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_26 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_27 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_28 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_29 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_30 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_31 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_32 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_33 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_34 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_35 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_36 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_37 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_38 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_39 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_40 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_41 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_42 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_43 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_44 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_45 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_46 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_47 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_48 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_49 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_50 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_51 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_52 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_53 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_54 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_55 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_56 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_57 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_58 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_59 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_60 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_61 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_62 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_63 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_64 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_65 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_66 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_67 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_68 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_69 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_70 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_71 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_72 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_73 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_74 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_75 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_76 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_77 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_78 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_79 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_80 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_81 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_82 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_83 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_84 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_85 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_86 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_87 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_88 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_89 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_90 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_91 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_92 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_93 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_94 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_95 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_96 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_97 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_98 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_cash_out_99 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; \ No newline at end of file diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxCashOutController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxCashOutController.java index 9cdd9c3e6..632c7a500 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxCashOutController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxCashOutController.java @@ -179,6 +179,9 @@ public class WxCashOutController extends BaseController { if (mUser == null) { return new ResultData(Result.ERROR,"请用绑定["+merchant.getLinkPhone()+"]的微信在C端完成授权手机号操作。"); } + if (wxCashOut.getTotalFee() >= 2000 && StringUtils.isBlank(wxCashOut.getRealName())) { + return new ResultData(Result.ERROR,"金额2000以上需实名。"); + } wxCashOut.setReciveOpenId(mUser.getOpenId()); wxCashOut.setReciveNickName(mUser.getNickName()); wxCashOut.setWxBOpenHeadImg(mUser.getAvatarUrl()); diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCashOut.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCashOut.java index 23310c9ca..21a00ea17 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCashOut.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCashOut.java @@ -58,6 +58,7 @@ public class WxCashOut extends TenantEntity { private String wxPayTime; @io.swagger.annotations.ApiModelProperty(value = "失败原因", name = "failRemark") private String failRemark; - + @io.swagger.annotations.ApiModelProperty(value = "实名姓名,超2000需实名", name = "realName") + private String realName; } diff --git a/mallinkService/src/main/java/com/iformall/pay/WxCashOutPV3.java b/mallinkService/src/main/java/com/iformall/pay/WxCashOutPV3.java index 16eb68f10..eb2186fc0 100644 --- a/mallinkService/src/main/java/com/iformall/pay/WxCashOutPV3.java +++ b/mallinkService/src/main/java/com/iformall/pay/WxCashOutPV3.java @@ -13,8 +13,8 @@ public class WxCashOutPV3 { private String out_batch_no; // 商家批次单号 private String batch_name; // 批次名称 private String batch_remark; // 批次备注 - private String total_amount; // 转账总金额 - private String total_num; // 转账总笔数 + private int total_amount; // 转账总金额 + private int total_num; // 转账总笔数 private List transfer_detail_list; // 转账明细列表,最多三千笔 } diff --git a/mallinkService/src/main/java/com/iformall/pay/WxCashOutPV3Item.java b/mallinkService/src/main/java/com/iformall/pay/WxCashOutPV3Item.java index 6919ba5ec..8b0727084 100644 --- a/mallinkService/src/main/java/com/iformall/pay/WxCashOutPV3Item.java +++ b/mallinkService/src/main/java/com/iformall/pay/WxCashOutPV3Item.java @@ -8,7 +8,7 @@ import lombok.Data; @Data public class WxCashOutPV3Item { private String out_detail_no; // 商家明细单号 - private String transfer_amount; // 转账金额 + private int transfer_amount; // 转账金额 private String transfer_remark; // 转账备注 private String openid; // 用户在直连商户应用下的用户标示 private String user_name; // 收款用户姓名,明细转账金额 >= 2,000,收款用户姓名必填, 该字段需进行加密处理 diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCashOutServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCashOutServiceImpl.java index ee1d8b357..b36fb3684 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCashOutServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCashOutServiceImpl.java @@ -150,6 +150,7 @@ public class WxCashOutServiceImpl implements WxCashOutService { cashout.setPhone(record.getPhone()); cashout.setWxBOpenHeadImg(record.getWxBOpenHeadImg()); cashout.updateTenantInfo(buser); + cashout.setRealName(record.getRealName()); wxCashOutMapper.insert(cashout); //TODO有没有审批 diff --git a/mallinkService/src/main/java/com/iformall/service/pay/service/cashout/wx/WxCashOutAdapterService.java b/mallinkService/src/main/java/com/iformall/service/pay/service/cashout/wx/WxCashOutAdapterService.java index b563a0e66..ed82a7f17 100644 --- a/mallinkService/src/main/java/com/iformall/service/pay/service/cashout/wx/WxCashOutAdapterService.java +++ b/mallinkService/src/main/java/com/iformall/service/pay/service/cashout/wx/WxCashOutAdapterService.java @@ -1,5 +1,6 @@ package com.iformall.service.pay.service.cashout.wx; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.SortedMap; @@ -34,6 +35,7 @@ import com.iformall.mapper.WxPayOrderMapper; import com.iformall.mapper.WxRefundOrderMapper; import com.iformall.pay.WxCashOutP; import com.iformall.pay.WxCashOutPV3; +import com.iformall.pay.WxCashOutPV3Item; import com.iformall.pay.WxCashOutQueryP; import com.iformall.pay.WxPay; import com.iformall.pay.WxPayment; @@ -233,20 +235,22 @@ public class WxCashOutAdapterService implements CashOutAdapterService{ } private WxCashOutPV3 generateWxCashOutPV3(WxPayAccount payAccount,WxAppinfo appInfo,WxCashOut cashOut) { - String noncestr = Utility.generate32UUID(); WxCashOutPV3 wxCashOutPv3 = new WxCashOutPV3(); wxCashOutPv3.setAppid(appInfo.getAppId()); wxCashOutPv3.setOut_batch_no(String.valueOf(cashOut.getId())); wxCashOutPv3.setBatch_name(cashOut.getMerchantName()+"提现"); - -// wxCashOutP.setMch_appid(appInfo.getAppId()); -// wxCashOutP.setMchid(payAccount.getSubMchId()); -// wxCashOutP.setNonce_str(noncestr); -// wxCashOutP.setAmount(cashOut.getTotalFee()); -// wxCashOutP.setCheck_name("NO_CHECK"); -// wxCashOutP.setDesc("客户结算"); -// wxCashOutP.setOpenid(cashOut.getReciveOpenId()); -// wxCashOutP.setPartner_trade_no(String.valueOf(cashOut.getId())); + wxCashOutPv3.setBatch_remark("提现编号:"+cashOut.getId()); + wxCashOutPv3.setTotal_amount(cashOut.getTotalFee()); + wxCashOutPv3.setTotal_num(1); + List itemList = new ArrayList(); + WxCashOutPV3Item item = new WxCashOutPV3Item(); + item.setOut_detail_no(Utility.generate32UUID()); + item.setOpenid(cashOut.getReciveOpenId()); + item.setTransfer_amount(cashOut.getTotalFee()); + item.setTransfer_remark(cashOut.getMerchantName()+"提现"); + item.setUser_name(cashOut.getRealName()); + itemList.add(item); + wxCashOutPv3.setTransfer_detail_list(itemList); return wxCashOutPv3; } diff --git a/mallinkService/src/main/resources/mapper/WxCashOutMapper.xml b/mallinkService/src/main/resources/mapper/WxCashOutMapper.xml index 0d4a48de5..fa4dda4c8 100644 --- a/mallinkService/src/main/resources/mapper/WxCashOutMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCashOutMapper.xml @@ -22,12 +22,13 @@ + `id`,`tenant_id`,`parent_tenant_id`,`total_fee`,`status`,`audio_remark`,`create_date`,`update_date`,`b_user_id`,`phone`, `wx_b_open_id`,`wx_b_open_head_img`,`audio_date`,`merchant_id`,`merchant_name`,`recive_open_id`,`recive_nick_name`, - `wx_pay_no`,`wx_pay_time`,`fail_remark` + `wx_pay_no`,`wx_pay_time`,`fail_remark`,`real_name` @@ -59,6 +60,10 @@ and `merchant_name` like concat('%', #{merchantName},'%') + + + and `real_name` like concat('%', #{realName},'%') + and `status` = #{status}