mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-31 18:28:43 +08:00 
			
		
		
		
	【代码评审】SYSTEM:微信小程序的订阅消息
This commit is contained in:
		| @@ -57,7 +57,7 @@ public interface SocialClientApi { | ||||
|     List<SocialWxSubscribeTemplateRespDTO> getSubscribeTemplate(); | ||||
|  | ||||
|     /** | ||||
|      * 发送订阅消息 | ||||
|      * 发送微信小程序订阅消息 | ||||
|      * | ||||
|      * @param reqDTO 请求 | ||||
|      */ | ||||
|   | ||||
| @@ -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. | ||||
|      * <pre> | ||||
| @@ -58,6 +60,7 @@ public class SocialWxSubscribeMessageReqDTO { | ||||
|      */ | ||||
|     private String lang; | ||||
|  | ||||
|     // TODO @puhui999:是必须 List<KeyValue<String, String>>,还是 Map<String, String 即可) | ||||
|     /** | ||||
|      * 模板内容,不填则下发空模板. | ||||
|      * <pre> | ||||
|   | ||||
| @@ -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; | ||||
|  | ||||
|   | ||||
| @@ -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") | ||||
|   | ||||
| @@ -81,7 +81,7 @@ public interface SocialClientService { | ||||
|     List<TemplateInfo> getSubscribeTemplate(); | ||||
|  | ||||
|     /** | ||||
|      * 发送订阅消息 | ||||
|      * 发送微信小程序订阅消息 | ||||
|      * | ||||
|      * @param reqDTO 请求 | ||||
|      */ | ||||
|   | ||||
| @@ -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<TemplateInfo> 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); | ||||
|         } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 YunaiV
					YunaiV