diff --git a/bnyer-common/bnyer-common-core/pom.xml b/bnyer-common/bnyer-common-core/pom.xml
index 9627846..d1d4b4c 100644
--- a/bnyer-common/bnyer-common-core/pom.xml
+++ b/bnyer-common/bnyer-common-core/pom.xml
@@ -151,6 +151,12 @@
tencentcloud-sdk-java-tmt
3.1.715
+
+
+ com.tencentcloudapi
+ tencentcloud-sdk-java-aiart
+ 3.1.715
+
diff --git a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/constant/RedisKeyConstant.java b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/constant/RedisKeyConstant.java
index 5a82994..178f6eb 100644
--- a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/constant/RedisKeyConstant.java
+++ b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/constant/RedisKeyConstant.java
@@ -102,6 +102,11 @@ public class RedisKeyConstant {
* 平台用户ai绘画键
*/
public static final String PLATFORM_USER_AI_PAINT_KEY = "bnyer.img.user.aiPaint:";
+
+ /**
+ * ai绘画采用sd或tx文生图开关
+ */
+ public static final String AI_PAINT_BUTTON = "bnyer.img.paint.button";
/**
* 艺术家上传键
*/
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
new file mode 100644
index 0000000..dccca30
--- /dev/null
+++ b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/constant/UserClientTypeConstants.java
@@ -0,0 +1,25 @@
+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 79958fd..cfe6a9a 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
@@ -15,6 +15,7 @@ public enum EnumUserClientType {
KU(20,"KU","快手用户"),
WU(30,"WU","微信用户"),
WY(40,"WY","微信艺术家"),
+ PU(50,"PU","pc管理员")
;
private final int type;
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 0711b83..3a6bd04 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
@@ -5,6 +5,8 @@ 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.enums.EnumUserClientType;
import com.bnyer.common.security.auth.*;
import com.bnyer.common.security.utils.SecurityUtils;
import com.bnyer.img.api.model.LoginCreator;
@@ -20,6 +22,8 @@ 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;
+
/**
* 自定义请求头拦截器,将Header数据封装到线程变量中方便获取
* 注意:此拦截器会同时验证当前用户有效期自动刷新有效期
@@ -37,99 +41,176 @@ public class HeaderInterceptor implements AsyncHandlerInterceptor
return true;
}
- String pcToken = SecurityUtils.getToken(request);
- String creatorToken = SecurityUtils.getCreatorToken(request);
- String tiktokToken = SecurityUtils.getTiktokToken(request);
- String fhToken = SecurityUtils.getFhToken(request);
- String wechatToken = SecurityUtils.getWechatToken(request);
- if(StringUtils.isNotEmpty(pcToken)){
- 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));
+ 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()));
- LoginUser loginUser = AuthUtil.getLoginUser(pcToken);
- if (StringUtils.isNotNull(loginUser))
- {
- AuthUtil.verifyLoginUserExpire(loginUser);
- SecurityContextHolder.set(SecurityConstants.LOGIN_USER, loginUser);
- }
- }else if(StringUtils.isNotEmpty(creatorToken)){
- 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()));
+ 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()));
- LoginCreator loginUser = CreatorAuthUtil.getLoginUser(creatorToken);
- if (StringUtils.isNotNull(loginUser))
- {
- CreatorAuthUtil.verifyLoginUserExpire(loginUser);
- SecurityContextHolder.set(SecurityConstants.LOGIN_CREATOR, loginUser);
- }
- }else if(StringUtils.isNotEmpty(tiktokToken)){
- 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()));
+ 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()));
- LoginTiktokUser loginUser = TiktokAuthUtil.getLoginUser(tiktokToken);
- if (StringUtils.isNotNull(loginUser))
- {
- TiktokAuthUtil.verifyLoginUserExpire(loginUser);
- SecurityContextHolder.set(SecurityConstants.LOGIN_TIKTOK_USER, loginUser);
- }
- }else if(StringUtils.isNotEmpty(fhToken)){
- 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()));
+ 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()));
- LoginFhUser loginUser = FhAuthUtil.getLoginUser(fhToken);
- if (StringUtils.isNotNull(loginUser))
- {
- FhAuthUtil.verifyLoginUserExpire(loginUser);
- SecurityContextHolder.set(SecurityConstants.LOGIN_FH_USER, loginUser);
- }
- }else if(StringUtils.isNotEmpty(wechatToken)){
- 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()));
+ 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));
- LoginWechatUser loginUser = WechatAuthUtil.getLoginUser(wechatToken);
- if (StringUtils.isNotNull(loginUser))
- {
- WechatAuthUtil.verifyLoginUserExpire(loginUser);
- SecurityContextHolder.set(SecurityConstants.LOGIN_WECHAT_USER, loginUser);
- }
+ LoginUser loginUser = AuthUtil.getLoginUser(pcToken);
+ if (StringUtils.isNotNull(loginUser))
+ {
+ AuthUtil.verifyLoginUserExpire(loginUser);
+ SecurityContextHolder.set(SecurityConstants.LOGIN_USER, loginUser);
+ }
+ break;
}
-
-
-
-
-// String token = SecurityUtils.getToken();
-// if (StringUtils.isNotEmpty(token))
-// {
-// LoginUser loginUser = AuthUtil.getLoginUser(token);
+// String pcToken = SecurityUtils.getToken(request);
+// String creatorToken = SecurityUtils.getCreatorToken(request);
+// String tiktokToken = SecurityUtils.getTiktokToken(request);
+// String fhToken = SecurityUtils.getFhToken(request);
+// String wechatToken = SecurityUtils.getWechatToken(request);
+// if(StringUtils.isNotEmpty(pcToken)){
+// 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);
// }
+// }else if(StringUtils.isNotEmpty(creatorToken)){
+// 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 loginUser = CreatorAuthUtil.getLoginUser(creatorToken);
+// if (StringUtils.isNotNull(loginUser))
+// {
+// CreatorAuthUtil.verifyLoginUserExpire(loginUser);
+// SecurityContextHolder.set(SecurityConstants.LOGIN_CREATOR, loginUser);
+// }
+// }else if(StringUtils.isNotEmpty(tiktokToken)){
+// 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 loginUser = TiktokAuthUtil.getLoginUser(tiktokToken);
+// if (StringUtils.isNotNull(loginUser))
+// {
+// TiktokAuthUtil.verifyLoginUserExpire(loginUser);
+// SecurityContextHolder.set(SecurityConstants.LOGIN_TIKTOK_USER, loginUser);
+// }
+// }else if(StringUtils.isNotEmpty(fhToken)){
+// 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 loginUser = FhAuthUtil.getLoginUser(fhToken);
+// if (StringUtils.isNotNull(loginUser))
+// {
+// FhAuthUtil.verifyLoginUserExpire(loginUser);
+// SecurityContextHolder.set(SecurityConstants.LOGIN_FH_USER, loginUser);
+// }
+// }else if(StringUtils.isNotEmpty(wechatToken)){
+// 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 loginUser = WechatAuthUtil.getLoginUser(wechatToken);
+// if (StringUtils.isNotNull(loginUser))
+// {
+// WechatAuthUtil.verifyLoginUserExpire(loginUser);
+// SecurityContextHolder.set(SecurityConstants.LOGIN_WECHAT_USER, loginUser);
+// }
// }
return true;
}
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 dba38f6..5402d26 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
@@ -2,6 +2,8 @@ package com.bnyer.common.security.utils;
import javax.servlet.http.HttpServletRequest;
+import com.bnyer.common.core.constant.UserClientTypeConstants;
+import com.bnyer.common.core.enums.EnumUserClientType;
import com.bnyer.img.api.model.LoginCreator;
import com.bnyer.img.api.model.LoginFhUser;
import com.bnyer.img.api.model.LoginTiktokUser;
@@ -13,6 +15,8 @@ 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 java.util.Objects;
@@ -24,6 +28,37 @@ import java.util.Objects;
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;
+ }
+ return null;
+ }
+
+ //******************************通用获取信息结束*********************************************
+
//***************************PC信息开始*********************************************
/**
* 获取用户ID
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 5bf8422..e41c13c 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
@@ -459,4 +459,11 @@ public class TiktokMiniController extends BaseController {
paintCdkService.useCdk(dto.getCdk(),dto.getSource(),dto.getUserId(),dto.getAppType());
return AjaxResult.success();
}
+
+ @ApiOperation(value="设置Ai绘画开关")
+ @GetMapping(value = "/setAiPaint/{buttonValue}")
+ public AjaxResult setAiPaint(@PathVariable int buttonValue){
+ stableDiffusionService.setPaintButton(buttonValue);
+ return AjaxResult.success();
+ }
}
diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/enums/AiPaintButtonEnum.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/enums/AiPaintButtonEnum.java
new file mode 100644
index 0000000..dbc0764
--- /dev/null
+++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/enums/AiPaintButtonEnum.java
@@ -0,0 +1,20 @@
+package com.bnyer.img.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * ai绘画采用sd或tx文生图枚举类
+ * @author chengkun
+ * @date 2023/4/19 17:46
+ */
+@Getter
+@AllArgsConstructor
+public enum AiPaintButtonEnum {
+ SD(1,"stable diffusion"),
+ TX(0,"tx文生图");
+
+ private int code;
+
+ private String msg;
+}
diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/StableDiffusionService.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/StableDiffusionService.java
index 5b9cec4..d8d9025 100644
--- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/StableDiffusionService.java
+++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/StableDiffusionService.java
@@ -23,4 +23,10 @@ public interface StableDiffusionService {
* @param paintNUm 绘画次数
*/
void addPlatformUserAiPaintNum(String appType,String platform,Long userId,int paintNUm);
+
+ /**
+ * 设置AI绘画button值
+ * @param buttonValue
+ */
+ void setPaintButton(int buttonValue);
}
diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/StableDiffusionServiceImpl.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/StableDiffusionServiceImpl.java
index fc2fbb3..6eca136 100644
--- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/StableDiffusionServiceImpl.java
+++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/StableDiffusionServiceImpl.java
@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject;
import com.bnyer.common.core.constant.RedisKeyConstant;
import com.bnyer.common.core.domain.AiPaint;
import com.bnyer.common.core.dto.TextToImgDto;
+import com.bnyer.common.core.exception.ServiceException;
import com.bnyer.common.core.utils.TranslateUtils;
import com.bnyer.common.core.utils.file.Base64ToMultipartFileUtils;
import com.bnyer.common.core.vo.TextToImgVo;
@@ -13,8 +14,13 @@ import com.bnyer.common.redis.service.RedisService;
import com.bnyer.file.api.RemoteFileService;
import com.bnyer.img.config.StableDiffusionConfig;
import com.bnyer.img.config.TencentTranslateConfig;
+import com.bnyer.img.enums.AiPaintButtonEnum;
import com.bnyer.img.service.AiPaintService;
import com.bnyer.img.service.StableDiffusionService;
+import com.tencentcloudapi.aiart.v20221229.AiartClient;
+import com.tencentcloudapi.aiart.v20221229.models.ResultConfig;
+import com.tencentcloudapi.aiart.v20221229.models.TextToImageRequest;
+import com.tencentcloudapi.aiart.v20221229.models.TextToImageResponse;
import com.tencentcloudapi.common.Credential;
import com.tencentcloudapi.common.exception.TencentCloudSDKException;
import com.tencentcloudapi.common.profile.ClientProfile;
@@ -29,10 +35,7 @@ import org.springframework.web.client.RestTemplate;
import org.springframework.web.multipart.MultipartFile;
import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
@Service
@Slf4j
@@ -85,43 +88,63 @@ public class StableDiffusionServiceImpl implements StableDiffusionService {
@Override
public TextToImgVo textToImg(TextToImgDto param) {
- try{
- String prompt = "";
- //判断prompt是否包含中文,中文则翻译,否则跳过
- if(TranslateUtils.isContainChinese(param.getPrompt())){
- //调用翻译api
- prompt = translate(param.getPrompt());
- }else{
- prompt = param.getPrompt();
- }
- System.out.println(prompt);
-
- //TODO 根据选择的风格来选择模型
- Map map = new HashMap<>();
- map.put("width",param.getWidth() == null ? 512 : param.getWidth());
- map.put("height",param.getHeight() == null ? 512 : param.getHeight());
- map.put("prompt", prompt);
- //map.put("prompt", param.getPrompt());
- map.put("seed",-1);
- map.put("batch_size",1);
- map.put("cfg_scale",7);
- map.put("restore_faces",false);
- map.put("tiling",false);
- map.put("eta",0);
- map.put("sampler_index","DPM++ 2S a Karras");
- //map.put("sampler_index",param.getSamplerIndex());
- map.put("steps",25);
- map.put("negative_prompt","easynegative");
- //log.info("请求stable_diffusion请求体为:【{}】", JSON.toJSONString(map));
- JSONObject jsonObject = restTemplate.postForObject(stableDiffusionConfig.getTxt2ImgUrl(), map, JSONObject.class);
- //log.info("请求stable_diffusion响应体的为:【{}】", JSON.toJSONString(jsonObject));
- TextToImgVo img = new TextToImgVo();
- if(jsonObject != null && jsonObject.getJSONArray("images").size() > 0){
- List images = jsonObject.getJSONArray("images").toJavaList(String.class);
- img.setImages(images);
+
+ //配置控制采用sd还是tx文生图
+ int button = redisService.getCacheObject(RedisKeyConstant.AI_PAINT_BUTTON);
+ if(button == AiPaintButtonEnum.TX.getCode()){
+ //采用腾讯文生图
+ try{
+ Credential cred = new Credential(tencentTranslateConfig.getSecretId(), tencentTranslateConfig.getSecretKey());
+ // 实例化一个http选项,可选的,没有特殊需求可以跳过
+ HttpProfile httpProfile = new HttpProfile();
+ httpProfile.setEndpoint("aiart.tencentcloudapi.com");
+ // 实例化一个client选项,可选的,没有特殊需求可以跳过
+ ClientProfile clientProfile = new ClientProfile();
+ clientProfile.setHttpProfile(httpProfile);
+ // 实例化要请求产品的client对象,clientProfile是可选的
+ AiartClient client = new AiartClient(cred, "ap-guangzhou", clientProfile);
+ // 实例化一个请求对象,每个接口都会对应一个request对象
+ TextToImageRequest req = new TextToImageRequest();
+ req.setPrompt(param.getPrompt());
+ //请求风格
+ String[] styles1 = new String[0];
+ switch (param.getStyleName()) {
+ case "细腻":
+ styles1 = new String[]{"110"};
+ break;
+ case "卡通":
+ styles1 = new String[]{"201"};
+ break;
+ case "科幻":
+ styles1 = new String[]{"114"};
+ break;
+ case "中国风":
+ styles1 = new String[]{"101"};
+ break;
+ }
+ req.setStyles(styles1);
+
+ //画布大小
+ ResultConfig resultConfig1 = new ResultConfig();
+ if(param.getWidth() == 512 && param.getHeight() == 512){
+ resultConfig1.setResolution("768:768");
+ }else if(param.getWidth() == 512 && param.getHeight() == 1024){
+ resultConfig1.setResolution("768:1024");
+ }else{
+ resultConfig1.setResolution("1024:768");
+ }
+ req.setResultConfig(resultConfig1);
+
+ // 返回的resp是一个TextToImageResponse的实例,与请求对象对应
+ TextToImageResponse resp = client.TextToImage(req);
+ TextToImgVo img = new TextToImgVo();
+ String images = resp.getResultImage();
+ List list = new ArrayList<>();
+ list.add(images);
+ img.setImages(list);
String paintId = null;
Date paintTime = null;
- for (String image : images) {
+ for (String image : list) {
//base64转file
MultipartFile file = new Base64ToMultipartFileUtils(image, "data:image/png;base64", "file", "tempSDImg");
//上传图片到七牛云/minio
@@ -149,10 +172,82 @@ public class StableDiffusionServiceImpl implements StableDiffusionService {
}
img.setPaintId(paintId);
img.setPaintTime(paintTime);
+ return img;
+ } catch (TencentCloudSDKException e) {
+ log.error("腾讯文生图调用错误!"+e.getMessage());
+ throw new ServiceException(e.getMessage(),500);
+ }
+ }else{
+ //采用sd
+ try{
+ String prompt = "";
+ //判断prompt是否包含中文,中文则翻译,否则跳过
+ if(TranslateUtils.isContainChinese(param.getPrompt())){
+ //调用翻译api
+ prompt = translate(param.getPrompt());
+ }else{
+ prompt = param.getPrompt();
+ }
+ System.out.println(prompt);
+
+ //TODO 根据选择的风格来选择模型
+ Map map = new HashMap<>();
+ map.put("width",param.getWidth() == null ? 512 : param.getWidth());
+ map.put("height",param.getHeight() == null ? 512 : param.getHeight());
+ map.put("prompt", prompt);
+ //map.put("prompt", param.getPrompt());
+ map.put("seed",-1);
+ map.put("batch_size",1);
+ map.put("cfg_scale",7);
+ map.put("restore_faces",false);
+ map.put("tiling",false);
+ map.put("eta",0);
+ map.put("sampler_index","DPM++ 2S a Karras");
+ //map.put("sampler_index",param.getSamplerIndex());
+ map.put("steps",25);
+ map.put("negative_prompt","easynegative,nsfw,naked");
+ //log.info("请求stable_diffusion请求体为:【{}】", JSON.toJSONString(map));
+ JSONObject jsonObject = restTemplate.postForObject(stableDiffusionConfig.getTxt2ImgUrl(), map, JSONObject.class);
+ //log.info("请求stable_diffusion响应体的为:【{}】", JSON.toJSONString(jsonObject));
+ TextToImgVo img = new TextToImgVo();
+ if(jsonObject != null && jsonObject.getJSONArray("images").size() > 0){
+ List images = jsonObject.getJSONArray("images").toJavaList(String.class);
+ img.setImages(images);
+ String paintId = null;
+ Date paintTime = null;
+ for (String image : images) {
+ //base64转file
+ MultipartFile file = new Base64ToMultipartFileUtils(image, "data:image/png;base64", "file", "tempSDImg");
+ //上传图片到七牛云/minio
+ String imgStr = remoteFileService.uploadBanner(file).getData();
+ //保存生辰该图片到ai绘画表
+ AiPaint paint = new AiPaint();
+ //paint.setId(); 主键改成雪花算法后启用
+ paintId = IdUtil.getSnowflakeNextIdStr();
+ paintTime = new Date();
+ paint.setPaintId(paintId);
+ paint.setCreateTime(paintTime);
+ paint.setImgUrl(imgStr);
+ paint.setPrompt(param.getPrompt());
+ paint.setModel(param.getModelName());
+ paint.setStyleName(param.getStyleName());
+ paint.setHeight(param.getHeight() == null ? "512" : String.valueOf(param.getHeight()));
+ paint.setWidth(param.getWidth() == null ? "512" : String.valueOf(param.getWidth()));
+ paint.setIsShow("1");
+ paint.setSource(param.getPlatform());
+ paint.setPainterId(param.getPainterId());
+ paint.setPainterName(param.getPainterName());
+ aiPaintService.insert(paint);
+ //写入ai绘画次数
+ writePlatformUserAiPaintNum(param.getAppType(),param.getPlatform(),param.getPainterId());
+ }
+ img.setPaintId(paintId);
+ img.setPaintTime(paintTime);
+ }
+ return img;
+ }catch (Exception e){
+ log.error("文本翻译错误!"+e);
}
- return img;
- }catch (Exception e){
- log.error("文本翻译错误!"+e);
}
return null;
}
@@ -186,4 +281,9 @@ public class StableDiffusionServiceImpl implements StableDiffusionService {
String redisKey = RedisKeyConstant.PLATFORM_USER_AI_PAINT_KEY + date;
redisService.hashIncr(redisKey, hashKey, -patinNum);
}
+
+ @Override
+ public void setPaintButton(int buttonValue) {
+ redisService.setCacheObject(RedisKeyConstant.AI_PAINT_BUTTON,buttonValue);
+ }
}