Commit 3025bff63111108a60a3999f5e8a041e86756232

Authored by YunaiV
1 parent 2d44b3a2

【代码评审】SYSTEM:完善微信小程序码

yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/social/AppSocialUserController.java
1 1 package cn.iocoder.yudao.module.member.controller.app.social;
2 2  
3 3 import cn.hutool.core.codec.Base64;
4   -import cn.hutool.core.util.ObjUtil;
5 4 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
6 5 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
7 6 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
... ... @@ -33,13 +32,6 @@ import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUti
33 32 @Validated
34 33 public class AppSocialUserController {
35 34  
36   - public static final String ENV_VERSION = "release"; // 小程序版本。正式版为 "release",体验版为 "trial",开发版为 "develop"
37   - private static final String SCENE = ""; // 页面路径不能携带参数(参数请放在scene字段里)
38   - private static final Integer WIDTH = 430; // 二维码宽度
39   - private static final Boolean AUTO_COLOR = true; // 默认true 自动配置线条颜色,如果颜色依然是黑色,则说明不建议配置主色调
40   - private static final Boolean CHECK_PATH = true; // 默认true 检查 page 是否存在
41   - private static final Boolean HYALINE = true; // 是否需要透明底色, hyaline 为true时,生成透明底色的小程序码
42   -
43 35 @Resource
44 36 private SocialUserApi socialUserApi;
45 37 @Resource
... ... @@ -76,12 +68,7 @@ public class AppSocialUserController {
76 68 @PostMapping("/wxa-qrcode")
77 69 @Operation(summary = "获得微信小程序码(base64 image)")
78 70 public CommonResult<String> getWxQrcode(@RequestBody @Valid AppSocialWxQrcodeReqVO reqVO) {
79   - byte[] wxQrcode = socialClientApi.getWxaQrcode(new SocialWxQrcodeReqDTO().setPath(reqVO.getPath())
80   - .setEnvVersion(ENV_VERSION).setWidth(ObjUtil.defaultIfNull(reqVO.getWidth(), WIDTH))
81   - .setScene(ObjUtil.defaultIfNull(reqVO.getScene(), SCENE))
82   - .setAutoColor(ObjUtil.defaultIfNull(reqVO.getAutoColor(), AUTO_COLOR))
83   - .setHyaline(ObjUtil.defaultIfNull(reqVO.getHyaline(), HYALINE))
84   - .setCheckPath(ObjUtil.defaultIfNull(reqVO.getCheckPath(), CHECK_PATH)));
  71 + byte[] wxQrcode = socialClientApi.getWxaQrcode(new SocialWxQrcodeReqDTO().setPath(reqVO.getPath()));
85 72 return success(Base64.encode(wxQrcode));
86 73 }
87 74  
... ...
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialWxQrcodeReqDTO.java
... ... @@ -13,6 +13,35 @@ import lombok.Data;
13 13 public class SocialWxQrcodeReqDTO {
14 14  
15 15 /**
  16 + * 小程序版本
  17 + *
  18 + * 正式版为 "release";体验版为 "trial";开发版为 "develop"
  19 + */
  20 + public static final String ENV_VERSION = "release";
  21 + /**
  22 + * 页面路径不能携带参数(参数请放在scene字段里)
  23 + */
  24 + public static final String SCENE = "";
  25 + /**
  26 + * 二维码宽度
  27 + */
  28 + public static final Integer WIDTH = 430;
  29 + /**
  30 + * 自动配置线条颜色,如果颜色依然是黑色,则说明不建议配置主色调
  31 + */
  32 + public static final Boolean AUTO_COLOR = true;
  33 + /**
  34 + * 检查 page 是否存在
  35 + */
  36 + public static final Boolean CHECK_PATH = true;
  37 + /**
  38 + * 是否需要透明底色
  39 + *
  40 + * hyaline 为 true 时,生成透明底色的小程序码
  41 + */
  42 + public static final Boolean HYALINE = true;
  43 +
  44 + /**
16 45 * 场景
17 46 */
18 47 @NotEmpty(message = "场景不能为空")
... ...
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialClientServiceImpl.java
... ... @@ -233,9 +233,15 @@ public class SocialClientServiceImpl implements SocialClientService {
233 233 public byte[] getWxaQrcode(SocialWxQrcodeReqDTO reqVO) {
234 234 WxMaService service = getWxMaService(UserTypeEnum.MEMBER.getValue());
235 235 try {
236   - return service.getQrcodeService().createWxaCodeUnlimitBytes(reqVO.getScene(), reqVO.getPath(),
237   - reqVO.getCheckPath(), reqVO.getEnvVersion(), reqVO.getWidth(), reqVO.getAutoColor(),
238   - null, reqVO.getHyaline());
  236 + return service.getQrcodeService().createWxaCodeUnlimitBytes(
  237 + ObjUtil.defaultIfEmpty(reqVO.getScene(), SocialWxQrcodeReqDTO.SCENE),
  238 + reqVO.getPath(),
  239 + ObjUtil.defaultIfNull(reqVO.getCheckPath(), SocialWxQrcodeReqDTO.CHECK_PATH),
  240 + ObjUtil.defaultIfBlank(reqVO.getEnvVersion(), SocialWxQrcodeReqDTO.ENV_VERSION),
  241 + ObjUtil.defaultIfNull(reqVO.getWidth(), SocialWxQrcodeReqDTO.WIDTH),
  242 + ObjUtil.defaultIfNull(reqVO.getAutoColor(), SocialWxQrcodeReqDTO.AUTO_COLOR),
  243 + null,
  244 + ObjUtil.defaultIfNull(reqVO.getHyaline(), SocialWxQrcodeReqDTO.HYALINE));
239 245 } catch (WxErrorException e) {
240 246 log.error("[getWxQrcode][reqVO({})) 获得小程序码失败]", reqVO, e);
241 247 throw exception(SOCIAL_CLIENT_WEIXIN_MINI_APP_QRCODE_ERROR);
... ...