From 7f87f26f3a09fbcba5dfca7fa51af9362605aa13 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Wed, 24 Jul 2024 19:30:28 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E4=BB=A3=E7=A0=81=E8=AF=84=E5=AE=A1?= =?UTF-8?q?=E3=80=91SYSTEM=EF=BC=9A=E5=BE=AE=E4=BF=A1=E5=B0=8F=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F=E7=9A=84=E8=AE=A2=E9=98=85=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/trade/enums/MessageTemplateConstants.java | 3 +++ .../app/social/AppSocialUserController.java | 8 +++----- .../social/vo/AppSocialWxSubscribeTemplateRespVO.java | 11 +++++++---- .../module/system/api/social/SocialClientApi.java | 2 +- .../social/dto/SocialWxSubscribeMessageReqDTO.java | 3 +++ .../social/dto/SocialWxSubscribeTemplateRespDTO.java | 7 ++++++- .../admin/socail/SocialClientController.java | 1 + .../system/service/social/SocialClientService.java | 2 +- .../service/social/SocialClientServiceImpl.java | 8 ++++++-- 9 files changed, 31 insertions(+), 14 deletions(-) diff --git a/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/MessageTemplateConstants.java b/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/MessageTemplateConstants.java index 727598636..d6ab00f03 100644 --- a/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/MessageTemplateConstants.java +++ b/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/MessageTemplateConstants.java @@ -15,7 +15,10 @@ public interface MessageTemplateConstants { //======================= 订阅消息模版 ======================= + // TODO @puhui999:建议 TRADE_AFTER_SALE_CHANGE String ORDER_AFTERSALE_CHANGE = "售后进度通知"; + + // TODO @puhui999:是不是改成 PAY_WALLET_CHANGE 放在 PAY 模块 String MONEY_CHANGE = "充值成功通知"; } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/social/AppSocialUserController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/social/AppSocialUserController.java index 326460fe8..da5536989 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/social/AppSocialUserController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/social/AppSocialUserController.java @@ -8,10 +8,7 @@ import cn.iocoder.yudao.framework.security.core.annotations.PreAuthenticated; import cn.iocoder.yudao.module.member.controller.app.social.vo.*; import cn.iocoder.yudao.module.system.api.social.SocialClientApi; import cn.iocoder.yudao.module.system.api.social.SocialUserApi; -import cn.iocoder.yudao.module.system.api.social.dto.SocialUserBindReqDTO; -import cn.iocoder.yudao.module.system.api.social.dto.SocialUserRespDTO; -import cn.iocoder.yudao.module.system.api.social.dto.SocialUserUnbindReqDTO; -import cn.iocoder.yudao.module.system.api.social.dto.SocialWxQrcodeReqDTO; +import cn.iocoder.yudao.module.system.api.social.dto.*; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; @@ -74,7 +71,8 @@ public class AppSocialUserController { @GetMapping("/get-subscribe-template") @Operation(summary = "获得微信小程订阅模板") public CommonResult> getSubscribeTemplate() { - return success(BeanUtils.toBean(socialClientApi.getSubscribeTemplate(), AppSocialWxSubscribeTemplateRespVO.class)); + List template = socialClientApi.getSubscribeTemplate(); + return success(BeanUtils.toBean(template, AppSocialWxSubscribeTemplateRespVO.class)); } } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/social/vo/AppSocialWxSubscribeTemplateRespVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/social/vo/AppSocialWxSubscribeTemplateRespVO.java index 2aad4fdda..095d39d93 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/social/vo/AppSocialWxSubscribeTemplateRespVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/social/vo/AppSocialWxSubscribeTemplateRespVO.java @@ -7,19 +7,22 @@ import lombok.Data; @Data public class AppSocialWxSubscribeTemplateRespVO { - @Schema(description = "添加至账号下的模板 id,发送小程序订阅消息时所需", requiredMode = Schema.RequiredMode.REQUIRED, example = "9Aw5ZV1j9xdWTFEkqCpZ7mIBbSC34khK55OtzUPl0rU") + // TODO @puhui999:是不是使用 id 作为字段,更干净些哈; + @Schema(description = "模版编号", requiredMode = Schema.RequiredMode.REQUIRED, + example = "9Aw5ZV1j9xdWTFEkqCpZ7mIBbSC34khK55OtzUPl0rU") private String priTmplId; @Schema(description = "模版标题", requiredMode = Schema.RequiredMode.REQUIRED, example = "订单支付通知") private String title; - @Schema(description = "模版内容", requiredMode = Schema.RequiredMode.REQUIRED) + @Schema(description = "模版内容", requiredMode = Schema.RequiredMode.REQUIRED, + example = "{ {result.DATA} }\\n\\n领奖金额:{ {withdrawMoney.DATA} }\\n领奖时间: { {withdrawTime.DATA} }") private String content; @Schema(description = "模板内容示例", requiredMode = Schema.RequiredMode.REQUIRED, example = "下单时间:2016年8月8日") private String example; - @Schema(description = "模版类型,2 为一次性订阅,3 为长期订阅", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") - private Integer type; + @Schema(description = "模版类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + private Integer type; // 2 为一次性订阅,3 为长期订阅 } diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/SocialClientApi.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/SocialClientApi.java index 3a91c92a4..ca65d0486 100644 --- a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/SocialClientApi.java +++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/SocialClientApi.java @@ -57,7 +57,7 @@ public interface SocialClientApi { List getSubscribeTemplate(); /** - * 发送订阅消息 + * 发送微信小程序订阅消息 * * @param reqDTO 请求 */ diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialWxSubscribeMessageReqDTO.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialWxSubscribeMessageReqDTO.java index 4f7ecd7a0..5fb13b952 100644 --- a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialWxSubscribeMessageReqDTO.java +++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialWxSubscribeMessageReqDTO.java @@ -6,6 +6,7 @@ import lombok.Data; import java.util.ArrayList; import java.util.List; +// TODO @puhui99:1)参考 SocialWxQrcodeReqDTO,可以 @see 文档。这样,注释会更见见一点。2)是不是少了 Send:SocialWxSubscribeMessageSendReqDTO /** * 微信小程序订阅消息 Request DTO * @@ -14,6 +15,7 @@ import java.util.List; @Data public class SocialWxSubscribeMessageReqDTO { + // TODO @puhui999:参数校验 /** * 接收者(用户)的 openid. *
@@ -58,6 +60,7 @@ public class SocialWxSubscribeMessageReqDTO {
      */
     private String lang;
 
+    // TODO @puhui999:是必须 List>,还是 Map
diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialWxSubscribeTemplateRespDTO.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialWxSubscribeTemplateRespDTO.java
index 5959f5b14..69cc4e62e 100644
--- a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialWxSubscribeTemplateRespDTO.java
+++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialWxSubscribeTemplateRespDTO.java
@@ -11,6 +11,7 @@ import lombok.Data;
 @Data
 public class SocialWxSubscribeTemplateRespDTO {
 
+    // TODO @puhui999:建议搞成 id
     /**
      * 添加至账号下的模板 id,发送小程序订阅消息时所需
      */
@@ -31,8 +32,12 @@ public class SocialWxSubscribeTemplateRespDTO {
      */
     private String example;
 
+    // TODO @puhui999:这个在 wxjava 里面,有枚举字段么?
     /**
-     * 模版类型,2 为一次性订阅,3 为长期订阅
+     * 模版类型
+     *
+     * 2 为一次性订阅
+     * 3 为长期订阅
      */
     private Integer type;
 
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/SocialClientController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/SocialClientController.java
index f0fc6d836..6ff6aff7c 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/SocialClientController.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/SocialClientController.java
@@ -72,6 +72,7 @@ public class SocialClientController {
 
     //======================= TODO 测试发送订阅消息 =======================
 
+    // TODO @puhui999:这个接口,其实可以留着。然后把参数挪到 .http 文件。先直接用 SocialWxSubscribeMessageReqDTO 接参数
     @PostMapping("/send-subscribe-message")
     public void testSendSubscribeMessage() {
         SocialWxSubscribeMessageReqDTO reqDTO = new SocialWxSubscribeMessageReqDTO().setLang("zh_CN")
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialClientService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialClientService.java
index 2f58732bb..0fe4adf20 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialClientService.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialClientService.java
@@ -81,7 +81,7 @@ public interface SocialClientService {
     List getSubscribeTemplate();
 
     /**
-     * 发送订阅消息
+     * 发送微信小程序订阅消息
      *
      * @param reqDTO 请求
      */
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialClientServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialClientServiceImpl.java
index 7f793f27e..34fd83136 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialClientServiceImpl.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialClientServiceImpl.java
@@ -236,6 +236,7 @@ public class SocialClientServiceImpl implements SocialClientService {
         try {
             return service.getUserService().getPhoneNoInfo(phoneCode);
         } catch (WxErrorException e) {
+            // TODO @puhui999:这里的日志,reqDTO 要打进去
             log.error("[getPhoneNoInfo][userType({}) phoneCode({}) 获得手机号失败]", userType, phoneCode, e);
             throw exception(SOCIAL_CLIENT_WEIXIN_MINI_APP_PHONE_CODE_ERROR);
         }
@@ -262,11 +263,12 @@ public class SocialClientServiceImpl implements SocialClientService {
 
     @Override
     public List getSubscribeTemplate() {
+        // TODO @puhui999:这个 userType 最好通过参数,传递过来;然后这个方法名,貌似叫 getSubscribeTemplateList 更合适哈;
         WxMaService service = getWxMaService(UserTypeEnum.MEMBER.getValue());
         try {
             WxMaSubscribeService subscribeService = service.getSubscribeService();
             return subscribeService.getTemplateList();
-        }catch (WxErrorException e) {
+        } catch (WxErrorException e) {
             log.error("[getSubscribeTemplate][获得小程序订阅消息模版]", e);
             throw exception(SOCIAL_CLIENT_WEIXIN_MINI_APP_SUBSCRIBE_TEMPLATE_ERROR);
         }
@@ -274,13 +276,15 @@ public class SocialClientServiceImpl implements SocialClientService {
 
     @Override
     public void sendSubscribeMessage(SocialWxSubscribeMessageReqDTO reqDTO) {
+        // TODO @puhui999:这个 userType 最好通过参数,
         WxMaService service = getWxMaService(UserTypeEnum.MEMBER.getValue());
         try {
             WxMaSubscribeService subscribeService = service.getSubscribeService();
             WxMaSubscribeMessage message = BeanUtils.toBean(reqDTO, WxMaSubscribeMessage.class);
             reqDTO.getMessages().forEach(item-> message.addData(new WxMaSubscribeMessage.MsgData(item.getKey(), item.getValue())));
             subscribeService.sendSubscribeMsg(message);
-        }catch (WxErrorException e) {
+        } catch (WxErrorException e) {
+            // TODO @puhui999:这里的日志,reqDTO 要打进去
             log.error("[sendSubscribeMessage][发送小程序订阅消息]", e);
             throw exception(SOCIAL_CLIENT_WEIXIN_MINI_APP_SUBSCRIBE_MESSAGE_ERROR);
         }