From 6f746e3aff5a6c8bea2097bbf84eb547c4da99d9 Mon Sep 17 00:00:00 2001 From: "pikachu1995@126.com" Date: Wed, 8 Mar 2023 19:44:06 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E7=99=BB=E5=BD=95=E4=B8=9A?= =?UTF-8?q?=E5=8A=A1=E8=BF=9B=E8=A1=8C=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kit/plugin/wechat/WechatPlugin.java | 32 +++++++++++++++++-- .../system/entity/dto/WithdrawalSetting.java | 2 +- .../system/entity/vo/WithdrawalSettingVO.java | 4 +++ .../wechat/util/WechatMessageUtil.java | 3 +- 4 files changed, 36 insertions(+), 5 deletions(-) diff --git a/framework/src/main/java/cn/lili/modules/payment/kit/plugin/wechat/WechatPlugin.java b/framework/src/main/java/cn/lili/modules/payment/kit/plugin/wechat/WechatPlugin.java index a4cbbd4e..9601eb25 100644 --- a/framework/src/main/java/cn/lili/modules/payment/kit/plugin/wechat/WechatPlugin.java +++ b/framework/src/main/java/cn/lili/modules/payment/kit/plugin/wechat/WechatPlugin.java @@ -18,6 +18,7 @@ import cn.lili.common.utils.StringUtils; import cn.lili.common.vo.ResultMessage; import cn.lili.modules.connect.entity.Connect; import cn.lili.modules.connect.entity.enums.ConnectEnum; +import cn.lili.modules.connect.entity.enums.SourceEnum; import cn.lili.modules.connect.service.ConnectService; import cn.lili.modules.member.entity.dto.ConnectQueryDTO; import cn.lili.modules.order.order.service.OrderService; @@ -40,6 +41,8 @@ import cn.lili.modules.payment.service.PaymentService; import cn.lili.modules.payment.service.RefundLogService; import cn.lili.modules.system.entity.dos.Setting; import cn.lili.modules.system.entity.dto.WithdrawalSetting; +import cn.lili.modules.system.entity.dto.connect.WechatConnectSetting; +import cn.lili.modules.system.entity.dto.connect.dto.WechatConnectSettingItem; import cn.lili.modules.system.entity.dto.payment.WechatPaymentSetting; import cn.lili.modules.system.entity.enums.SettingEnum; import cn.lili.modules.system.service.SettingService; @@ -47,6 +50,7 @@ import cn.lili.modules.wallet.entity.dos.MemberWithdrawApply; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.google.gson.Gson; import lombok.extern.slf4j.Slf4j; +import org.apache.poi.ss.formula.atp.Switch; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -380,7 +384,7 @@ public class WechatPlugin implements Payment { try { Connect connect = connectService.queryConnect( - ConnectQueryDTO.builder().userId(UserContext.getCurrentUser().getId()).unionType(ConnectEnum.WECHAT_MP_OPEN_ID.name()).build() + ConnectQueryDTO.builder().userId(UserContext.getCurrentUser().getId()).unionType(SourceEnum.WECHAT_MP_OPEN_ID.name()).build() ); if (connect == null) { return null; @@ -478,16 +482,38 @@ public class WechatPlugin implements Payment { */ @Override public boolean transfer(MemberWithdrawApply memberWithdrawApply) { - try { //获取提现设置 WithdrawalSetting withdrawalSetting = new Gson().fromJson(settingService.get(SettingEnum.WITHDRAWAL_SETTING.name()).getSettingValue(), WithdrawalSetting.class); + + //获取用户OPENID + WechatConnectSetting wechatConnectSetting = new Gson().fromJson(settingService.get(SettingEnum.WECHAT_CONNECT.name()).getSettingValue(), WechatConnectSetting.class); + String source = ""; + for (WechatConnectSettingItem wechatConnectSettingItem : wechatConnectSetting.getWechatConnectSettingItems()) { + if (wechatConnectSettingItem.getAppId().equals(withdrawalSetting.getWechatAppId())) { + switch (wechatConnectSettingItem.getClientType()) { + case "PC": + source = SourceEnum.WECHAT_PC_OPEN_ID.name(); + break; + case "H5": + source = SourceEnum.WECHAT_OFFIACCOUNT_OPEN_ID.name(); + break; + case "MP": + source = SourceEnum.WECHAT_MP_OPEN_ID.name(); + break; + case "APP": + source = SourceEnum.WECHAT_APP_OPEN_ID.name(); + break; + } + } + } + //获取微信设置 WechatPaymentSetting wechatPaymentSetting = wechatPaymentSetting(); //获取用户openId Connect connect = connectService.queryConnect( ConnectQueryDTO.builder().userId(memberWithdrawApply.getMemberId()) - .unionType(ConnectEnum.WECHAT_OPEN_ID.name()).build() + .unionType(source).build() ); //构建提现,发起申请 TransferModel transferModel = new TransferModel() diff --git a/framework/src/main/java/cn/lili/modules/system/entity/dto/WithdrawalSetting.java b/framework/src/main/java/cn/lili/modules/system/entity/dto/WithdrawalSetting.java index bb916e2c..76b7737c 100644 --- a/framework/src/main/java/cn/lili/modules/system/entity/dto/WithdrawalSetting.java +++ b/framework/src/main/java/cn/lili/modules/system/entity/dto/WithdrawalSetting.java @@ -32,7 +32,7 @@ public class WithdrawalSetting implements Serializable { private Boolean apply; /** - * 微信提现使用的APPID + * 微信提现-渠道使用的APPID */ private String wechatAppId; /** diff --git a/framework/src/main/java/cn/lili/modules/system/entity/vo/WithdrawalSettingVO.java b/framework/src/main/java/cn/lili/modules/system/entity/vo/WithdrawalSettingVO.java index 2c1d9545..813ac13c 100644 --- a/framework/src/main/java/cn/lili/modules/system/entity/vo/WithdrawalSettingVO.java +++ b/framework/src/main/java/cn/lili/modules/system/entity/vo/WithdrawalSettingVO.java @@ -1,5 +1,6 @@ package cn.lili.modules.system.entity.vo; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** @@ -14,14 +15,17 @@ public class WithdrawalSettingVO { /** * 提现最低金额 */ + @ApiModelProperty(value = "minPrice") private Double minPrice; /** * 提现手续费 */ + @ApiModelProperty(value = "提现手续费") private Double fee; /** * 提现类型 WECHAT\ALI */ + @ApiModelProperty(value = "提现类型 WECHAT、ALI") private String type; } diff --git a/framework/src/main/java/cn/lili/modules/wechat/util/WechatMessageUtil.java b/framework/src/main/java/cn/lili/modules/wechat/util/WechatMessageUtil.java index da0dfc45..311fc66e 100644 --- a/framework/src/main/java/cn/lili/modules/wechat/util/WechatMessageUtil.java +++ b/framework/src/main/java/cn/lili/modules/wechat/util/WechatMessageUtil.java @@ -11,6 +11,7 @@ import cn.lili.common.utils.HttpUtils; import cn.lili.common.utils.StringUtils; import cn.lili.modules.connect.entity.Connect; import cn.lili.modules.connect.entity.enums.ConnectEnum; +import cn.lili.modules.connect.entity.enums.SourceEnum; import cn.lili.modules.connect.service.ConnectService; import cn.lili.modules.member.entity.dto.ConnectQueryDTO; import cn.lili.modules.order.order.entity.dos.Order; @@ -146,7 +147,7 @@ public class WechatMessageUtil { } Connect connect = connectService.queryConnect( - ConnectQueryDTO.builder().userId(order.getMemberId()).unionType(ConnectEnum.WECHAT_MP_OPEN_ID.name()).build() + ConnectQueryDTO.builder().userId(order.getMemberId()).unionType(SourceEnum.WECHAT_MP_OPEN_ID.name()).build() ); if (connect == null) { return;