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 304bb1690..f6a351a33 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 @@ -63,9 +63,10 @@ public class AppSocialUserController { return success(BeanUtils.toBean(socialUser, AppSocialUserRespVO.class)); } + // TODO @puhui999:是不是 url 叫 wxa-qrcode?然后相关的方法,都做下调整哈;因为是微信小程序的二维码 @PostMapping("/wxacode") @Operation(summary = "获得微信小程序码") - @PreAuthenticated + @PreAuthenticated // TODO @puhui999:可能不需要登录 public CommonResult getWxQrcode(@RequestBody @Valid AppSocialWxQrcodeReqVO reqVO) { byte[] wxQrcode = socialUserApi.getWxQrcode(BeanUtils.toBean(reqVO, SocialWxQrcodeReqDTO.class).setUserId(getLoginUserId()) .setUserType(UserTypeEnum.MEMBER.getValue()).setSocialType(reqVO.getType())); diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/social/vo/AppSocialWxQrcodeReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/social/vo/AppSocialWxQrcodeReqVO.java index fd352fb8e..15d9e20a1 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/social/vo/AppSocialWxQrcodeReqVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/social/vo/AppSocialWxQrcodeReqVO.java @@ -7,53 +7,44 @@ import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import lombok.Data; +// TODO @芋艿:需要精简下参数; @Schema(description = "用户 APP - 获得获取小程序码 Request VO") @Data public class AppSocialWxQrcodeReqVO { + // TODO @puhui999:这个后续不用前端传递,应该是后端搞的 private static String SCENE = "1011"; // 默认场景值 1011 扫描二维码 + // TODO @puhui999:这个默认是不是 release 哈? private static String ENV_VERSION = "develop"; // 小程序版本。正式版为 "release",体验版为 "trial",开发版为 "develop" + // TODO @puhui999:这个去掉;因为本身就是 430 啦; private static Integer WIDTH = 430; // 二维码宽度 + // TODO @puhui999:这个去掉;因为本身就是 true 啦; private static Boolean AUTO_COLOR = true; // 默认true 自动配置线条颜色,如果颜色依然是黑色,则说明不建议配置主色调 + // TODO @puhui999:这个去掉;因为本身就是 true 啦; private static Boolean CHECK_PATH = true; // 默认true 检查 page 是否存在 + // TODO @puhui999:这个去掉;因为本身就是 true 啦; private static Boolean IS_HYALINE = true; // 是否需要透明底色, is_hyaline 为true时,生成透明底色的小程序码 - /** - * 最大32个可见字符,只支持数字,大小写英文以及部分特殊字符:!#$&'()*+,/:;=?@-._~, 其它字符请自行编码为合法字符 - * (因不支持%,中文无法使用 urlencode 处理,请使用其他编码方式) - */ - @Schema(description = "场景值/页面参数", requiredMode = Schema.RequiredMode.REQUIRED, example = "1001") + @Schema(description = "场景值", requiredMode = Schema.RequiredMode.REQUIRED, example = "1001") private String scene = SCENE; - /** - * 页面路径 - */ + @Schema(description = "页面路径", requiredMode = Schema.RequiredMode.REQUIRED, example = "pages/goods/index") @NotEmpty(message = "页面路径不能为空") private String path; - /** - * 要打开的小程序版本。默认是开发版。 - */ + + // TODO @puhui999:这个应该不传递哈 @Schema(description = "小程序版本", requiredMode = Schema.RequiredMode.REQUIRED, example = "develop") private String envVersion = ENV_VERSION; - /** - * 二维码宽度 - */ + @Schema(description = "二维码宽度", requiredMode = Schema.RequiredMode.REQUIRED, example = "430") private Integer width = WIDTH; - /** - * 默认true 自动配置线条颜色,如果颜色依然是黑色,则说明不建议配置主色调 - */ + @Schema(description = "是/否自动配置线条颜色", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") private Boolean isAutoColor = AUTO_COLOR; - /** - * 默认true 检查 page 是否存在,为 true 时 page 必须是已经发布的小程序存在的页面(否则报错); - * 为 false 时允许小程序未发布或者 page 不存在,但 page 有数量上限(60000个)请勿滥用 - */ + @Schema(description = "是/否检查 page 是否存在", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") private Boolean isCheckPath = CHECK_PATH; - /** - * 是否需要透明底色, is_hyaline 为true时,生成透明底色的小程序码 - */ + @Schema(description = "是/否需要透明底色", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") private Boolean isHyaline = IS_HYALINE; diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialWxQrcodeReqDTO.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialWxQrcodeReqDTO.java index 00b7ea488..d5e7f194f 100644 --- a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialWxQrcodeReqDTO.java +++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialWxQrcodeReqDTO.java @@ -7,9 +7,17 @@ import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import lombok.Data; +/** + * 获取小程序码 Request DTO + * + * @see 获取不限制的小程序码 + * + * @author HUIHUI + */ @Data public class SocialWxQrcodeReqDTO { + // TODO @puhui999:userId、userType 应该后续要搞成抽象参数;说白了,就是 path 的参数; socialType 应该去掉,因为就是微信的; /** * 用户编号 */ @@ -30,9 +38,9 @@ public class SocialWxQrcodeReqDTO { private Integer socialType; /** - * 最大32个可见字符,只支持数字,大小写英文以及部分特殊字符:!#$&'()*+,/:;=?@-._~, 其它字符请自行编码为合法字符 - * (因不支持%,中文无法使用 urlencode 处理,请使用其他编码方式) + * 场景 */ + @NotEmpty(message = "场景不能为空") private String scene; /** * 页面路径 @@ -40,24 +48,30 @@ public class SocialWxQrcodeReqDTO { @NotEmpty(message = "页面路径不能为空") private String path; /** - * 要打开的小程序版本。默认是开发版。 + * 要打开的小程序版本 */ private String envVersion; /** * 二维码宽度 */ private Integer width; + + // TODO @puhui999:autoColor + /** - * 默认true 自动配置线条颜色,如果颜色依然是黑色,则说明不建议配置主色调 + * 是否需要透明底色 */ private Boolean isAutoColor; + + // TODO @puhui999: checkPath /** - * 默认true 检查 page 是否存在,为 true 时 page 必须是已经发布的小程序存在的页面(否则报错); - * 为 false 时允许小程序未发布或者 page 不存在,但 page 有数量上限(60000个)请勿滥用 + * 是否检查 page 是否存在 */ private Boolean isCheckPath; + + // TODO @puhui999: hyaline /** - * 是否需要透明底色, is_hyaline 为true时,生成透明底色的小程序码 + * 是否需要透明底色 */ private Boolean isHyaline; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/social/SocialUserApiImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/social/SocialUserApiImpl.java index c5e3e490a..ad56c9ee5 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/social/SocialUserApiImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/social/SocialUserApiImpl.java @@ -43,6 +43,7 @@ public class SocialUserApiImpl implements SocialUserApi { return socialUserService.getSocialUserByCode(userType, socialType, code, state); } + // TODO @puhui999:貌似搞到 SocialClientApiImpl 更合适,二维码和用户关系不大;这样 socialUserService 也不用绕一次了 @Override public byte[] getWxQrcode(SocialWxQrcodeReqDTO reqVO) { return socialUserService.getWxQrcode(reqVO);