Răsfoiți Sursa

检查是否关注公众号

tanbin 1 an în urmă
părinte
comite
8faee666f9

+ 22 - 0
sys-api-service/src/main/java/com/xy/service/UserInfoServiceImpl.java

@@ -348,6 +348,28 @@ public class UserInfoServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo> i
 
     }
 
+    @SneakyThrows
+    @PostMapping("checkSubWx")
+    @ApiOperation("检查是否关注公众号")
+    public R<Boolean> checkSubWx(@RequestBody @Validated UserInfoDto.CheckSubWx checkSubWx) {
+        String userId = checkSubWx.getUserId();
+        String ticketId = checkSubWx.getTicketId();
+        if (StrUtil.isEmpty(userId)) {
+            userId = AuthorizeUtils.getLoginId(String.class);
+        }
+        log.info("检查是否关注公众号 userId:{},ticketId:{} ", userId, ticketId);
+        String openId = getCacheTicket(ticketId);
+        if (StrUtil.isEmpty(openId)) {
+            log.info("userId:{},尚未关注公众号!", userId);
+            return R.ok(false);
+        }
+        //绑定账号
+        this.updateById(new UserInfo().setUserId(Long.valueOf(userId)).setMpOpenid(openId));
+        //redis 清理
+        delCacheTicket(ticketId);
+        return R.ok(true);
+    }
+
     /**
      * 缓存ticket
      *

+ 10 - 0
sys-api/src/main/java/com/xy/dto/UserInfoDto.java

@@ -287,4 +287,14 @@ public class UserInfoDto {
         @ApiModelProperty(value = "ticket")
         private String ticket;
     }
+
+    @Data
+    @Accessors(chain = true)
+    public static class CheckSubWx {
+        @NotBlank(message = "ticketId不可为空")
+        @ApiModelProperty(value = "ticketId")
+        private String ticketId;
+        @ApiModelProperty(value = "userId")
+        private String userId;
+    }
 }