mirror of
https://gitee.com/huangge1199_admin/vue-pro.git
synced 2024-11-26 17:21:53 +08:00
【代码优化】SYSTEM:微信小程序的订阅
This commit is contained in:
parent
abe2f8580b
commit
7de546385a
@ -63,16 +63,16 @@ public class AppSocialUserController {
|
|||||||
|
|
||||||
@PostMapping("/wxa-qrcode")
|
@PostMapping("/wxa-qrcode")
|
||||||
@Operation(summary = "获得微信小程序码(base64 image)")
|
@Operation(summary = "获得微信小程序码(base64 image)")
|
||||||
public CommonResult<String> getWxaQrcode(@RequestBody @Valid AppSocialWxQrcodeReqVO reqVO) {
|
public CommonResult<String> getWxaQrcode(@RequestBody @Valid AppSocialWxaQrcodeReqVO reqVO) {
|
||||||
byte[] wxQrcode = socialClientApi.getWxaQrcode(BeanUtils.toBean(reqVO, SocialWxQrcodeReqDTO.class));
|
byte[] wxQrcode = socialClientApi.getWxaQrcode(BeanUtils.toBean(reqVO, SocialWxQrcodeReqDTO.class));
|
||||||
return success(Base64.encode(wxQrcode));
|
return success(Base64.encode(wxQrcode));
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/get-subscribe-template-list")
|
@GetMapping("/get-subscribe-template-list")
|
||||||
@Operation(summary = "获得微信小程订阅模板列表")
|
@Operation(summary = "获得微信小程订阅模板列表")
|
||||||
public CommonResult<List<AppSocialWxSubscribeTemplateRespVO>> getSubscribeTemplateList() {
|
public CommonResult<List<AppSocialWxaSubscribeTemplateRespVO>> getSubscribeTemplateList() {
|
||||||
List<SocialWxaSubscribeTemplateRespDTO> template = socialClientApi.getWxaSubscribeTemplateList(UserTypeEnum.MEMBER.getValue());
|
List<SocialWxaSubscribeTemplateRespDTO> template = socialClientApi.getWxaSubscribeTemplateList(UserTypeEnum.MEMBER.getValue());
|
||||||
return success(BeanUtils.toBean(template, AppSocialWxSubscribeTemplateRespVO.class));
|
return success(BeanUtils.toBean(template, AppSocialWxaSubscribeTemplateRespVO.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@ import lombok.Data;
|
|||||||
|
|
||||||
@Schema(description = "用户 APP - 获得获取小程序码 Request VO")
|
@Schema(description = "用户 APP - 获得获取小程序码 Request VO")
|
||||||
@Data
|
@Data
|
||||||
public class AppSocialWxQrcodeReqVO {
|
public class AppSocialWxaQrcodeReqVO {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 页面路径不能携带参数(参数请放在scene字段里)
|
* 页面路径不能携带参数(参数请放在scene字段里)
|
@ -5,7 +5,7 @@ import lombok.Data;
|
|||||||
|
|
||||||
@Schema(description = "用户 APP - 获得小程序订阅模版 Response VO")
|
@Schema(description = "用户 APP - 获得小程序订阅模版 Response VO")
|
||||||
@Data
|
@Data
|
||||||
public class AppSocialWxSubscribeTemplateRespVO {
|
public class AppSocialWxaSubscribeTemplateRespVO {
|
||||||
|
|
||||||
@Schema(description = "模版编号", requiredMode = Schema.RequiredMode.REQUIRED,
|
@Schema(description = "模版编号", requiredMode = Schema.RequiredMode.REQUIRED,
|
||||||
example = "9Aw5ZV1j9xdWTFEkqCpZ7mIBbSC34khK55OtzUPl0rU")
|
example = "9Aw5ZV1j9xdWTFEkqCpZ7mIBbSC34khK55OtzUPl0rU")
|
@ -8,6 +8,7 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|||||||
import cn.iocoder.yudao.module.system.api.social.dto.*;
|
import cn.iocoder.yudao.module.system.api.social.dto.*;
|
||||||
import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum;
|
import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum;
|
||||||
import cn.iocoder.yudao.module.system.service.social.SocialClientService;
|
import cn.iocoder.yudao.module.system.service.social.SocialClientService;
|
||||||
|
import cn.iocoder.yudao.module.system.service.social.SocialUserService;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import me.chanjar.weixin.common.bean.WxJsapiSignature;
|
import me.chanjar.weixin.common.bean.WxJsapiSignature;
|
||||||
@ -33,7 +34,7 @@ public class SocialClientApiImpl implements SocialClientApi {
|
|||||||
@Resource
|
@Resource
|
||||||
private SocialClientService socialClientService;
|
private SocialClientService socialClientService;
|
||||||
@Resource
|
@Resource
|
||||||
public SocialUserApi socialUserApi;
|
private SocialUserService socialUserService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getAuthorizeUrl(Integer socialType, Integer userType, String redirectUri) {
|
public String getAuthorizeUrl(Integer socialType, Integer userType, String redirectUri) {
|
||||||
@ -68,29 +69,29 @@ public class SocialClientApiImpl implements SocialClientApi {
|
|||||||
@Override
|
@Override
|
||||||
public void sendWxaSubscribeMessage(SocialWxaSubscribeMessageSendReqDTO reqDTO) {
|
public void sendWxaSubscribeMessage(SocialWxaSubscribeMessageSendReqDTO reqDTO) {
|
||||||
// 1.1 获得订阅模版列表
|
// 1.1 获得订阅模版列表
|
||||||
List<SocialWxaSubscribeTemplateRespDTO> templateList = getWxaSubscribeTemplateList(reqDTO.getUserType());
|
List<TemplateInfo> templateList = socialClientService.getSubscribeTemplateList(reqDTO.getUserType());
|
||||||
if (CollUtil.isEmpty(templateList)) {
|
if (CollUtil.isEmpty(templateList)) {
|
||||||
log.warn("[sendSubscribeMessage][reqDTO({}) 发送订阅消息失败,原因:没有找到订阅模板]", reqDTO);
|
log.warn("[sendSubscribeMessage][reqDTO({}) 发送订阅消息失败,原因:没有找到订阅模板]", reqDTO);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// 1.2 获得需要使用的模版
|
// 1.2 获得需要使用的模版
|
||||||
SocialWxaSubscribeTemplateRespDTO template = findOne(templateList, item ->
|
TemplateInfo template = findOne(templateList, item ->
|
||||||
ObjUtil.equal(item.getTitle(), reqDTO.getTemplateTitle()));
|
ObjUtil.equal(item.getTitle(), reqDTO.getTemplateTitle()));
|
||||||
if (template == null) {
|
if (template == null) {
|
||||||
log.warn("[sendSubscribeMessage][reqDTO({}) 发送订阅消息失败,原因:没有找到订阅模板]", reqDTO);
|
log.warn("[sendWxaSubscribeMessage][reqDTO({}) 发送订阅消息失败,原因:没有找到订阅模板]", reqDTO);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 2. 获得社交用户
|
// 2. 获得社交用户
|
||||||
SocialUserRespDTO socialUser = socialUserApi.getSocialUserByUserId(reqDTO.getUserType(), reqDTO.getUserId(),
|
SocialUserRespDTO socialUser = socialUserService.getSocialUserByUserId(reqDTO.getUserType(), reqDTO.getUserId(),
|
||||||
SocialTypeEnum.WECHAT_MINI_APP.getType());
|
SocialTypeEnum.WECHAT_MINI_APP.getType());
|
||||||
if (StrUtil.isBlankIfStr(socialUser.getOpenid())) {
|
if (StrUtil.isBlankIfStr(socialUser.getOpenid())) {
|
||||||
log.warn("[sendSubscribeMessage][reqDTO({}) 发送订阅消息失败,原因:会员 openid 缺失]", reqDTO);
|
log.warn("[sendWxaSubscribeMessage][reqDTO({}) 发送订阅消息失败,原因:会员 openid 缺失]", reqDTO);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 3. 发送订阅消息
|
// 3. 发送订阅消息
|
||||||
socialClientService.sendSubscribeMessage(reqDTO, template.getId(), socialUser.getOpenid());
|
socialClientService.sendSubscribeMessage(reqDTO, template.getPriTmplId(), socialUser.getOpenid());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user