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 d6ab00f03..c9e20cbe0 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 @@ -13,12 +13,8 @@ public interface MessageTemplateConstants { String BROKERAGE_WITHDRAW_AUDIT_APPROVE = "brokerage_withdraw_audit_approve"; // 佣金提现(审核通过) String BROKERAGE_WITHDRAW_AUDIT_REJECT = "brokerage_withdraw_audit_reject"; // 佣金提现(审核不通过) - //======================= 订阅消息模版 ======================= + //======================= 小程序订阅消息模版 ======================= - // TODO @puhui999:建议 TRADE_AFTER_SALE_CHANGE - String ORDER_AFTERSALE_CHANGE = "售后进度通知"; - - // TODO @puhui999:是不是改成 PAY_WALLET_CHANGE 放在 PAY 模块 - String MONEY_CHANGE = "充值成功通知"; + String TRADE_AFTER_SALE_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 da5536989..b3b045171 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 @@ -68,10 +68,10 @@ public class AppSocialUserController { return success(Base64.encode(wxQrcode)); } - @GetMapping("/get-subscribe-template") - @Operation(summary = "获得微信小程订阅模板") - public CommonResult> getSubscribeTemplate() { - List template = socialClientApi.getSubscribeTemplate(); + @GetMapping("/get-subscribe-template-list") + @Operation(summary = "获得微信小程订阅模板列表") + public CommonResult> getSubscribeTemplateList() { + List template = socialClientApi.getSubscribeTemplateList(UserTypeEnum.MEMBER.getValue()); 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 095d39d93..3fdc38b69 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,10 +7,9 @@ import lombok.Data; @Data public class AppSocialWxSubscribeTemplateRespVO { - // TODO @puhui999:是不是使用 id 作为字段,更干净些哈; @Schema(description = "模版编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "9Aw5ZV1j9xdWTFEkqCpZ7mIBbSC34khK55OtzUPl0rU") - private String priTmplId; + private String id; @Schema(description = "模版标题", requiredMode = Schema.RequiredMode.REQUIRED, example = "订单支付通知") private String title; diff --git a/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/enums/MessageTemplateConstants.java b/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/enums/MessageTemplateConstants.java new file mode 100644 index 000000000..f6b727aef --- /dev/null +++ b/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/enums/MessageTemplateConstants.java @@ -0,0 +1,15 @@ +package cn.iocoder.yudao.module.pay.enums; + +// TODO @芋艿:枚举 +/** + * 通知模板枚举类 + * + * @author HUIHUI + */ +public interface MessageTemplateConstants { + + //======================= 小程序订阅消息 ======================= + + String PAY_WALLET_CHANGE = "充值成功通知"; + +} 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 ca65d0486..a75c398a7 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 @@ -54,13 +54,13 @@ public interface SocialClientApi { * * @return 小程序订阅消息模版 */ - List getSubscribeTemplate(); + List getSubscribeTemplateList(Integer userType); /** * 发送微信小程序订阅消息 * * @param reqDTO 请求 */ - void sendSubscribeMessage(SocialWxSubscribeMessageReqDTO reqDTO); + void sendSubscribeMessage(SocialWxSubscribeMessageSendReqDTO reqDTO, Integer userType); } 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/SocialWxSubscribeMessageSendReqDTO.java similarity index 67% rename from yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialWxSubscribeMessageReqDTO.java rename to yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialWxSubscribeMessageSendReqDTO.java index 5fb13b952..069864272 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/SocialWxSubscribeMessageSendReqDTO.java @@ -1,21 +1,20 @@ package cn.iocoder.yudao.module.system.api.social.dto; -import cn.iocoder.yudao.framework.common.core.KeyValue; +import jakarta.validation.constraints.NotNull; import lombok.Data; -import java.util.ArrayList; -import java.util.List; +import java.util.HashMap; +import java.util.Map; -// TODO @puhui99:1)参考 SocialWxQrcodeReqDTO,可以 @see 文档。这样,注释会更见见一点。2)是不是少了 Send:SocialWxSubscribeMessageSendReqDTO /** - * 微信小程序订阅消息 Request DTO + * 微信小程序订阅消息发送 Request DTO * + * @see 接口文档 * @author HUIHUI */ @Data -public class SocialWxSubscribeMessageReqDTO { +public class SocialWxSubscribeMessageSendReqDTO { - // TODO @puhui999:参数校验 /** * 接收者(用户)的 openid. *
@@ -24,6 +23,7 @@ public class SocialWxSubscribeMessageReqDTO {
      * 描述: 接收者(用户)的 openid
      * 
*/ + @NotNull(message = "接收者(用户)的 openid不能为空") private String toUser; /** @@ -34,6 +34,7 @@ public class SocialWxSubscribeMessageReqDTO { * 描述: 所需下发的模板消息的id * */ + @NotNull(message = "模板消息的id不能为空") private String templateId; /** @@ -51,6 +52,7 @@ public class SocialWxSubscribeMessageReqDTO { * * 枚举 WxMaConstants.MiniProgramState */ + @NotNull(message = "跳转小程序类型不能为空") private String miniprogramState; /** @@ -58,9 +60,9 @@ public class SocialWxSubscribeMessageReqDTO { * * 枚举 WxMaConstants.MiniProgramLang */ + @NotNull(message = "进入小程序查看的语言类型不能为空") private String lang; - // TODO @puhui999:是必须 List>,还是 Map @@ -69,13 +71,13 @@ public class SocialWxSubscribeMessageReqDTO { * 描述: 模板内容,不填则下发空模板 * */ - private List> messages; + private Map messages; - public SocialWxSubscribeMessageReqDTO addData(String key, String value) { + public SocialWxSubscribeMessageSendReqDTO addData(String key, String value) { if (messages == null) { - messages = new ArrayList<>(); + messages = new HashMap<>(); } - messages.add(new KeyValue<>(key, value)); + messages.put(key, value); return this; } 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 69cc4e62e..0802ca9ac 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,11 +11,10 @@ import lombok.Data; @Data public class SocialWxSubscribeTemplateRespDTO { - // TODO @puhui999:建议搞成 id /** * 添加至账号下的模板 id,发送小程序订阅消息时所需 */ - private String priTmplId; + private String id; /** * 模版标题 @@ -32,7 +31,7 @@ public class SocialWxSubscribeTemplateRespDTO { */ private String example; - // TODO @puhui999:这个在 wxjava 里面,有枚举字段么? + // TODO @puhui999:这个在 wxjava 里面,有枚举字段么?没得🤣 /** * 模版类型 * diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/social/SocialClientApiImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/social/SocialClientApiImpl.java index 1656524a7..77d676d96 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/social/SocialClientApiImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/social/SocialClientApiImpl.java @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.system.api.social; import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.system.api.social.dto.*; +import cn.iocoder.yudao.module.system.convert.social.SocialUserConvert; import cn.iocoder.yudao.module.system.service.social.SocialClientService; import jakarta.annotation.Resource; import me.chanjar.weixin.common.bean.WxJsapiSignature; @@ -47,14 +48,14 @@ public class SocialClientApiImpl implements SocialClientApi { } @Override - public List getSubscribeTemplate() { - List subscribeTemplate = socialClientService.getSubscribeTemplate(); - return BeanUtils.toBean(subscribeTemplate, SocialWxSubscribeTemplateRespDTO.class); + public List getSubscribeTemplateList(Integer userType) { + List subscribeTemplate = socialClientService.getSubscribeTemplateList(userType); + return SocialUserConvert.INSTANCE.convertList(subscribeTemplate); } @Override - public void sendSubscribeMessage(SocialWxSubscribeMessageReqDTO reqDTO) { - socialClientService.sendSubscribeMessage(reqDTO); + public void sendSubscribeMessage(SocialWxSubscribeMessageSendReqDTO reqDTO, Integer userType) { + socialClientService.sendSubscribeMessage(reqDTO, userType); } } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/SocialClientController.http b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/SocialClientController.http index b1390a743..b4ba43a09 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/SocialClientController.http +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/SocialClientController.http @@ -1,5 +1,19 @@ ### 请求 /system/social-client/send-subscribe-message 接口 => 发送测试订阅消息 POST {{baseUrl}}/system/social-client/send-subscribe-message Authorization: Bearer {{token}} +Content-Type: application/json #Authorization: Bearer test100 tenant-id: {{adminTenentId}} + +{ + "toUser": "oKNkb4xxw2H135-MVPKtEMkumK08", + "templateId": "W4ybDTIwCfKHtMKR7fSfx83DtmVKEeXQo3Ti7GCw4_4", + "miniprogramState": "developer", + "lang": "zh_CN", + "messages": { + "character_string1":"5616122165165", + "amount2":"1000.00", + "time3":"2024-01-01 10:10:10", + "phrase4":"成功" + } +} 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 6ff6aff7c..e7b7c5511 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 @@ -1,9 +1,10 @@ package cn.iocoder.yudao.module.system.controller.admin.socail; +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; -import cn.iocoder.yudao.module.system.api.social.dto.SocialWxSubscribeMessageReqDTO; +import cn.iocoder.yudao.module.system.api.social.dto.SocialWxSubscribeMessageSendReqDTO; import cn.iocoder.yudao.module.system.controller.admin.socail.vo.client.SocialClientPageReqVO; import cn.iocoder.yudao.module.system.controller.admin.socail.vo.client.SocialClientRespVO; import cn.iocoder.yudao.module.system.controller.admin.socail.vo.client.SocialClientSaveReqVO; @@ -72,15 +73,9 @@ public class SocialClientController { //======================= TODO 测试发送订阅消息 ======================= - // TODO @puhui999:这个接口,其实可以留着。然后把参数挪到 .http 文件。先直接用 SocialWxSubscribeMessageReqDTO 接参数 @PostMapping("/send-subscribe-message") - public void testSendSubscribeMessage() { - SocialWxSubscribeMessageReqDTO reqDTO = new SocialWxSubscribeMessageReqDTO().setLang("zh_CN") - .setMiniprogramState("developer").setTemplateId("W4ybDTIwCfKHtMKR7fSfx83DtmVKEeXQo3Ti7GCw4_4") - .setToUser("oKNkb4xxw2H135-MVPKtEMkumK08"); - reqDTO.addData("character_string1", "11111111").addData("amount2", "6666").addData("time3", "2024-01-01 10:10:10") - .addData("phrase4", "成功"); - socialClientService.sendSubscribeMessage(reqDTO); + public void testSendSubscribeMessage(@RequestBody SocialWxSubscribeMessageSendReqDTO reqDTO) { + socialClientService.sendSubscribeMessage(reqDTO, UserTypeEnum.MEMBER.getValue()); } } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/social/SocialUserConvert.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/social/SocialUserConvert.java index 9e679a242..0eb001282 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/social/SocialUserConvert.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/social/SocialUserConvert.java @@ -1,11 +1,23 @@ package cn.iocoder.yudao.module.system.convert.social; +import cn.binarywang.wx.miniapp.bean.WxMaSubscribeMessage; +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.system.api.social.dto.SocialUserBindReqDTO; +import cn.iocoder.yudao.module.system.api.social.dto.SocialWxSubscribeMessageSendReqDTO; +import cn.iocoder.yudao.module.system.api.social.dto.SocialWxSubscribeTemplateRespDTO; import cn.iocoder.yudao.module.system.controller.admin.socail.vo.user.SocialUserBindReqVO; +import me.chanjar.weixin.common.bean.subscribemsg.TemplateInfo; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.factory.Mappers; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import static cn.iocoder.yudao.framework.common.util.collection.MapUtils.findAndThen; + @Mapper public interface SocialUserConvert { @@ -14,4 +26,24 @@ public interface SocialUserConvert { @Mapping(source = "reqVO.type", target = "socialType") SocialUserBindReqDTO convert(Long userId, Integer userType, SocialUserBindReqVO reqVO); + default WxMaSubscribeMessage convert(SocialWxSubscribeMessageSendReqDTO reqDTO) { + WxMaSubscribeMessage message = BeanUtils.toBean(reqDTO, WxMaSubscribeMessage.class); + Map messages = reqDTO.getMessages(); + if (CollUtil.isNotEmpty(messages)) { + messages.keySet().forEach(key -> { + findAndThen(messages, key, value -> message.addData(new WxMaSubscribeMessage.MsgData(key, value))); + }); + } + return message; + } + + @Mapping(target = "id", source = "priTmplId") + SocialWxSubscribeTemplateRespDTO convert(TemplateInfo templateInfo); + + default List convertList(List subscribeTemplate) { + List list = new ArrayList<>(); + subscribeTemplate.forEach(templateInfo -> list.add(convert(templateInfo))); + return list; + } + } 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 0fe4adf20..5d39680ea 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 @@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.system.service.social; import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.system.api.social.dto.SocialWxQrcodeReqDTO; -import cn.iocoder.yudao.module.system.api.social.dto.SocialWxSubscribeMessageReqDTO; +import cn.iocoder.yudao.module.system.api.social.dto.SocialWxSubscribeMessageSendReqDTO; import cn.iocoder.yudao.module.system.controller.admin.socail.vo.client.SocialClientPageReqVO; import cn.iocoder.yudao.module.system.controller.admin.socail.vo.client.SocialClientSaveReqVO; import cn.iocoder.yudao.module.system.dal.dataobject.social.SocialClientDO; @@ -78,14 +78,14 @@ public interface SocialClientService { * * @return 微信小程订阅模板 */ - List getSubscribeTemplate(); + List getSubscribeTemplateList(Integer userType); /** * 发送微信小程序订阅消息 * * @param reqDTO 请求 */ - void sendSubscribeMessage(SocialWxSubscribeMessageReqDTO reqDTO); + void sendSubscribeMessage(SocialWxSubscribeMessageSendReqDTO reqDTO, Integer userType); // =================== 客户端管理 =================== 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 34fd83136..ab888b801 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 @@ -4,7 +4,6 @@ import cn.binarywang.wx.miniapp.api.WxMaService; import cn.binarywang.wx.miniapp.api.WxMaSubscribeService; import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl; import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo; -import cn.binarywang.wx.miniapp.bean.WxMaSubscribeMessage; import cn.binarywang.wx.miniapp.config.impl.WxMaRedisBetterConfigImpl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.lang.Assert; @@ -17,9 +16,10 @@ import cn.iocoder.yudao.framework.common.util.cache.CacheUtils; import cn.iocoder.yudao.framework.common.util.http.HttpUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.system.api.social.dto.SocialWxQrcodeReqDTO; -import cn.iocoder.yudao.module.system.api.social.dto.SocialWxSubscribeMessageReqDTO; +import cn.iocoder.yudao.module.system.api.social.dto.SocialWxSubscribeMessageSendReqDTO; import cn.iocoder.yudao.module.system.controller.admin.socail.vo.client.SocialClientPageReqVO; import cn.iocoder.yudao.module.system.controller.admin.socail.vo.client.SocialClientSaveReqVO; +import cn.iocoder.yudao.module.system.convert.social.SocialUserConvert; import cn.iocoder.yudao.module.system.dal.dataobject.social.SocialClientDO; import cn.iocoder.yudao.module.system.dal.mysql.social.SocialClientMapper; import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum; @@ -236,7 +236,6 @@ 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); } @@ -256,36 +255,31 @@ public class SocialClientServiceImpl implements SocialClientService { null, ObjUtil.defaultIfNull(reqVO.getHyaline(), SocialWxQrcodeReqDTO.HYALINE)); } catch (WxErrorException e) { - log.error("[getWxQrcode][reqVO({})) 获得小程序码失败]", reqVO, e); + log.error("[getWxQrcode][reqVO({}) 获得小程序码失败]", reqVO, e); throw exception(SOCIAL_CLIENT_WEIXIN_MINI_APP_QRCODE_ERROR); } } @Override - public List getSubscribeTemplate() { - // TODO @puhui999:这个 userType 最好通过参数,传递过来;然后这个方法名,貌似叫 getSubscribeTemplateList 更合适哈; - WxMaService service = getWxMaService(UserTypeEnum.MEMBER.getValue()); + public List getSubscribeTemplateList(Integer userType) { + WxMaService service = getWxMaService(userType); try { WxMaSubscribeService subscribeService = service.getSubscribeService(); return subscribeService.getTemplateList(); } catch (WxErrorException e) { - log.error("[getSubscribeTemplate][获得小程序订阅消息模版]", e); + log.error("[getSubscribeTemplate][userType({}) 获得小程序订阅消息模版]", userType, e); throw exception(SOCIAL_CLIENT_WEIXIN_MINI_APP_SUBSCRIBE_TEMPLATE_ERROR); } } @Override - public void sendSubscribeMessage(SocialWxSubscribeMessageReqDTO reqDTO) { - // TODO @puhui999:这个 userType 最好通过参数, - WxMaService service = getWxMaService(UserTypeEnum.MEMBER.getValue()); + public void sendSubscribeMessage(SocialWxSubscribeMessageSendReqDTO reqDTO, Integer userType) { + WxMaService service = getWxMaService(userType); 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); + subscribeService.sendSubscribeMsg(SocialUserConvert.INSTANCE.convert(reqDTO)); } catch (WxErrorException e) { - // TODO @puhui999:这里的日志,reqDTO 要打进去 - log.error("[sendSubscribeMessage][发送小程序订阅消息]", e); + log.error("[sendSubscribeMessage][reqVO({}) userType({}) 发送小程序订阅消息]", reqDTO, userType, e); throw exception(SOCIAL_CLIENT_WEIXIN_MINI_APP_SUBSCRIBE_MESSAGE_ERROR); } }