From 801e208132e86ed3c7880c8da62b5dc13da18c7c Mon Sep 17 00:00:00 2001 From: Penny <2500338766@qq.com> Date: Tue, 9 May 2023 01:26:31 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=84=E7=90=86=E9=80=9A=E7=94=A8=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E7=94=A8=E6=88=B7=E4=BF=A1=E6=81=AF=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/constant/SecurityConstants.java | 5 + .../constant/UserClientTypeConstants.java | 25 --- .../common/core/enums/EnumUserClientType.java | 9 + .../com/bnyer/common/core/vo/UserInfoVo.java | 87 +++++++++ .../interceptor/HeaderInterceptor.java | 183 +++++++++--------- .../security/service/CreatorTokenService.java | 3 + .../security/service/FhUserTokenService.java | 3 + .../service/TiktokUserTokenService.java | 4 +- .../security/service/WxUserTokenService.java | 3 + .../common/security/utils/SecurityUtils.java | 113 ++++++++--- .../img/controller/TiktokMiniController.java | 2 - 11 files changed, 289 insertions(+), 148 deletions(-) delete mode 100644 bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/constant/UserClientTypeConstants.java create mode 100644 bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/vo/UserInfoVo.java diff --git a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/constant/SecurityConstants.java b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/constant/SecurityConstants.java index 0f6a84b..9b551ba 100644 --- a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/constant/SecurityConstants.java +++ b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/constant/SecurityConstants.java @@ -7,6 +7,11 @@ package com.bnyer.common.core.constant; */ public class SecurityConstants { + /** + * 平台 抖音->10;快手->20;微信->30;微信艺术家->40;pc管理员->50 + */ + public static final String PLATFORM = "platform"; + //***************************PC信息开始************************************ /** * 用户ID字段 diff --git a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/constant/UserClientTypeConstants.java b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/constant/UserClientTypeConstants.java deleted file mode 100644 index dccca30..0000000 --- a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/constant/UserClientTypeConstants.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.bnyer.common.core.constant; - -/** - * 客户端用户常量信息 - * - * @author penny - */ -public class UserClientTypeConstants -{ - - /** 抖音用户 */ - public static final String DU = "10"; - - /** 快手用户 */ - public static final String KU = "20"; - - /** 微信用户 */ - public static final String WU = "30"; - - /** 微信艺术家 */ - public static final String WY = "40"; - - /** pc管理员 */ - public static final String PU = "50"; -} diff --git a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/enums/EnumUserClientType.java b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/enums/EnumUserClientType.java index cfe6a9a..8cfa658 100644 --- a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/enums/EnumUserClientType.java +++ b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/enums/EnumUserClientType.java @@ -3,6 +3,9 @@ package com.bnyer.common.core.enums; import lombok.AllArgsConstructor; import lombok.Getter; +import java.util.Arrays; +import java.util.Objects; + /** * @author :WXC * @description : @@ -32,4 +35,10 @@ public enum EnumUserClientType { } return null; } + + public static EnumUserClientType getTypeByCode(String code) { + return Arrays.stream(values()) + .filter(type -> Objects.equals(type.getCode(), code)) + .findFirst().orElse(EnumUserClientType.PU); + } } diff --git a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/vo/UserInfoVo.java b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/vo/UserInfoVo.java new file mode 100644 index 0000000..61d6ea2 --- /dev/null +++ b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/vo/UserInfoVo.java @@ -0,0 +1,87 @@ +package com.bnyer.common.core.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + + +@Getter +@Setter +@ApiModel("统一用户响应类") +public class UserInfoVo implements Serializable { + + @ApiModelProperty(value="主键id") + private Long id; + + @ApiModelProperty(value="第三方平台id") + private String openId; + + @ApiModelProperty(value="昵称") + private String userName; + + @ApiModelProperty(value="搜索码") + private String scanCode; + + @ApiModelProperty(value="手机号") + private String phone; + + @ApiModelProperty(value="头像img地址") + private String img; + + @ApiModelProperty(value="简介") + private String intro; + + @ApiModelProperty(value="余额") + private BigDecimal amt; + + @ApiModelProperty(value="邀请码") + private String inviteCode; + + @ApiModelProperty(value="状态(0->待审核;1->审核通过;2->审核拒绝)") + private String status; + + @ApiModelProperty(value="第三方平台账号详情地址") + private String url; + + @ApiModelProperty(value="是否为vip(0->否;1->是)") + private String isVip; + + @ApiModelProperty(value="是否活跃(0->不活跃;1->活跃 连续10天以上更新内容)") + private String isHot; + + @ApiModelProperty(value="是否显示 (0->隐藏;1->显示)") + private String isShow; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value="创建时间") + private Date createTime; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value="更新时间") + private Date updateTime; + + @ApiModelProperty(value="排序") + private Integer sort; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value="最后登录时间") + private Long lastLoginTime; + + /** + * 登录IP地址 + */ + private String ipaddr; + + /** + * 用户类型 抖音->10;快手->20;微信->30;微信艺术家->40 + */ + private int userClientType; + + private static final long serialVersionUID = 1L; +} diff --git a/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/interceptor/HeaderInterceptor.java b/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/interceptor/HeaderInterceptor.java index 3a6bd04..3cfc0c3 100644 --- a/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/interceptor/HeaderInterceptor.java +++ b/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/interceptor/HeaderInterceptor.java @@ -1,28 +1,24 @@ package com.bnyer.common.security.interceptor; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - import com.alibaba.fastjson.JSON; -import com.bnyer.common.core.constant.TokenConstants; -import com.bnyer.common.core.constant.UserClientTypeConstants; +import com.bnyer.common.core.constant.SecurityConstants; +import com.bnyer.common.core.context.SecurityContextHolder; import com.bnyer.common.core.enums.EnumUserClientType; +import com.bnyer.common.core.utils.ServletUtils; +import com.bnyer.common.core.utils.StringUtils; import com.bnyer.common.security.auth.*; import com.bnyer.common.security.utils.SecurityUtils; import com.bnyer.img.api.model.LoginCreator; import com.bnyer.img.api.model.LoginFhUser; import com.bnyer.img.api.model.LoginTiktokUser; import com.bnyer.img.api.model.LoginWechatUser; +import com.bnyer.system.api.model.LoginUser; import lombok.extern.slf4j.Slf4j; import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.AsyncHandlerInterceptor; -import com.bnyer.common.core.constant.SecurityConstants; -import com.bnyer.common.core.context.SecurityContextHolder; -import com.bnyer.common.core.utils.ServletUtils; -import com.bnyer.common.core.utils.StringUtils; -import com.bnyer.system.api.model.LoginUser; -import java.util.Enumeration; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; /** * 自定义请求头拦截器,将Header数据封装到线程变量中方便获取 @@ -42,97 +38,102 @@ public class HeaderInterceptor implements AsyncHandlerInterceptor } String platform = request.getHeader("platform"); - switch (platform){ - //抖音 - case UserClientTypeConstants.DU: - String tiktokToken = SecurityUtils.getTiktokToken(request); - SecurityContextHolder.setTikTokUserId(ServletUtils.getHeader(request, SecurityConstants.DETAILS_TIKTOK_USER_ID)); - SecurityContextHolder.setTikTokUserName(ServletUtils.getHeader(request, SecurityConstants.DETAILS_TIKTOK_USERNAME)); - SecurityContextHolder.setTikTokUserKey(ServletUtils.getHeader(request, SecurityConstants.TIKTOK_USER_KEY)); - SecurityContextHolder.setTikTokOpenId(ServletUtils.getHeader(request, SecurityConstants.DETAILS_TIKTOK_OPENID)); - log.info("SecurityContextHolderUserId,{}", JSON.toJSONString(SecurityContextHolder.getTikTokUserId())); - log.info("SecurityContextHolderUserName,{}", JSON.toJSONString(SecurityContextHolder.getTikTokUserName())); - log.info("SecurityContextHolderUserKey,{}", JSON.toJSONString(SecurityContextHolder.getTikTokUserKey())); - log.info("SecurityContextHolderOpenId,{}", JSON.toJSONString(SecurityContextHolder.getTikTokOpenId())); + if(StringUtils.isNotEmpty(platform)){ + EnumUserClientType userClientType = EnumUserClientType.getTypeByCode(platform); + switch (userClientType){ + //抖音 + case DU: + String tiktokToken = SecurityUtils.getTiktokToken(request); + SecurityContextHolder.setTikTokUserId(ServletUtils.getHeader(request, SecurityConstants.DETAILS_TIKTOK_USER_ID)); + SecurityContextHolder.setTikTokUserName(ServletUtils.getHeader(request, SecurityConstants.DETAILS_TIKTOK_USERNAME)); + SecurityContextHolder.setTikTokUserKey(ServletUtils.getHeader(request, SecurityConstants.TIKTOK_USER_KEY)); + SecurityContextHolder.setTikTokOpenId(ServletUtils.getHeader(request, SecurityConstants.DETAILS_TIKTOK_OPENID)); + log.info("SecurityContextHolderUserId,{}", JSON.toJSONString(SecurityContextHolder.getTikTokUserId())); + log.info("SecurityContextHolderUserName,{}", JSON.toJSONString(SecurityContextHolder.getTikTokUserName())); + log.info("SecurityContextHolderUserKey,{}", JSON.toJSONString(SecurityContextHolder.getTikTokUserKey())); + log.info("SecurityContextHolderOpenId,{}", JSON.toJSONString(SecurityContextHolder.getTikTokOpenId())); - LoginTiktokUser loginTiktokUser = TiktokAuthUtil.getLoginUser(tiktokToken); - if (StringUtils.isNotNull(loginTiktokUser)) - { - TiktokAuthUtil.verifyLoginUserExpire(loginTiktokUser); - SecurityContextHolder.set(SecurityConstants.LOGIN_TIKTOK_USER, loginTiktokUser); - } - break; + + LoginTiktokUser loginTiktokUser = TiktokAuthUtil.getLoginUser(tiktokToken); + if (StringUtils.isNotNull(loginTiktokUser)) + { + TiktokAuthUtil.verifyLoginUserExpire(loginTiktokUser); + SecurityContextHolder.set(SecurityConstants.LOGIN_TIKTOK_USER, loginTiktokUser); + } + break; //快手 - case UserClientTypeConstants.KU: - String fhToken = SecurityUtils.getFhToken(request); - SecurityContextHolder.setFhUserId(ServletUtils.getHeader(request, SecurityConstants.DETAILS_FH_USER_ID)); - SecurityContextHolder.setFhUserName(ServletUtils.getHeader(request, SecurityConstants.DETAILS_FH_USERNAME)); - SecurityContextHolder.setFhUserKey(ServletUtils.getHeader(request, SecurityConstants.FH_USER_KEY)); - SecurityContextHolder.setFhOpenId(ServletUtils.getHeader(request, SecurityConstants.DETAILS_FH_OPENID)); - log.info("SecurityContextHolderUserId,{}", JSON.toJSONString(SecurityContextHolder.getFhUserId())); - log.info("SecurityContextHolderUserName,{}", JSON.toJSONString(SecurityContextHolder.getFhUserName())); - log.info("SecurityContextHolderUserKey,{}", JSON.toJSONString(SecurityContextHolder.getFhUserKey())); - log.info("SecurityContextHolderOpenId,{}", JSON.toJSONString(SecurityContextHolder.getFhOpenId())); + case KU: + String fhToken = SecurityUtils.getFhToken(request); + SecurityContextHolder.setFhUserId(ServletUtils.getHeader(request, SecurityConstants.DETAILS_FH_USER_ID)); + SecurityContextHolder.setFhUserName(ServletUtils.getHeader(request, SecurityConstants.DETAILS_FH_USERNAME)); + SecurityContextHolder.setFhUserKey(ServletUtils.getHeader(request, SecurityConstants.FH_USER_KEY)); + SecurityContextHolder.setFhOpenId(ServletUtils.getHeader(request, SecurityConstants.DETAILS_FH_OPENID)); + log.info("SecurityContextHolderUserId,{}", JSON.toJSONString(SecurityContextHolder.getFhUserId())); + log.info("SecurityContextHolderUserName,{}", JSON.toJSONString(SecurityContextHolder.getFhUserName())); + log.info("SecurityContextHolderUserKey,{}", JSON.toJSONString(SecurityContextHolder.getFhUserKey())); + log.info("SecurityContextHolderOpenId,{}", JSON.toJSONString(SecurityContextHolder.getFhOpenId())); - LoginFhUser loginFhUser = FhAuthUtil.getLoginUser(fhToken); - if (StringUtils.isNotNull(loginFhUser)) - { - FhAuthUtil.verifyLoginUserExpire(loginFhUser); - SecurityContextHolder.set(SecurityConstants.LOGIN_FH_USER, loginFhUser); - } - break; + LoginFhUser loginFhUser = FhAuthUtil.getLoginUser(fhToken); + if (StringUtils.isNotNull(loginFhUser)) + { + FhAuthUtil.verifyLoginUserExpire(loginFhUser); + SecurityContextHolder.set(SecurityConstants.LOGIN_FH_USER, loginFhUser); + } + break; //微信 - case UserClientTypeConstants.WU: - String wechatToken = SecurityUtils.getWechatToken(request); - SecurityContextHolder.setWechatUserId(ServletUtils.getHeader(request, SecurityConstants.DETAILS_WECHAT_USER_ID)); - SecurityContextHolder.setWechatUserName(ServletUtils.getHeader(request, SecurityConstants.DETAILS_WECHAT_USERNAME)); - SecurityContextHolder.setWechatUserKey(ServletUtils.getHeader(request, SecurityConstants.WECHAT_USER_KEY)); - SecurityContextHolder.setWechatOpenId(ServletUtils.getHeader(request, SecurityConstants.DETAILS_WECHAT_OPENID)); - log.info("SecurityContextHolderUserId,{}", JSON.toJSONString(SecurityContextHolder.getWechatUserId())); - log.info("SecurityContextHolderUserName,{}", JSON.toJSONString(SecurityContextHolder.getWechatUserName())); - log.info("SecurityContextHolderUserKey,{}", JSON.toJSONString(SecurityContextHolder.getWechatUserKey())); - log.info("SecurityContextHolderOpenId,{}", JSON.toJSONString(SecurityContextHolder.getWechatOpenId())); + case WU: + String wechatToken = SecurityUtils.getWechatToken(request); + SecurityContextHolder.setWechatUserId(ServletUtils.getHeader(request, SecurityConstants.DETAILS_WECHAT_USER_ID)); + SecurityContextHolder.setWechatUserName(ServletUtils.getHeader(request, SecurityConstants.DETAILS_WECHAT_USERNAME)); + SecurityContextHolder.setWechatUserKey(ServletUtils.getHeader(request, SecurityConstants.WECHAT_USER_KEY)); + SecurityContextHolder.setWechatOpenId(ServletUtils.getHeader(request, SecurityConstants.DETAILS_WECHAT_OPENID)); + log.info("SecurityContextHolderUserId,{}", JSON.toJSONString(SecurityContextHolder.getWechatUserId())); + log.info("SecurityContextHolderUserName,{}", JSON.toJSONString(SecurityContextHolder.getWechatUserName())); + log.info("SecurityContextHolderUserKey,{}", JSON.toJSONString(SecurityContextHolder.getWechatUserKey())); + log.info("SecurityContextHolderOpenId,{}", JSON.toJSONString(SecurityContextHolder.getWechatOpenId())); - LoginWechatUser loginWxUser = WechatAuthUtil.getLoginUser(wechatToken); - if (StringUtils.isNotNull(loginWxUser)) - { - WechatAuthUtil.verifyLoginUserExpire(loginWxUser); - SecurityContextHolder.set(SecurityConstants.LOGIN_WECHAT_USER, loginWxUser); - } - break; + LoginWechatUser loginWxUser = WechatAuthUtil.getLoginUser(wechatToken); + if (StringUtils.isNotNull(loginWxUser)) + { + WechatAuthUtil.verifyLoginUserExpire(loginWxUser); + SecurityContextHolder.set(SecurityConstants.LOGIN_WECHAT_USER, loginWxUser); + } + break; //微信艺术家 - case UserClientTypeConstants.WY: - String creatorToken = SecurityUtils.getCreatorToken(request); - SecurityContextHolder.setCreatorId(ServletUtils.getHeader(request, SecurityConstants.DETAILS_CREATOR_ID)); - SecurityContextHolder.setCreatorPhone(ServletUtils.getHeader(request, SecurityConstants.DETAILS_PHONE)); - SecurityContextHolder.setCreatorKey(ServletUtils.getHeader(request, SecurityConstants.CREATOR_KEY)); - log.info("SecurityContextHolderUserId,{}", JSON.toJSONString(SecurityContextHolder.getCreatorId())); - log.info("SecurityContextHolderUserKey,{}", JSON.toJSONString(SecurityContextHolder.getCreatorKey())); - log.info("SecurityContextHolderPhone,{}", JSON.toJSONString(SecurityContextHolder.getCreatorPhone())); + case WY: + String creatorToken = SecurityUtils.getCreatorToken(request); + SecurityContextHolder.setCreatorId(ServletUtils.getHeader(request, SecurityConstants.DETAILS_CREATOR_ID)); + SecurityContextHolder.setCreatorPhone(ServletUtils.getHeader(request, SecurityConstants.DETAILS_PHONE)); + SecurityContextHolder.setCreatorKey(ServletUtils.getHeader(request, SecurityConstants.CREATOR_KEY)); + log.info("SecurityContextHolderUserId,{}", JSON.toJSONString(SecurityContextHolder.getCreatorId())); + log.info("SecurityContextHolderUserKey,{}", JSON.toJSONString(SecurityContextHolder.getCreatorKey())); + log.info("SecurityContextHolderPhone,{}", JSON.toJSONString(SecurityContextHolder.getCreatorPhone())); - LoginCreator loginCreator = CreatorAuthUtil.getLoginUser(creatorToken); - if (StringUtils.isNotNull(loginCreator)) - { - CreatorAuthUtil.verifyLoginUserExpire(loginCreator); - SecurityContextHolder.set(SecurityConstants.LOGIN_CREATOR, loginCreator); - } - break; + LoginCreator loginCreator = CreatorAuthUtil.getLoginUser(creatorToken); + if (StringUtils.isNotNull(loginCreator)) + { + CreatorAuthUtil.verifyLoginUserExpire(loginCreator); + SecurityContextHolder.set(SecurityConstants.LOGIN_CREATOR, loginCreator); + } + break; //PC管理员 - case UserClientTypeConstants.PU: - String pcToken = SecurityUtils.getToken(request); - SecurityContextHolder.setUserId(ServletUtils.getHeader(request, SecurityConstants.DETAILS_USER_ID)); - SecurityContextHolder.setUserName(ServletUtils.getHeader(request, SecurityConstants.DETAILS_USERNAME)); - SecurityContextHolder.setUserKey(ServletUtils.getHeader(request, SecurityConstants.USER_KEY)); + case PU: + String pcToken = SecurityUtils.getToken(request); + SecurityContextHolder.setUserId(ServletUtils.getHeader(request, SecurityConstants.DETAILS_USER_ID)); + SecurityContextHolder.setUserName(ServletUtils.getHeader(request, SecurityConstants.DETAILS_USERNAME)); + SecurityContextHolder.setUserKey(ServletUtils.getHeader(request, SecurityConstants.USER_KEY)); - LoginUser loginUser = AuthUtil.getLoginUser(pcToken); - if (StringUtils.isNotNull(loginUser)) - { - AuthUtil.verifyLoginUserExpire(loginUser); - SecurityContextHolder.set(SecurityConstants.LOGIN_USER, loginUser); - } - break; + LoginUser loginUser = AuthUtil.getLoginUser(pcToken); + if (StringUtils.isNotNull(loginUser)) + { + AuthUtil.verifyLoginUserExpire(loginUser); + SecurityContextHolder.set(SecurityConstants.LOGIN_USER, loginUser); + } + break; + } } + // String pcToken = SecurityUtils.getToken(request); // String creatorToken = SecurityUtils.getCreatorToken(request); // String tiktokToken = SecurityUtils.getTiktokToken(request); diff --git a/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/service/CreatorTokenService.java b/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/service/CreatorTokenService.java index 0d551a2..9ddaee3 100644 --- a/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/service/CreatorTokenService.java +++ b/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/service/CreatorTokenService.java @@ -3,6 +3,7 @@ package com.bnyer.common.security.service; import com.bnyer.common.core.constant.CacheConstants; import com.bnyer.common.core.constant.RedisKeyConstant; import com.bnyer.common.core.constant.SecurityConstants; +import com.bnyer.common.core.enums.EnumUserClientType; import com.bnyer.common.core.utils.JwtUtils; import com.bnyer.common.core.utils.ServletUtils; import com.bnyer.common.core.utils.StringUtils; @@ -57,10 +58,12 @@ public class CreatorTokenService claimsMap.put(SecurityConstants.CREATOR_KEY, token); claimsMap.put(SecurityConstants.DETAILS_CREATOR_ID, creatorId); claimsMap.put(SecurityConstants.DETAILS_PHONE, creatorPhone); + claimsMap.put(SecurityConstants.PLATFORM, String.valueOf(EnumUserClientType.WY.getCode())); // 接口返回信息 Map rspMap = new HashMap(); rspMap.put("access_token", JwtUtils.createToken(claimsMap)); + rspMap.put("platform",String.valueOf(EnumUserClientType.WY.getCode())); rspMap.put("userInfo",loginCreator.getCreator()); rspMap.put("expires_in", expireTime); return rspMap; diff --git a/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/service/FhUserTokenService.java b/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/service/FhUserTokenService.java index e4675d6..b3530c7 100644 --- a/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/service/FhUserTokenService.java +++ b/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/service/FhUserTokenService.java @@ -3,6 +3,7 @@ package com.bnyer.common.security.service; import com.bnyer.common.core.constant.CacheConstants; import com.bnyer.common.core.constant.RedisKeyConstant; import com.bnyer.common.core.constant.SecurityConstants; +import com.bnyer.common.core.enums.EnumUserClientType; import com.bnyer.common.core.utils.JwtUtils; import com.bnyer.common.core.utils.ServletUtils; import com.bnyer.common.core.utils.StringUtils; @@ -60,10 +61,12 @@ public class FhUserTokenService claimsMap.put(SecurityConstants.DETAILS_FH_USER_ID, fhUserId); claimsMap.put(SecurityConstants.DETAILS_FH_USERNAME, fhUserName); claimsMap.put(SecurityConstants.DETAILS_FH_OPENID,openId); + claimsMap.put(SecurityConstants.PLATFORM, String.valueOf(EnumUserClientType.KU.getCode())); // 接口返回信息 Map rspMap = new HashMap(); rspMap.put("access_token", JwtUtils.createToken(claimsMap)); + rspMap.put("platform",String.valueOf(EnumUserClientType.KU.getCode())); rspMap.put("userInfo",loginFhUser.getFhUser()); rspMap.put("expires_in", expireTime); return rspMap; diff --git a/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/service/TiktokUserTokenService.java b/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/service/TiktokUserTokenService.java index d8c6984..a588c07 100644 --- a/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/service/TiktokUserTokenService.java +++ b/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/service/TiktokUserTokenService.java @@ -3,6 +3,7 @@ package com.bnyer.common.security.service; import com.bnyer.common.core.constant.CacheConstants; import com.bnyer.common.core.constant.RedisKeyConstant; import com.bnyer.common.core.constant.SecurityConstants; +import com.bnyer.common.core.enums.EnumUserClientType; import com.bnyer.common.core.utils.JwtUtils; import com.bnyer.common.core.utils.ServletUtils; import com.bnyer.common.core.utils.StringUtils; @@ -10,7 +11,6 @@ import com.bnyer.common.core.utils.ip.IpUtils; import com.bnyer.common.core.utils.uuid.IdUtils; import com.bnyer.common.redis.service.RedisService; import com.bnyer.img.api.model.LoginTiktokUser; -import com.bnyer.system.api.model.LoginUser; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -61,10 +61,12 @@ public class TiktokUserTokenService claimsMap.put(SecurityConstants.DETAILS_TIKTOK_USER_ID, tiktokUserId); claimsMap.put(SecurityConstants.DETAILS_TIKTOK_USERNAME, tiktokUserName); claimsMap.put(SecurityConstants.DETAILS_TIKTOK_OPENID,openId); + claimsMap.put(SecurityConstants.PLATFORM, String.valueOf(EnumUserClientType.DU.getCode())); // 接口返回信息 Map rspMap = new HashMap(); rspMap.put("access_token", JwtUtils.createToken(claimsMap)); + rspMap.put("platform",String.valueOf(EnumUserClientType.DU.getCode())); rspMap.put("userInfo",loginTiktokUser.getTiktokUser()); rspMap.put("expires_in", expireTime); return rspMap; diff --git a/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/service/WxUserTokenService.java b/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/service/WxUserTokenService.java index 55c270d..a67787c 100644 --- a/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/service/WxUserTokenService.java +++ b/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/service/WxUserTokenService.java @@ -3,6 +3,7 @@ package com.bnyer.common.security.service; import com.bnyer.common.core.constant.CacheConstants; import com.bnyer.common.core.constant.RedisKeyConstant; import com.bnyer.common.core.constant.SecurityConstants; +import com.bnyer.common.core.enums.EnumUserClientType; import com.bnyer.common.core.utils.JwtUtils; import com.bnyer.common.core.utils.ServletUtils; import com.bnyer.common.core.utils.StringUtils; @@ -60,10 +61,12 @@ public class WxUserTokenService claimsMap.put(SecurityConstants.DETAILS_WECHAT_USER_ID, wxUserId); claimsMap.put(SecurityConstants.DETAILS_WECHAT_USERNAME, wxUserName); claimsMap.put(SecurityConstants.DETAILS_WECHAT_OPENID,openId); + claimsMap.put(SecurityConstants.PLATFORM, String.valueOf(EnumUserClientType.WU.getCode())); // 接口返回信息 Map rspMap = new HashMap(); rspMap.put("access_token", JwtUtils.createToken(claimsMap)); + rspMap.put("platform",String.valueOf(EnumUserClientType.WU.getCode())); rspMap.put("userInfo",loginWechatUser.getWxUser()); rspMap.put("expires_in", expireTime); return rspMap; diff --git a/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/utils/SecurityUtils.java b/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/utils/SecurityUtils.java index 5402d26..8027a6f 100644 --- a/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/utils/SecurityUtils.java +++ b/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/utils/SecurityUtils.java @@ -1,23 +1,21 @@ package com.bnyer.common.security.utils; -import javax.servlet.http.HttpServletRequest; - -import com.bnyer.common.core.constant.UserClientTypeConstants; +import com.bnyer.common.core.constant.SecurityConstants; +import com.bnyer.common.core.constant.TokenConstants; +import com.bnyer.common.core.context.SecurityContextHolder; import com.bnyer.common.core.enums.EnumUserClientType; +import com.bnyer.common.core.exception.ServiceException; +import com.bnyer.common.core.utils.ServletUtils; +import com.bnyer.common.core.utils.StringUtils; +import com.bnyer.common.core.vo.UserInfoVo; import com.bnyer.img.api.model.LoginCreator; import com.bnyer.img.api.model.LoginFhUser; import com.bnyer.img.api.model.LoginTiktokUser; import com.bnyer.img.api.model.LoginWechatUser; import com.bnyer.system.api.model.LoginUser; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; -import com.bnyer.common.core.constant.SecurityConstants; -import com.bnyer.common.core.constant.TokenConstants; -import com.bnyer.common.core.context.SecurityContextHolder; -import com.bnyer.common.core.utils.ServletUtils; -import com.bnyer.common.core.utils.StringUtils; -import org.springframework.web.context.request.RequestContextHolder; -import org.springframework.web.context.request.ServletRequestAttributes; +import javax.servlet.http.HttpServletRequest; import java.util.Objects; /** @@ -32,27 +30,84 @@ public class SecurityUtils /** * 根据从header中获取类型判断,从而获取用户信息 - * @param 用户信息 * @return - */ - public T getUserInfo(){ - HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); - String platform = request.getHeader("platform"); - switch (platform){ - case UserClientTypeConstants.DU: - LoginTiktokUser loginTikTokUser = getLoginTikTokUser(); - return (T) loginTikTokUser; - case UserClientTypeConstants.WU: - LoginWechatUser loginWechatUser = getLoginWechatUser(); - return (T) loginWechatUser; - case UserClientTypeConstants.KU: - LoginFhUser loginFhUser = getLoginFhUser(); - return (T) loginFhUser; - case UserClientTypeConstants.WY: - LoginCreator loginCreator = getLoginCreator(); - return (T) loginCreator; - default: - break; + public static UserInfoVo getUserInfo(){ + String platform = ServletUtils.getRequest().getHeader("platform"); + if(StringUtils.isNotEmpty(platform)){ + EnumUserClientType userClientType = EnumUserClientType.getTypeByCode(platform); + switch (userClientType){ + case DU: + UserInfoVo tiktokUserInfo = new UserInfoVo(); + LoginTiktokUser loginTikTokUser = getLoginTikTokUser(); + tiktokUserInfo.setId(loginTikTokUser.getTiktokUserId()); + tiktokUserInfo.setOpenId(loginTikTokUser.getTiktokUserOpenId()); + tiktokUserInfo.setUserName(loginTikTokUser.getTiktokUserName()); + tiktokUserInfo.setIpaddr(loginTikTokUser.getIpaddr()); + tiktokUserInfo.setLastLoginTime(loginTikTokUser.getLoginTime()); + tiktokUserInfo.setImg(loginTikTokUser.getTiktokUser().getImg()); + tiktokUserInfo.setIsVip(loginTikTokUser.getTiktokUser().getIsVip()); + tiktokUserInfo.setCreateTime(loginTikTokUser.getTiktokUser().getCreateTime()); + tiktokUserInfo.setUpdateTime(loginTikTokUser.getTiktokUser().getUpdateTime()); + tiktokUserInfo.setSort(loginTikTokUser.getTiktokUser().getSort()); + tiktokUserInfo.setUserClientType(userClientType.getType()); + return tiktokUserInfo; + case WU: + UserInfoVo wechatUserInfo = new UserInfoVo(); + LoginWechatUser loginWechatUser = getLoginWechatUser(); + wechatUserInfo.setId(loginWechatUser.getWxUserId()); + wechatUserInfo.setOpenId(loginWechatUser.getWxUserOpenId()); + wechatUserInfo.setUserName(loginWechatUser.getWxUserName()); + wechatUserInfo.setIpaddr(loginWechatUser.getIpaddr()); + wechatUserInfo.setLastLoginTime(loginWechatUser.getLoginTime()); + wechatUserInfo.setImg(loginWechatUser.getWxUser().getImg()); + wechatUserInfo.setIsVip(loginWechatUser.getWxUser().getIsVip()); + wechatUserInfo.setCreateTime(loginWechatUser.getWxUser().getCreateTime()); + wechatUserInfo.setUpdateTime(loginWechatUser.getWxUser().getUpdateTime()); + wechatUserInfo.setSort(loginWechatUser.getWxUser().getSort()); + wechatUserInfo.setUserClientType(userClientType.getType()); + return wechatUserInfo; + case KU: + UserInfoVo fhUserInfo = new UserInfoVo(); + LoginFhUser loginFhUser = getLoginFhUser(); + fhUserInfo.setId(loginFhUser.getFhUserId()); + fhUserInfo.setOpenId(loginFhUser.getFhUserOpenId()); + fhUserInfo.setUserName(loginFhUser.getFhUserName()); + fhUserInfo.setIpaddr(loginFhUser.getIpaddr()); + fhUserInfo.setLastLoginTime(loginFhUser.getLoginTime()); + fhUserInfo.setImg(loginFhUser.getFhUser().getImg()); + fhUserInfo.setIsVip(loginFhUser.getFhUser().getIsVip()); + fhUserInfo.setCreateTime(loginFhUser.getFhUser().getCreateTime()); + fhUserInfo.setUpdateTime(loginFhUser.getFhUser().getUpdateTime()); + fhUserInfo.setSort(loginFhUser.getFhUser().getSort()); + fhUserInfo.setUserClientType(userClientType.getType()); + return fhUserInfo; + case WY: + UserInfoVo creatorInfo = new UserInfoVo(); + LoginCreator loginCreator = getLoginCreator(); + creatorInfo.setId(loginCreator.getCreatorId()); + creatorInfo.setPhone(loginCreator.getCreatorPhone()); + creatorInfo.setScanCode(loginCreator.getCreator().getScanCode()); + creatorInfo.setAmt(loginCreator.getCreator().getAmt()); + creatorInfo.setInviteCode(loginCreator.getCreator().getInviteCode()); + creatorInfo.setStatus(loginCreator.getCreator().getStatus()); + creatorInfo.setUrl(loginCreator.getCreator().getUrl()); + creatorInfo.setIsHot(loginCreator.getCreator().getIsHot()); + creatorInfo.setIsShow(loginCreator.getCreator().getIsShow()); + creatorInfo.setIntro(loginCreator.getCreator().getIntro()); + creatorInfo.setUserName(loginCreator.getCreator().getName()); + creatorInfo.setIpaddr(loginCreator.getIpaddr()); + creatorInfo.setLastLoginTime(loginCreator.getLoginTime()); + creatorInfo.setImg(loginCreator.getCreator().getImg()); + creatorInfo.setIsShow(loginCreator.getCreator().getIsShow()); + creatorInfo.setCreateTime(loginCreator.getCreator().getCreateTime()); + creatorInfo.setUpdateTime(loginCreator.getCreator().getUpdateTime()); + creatorInfo.setSort(loginCreator.getCreator().getSort()); + creatorInfo.setUserClientType(userClientType.getType()); + return creatorInfo; + default: + throw new ServiceException("userClientType 未匹配上对应用户类型"); + } } return null; } diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokMiniController.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokMiniController.java index e41c13c..491f5b2 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokMiniController.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokMiniController.java @@ -4,7 +4,6 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.bnyer.common.core.constant.TiktokConstant; import com.bnyer.common.core.domain.Feedback; -import com.bnyer.common.core.domain.PaintCdk; import com.bnyer.common.core.domain.R; import com.bnyer.common.core.dto.*; import com.bnyer.common.core.web.controller.BaseController; @@ -22,7 +21,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Map;