Commit a9862b798d44622e3086fd7a753f57921d2c5772

Authored by YunaiV
1 parent 3be6ee27

【代码评审】SYSTEM:微信小程序的订阅

yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/PayWalletRechargeServiceImpl.java
@@ -145,16 +145,16 @@ public class PayWalletRechargeServiceImpl implements PayWalletRechargeService { @@ -145,16 +145,16 @@ public class PayWalletRechargeServiceImpl implements PayWalletRechargeService {
145 145
146 @Async 146 @Async
147 public void sendPayWalletChangeMessage(Long payOrderId, PayWalletRechargeDO walletRecharge) { 147 public void sendPayWalletChangeMessage(Long payOrderId, PayWalletRechargeDO walletRecharge) {
148 - // 1.1 获得会员钱包信息 148 + // 1. 获得会员钱包信息
149 PayWalletDO wallet = payWalletService.getWallet(walletRecharge.getWalletId()); 149 PayWalletDO wallet = payWalletService.getWallet(walletRecharge.getWalletId());
150 - // 1.2 构建并发送模版消息 150 + // 2. 构建并发送模版消息
151 socialClientApi.sendSubscribeMessage(new SocialWxSubscribeMessageSendReqDTO().setPage(WALLET_MONEY_PATH) 151 socialClientApi.sendSubscribeMessage(new SocialWxSubscribeMessageSendReqDTO().setPage(WALLET_MONEY_PATH)
152 - .setUserId(wallet.getUserId()).setUserType(wallet.getUserType()).setTemplateTitle(PAY_WALLET_CHANGE)  
153 - .setSocialType(SocialTypeEnum.WECHAT_MINI_APP.getType())  
154 - // 添加模版消息  
155 - .addMessage("phrase4", "充值成功").addMessage("character_string1", String.valueOf(payOrderId)) 152 + .setUserId(wallet.getUserId()).setUserType(wallet.getUserType())
  153 + .setTemplateTitle(PAY_WALLET_CHANGE).setSocialType(SocialTypeEnum.WECHAT_MINI_APP.getType())
  154 + .addMessage("character_string1", String.valueOf(payOrderId))
156 .addMessage("amount2", fenToYuanStr(walletRecharge.getTotalPrice())) 155 .addMessage("amount2", fenToYuanStr(walletRecharge.getTotalPrice()))
157 - .addMessage("time3", LocalDateTimeUtil.formatNormal(LocalDateTime.now()))); 156 + .addMessage("time3", LocalDateTimeUtil.formatNormal(LocalDateTime.now()))
  157 + .addMessage("phrase4", "充值成功"));
158 } 158 }
159 159
160 @Override 160 @Override
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/SocialClientApi.java
@@ -49,6 +49,7 @@ public interface SocialClientApi { @@ -49,6 +49,7 @@ public interface SocialClientApi {
49 */ 49 */
50 byte[] getWxaQrcode(@Valid SocialWxQrcodeReqDTO reqVO); 50 byte[] getWxaQrcode(@Valid SocialWxQrcodeReqDTO reqVO);
51 51
  52 + // TODO @puhui999:要不是统一都叫 getWxaSubscribeTemplateList、SocialWxaSubscribeTemplateRespDTO
52 /** 53 /**
53 * 获得微信小程订阅模板 54 * 获得微信小程订阅模板
54 * 55 *
@@ -56,6 +57,7 @@ public interface SocialClientApi { @@ -56,6 +57,7 @@ public interface SocialClientApi {
56 */ 57 */
57 List<SocialWxSubscribeTemplateRespDTO> getSubscribeTemplateList(Integer userType); 58 List<SocialWxSubscribeTemplateRespDTO> getSubscribeTemplateList(Integer userType);
58 59
  60 + // TODO @puhui999:sendWxaSubscribeMessage、SocialWxaSubscribeMessageSendReqDTO;然后不传递 socialType;就是专门给微信小程序的
59 /** 61 /**
60 * 发送微信小程序订阅消息 62 * 发送微信小程序订阅消息
61 * 63 *
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialWxSubscribeMessageSendReqDTO.java
@@ -2,6 +2,8 @@ package cn.iocoder.yudao.module.system.api.social.dto; @@ -2,6 +2,8 @@ package cn.iocoder.yudao.module.system.api.social.dto;
2 2
3 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; 3 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
4 import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum; 4 import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum;
  5 +import jakarta.validation.constraints.NotEmpty;
  6 +import jakarta.validation.constraints.NotNull;
5 import lombok.Data; 7 import lombok.Data;
6 8
7 import java.util.HashMap; 9 import java.util.HashMap;
@@ -16,17 +18,19 @@ import java.util.Map; @@ -16,17 +18,19 @@ import java.util.Map;
16 public class SocialWxSubscribeMessageSendReqDTO { 18 public class SocialWxSubscribeMessageSendReqDTO {
17 19
18 /** 20 /**
19 - * 用户 id 21 + * 用户编号
20 * 22 *
21 * 关联 MemberUserDO 的 id 编号 23 * 关联 MemberUserDO 的 id 编号
22 * 关联 AdminUserDO 的 id 编号 24 * 关联 AdminUserDO 的 id 编号
23 */ 25 */
  26 + @NotNull(message = "用户编号不能为空")
24 private Long userId; 27 private Long userId;
25 /** 28 /**
26 - * 用户类型, 预留 多商户转帐可能需要用到 29 + * 用户类型
27 * 30 *
28 * 关联 {@link UserTypeEnum} 31 * 关联 {@link UserTypeEnum}
29 */ 32 */
  33 + @NotNull(message = "用户类型不能为空")
30 private Integer userType; 34 private Integer userType;
31 35
32 /** 36 /**
@@ -34,11 +38,13 @@ public class SocialWxSubscribeMessageSendReqDTO { @@ -34,11 +38,13 @@ public class SocialWxSubscribeMessageSendReqDTO {
34 * 38 *
35 * 枚举 {@link SocialTypeEnum} 39 * 枚举 {@link SocialTypeEnum}
36 */ 40 */
  41 + @NotNull(message = "社交类型不能为空")
37 private Integer socialType; 42 private Integer socialType;
38 43
39 /** 44 /**
40 * 消息模版标题 45 * 消息模版标题
41 */ 46 */
  47 + @NotEmpty(message = "消息模版标题不能为空")
42 private String templateTitle; 48 private String templateTitle;
43 49
44 /** 50 /**
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/social/SocialClientApiImpl.java
@@ -64,9 +64,8 @@ public class SocialClientApiImpl implements SocialClientApi { @@ -64,9 +64,8 @@ public class SocialClientApiImpl implements SocialClientApi {
64 64
65 @Override 65 @Override
66 public List<SocialWxSubscribeTemplateRespDTO> getSubscribeTemplateList(Integer userType) { 66 public List<SocialWxSubscribeTemplateRespDTO> getSubscribeTemplateList(Integer userType) {
67 - List<TemplateInfo> subscribeTemplate = socialClientService.getSubscribeTemplateList(userType);  
68 - return convertList(subscribeTemplate, item -> BeanUtils.toBean(item, SocialWxSubscribeTemplateRespDTO.class)  
69 - .setId(item.getPriTmplId())); 67 + List<TemplateInfo> list = socialClientService.getSubscribeTemplateList(userType);
  68 + return convertList(list, item -> BeanUtils.toBean(item, SocialWxSubscribeTemplateRespDTO.class).setId(item.getPriTmplId()));
70 } 69 }
71 70
72 @Override 71 @Override
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialClientServiceImpl.java
@@ -297,13 +297,13 @@ public class SocialClientServiceImpl implements SocialClientService { @@ -297,13 +297,13 @@ public class SocialClientServiceImpl implements SocialClientService {
297 */ 297 */
298 private WxMaSubscribeMessage buildMessageSendReqDTO(SocialWxSubscribeMessageSendReqDTO reqDTO, 298 private WxMaSubscribeMessage buildMessageSendReqDTO(SocialWxSubscribeMessageSendReqDTO reqDTO,
299 String templateId, String openId) { 299 String templateId, String openId) {
300 - // 1.1 设置订阅消息基本参数 300 + // 设置订阅消息基本参数
301 WxMaSubscribeMessage subscribeMessage = new WxMaSubscribeMessage().setLang("zh_CN").setMiniprogramState(envVersion) 301 WxMaSubscribeMessage subscribeMessage = new WxMaSubscribeMessage().setLang("zh_CN").setMiniprogramState(envVersion)
302 .setTemplateId(templateId).setToUser(openId).setPage(reqDTO.getPage()); 302 .setTemplateId(templateId).setToUser(openId).setPage(reqDTO.getPage());
303 - // 1.2 设置具体消息参数 303 + // 设置具体消息参数
304 Map<String, String> messages = reqDTO.getMessages(); 304 Map<String, String> messages = reqDTO.getMessages();
305 if (CollUtil.isNotEmpty(messages)) { 305 if (CollUtil.isNotEmpty(messages)) {
306 - messages.keySet().forEach(key -> findAndThen(messages, key, value -> 306 + reqDTO.getMessages().keySet().forEach(key -> findAndThen(messages, key, value ->
307 subscribeMessage.addData(new WxMaSubscribeMessage.MsgData(key, value)))); 307 subscribeMessage.addData(new WxMaSubscribeMessage.MsgData(key, value))));
308 } 308 }
309 return subscribeMessage; 309 return subscribeMessage;