From 87ffcd57015e60c752568bb2f61c5bdb3142cbad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=98=E2=80=98?= Date: Sun, 23 Apr 2023 17:34:59 +0800 Subject: [PATCH 01/26] =?UTF-8?q?feature-1.0-img:=E5=AD=97=E8=8A=82?= =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E6=B7=BB=E5=8A=A0ai=E7=BB=98?= =?UTF-8?q?=E7=94=BB=E6=AC=A1=E6=95=B0=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/constant/RedisKeyConstant.java | 5 ++++ .../bnyer/common/core/dto/TextToImgDto.java | 6 +++++ .../img/controller/TiktokMiniController.java | 7 ++++++ .../bnyer/img/service/TiktokUserService.java | 9 ++++++++ .../impl/StableDiffusionServiceImpl.java | 23 +++++++++++++++++++ .../service/impl/TiktokUserServiceImpl.java | 20 ++++++++++++++++ 6 files changed, 70 insertions(+) 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 903e961..4e1a47b 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 @@ -97,6 +97,11 @@ public class RedisKeyConstant { * 平台用户下载键 */ public static final String PLATFORM_USER_DOWNLOAD_KEY = "bnyer.img.user.download:"; + + /** + * 平台用户ai绘画键 + */ + public static final String PLATFORM_USER_AI_PAINT_KEY = "bnyer.img.user.aiPaint:"; /** * 艺术家上传键 */ diff --git a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/TextToImgDto.java b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/TextToImgDto.java index 1a98f7a..511c6cc 100644 --- a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/TextToImgDto.java +++ b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/TextToImgDto.java @@ -37,4 +37,10 @@ public class TextToImgDto implements Serializable { @ApiModelProperty(value="绘图者昵称") private String painterName; + @ApiModelProperty(value="应用") + private String appType; + + @ApiModelProperty(value="平台") + private String platform; + } 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 463399c..4eb6bce 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 @@ -242,6 +242,13 @@ public class TiktokMiniController extends BaseController { return AjaxResult.success(tiktokUserService.checkUserCanDownload(dto.getUserId(),dto.getPlatform(),dto.getAppType())); } + @ApiOperation(value="检查某平台用户当日ai绘画次数是否超标") + @PostMapping(value = "/checkUserCanAiPaint") + public AjaxResult checkUserCanAiPaint(@Validated @RequestBody @ApiParam("检查超标对象") checkUserCanDownloadDto dto){ + log.debug("【抖音图文小程序】检查某平台用户当日ai绘画次数是否超标参数为:{}", JSON.toJSONString(dto)); + return AjaxResult.success(tiktokUserService.checkUserCanAiPaint(dto.getUserId(),dto.getPlatform(),dto.getAppType())); + } + @ApiOperation(value="新增/更新艺术家即将入账广告收益") @PostMapping(value = "/insertOrUpdatePreAdProfit") diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/TiktokUserService.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/TiktokUserService.java index 3cd9d52..4fa054a 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/TiktokUserService.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/TiktokUserService.java @@ -22,6 +22,15 @@ public interface TiktokUserService { */ boolean checkUserCanDownload(Long userId,String platform,String appType); + /** + * 检查某平台用户当日ai绘画次数是否超标 + * @param userId 用户id + * @param platform 平台 + * @param appType 应用 + * @return - + */ + boolean checkUserCanAiPaint(Long userId,String platform,String appType); + /** * 获取抖音小程序用户 * @param dto 登录参数 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 a69129d..1fccd3a 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 @@ -3,6 +3,7 @@ package com.bnyer.img.service.impl; import cn.hutool.core.util.IdUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.bnyer.common.core.constant.RedisKeyConstant; import com.bnyer.common.core.domain.AiPaint; import com.bnyer.common.core.domain.R; import com.bnyer.common.core.dto.TextToImgDto; @@ -10,6 +11,7 @@ import com.bnyer.common.core.utils.TranslateUtils; import com.bnyer.common.core.utils.file.Base64ToMultipartFileUtils; import com.bnyer.common.core.utils.file.ImageUtils; import com.bnyer.common.core.vo.TextToImgVo; +import com.bnyer.common.redis.service.RedisService; import com.bnyer.file.api.RemoteFileService; import com.bnyer.img.service.AiPaintService; import com.bnyer.img.service.StableDiffusionService; @@ -20,6 +22,7 @@ import org.springframework.stereotype.Service; 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; @@ -38,6 +41,9 @@ public class StableDiffusionServiceImpl implements StableDiffusionService { @Autowired private RemoteFileService remoteFileService; + @Autowired + private RedisService redisService; + @Override public TextToImgVo textToImg(TextToImgDto param) { try{ @@ -99,6 +105,8 @@ public class StableDiffusionServiceImpl implements StableDiffusionService { 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); @@ -110,6 +118,21 @@ public class StableDiffusionServiceImpl implements StableDiffusionService { return null; } + /** + * 写入ai绘画次数 + * @param appType 应用 + * @param platform 平台 + * @param userId 用户id + */ + private void writePlatformUserAiPaintNum(String appType,String platform,Long userId){ + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); + String date = df.format(new Date()); + String hashKey = appType+":"+platform+":"+userId; + log.info("日期【{}】应用【{}】平台【{}】用户【{}】ai绘画数+1",date,appType,platform,userId); + String redisKey = RedisKeyConstant.PLATFORM_USER_AI_PAINT_KEY + date; + redisService.hashIncr(redisKey, hashKey, 1); + } + @Override public void imgToImg() { diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/TiktokUserServiceImpl.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/TiktokUserServiceImpl.java index 972bce9..8e895cc 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/TiktokUserServiceImpl.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/TiktokUserServiceImpl.java @@ -177,6 +177,26 @@ public class TiktokUserServiceImpl implements TiktokUserService { } } + @Override + public boolean checkUserCanAiPaint(Long userId, String platform, String appType) { + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); + String date = df.format(new Date()); + String hashKey = appType+":"+platform+":"+userId; + String redisKey = RedisKeyConstant.PLATFORM_USER_AI_PAINT_KEY + date; + if(redisService.hasHashKey(redisKey,hashKey)){ + //存在键,判断次数,次数达标则不可ai绘画 + Integer aiPaintNum = redisService.getCacheMapValue(redisKey, hashKey); + if(aiPaintNum >= 3){ + return true; + }else{ + return false; + } + }else{ + //不存在键则可下载 + return false; + } + } + @Override public R getTiktokLoginUserByLoginParam(TiktokLoginDto dto) { TiktokSessionInfoVo sessionInfo = this.getSessionInfo(dto.getCode()); From 130bc8276fb24aac21520b4861edd9806e509973 Mon Sep 17 00:00:00 2001 From: Penny <2500338766@qq.com> Date: Mon, 24 Apr 2023 00:38:53 +0800 Subject: [PATCH 02/26] =?UTF-8?q?feature-img-1.0:=E5=BE=85=E5=8A=A0?= =?UTF-8?q?=E5=85=A5=E7=BF=BB=E8=AF=91api?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/bnyer/common/core/domain/CreatorProfit.java | 4 ++-- .../com/bnyer/common/core/dto/CreatorProfitAdInsertDto.java | 2 +- .../bnyer/common/core/dto/CreatorProfitInviteInsertDto.java | 2 +- .../java/com/bnyer/common/core/dto/CreatorProfitPageDto.java | 2 +- .../com/bnyer/common/core/dto/CreatorProfitUpdateDto.java | 2 +- .../main/java/com/bnyer/common/core/vo/CreatorProfitVo.java | 2 +- .../src/main/java/com/bnyer/img/vo/CreatorProfitEndAmtVo.java | 2 +- .../src/main/java/com/bnyer/img/vo/CreatorProfitInAmtVo.java | 2 +- .../src/main/java/com/bnyer/img/vo/CreatorProfitPreVo.java | 2 +- 9 files changed, 10 insertions(+), 10 deletions(-) diff --git a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/CreatorProfit.java b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/CreatorProfit.java index 3f3b496..5303113 100644 --- a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/CreatorProfit.java +++ b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/CreatorProfit.java @@ -71,10 +71,10 @@ public class CreatorProfit extends BaseDomain { private String platform; /** - * 应用类型(0->节点壁纸) + * 应用类型(0->次元意境) */ @TableField(value = "app_type") - @ApiModelProperty(value="应用类型(0->节点壁纸)") + @ApiModelProperty(value="应用类型(0->次元意境)") private String appType; /** diff --git a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/CreatorProfitAdInsertDto.java b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/CreatorProfitAdInsertDto.java index 7533d12..5e98035 100644 --- a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/CreatorProfitAdInsertDto.java +++ b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/CreatorProfitAdInsertDto.java @@ -32,7 +32,7 @@ public class CreatorProfitAdInsertDto implements Serializable { private String platform; @NotBlank(message = "应用类型不能为空!") - @ApiModelProperty(value="应用类型(0->节点壁纸)") + @ApiModelProperty(value="应用类型(0->次元意境)") private String appType; @NotNull(message = "用户id不能为空!") diff --git a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/CreatorProfitInviteInsertDto.java b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/CreatorProfitInviteInsertDto.java index 47fd4a0..3c4c5ad 100644 --- a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/CreatorProfitInviteInsertDto.java +++ b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/CreatorProfitInviteInsertDto.java @@ -34,7 +34,7 @@ public class CreatorProfitInviteInsertDto implements Serializable { private String platform; @NotBlank(message = "应用类型不能为空!") - @ApiModelProperty(value="应用类型(0->节点壁纸)") + @ApiModelProperty(value="应用类型(0->次元意境)") private String appType; public CreatorProfit extractParam(){ diff --git a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/CreatorProfitPageDto.java b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/CreatorProfitPageDto.java index ea6459a..f38f983 100644 --- a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/CreatorProfitPageDto.java +++ b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/CreatorProfitPageDto.java @@ -19,7 +19,7 @@ public class CreatorProfitPageDto extends BasePageDto { @ApiModelProperty(value="结算平台(0->抖音;1->快手;2->微信;3->uniapp)") private String platform; - @ApiModelProperty(value="应用类型(0->节点壁纸)") + @ApiModelProperty(value="应用类型(0->次元意境)") private String appType; @ApiModelProperty(value="收益类型(0->广告浏览;1->邀请;2->会员)") diff --git a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/CreatorProfitUpdateDto.java b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/CreatorProfitUpdateDto.java index c69d3a8..7dd6a33 100644 --- a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/CreatorProfitUpdateDto.java +++ b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/CreatorProfitUpdateDto.java @@ -45,7 +45,7 @@ public class CreatorProfitUpdateDto implements Serializable { private String platform; @NotBlank(message = "应用类型不能为空!") - @ApiModelProperty(value="应用类型(0->节点壁纸)") + @ApiModelProperty(value="应用类型(0->次元意境)") private String appType; @NotBlank(message = "收益类型不能为空!") diff --git a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/vo/CreatorProfitVo.java b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/vo/CreatorProfitVo.java index 45407b1..74bd602 100644 --- a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/vo/CreatorProfitVo.java +++ b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/vo/CreatorProfitVo.java @@ -36,7 +36,7 @@ public class CreatorProfitVo implements Serializable { @ApiModelProperty(value="结算平台(0->抖音;1->快手;2->微信;3->uniapp)") private String platform; - @ApiModelProperty(value="应用类型(0->节点壁纸)") + @ApiModelProperty(value="应用类型(0->次元意境)") private String appType; @ApiModelProperty(value="收益类型(0->广告浏览;1->邀请;2->会员)") diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorProfitEndAmtVo.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorProfitEndAmtVo.java index 78b9937..562bfc9 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorProfitEndAmtVo.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorProfitEndAmtVo.java @@ -40,7 +40,7 @@ public class CreatorProfitEndAmtVo implements Serializable { @ApiModelProperty(value="结算平台(0->抖音;1->快手;2->微信;3->uniapp)") private String platform; - @ApiModelProperty(value="应用类型(0->节点壁纸)") + @ApiModelProperty(value="应用类型(0->次元意境)") private String appType; @ApiModelProperty(value="收益类型(0->广告浏览;1->邀请;2->会员)") diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorProfitInAmtVo.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorProfitInAmtVo.java index fede08b..70dca59 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorProfitInAmtVo.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorProfitInAmtVo.java @@ -40,7 +40,7 @@ public class CreatorProfitInAmtVo implements Serializable { @ApiModelProperty(value="结算平台(0->抖音;1->快手;2->微信;3->uniapp)") private String platform; - @ApiModelProperty(value="应用类型(0->节点壁纸)") + @ApiModelProperty(value="应用类型(0->次元意境)") private String appType; @ApiModelProperty(value="收益类型(0->广告浏览;1->邀请;2->会员)") diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorProfitPreVo.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorProfitPreVo.java index 5878ed0..ed88f71 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorProfitPreVo.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorProfitPreVo.java @@ -33,7 +33,7 @@ public class CreatorProfitPreVo implements Serializable { @ApiModelProperty(value="结算平台(0->抖音;1->快手;2->微信;3->uniapp)") private String platform; - @ApiModelProperty(value="应用类型(0->节点壁纸)") + @ApiModelProperty(value="应用类型(0->次元意境)") private String appType; @ApiModelProperty(value="收益类型(0->广告浏览;1->邀请;2->会员)") From 5b6bbf4c52cb0df666f5777e97937a377500c049 Mon Sep 17 00:00:00 2001 From: Penny <2500338766@qq.com> Date: Mon, 24 Apr 2023 22:41:27 +0800 Subject: [PATCH 03/26] =?UTF-8?q?feature-img-1.0:=E6=9A=82=E5=AD=98?= =?UTF-8?q?=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bnyer-common/bnyer-common-core/pom.xml | 12 ++++ .../bnyer/common/core/client/TmtClient.java | 50 ++++++++++++++++ .../common/core/dto/TextTranslateDto.java | 31 ++++++++++ .../bnyer/common/core/vo/TextTranslateVo.java | 23 +++++++ bnyer-services/bnyer-img/pom.xml | 1 + .../img/config/TencentTranslateConfig.java | 40 +++++++++++++ .../impl/StableDiffusionServiceImpl.java | 60 +++++++++++++++---- 7 files changed, 204 insertions(+), 13 deletions(-) create mode 100644 bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/client/TmtClient.java create mode 100644 bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/TextTranslateDto.java create mode 100644 bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/vo/TextTranslateVo.java create mode 100644 bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/TencentTranslateConfig.java diff --git a/bnyer-common/bnyer-common-core/pom.xml b/bnyer-common/bnyer-common-core/pom.xml index e522210..b24cbb2 100644 --- a/bnyer-common/bnyer-common-core/pom.xml +++ b/bnyer-common/bnyer-common-core/pom.xml @@ -135,6 +135,18 @@ hutool-all + + + + + + + + com.tencentcloudapi + tencentcloud-sdk-java + 3.1.717 + + diff --git a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/client/TmtClient.java b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/client/TmtClient.java new file mode 100644 index 0000000..2ef0325 --- /dev/null +++ b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/client/TmtClient.java @@ -0,0 +1,50 @@ +package com.bnyer.common.core.client; + +import com.bnyer.common.core.dto.TextTranslateDto; +import com.bnyer.common.core.vo.TextTranslateVo; +import com.google.gson.JsonSyntaxException; +import com.google.gson.reflect.TypeToken; +import com.tencentcloudapi.common.AbstractClient; +import com.tencentcloudapi.common.Credential; +import com.tencentcloudapi.common.JsonResponseModel; +import com.tencentcloudapi.common.exception.TencentCloudSDKException; +import com.tencentcloudapi.common.profile.ClientProfile; + +import java.lang.reflect.Type; + +/** + * 翻译方法类 + */ +public class TmtClient extends AbstractClient { + private static String endpoint = "tmt.tencentcloudapi.com"; + private static String service = "tmt"; + private static String version = "2018-03-21"; + + public TmtClient(Credential credential, String region) { + this(credential, region, new ClientProfile()); + } + + public TmtClient(Credential credential, String region, ClientProfile profile) { + super(TmtClient.endpoint, TmtClient.version, credential, region, profile); + } + + /** + * 汉译英 + * @param req TextTranslateRequest + * @return TextTranslateResponse + * @throws TencentCloudSDKException + */ + public TextTranslateVo TextTranslate(TextTranslateDto req) throws TencentCloudSDKException { + JsonResponseModel rsp = null; + String rspStr = ""; + try { + Type type = new TypeToken>() { + }.getType(); + rspStr = this.internalRequest(req, "TextTranslate"); + rsp = gson.fromJson(rspStr, type); + } catch (JsonSyntaxException e) { + throw new TencentCloudSDKException("response message: " + rspStr + ".\n Error message: " + e.getMessage()); + } + return rsp.response; + } +} \ No newline at end of file diff --git a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/TextTranslateDto.java b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/TextTranslateDto.java new file mode 100644 index 0000000..6210ad0 --- /dev/null +++ b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/TextTranslateDto.java @@ -0,0 +1,31 @@ +package com.bnyer.common.core.dto; + +import com.tencentcloudapi.common.AbstractModel; +import lombok.Data; + +import java.util.HashMap; + +/** + * 翻译接收参数类 + */ +@Data +public class TextTranslateDto extends AbstractModel { + + //翻译文本 + + private String SourceText; + + //源翻译语言 + private String Source; + + //目标翻译语言 + private String Target; + + //项目id + private Long ProjectId; + + @Override + protected void toMap(HashMap hashMap, String s) { + + } +} diff --git a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/vo/TextTranslateVo.java b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/vo/TextTranslateVo.java new file mode 100644 index 0000000..9a656d9 --- /dev/null +++ b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/vo/TextTranslateVo.java @@ -0,0 +1,23 @@ +package com.bnyer.common.core.vo; + +import lombok.Data; + +/** + * 翻译接收响应类 + */ +@Data +public class TextTranslateVo { + + //翻译后的文本 + private String TargetText; + + //源翻译语言 + private String Source; + + //目标翻译语言 + private String Target; + + //请求id + private String RequestId; + +} diff --git a/bnyer-services/bnyer-img/pom.xml b/bnyer-services/bnyer-img/pom.xml index 63cd400..dcb287e 100644 --- a/bnyer-services/bnyer-img/pom.xml +++ b/bnyer-services/bnyer-img/pom.xml @@ -128,6 +128,7 @@ com.alipay.sdk alipay-sdk-java + diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/TencentTranslateConfig.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/TencentTranslateConfig.java new file mode 100644 index 0000000..72f05b3 --- /dev/null +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/TencentTranslateConfig.java @@ -0,0 +1,40 @@ +package com.bnyer.img.config; + +//import com.bnyer.img.handler.TokenCheckHandler; + +import lombok.Getter; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.context.annotation.Configuration; + +/** + * 腾讯翻译api配置类 + * @author chengkun + * @date 2023/4/21 17:43 + */ +@Configuration +@ConfigurationProperties(prefix = "translate") +@Getter +@RefreshScope +public class TencentTranslateConfig { + + @Value("${translate.url}") + private String url; + + @Value("${translate.secretId}") + private String secretId; + + @Value("${translate.secretKey}") + private String secretKey; + + @Value("${translate.region}") + private String region; + + @Value("${translate.projectId}") + private String projectId; + + + + +} 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 1fccd3a..2426bde 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 @@ -3,19 +3,24 @@ package com.bnyer.img.service.impl; import cn.hutool.core.util.IdUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.bnyer.common.core.client.TmtClient; import com.bnyer.common.core.constant.RedisKeyConstant; import com.bnyer.common.core.domain.AiPaint; -import com.bnyer.common.core.domain.R; import com.bnyer.common.core.dto.TextToImgDto; +import com.bnyer.common.core.dto.TextTranslateDto; import com.bnyer.common.core.utils.TranslateUtils; import com.bnyer.common.core.utils.file.Base64ToMultipartFileUtils; -import com.bnyer.common.core.utils.file.ImageUtils; import com.bnyer.common.core.vo.TextToImgVo; +import com.bnyer.common.core.vo.TextTranslateVo; import com.bnyer.common.redis.service.RedisService; import com.bnyer.file.api.RemoteFileService; +import com.bnyer.img.config.TencentTranslateConfig; import com.bnyer.img.service.AiPaintService; import com.bnyer.img.service.StableDiffusionService; -import com.bnyer.system.api.RemoteSystemFileService; +import com.tencentcloudapi.common.Credential; +import com.tencentcloudapi.common.exception.TencentCloudSDKException; +import com.tencentcloudapi.common.profile.ClientProfile; +import com.tencentcloudapi.common.profile.HttpProfile; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -44,25 +49,54 @@ public class StableDiffusionServiceImpl implements StableDiffusionService { @Autowired private RedisService redisService; + @Autowired + private TencentTranslateConfig tencentTranslateConfig; + + private String translate(String text){ + try{ + Credential cred = new Credential(tencentTranslateConfig.getSecretId(), tencentTranslateConfig.getSecretKey()); + // 实例化一个http选项,可选的,没有特殊需求可以跳过 + HttpProfile httpProfile = new HttpProfile(); + httpProfile.setEndpoint(tencentTranslateConfig.getUrl()); + // 实例化一个client选项,可选的,没有特殊需求可以跳过 + ClientProfile clientProfile = new ClientProfile(); + clientProfile.setHttpProfile(httpProfile); + // 实例化要请求产品的client对象,clientProfile是可选的 + TmtClient client = new TmtClient(cred, tencentTranslateConfig.getRegion(), clientProfile); + // 实例化一个请求对象,每个接口都会对应一个request对象 + TextTranslateDto req = new TextTranslateDto(); + req.setSourceText(text); + req.setSource("zh"); + req.setTarget("en"); + req.setProjectId(Long.parseLong(tencentTranslateConfig.getProjectId())); + // 返回的resp是一个TextTranslateResponse的实例,与请求对象对应 + TextTranslateVo resp = client.TextTranslate(req); + return resp.getTargetText(); + } catch (TencentCloudSDKException e) { + log.error("调用腾讯api失败"+e.toString()); + } + return ""; + } + @Override public TextToImgVo textToImg(TextToImgDto param) { try{ - //String prompt = ""; + String prompt = ""; //判断prompt是否包含中文,中文则翻译,否则跳过 -// if(TranslateUtils.isContainChinese(param.getPrompt())){ -// //调用翻译api -// //prompt = -// prompt = param.getPrompt(); -// }else{ -// prompt = param.getPrompt(); -// } + 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("prompt", prompt); + //map.put("prompt", param.getPrompt()); map.put("seed",-1); map.put("batch_size",1); map.put("cfg_scale",7); From 64b5032641c9d996bacccfdf227d02c1e286aaf8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=98=E2=80=98?= Date: Tue, 25 Apr 2023 09:30:13 +0800 Subject: [PATCH 04/26] =?UTF-8?q?feature-1.0-img:=E7=BF=BB=E8=AF=91api?= =?UTF-8?q?=E9=9B=86=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bnyer-common/bnyer-common-core/pom.xml | 15 +++--- .../bnyer/common/core/client/TmtClient.java | 50 ------------------- .../common/core/dto/TextTranslateDto.java | 31 ------------ .../bnyer/common/core/vo/TextTranslateVo.java | 23 --------- .../impl/StableDiffusionServiceImpl.java | 10 ++-- 5 files changed, 12 insertions(+), 117 deletions(-) delete mode 100644 bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/client/TmtClient.java delete mode 100644 bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/TextTranslateDto.java delete mode 100644 bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/vo/TextTranslateVo.java diff --git a/bnyer-common/bnyer-common-core/pom.xml b/bnyer-common/bnyer-common-core/pom.xml index b24cbb2..82e9f4f 100644 --- a/bnyer-common/bnyer-common-core/pom.xml +++ b/bnyer-common/bnyer-common-core/pom.xml @@ -136,17 +136,16 @@ - - - - - com.tencentcloudapi - tencentcloud-sdk-java - 3.1.717 + tencentcloud-sdk-java-common + LATEST + + + com.tencentcloudapi + tencentcloud-sdk-java-tmt + LATEST - diff --git a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/client/TmtClient.java b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/client/TmtClient.java deleted file mode 100644 index 2ef0325..0000000 --- a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/client/TmtClient.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.bnyer.common.core.client; - -import com.bnyer.common.core.dto.TextTranslateDto; -import com.bnyer.common.core.vo.TextTranslateVo; -import com.google.gson.JsonSyntaxException; -import com.google.gson.reflect.TypeToken; -import com.tencentcloudapi.common.AbstractClient; -import com.tencentcloudapi.common.Credential; -import com.tencentcloudapi.common.JsonResponseModel; -import com.tencentcloudapi.common.exception.TencentCloudSDKException; -import com.tencentcloudapi.common.profile.ClientProfile; - -import java.lang.reflect.Type; - -/** - * 翻译方法类 - */ -public class TmtClient extends AbstractClient { - private static String endpoint = "tmt.tencentcloudapi.com"; - private static String service = "tmt"; - private static String version = "2018-03-21"; - - public TmtClient(Credential credential, String region) { - this(credential, region, new ClientProfile()); - } - - public TmtClient(Credential credential, String region, ClientProfile profile) { - super(TmtClient.endpoint, TmtClient.version, credential, region, profile); - } - - /** - * 汉译英 - * @param req TextTranslateRequest - * @return TextTranslateResponse - * @throws TencentCloudSDKException - */ - public TextTranslateVo TextTranslate(TextTranslateDto req) throws TencentCloudSDKException { - JsonResponseModel rsp = null; - String rspStr = ""; - try { - Type type = new TypeToken>() { - }.getType(); - rspStr = this.internalRequest(req, "TextTranslate"); - rsp = gson.fromJson(rspStr, type); - } catch (JsonSyntaxException e) { - throw new TencentCloudSDKException("response message: " + rspStr + ".\n Error message: " + e.getMessage()); - } - return rsp.response; - } -} \ No newline at end of file diff --git a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/TextTranslateDto.java b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/TextTranslateDto.java deleted file mode 100644 index 6210ad0..0000000 --- a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/TextTranslateDto.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.bnyer.common.core.dto; - -import com.tencentcloudapi.common.AbstractModel; -import lombok.Data; - -import java.util.HashMap; - -/** - * 翻译接收参数类 - */ -@Data -public class TextTranslateDto extends AbstractModel { - - //翻译文本 - - private String SourceText; - - //源翻译语言 - private String Source; - - //目标翻译语言 - private String Target; - - //项目id - private Long ProjectId; - - @Override - protected void toMap(HashMap hashMap, String s) { - - } -} diff --git a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/vo/TextTranslateVo.java b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/vo/TextTranslateVo.java deleted file mode 100644 index 9a656d9..0000000 --- a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/vo/TextTranslateVo.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.bnyer.common.core.vo; - -import lombok.Data; - -/** - * 翻译接收响应类 - */ -@Data -public class TextTranslateVo { - - //翻译后的文本 - private String TargetText; - - //源翻译语言 - private String Source; - - //目标翻译语言 - private String Target; - - //请求id - private String RequestId; - -} 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 2426bde..f1d9516 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 @@ -3,15 +3,12 @@ package com.bnyer.img.service.impl; import cn.hutool.core.util.IdUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; -import com.bnyer.common.core.client.TmtClient; 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.dto.TextTranslateDto; import com.bnyer.common.core.utils.TranslateUtils; import com.bnyer.common.core.utils.file.Base64ToMultipartFileUtils; import com.bnyer.common.core.vo.TextToImgVo; -import com.bnyer.common.core.vo.TextTranslateVo; import com.bnyer.common.redis.service.RedisService; import com.bnyer.file.api.RemoteFileService; import com.bnyer.img.config.TencentTranslateConfig; @@ -21,6 +18,9 @@ import com.tencentcloudapi.common.Credential; import com.tencentcloudapi.common.exception.TencentCloudSDKException; import com.tencentcloudapi.common.profile.ClientProfile; import com.tencentcloudapi.common.profile.HttpProfile; +import com.tencentcloudapi.tmt.v20180321.TmtClient; +import com.tencentcloudapi.tmt.v20180321.models.TextTranslateRequest; +import com.tencentcloudapi.tmt.v20180321.models.TextTranslateResponse; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -64,13 +64,13 @@ public class StableDiffusionServiceImpl implements StableDiffusionService { // 实例化要请求产品的client对象,clientProfile是可选的 TmtClient client = new TmtClient(cred, tencentTranslateConfig.getRegion(), clientProfile); // 实例化一个请求对象,每个接口都会对应一个request对象 - TextTranslateDto req = new TextTranslateDto(); + TextTranslateRequest req = new TextTranslateRequest(); req.setSourceText(text); req.setSource("zh"); req.setTarget("en"); req.setProjectId(Long.parseLong(tencentTranslateConfig.getProjectId())); // 返回的resp是一个TextTranslateResponse的实例,与请求对象对应 - TextTranslateVo resp = client.TextTranslate(req); + TextTranslateResponse resp = client.TextTranslate(req); return resp.getTargetText(); } catch (TencentCloudSDKException e) { log.error("调用腾讯api失败"+e.toString()); From 34be8a486cc33ef41a0a7d8589206e26ce899fa2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=98=E2=80=98?= Date: Tue, 25 Apr 2023 13:04:16 +0800 Subject: [PATCH 05/26] =?UTF-8?q?feature-1.0-img:=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bnyer/common/security/auth/AuthLogic.java | 5 +++-- .../interceptor/HeaderInterceptor.java | 3 ++- .../common/security/utils/SecurityUtils.java | 22 +++++++++++++++++-- 3 files changed, 25 insertions(+), 5 deletions(-) diff --git a/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/AuthLogic.java b/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/AuthLogic.java index c298824..3753b2a 100644 --- a/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/AuthLogic.java +++ b/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/AuthLogic.java @@ -4,6 +4,7 @@ import java.util.Collection; import java.util.HashSet; import java.util.Set; +import com.bnyer.common.core.constant.TokenConstants; import com.bnyer.common.security.utils.SecurityUtils; import com.bnyer.system.api.model.LoginUser; import org.springframework.util.PatternMatchUtils; @@ -38,7 +39,7 @@ public class AuthLogic */ public void logout() { - String token = SecurityUtils.getToken(); + String token = SecurityUtils.getToken(TokenConstants.AUTHENTICATION); if (token == null) { return; @@ -69,7 +70,7 @@ public class AuthLogic */ public LoginUser getLoginUser() { - String token = SecurityUtils.getToken(); + String token = SecurityUtils.getToken(TokenConstants.AUTHENTICATION); if (token == null) { throw new NotLoginException("未提供token"); 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 81d6a69..b1097c2 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 @@ -3,6 +3,7 @@ package com.bnyer.common.security.interceptor; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import com.bnyer.common.core.constant.TokenConstants; import com.bnyer.common.security.utils.SecurityUtils; import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.AsyncHandlerInterceptor; @@ -33,7 +34,7 @@ public class HeaderInterceptor implements AsyncHandlerInterceptor SecurityContextHolder.setUserName(ServletUtils.getHeader(request, SecurityConstants.DETAILS_USERNAME)); SecurityContextHolder.setUserKey(ServletUtils.getHeader(request, SecurityConstants.USER_KEY)); - String token = SecurityUtils.getToken(); + String token = SecurityUtils.getToken(TokenConstants.AUTHENTICATION); if (StringUtils.isNotEmpty(token)) { LoginUser loginUser = AuthUtil.getLoginUser(token); 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 59d0686..96c597b 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 @@ -10,6 +10,8 @@ import com.bnyer.common.core.context.SecurityContextHolder; import com.bnyer.common.core.utils.ServletUtils; import com.bnyer.common.core.utils.StringUtils; +import java.util.Objects; + /** * 权限获取工具类 * @@ -52,9 +54,25 @@ public class SecurityUtils /** * 获取请求token */ - public static String getToken() + public static String getToken(String authType) { - return getToken(ServletUtils.getRequest()); + //PC + if(authType.equals(TokenConstants.AUTHENTICATION)){ + return getToken(Objects.requireNonNull(ServletUtils.getRequest())); + //抖音 + }else if(authType.equals(TokenConstants.TIKTOK_APP_AUTH)){ + return getTiktokToken(Objects.requireNonNull(ServletUtils.getRequest())); + //快手 + }else if(authType.equals(TokenConstants.FASTHAND_APP_AUTH)){ + return getFhToken(Objects.requireNonNull(ServletUtils.getRequest())); + //微信 + }else if(authType.equals(TokenConstants.WECHAT_APP_AUTH)){ + return getWechatToken(Objects.requireNonNull(ServletUtils.getRequest())); + //艺术家端 + }else{ + return getCreatorToken(Objects.requireNonNull(ServletUtils.getRequest())); + } + } /** From e8118d72ccf4b14096ddb9a1176b0311031aa1fe Mon Sep 17 00:00:00 2001 From: Penny <2500338766@qq.com> Date: Tue, 25 Apr 2023 20:49:51 +0800 Subject: [PATCH 06/26] =?UTF-8?q?feature-img-1.0:sd=E6=96=B9=E6=B3=95?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bnyer-common/bnyer-common-core/pom.xml | 4 +- .../bnyer/common/security/auth/AuthLogic.java | 6 ++- .../interceptor/HeaderInterceptor.java | 3 +- .../common/security/utils/SecurityUtils.java | 44 ++++++++++++------- .../img/config/StableDiffusionConfig.java | 24 ++++++++++ .../impl/StableDiffusionServiceImpl.java | 13 ++++-- 6 files changed, 68 insertions(+), 26 deletions(-) create mode 100644 bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/StableDiffusionConfig.java diff --git a/bnyer-common/bnyer-common-core/pom.xml b/bnyer-common/bnyer-common-core/pom.xml index 82e9f4f..0c67d44 100644 --- a/bnyer-common/bnyer-common-core/pom.xml +++ b/bnyer-common/bnyer-common-core/pom.xml @@ -139,12 +139,12 @@ com.tencentcloudapi tencentcloud-sdk-java-common - LATEST + 3.1.715 com.tencentcloudapi tencentcloud-sdk-java-tmt - LATEST + 3.1.715 diff --git a/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/AuthLogic.java b/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/AuthLogic.java index 3753b2a..1875f1e 100644 --- a/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/AuthLogic.java +++ b/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/AuthLogic.java @@ -39,7 +39,8 @@ public class AuthLogic */ public void logout() { - String token = SecurityUtils.getToken(TokenConstants.AUTHENTICATION); +// String token = SecurityUtils.getToken(TokenConstants.AUTHENTICATION); + String token = SecurityUtils.getToken(); if (token == null) { return; @@ -70,7 +71,8 @@ public class AuthLogic */ public LoginUser getLoginUser() { - String token = SecurityUtils.getToken(TokenConstants.AUTHENTICATION); +// String token = SecurityUtils.getToken(TokenConstants.AUTHENTICATION); + String token = SecurityUtils.getToken(); if (token == null) { throw new NotLoginException("未提供token"); 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 b1097c2..ddda529 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 @@ -34,7 +34,8 @@ public class HeaderInterceptor implements AsyncHandlerInterceptor SecurityContextHolder.setUserName(ServletUtils.getHeader(request, SecurityConstants.DETAILS_USERNAME)); SecurityContextHolder.setUserKey(ServletUtils.getHeader(request, SecurityConstants.USER_KEY)); - String token = SecurityUtils.getToken(TokenConstants.AUTHENTICATION); + //String token = SecurityUtils.getToken(TokenConstants.AUTHENTICATION); + String token = SecurityUtils.getToken(); if (StringUtils.isNotEmpty(token)) { LoginUser loginUser = AuthUtil.getLoginUser(token); 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 96c597b..b1716c7 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 @@ -54,25 +54,35 @@ public class SecurityUtils /** * 获取请求token */ - public static String getToken(String authType) +// public static String getToken(String authType) +// { +// //PC +// switch (authType) { +// case TokenConstants.AUTHENTICATION: +// return getToken(Objects.requireNonNull(ServletUtils.getRequest())); +// //抖音 +// case TokenConstants.TIKTOK_APP_AUTH: +// return getTiktokToken(Objects.requireNonNull(ServletUtils.getRequest())); +// //快手 +// case TokenConstants.FASTHAND_APP_AUTH: +// return getFhToken(Objects.requireNonNull(ServletUtils.getRequest())); +// //微信 +// case TokenConstants.WECHAT_APP_AUTH: +// return getWechatToken(Objects.requireNonNull(ServletUtils.getRequest())); +// //艺术家端 +// default: +// return getCreatorToken(Objects.requireNonNull(ServletUtils.getRequest())); +// } +// +// } + + /** + * 获取请求token + */ + public static String getToken() { //PC - if(authType.equals(TokenConstants.AUTHENTICATION)){ - return getToken(Objects.requireNonNull(ServletUtils.getRequest())); - //抖音 - }else if(authType.equals(TokenConstants.TIKTOK_APP_AUTH)){ - return getTiktokToken(Objects.requireNonNull(ServletUtils.getRequest())); - //快手 - }else if(authType.equals(TokenConstants.FASTHAND_APP_AUTH)){ - return getFhToken(Objects.requireNonNull(ServletUtils.getRequest())); - //微信 - }else if(authType.equals(TokenConstants.WECHAT_APP_AUTH)){ - return getWechatToken(Objects.requireNonNull(ServletUtils.getRequest())); - //艺术家端 - }else{ - return getCreatorToken(Objects.requireNonNull(ServletUtils.getRequest())); - } - + return getToken(Objects.requireNonNull(ServletUtils.getRequest())); } /** diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/StableDiffusionConfig.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/StableDiffusionConfig.java new file mode 100644 index 0000000..29f053e --- /dev/null +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/StableDiffusionConfig.java @@ -0,0 +1,24 @@ +package com.bnyer.img.config; + +import lombok.Getter; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.context.annotation.Configuration; + + +/** + * stable-diffusion配置类 + * @author chengkun + * @date 2022/04/27 16:40 + */ +@Configuration +@ConfigurationProperties(prefix = "sd") +@Getter +@RefreshScope +public class StableDiffusionConfig { + + @Value("${sd.txt2ImgUrl}") + public String txt2ImgUrl; + +} 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 f1d9516..6a3d31f 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 @@ -11,6 +11,7 @@ import com.bnyer.common.core.utils.file.Base64ToMultipartFileUtils; import com.bnyer.common.core.vo.TextToImgVo; 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.service.AiPaintService; import com.bnyer.img.service.StableDiffusionService; @@ -52,6 +53,9 @@ public class StableDiffusionServiceImpl implements StableDiffusionService { @Autowired private TencentTranslateConfig tencentTranslateConfig; + @Autowired + private StableDiffusionConfig stableDiffusionConfig; + private String translate(String text){ try{ Credential cred = new Credential(tencentTranslateConfig.getSecretId(), tencentTranslateConfig.getSecretKey()); @@ -71,6 +75,7 @@ public class StableDiffusionServiceImpl implements StableDiffusionService { req.setProjectId(Long.parseLong(tencentTranslateConfig.getProjectId())); // 返回的resp是一个TextTranslateResponse的实例,与请求对象对应 TextTranslateResponse resp = client.TextTranslate(req); + log.info("翻译后的文本为:【{}】",JSON.toJSONString(resp.getTargetText())); return resp.getTargetText(); } catch (TencentCloudSDKException e) { log.error("调用腾讯api失败"+e.toString()); @@ -106,10 +111,10 @@ public class StableDiffusionServiceImpl implements StableDiffusionService { map.put("sampler_index","DPM++ 2S a Karras"); //map.put("sampler_index",param.getSamplerIndex()); map.put("steps",25); - map.put("negative_prompt","nsfw"); - log.info("请求stable_diffusion请求体为:【{}】", JSON.toJSONString(map)); - JSONObject jsonObject = restTemplate.postForObject("http://localhost:7860/sdapi/v1/txt2img", map, JSONObject.class); - log.info("请求stable_diffusion响应体的为:【{}】", JSON.toJSONString(jsonObject)); + 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); From 0daed41a6e5a5299efa83d235d0bd20355ed455b Mon Sep 17 00:00:00 2001 From: Penny <2500338766@qq.com> Date: Wed, 26 Apr 2023 00:01:17 +0800 Subject: [PATCH 07/26] =?UTF-8?q?feature-img-1.0:=E6=96=B9=E6=B3=95?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resources/com/bnyer/img/mapper/CreatorProfitMapper.xml | 2 ++ .../system/service/impl/ProfitVerifyOrderServiceImpl.java | 5 +++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/CreatorProfitMapper.xml b/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/CreatorProfitMapper.xml index c4d5722..4ba4479 100644 --- a/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/CreatorProfitMapper.xml +++ b/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/CreatorProfitMapper.xml @@ -62,6 +62,7 @@ from img_creator_profit icp left join img_tiktok_img iti on iti.id = icp.img_id where icp.is_show = '1' and icp.creator_id = #{creatorId} and icp.status = '0' and icp.type = #{type} + order by icp.create_time desc - + update img_creator From 7458924268afe5f7e43fb7f6cdb1a366ed34f32d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=98=E2=80=98?= Date: Mon, 1 May 2023 15:26:26 +0800 Subject: [PATCH 22/26] =?UTF-8?q?feature-1.0-img:=E6=8F=90=E7=8E=B0?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E4=B8=BB=E9=94=AEid=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bnyer-img/src/main/java/com/bnyer/img/vo/WithdrawLogVo.java | 2 +- .../main/resources/com/bnyer/img/mapper/WithdrawLogMapper.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/WithdrawLogVo.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/WithdrawLogVo.java index f237aa4..0a02f95 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/WithdrawLogVo.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/WithdrawLogVo.java @@ -20,7 +20,7 @@ import java.math.BigDecimal; public class WithdrawLogVo implements Serializable { @ApiModelProperty(value="主键id") - private Integer id; + private Long id; @ApiModelProperty(value="流水号") private String orderId; diff --git a/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/WithdrawLogMapper.xml b/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/WithdrawLogMapper.xml index 2380d07..28b87af 100644 --- a/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/WithdrawLogMapper.xml +++ b/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/WithdrawLogMapper.xml @@ -4,7 +4,7 @@ - + From 51522890f227197a73d5ed50b65aa4eaeefd0a19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=98=E2=80=98?= Date: Mon, 1 May 2023 21:34:46 +0800 Subject: [PATCH 23/26] =?UTF-8?q?feature-1.0-img:=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=B9=E6=B3=95=E6=94=B9=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/bnyer/file/config/QiniuConfig.java | 2 ++ .../com/bnyer/file/enumeration/AddressEnum.java | 2 +- .../bnyer/file/service/impl/QiniuServiceImpl.java | 15 ++++----------- .../java/com/bnyer/file/utils/StringUtil.java | 2 +- 4 files changed, 8 insertions(+), 13 deletions(-) diff --git a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/config/QiniuConfig.java b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/config/QiniuConfig.java index f7104fa..77cd0d5 100644 --- a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/config/QiniuConfig.java +++ b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/config/QiniuConfig.java @@ -3,6 +3,7 @@ package com.bnyer.file.config; import lombok.Getter; import lombok.Setter; import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.context.annotation.Configuration; @@ -10,6 +11,7 @@ import org.springframework.context.annotation.Configuration; @RefreshScope @Getter @Setter +@ConfigurationProperties(prefix = "qiniu") public class QiniuConfig { @Value("${qiniu.accessKey}") diff --git a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/enumeration/AddressEnum.java b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/enumeration/AddressEnum.java index bcd8734..d8873ef 100644 --- a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/enumeration/AddressEnum.java +++ b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/enumeration/AddressEnum.java @@ -14,7 +14,7 @@ public enum AddressEnum { PHONEBACK(3,"phoneBack/"), FRIEND(4,"friend/"), EMOJI(5,"emoji/"), - WATCH(6,"watch/"); + WATCH(6,"iwatch/"); private Integer businessType; diff --git a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/impl/QiniuServiceImpl.java b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/impl/QiniuServiceImpl.java index 6002a09..7c61323 100644 --- a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/impl/QiniuServiceImpl.java +++ b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/impl/QiniuServiceImpl.java @@ -23,6 +23,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; +import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; @@ -37,15 +38,8 @@ public class QiniuServiceImpl implements IQiniuService { @Autowired private QiniuConfig qiniuConfig; - private Zone zone = new Zone.Builder(Zone.zone0()) - .upHttp("http://upload.qiniup.com") - .upHttps("http://upload.qiniup.com") - .upBackupHttp("http://upload.qiniup.com") - .upBackupHttps("http://upload.qiniup.com") - .rsHttp("http://rs.qiniu.com") - .rsfHttp("http://rsf.qiniu.com") - .apiHttp("http://api.qiniu.com") - .iovipHttp("http://iovip.qbox.me").build(); + private Zone zone = Zone.autoZone(); + @Override public String userUpload(MultipartFile file,Integer fileType) { return this.updloadFile(file,fileType); @@ -58,8 +52,7 @@ public class QiniuServiceImpl implements IQiniuService { Configuration cfg = new Configuration(zone); cfg.useHttpsDomains=false; UploadManager uploadManager = new UploadManager(cfg); - Auth auth = Auth.create(qiniuConfig.getAccessKey(), qiniuConfig.getSecretKey()); - String token = auth.uploadToken(qiniuConfig.getBucketName()); + String token = Auth.create(qiniuConfig.getAccessKey(), qiniuConfig.getSecretKey()).uploadToken(qiniuConfig.getBucketName()); // 使用工具类根据上传文件生成唯一图片名称 String imgName = StringUtil.getRandomImgName(fileName); //根据前端传值获取上传地址 diff --git a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/utils/StringUtil.java b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/utils/StringUtil.java index 2ffe9bb..9db8dd7 100644 --- a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/utils/StringUtil.java +++ b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/utils/StringUtil.java @@ -156,7 +156,7 @@ public class StringUtil { // 生成UUID String uuid = UUID.randomUUID().toString().replaceAll("-", ""); // 生成上传至云服务器的路径 - String path = "code/duck/" + DateUtil.today() + "-" + uuid + suffix; + String path = DateUtil.today() + "-" + uuid + suffix; return path; } } From 0d53dc33ce7f322ad1cd6989a938caf892830e3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=98=E2=80=98?= Date: Tue, 2 May 2023 01:35:45 +0800 Subject: [PATCH 24/26] =?UTF-8?q?feature-1.0-img:security=E9=89=B4?= =?UTF-8?q?=E6=9D=83=E6=96=B9=E6=B3=95=E6=94=B9=E5=86=99=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/constant/SecurityConstants.java | 17 +- .../core/context/SecurityContextHolder.java | 165 ++++++++++++++ .../interceptor/HeaderInterceptor.java | 52 ++++- .../common/security/utils/SecurityUtils.java | 208 +++++++++++++++--- 4 files changed, 403 insertions(+), 39 deletions(-) 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 b8e855e..0f6a84b 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,7 +7,7 @@ package com.bnyer.common.core.constant; */ public class SecurityConstants { - //***************************艺术家信息开始************************************ + //***************************PC信息开始************************************ /** * 用户ID字段 */ @@ -87,6 +87,11 @@ public class SecurityConstants * 抖音用户openId */ public static final String DETAILS_TIKTOK_OPENID = "tiktok_user_openid"; + + /** + * 登录抖音用户 + */ + public static final String LOGIN_TIKTOK_USER = "login_tiktok_user"; //***************************抖音用户信息结束************************************ //***************************微信用户信息开始************************************ @@ -109,6 +114,11 @@ public class SecurityConstants * 微信用户openId */ public static final String DETAILS_WECHAT_OPENID = "wechat_user_openid"; + + /** + * 登录微信用户 + */ + public static final String LOGIN_WECHAT_USER = "login_wechat_user"; //***************************微信用户信息结束************************************ //***************************快手用户信息开始************************************ @@ -132,5 +142,10 @@ public class SecurityConstants */ public static final String DETAILS_FH_OPENID = "fh_user_openid"; + /** + * 登录快手用户 + */ + public static final String LOGIN_FH_USER = "login_fh_user"; + //***************************快手用户信息结束************************************ } diff --git a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/context/SecurityContextHolder.java b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/context/SecurityContextHolder.java index e123cb5..609cfa7 100644 --- a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/context/SecurityContextHolder.java +++ b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/context/SecurityContextHolder.java @@ -51,6 +51,7 @@ public class SecurityContextHolder THREAD_LOCAL.set(threadLocalMap); } + //***************************PC信息开始************************************ public static Long getUserId() { return Convert.toLong(get(SecurityConstants.DETAILS_USER_ID), 0L); @@ -80,6 +81,170 @@ public class SecurityContextHolder { set(SecurityConstants.USER_KEY, userKey); } + //***************************PC信息结束************************************ + + //***************************艺术家信息开始************************************ + + public static Long getCreatorId() + { + return Convert.toLong(get(SecurityConstants.DETAILS_CREATOR_ID), 0L); + } + + public static void setCreatorId(String creator) + { + set(SecurityConstants.DETAILS_CREATOR_ID, creator); + } + + public static String getCreatorKey() + { + return get(SecurityConstants.CREATOR_KEY); + } + + public static void setCreatorKey(String creatorKey) + { + set(SecurityConstants.CREATOR_KEY, creatorKey); + } + + public static String getCreatorPhone() + { + return get(SecurityConstants.DETAILS_PHONE); + } + + public static void setCreatorPhone(String creatorPhone) + { + set(SecurityConstants.DETAILS_PHONE, creatorPhone); + } + + //***************************艺术家信息结束************************************ + + //***************************抖音用户信息开始************************************ + + public static String getTikTokOpenId() + { + return get(SecurityConstants.DETAILS_TIKTOK_OPENID); + } + + public static void setTikTokOpenId(String tikTokOpenId) + { + set(SecurityConstants.DETAILS_TIKTOK_OPENID, tikTokOpenId); + } + + public static String getTikTokUserName() + { + return get(SecurityConstants.DETAILS_TIKTOK_USERNAME); + } + + public static void setTikTokUserName(String tikTokUserName) + { + set(SecurityConstants.DETAILS_TIKTOK_USERNAME, tikTokUserName); + } + + public static String getTikTokUserKey() + { + return get(SecurityConstants.TIKTOK_USER_KEY); + } + + public static void setTikTokUserKey(String tikTokUserKey) + { + set(SecurityConstants.TIKTOK_USER_KEY, tikTokUserKey); + } + + public static Long getTikTokUserId() + { + return Convert.toLong(get(SecurityConstants.DETAILS_TIKTOK_USER_ID), 0L); + } + + public static void setTikTokUserId(String tiktokUser) + { + set(SecurityConstants.DETAILS_TIKTOK_USER_ID, tiktokUser); + } + //***************************抖音用户信息结束************************************ + + //***************************微信用户信息开始************************************ + public static String getWechatOpenId() + { + return get(SecurityConstants.DETAILS_WECHAT_OPENID); + } + + public static void setWechatOpenId(String wechatOpenId) + { + set(SecurityConstants.DETAILS_WECHAT_OPENID, wechatOpenId); + } + + public static String getWechatUserName() + { + return get(SecurityConstants.DETAILS_WECHAT_USERNAME); + } + + public static void setWechatUserName(String wechatUserName) + { + set(SecurityConstants.DETAILS_WECHAT_USERNAME, wechatUserName); + } + + public static String getWechatUserKey() + { + return get(SecurityConstants.WECHAT_USER_KEY); + } + + public static void setWechatUserKey(String WechatUserKey) + { + set(SecurityConstants.WECHAT_USER_KEY, WechatUserKey); + } + + public static Long getWechatUserId() + { + return Convert.toLong(get(SecurityConstants.DETAILS_WECHAT_USER_ID), 0L); + } + + public static void setWechatUserId(String WechatUser) + { + set(SecurityConstants.DETAILS_WECHAT_USER_ID, WechatUser); + } + + //***************************微信用户信息结束************************************ + + //***************************快手用户信息开始************************************ + public static String getFhOpenId() + { + return get(SecurityConstants.DETAILS_FH_OPENID); + } + + public static void setFhOpenId(String FhOpenId) + { + set(SecurityConstants.DETAILS_FH_OPENID, FhOpenId); + } + + public static String getFhUserName() + { + return get(SecurityConstants.DETAILS_FH_USERNAME); + } + + public static void setFhUserName(String FhUserName) + { + set(SecurityConstants.DETAILS_FH_USERNAME, FhUserName); + } + + public static String getFhUserKey() + { + return get(SecurityConstants.FH_USER_KEY); + } + + public static void setFhUserKey(String FhUserKey) + { + set(SecurityConstants.FH_USER_KEY, FhUserKey); + } + + public static Long getFhUserId() + { + return Convert.toLong(get(SecurityConstants.DETAILS_FH_USER_ID), 0L); + } + + public static void setFhUserId(String FhUser) + { + set(SecurityConstants.DETAILS_FH_USER_ID, FhUser); + } + + //***************************快手用户信息结束************************************ public static void remove() { 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 ddda529..9a214e9 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 @@ -30,21 +30,57 @@ public class HeaderInterceptor implements AsyncHandlerInterceptor return true; } - 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 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 token = SecurityUtils.getToken(TokenConstants.AUTHENTICATION); - String token = SecurityUtils.getToken(); - if (StringUtils.isNotEmpty(token)) - { - LoginUser loginUser = AuthUtil.getLoginUser(token); + 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)); + }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)); + }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)); + }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)); } + + + + + +// String token = SecurityUtils.getToken(); +// if (StringUtils.isNotEmpty(token)) +// { +// LoginUser loginUser = AuthUtil.getLoginUser(token); +// if (StringUtils.isNotNull(loginUser)) +// { +// AuthUtil.verifyLoginUserExpire(loginUser); +// SecurityContextHolder.set(SecurityConstants.LOGIN_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 b1716c7..dba38f6 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,10 @@ package com.bnyer.common.security.utils; import javax.servlet.http.HttpServletRequest; +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; @@ -19,6 +23,8 @@ import java.util.Objects; */ public class SecurityUtils { + + //***************************PC信息开始********************************************* /** * 获取用户ID */ @@ -51,31 +57,6 @@ public class SecurityUtils return SecurityContextHolder.get(SecurityConstants.LOGIN_USER, LoginUser.class); } - /** - * 获取请求token - */ -// public static String getToken(String authType) -// { -// //PC -// switch (authType) { -// case TokenConstants.AUTHENTICATION: -// return getToken(Objects.requireNonNull(ServletUtils.getRequest())); -// //抖音 -// case TokenConstants.TIKTOK_APP_AUTH: -// return getTiktokToken(Objects.requireNonNull(ServletUtils.getRequest())); -// //快手 -// case TokenConstants.FASTHAND_APP_AUTH: -// return getFhToken(Objects.requireNonNull(ServletUtils.getRequest())); -// //微信 -// case TokenConstants.WECHAT_APP_AUTH: -// return getWechatToken(Objects.requireNonNull(ServletUtils.getRequest())); -// //艺术家端 -// default: -// return getCreatorToken(Objects.requireNonNull(ServletUtils.getRequest())); -// } -// -// } - /** * 获取请求token */ @@ -95,6 +76,41 @@ public class SecurityUtils return replaceTokenPrefix(token); } + //***************************PC信息结束************************************ + + //***************************艺术家信息开始************************************ + /** + * 获取艺术家ID + */ + public static Long getCreatorId() + { + return SecurityContextHolder.getCreatorId(); + } + + /** + * 获取艺术家手机号 + */ + public static String getCreatorPhone() + { + return SecurityContextHolder.getCreatorPhone(); + } + + /** + * 获取艺术家key + */ + public static String getCreatorKey() + { + return SecurityContextHolder.getCreatorKey(); + } + + /** + * 获取登录艺术家信息 + */ + public static LoginCreator getLoginCreator() + { + return SecurityContextHolder.get(SecurityConstants.LOGIN_CREATOR, LoginCreator.class); + } + /** * 根据request获取请求艺术家请求token */ @@ -105,14 +121,47 @@ public class SecurityUtils return replaceTokenPrefix(token); } + //***************************艺术家信息结束************************************ + + //***************************抖音用户信息开始************************************ /** - * 根据request获取微信小程序用户请求token + * 获取抖音用户ID */ - public static String getWechatToken(HttpServletRequest request) + public static Long getTikTokUserId() { - // 从header获取token标识 - String token = request.getHeader(TokenConstants.WECHAT_APP_AUTH); - return replaceTokenPrefix(token); + return SecurityContextHolder.getTikTokUserId(); + } + + /** + * 获取抖音用户名称 + */ + public static String getTikTokUserName() + { + return SecurityContextHolder.getTikTokUserName(); + } + + /** + * 获取抖音用户key + */ + public static String getTikTokUserKey() + { + return SecurityContextHolder.getTikTokUserKey(); + } + + /** + * 获取抖音用户openId + */ + public static String getTikTokOpenId() + { + return SecurityContextHolder.getTikTokOpenId(); + } + + /** + * 获取抖音登录用户信息 + */ + public static LoginTiktokUser getLoginTikTokUser() + { + return SecurityContextHolder.get(SecurityConstants.LOGIN_TIKTOK_USER, LoginTiktokUser.class); } /** @@ -125,6 +174,103 @@ public class SecurityUtils return replaceTokenPrefix(token); } + //***************************抖音用户信息结束************************************ + + + //***************************微信用户信息开始************************************ + /** + * 获取微信用户ID + */ + public static Long getWechatUserId() + { + return SecurityContextHolder.getWechatUserId(); + } + + /** + * 获取微信用户名称 + */ + public static String getWechatUserName() + { + return SecurityContextHolder.getWechatUserName(); + } + + /** + * 获取微信用户key + */ + public static String getWechatUserKey() + { + return SecurityContextHolder.getWechatUserKey(); + } + + /** + * 获取微信用户openId + */ + public static String getWechatOpenId() + { + return SecurityContextHolder.getWechatOpenId(); + } + + /** + * 获取微信登录用户信息 + */ + public static LoginWechatUser getLoginWechatUser() + { + return SecurityContextHolder.get(SecurityConstants.LOGIN_WECHAT_USER, LoginWechatUser.class); + } + + /** + * 根据request获取微信小程序用户请求token + */ + public static String getWechatToken(HttpServletRequest request) + { + // 从header获取token标识 + String token = request.getHeader(TokenConstants.WECHAT_APP_AUTH); + return replaceTokenPrefix(token); + } + + //***************************微信用户信息结束************************************ + + //***************************快手用户信息开始************************************ + /** + * 获取快手用户ID + */ + public static Long getFhUserId() + { + return SecurityContextHolder.getFhUserId(); + } + + /** + * 获取快手用户名称 + */ + public static String getFhUserName() + { + return SecurityContextHolder.getFhUserName(); + } + + /** + * 获取快手用户key + */ + public static String getFhUserKey() + { + return SecurityContextHolder.getFhUserKey(); + } + + /** + * 获取快手用户openId + */ + public static String getFhOpenId() + { + return SecurityContextHolder.getFhOpenId(); + } + + /** + * 获取快手登录用户信息 + */ + public static LoginFhUser getLoginFhUser() + { + return SecurityContextHolder.get(SecurityConstants.LOGIN_FH_USER, LoginFhUser.class); + } + /** * 根据request获取快手小程序用户请求token */ @@ -135,6 +281,8 @@ public class SecurityUtils return replaceTokenPrefix(token); } + //***************************快手用户信息结束************************************ + /** * 裁剪token前缀 */ From fa9a969b349b992f40a02f3eedbcec3849c2fdb3 Mon Sep 17 00:00:00 2001 From: Penny <2500338766@qq.com> Date: Wed, 3 May 2023 13:43:17 +0800 Subject: [PATCH 25/26] =?UTF-8?q?feature-img-1.0:=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../interceptor/HeaderInterceptor.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) 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 9a214e9..05bde6f 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 @@ -3,8 +3,10 @@ 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.security.utils.SecurityUtils; +import lombok.extern.slf4j.Slf4j; import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.AsyncHandlerInterceptor; import com.bnyer.common.core.constant.SecurityConstants; @@ -20,6 +22,7 @@ import com.bnyer.system.api.model.LoginUser; * * @author ruoyi */ +@Slf4j public class HeaderInterceptor implements AsyncHandlerInterceptor { @Override @@ -50,21 +53,36 @@ public class HeaderInterceptor implements AsyncHandlerInterceptor 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())); }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())); }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())); }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())); } From 84584a7006c7cca28ecb769d084c3bc1f87b3f39 Mon Sep 17 00:00:00 2001 From: Penny <2500338766@qq.com> Date: Wed, 3 May 2023 15:18:41 +0800 Subject: [PATCH 26/26] =?UTF-8?q?feature-1.1=EF=BC=9A=E9=89=B4=E6=9D=83?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../auth/controller/CreatorController.java | 4 +- .../auth/controller/FhUserController.java | 4 +- .../auth/controller/TiktokUserController.java | 4 +- .../auth/controller/WxUserController.java | 8 ++- .../security/auth/CreatorAuthLogic.java | 66 +++++++++++++++++++ .../common/security/auth/CreatorAuthUtil.java | 45 +++++++++++++ .../common/security/auth/FhAuthLogic.java | 64 ++++++++++++++++++ .../common/security/auth/FhAuthUtil.java | 45 +++++++++++++ .../common/security/auth/TiktokAuthLogic.java | 64 ++++++++++++++++++ .../common/security/auth/TiktokAuthUtil.java | 45 +++++++++++++ .../common/security/auth/WechatAuthLogic.java | 66 +++++++++++++++++++ .../common/security/auth/WechatAuthUtil.java | 45 +++++++++++++ .../interceptor/HeaderInterceptor.java | 34 +++++++++- .../security/service/CreatorTokenService.java | 41 ++++++++++++ .../security/service/FhUserTokenService.java | 41 ++++++++++++ .../service/TiktokUserTokenService.java | 44 ++++++++++++- .../security/service/WxUserTokenService.java | 48 ++++++++++++-- 17 files changed, 656 insertions(+), 12 deletions(-) create mode 100644 bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/CreatorAuthLogic.java create mode 100644 bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/CreatorAuthUtil.java create mode 100644 bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/FhAuthLogic.java create mode 100644 bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/FhAuthUtil.java create mode 100644 bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/TiktokAuthLogic.java create mode 100644 bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/TiktokAuthUtil.java create mode 100644 bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/WechatAuthLogic.java create mode 100644 bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/WechatAuthUtil.java diff --git a/bnyer-auth/src/main/java/com/bnyer/auth/controller/CreatorController.java b/bnyer-auth/src/main/java/com/bnyer/auth/controller/CreatorController.java index 0ae54c7..963296e 100644 --- a/bnyer-auth/src/main/java/com/bnyer/auth/controller/CreatorController.java +++ b/bnyer-auth/src/main/java/com/bnyer/auth/controller/CreatorController.java @@ -3,6 +3,7 @@ package com.bnyer.auth.controller; import com.bnyer.auth.service.CreatorLoginService; import com.bnyer.common.core.domain.R; import com.bnyer.common.core.dto.CreatorLoginDto; +import com.bnyer.common.security.auth.CreatorAuthUtil; import com.bnyer.common.security.service.CreatorTokenService; import com.bnyer.common.security.utils.SecurityUtils; import com.bnyer.img.api.model.LoginCreator; @@ -45,7 +46,8 @@ public class CreatorController public R logout(HttpServletRequest request) { String token = SecurityUtils.getCreatorToken(request); - creatorTokenService.delLoginCreator(token); + //creatorTokenService.delLoginCreator(token); + CreatorAuthUtil.logoutByToken(token); return R.ok(); } } diff --git a/bnyer-auth/src/main/java/com/bnyer/auth/controller/FhUserController.java b/bnyer-auth/src/main/java/com/bnyer/auth/controller/FhUserController.java index bee0b77..de4b691 100644 --- a/bnyer-auth/src/main/java/com/bnyer/auth/controller/FhUserController.java +++ b/bnyer-auth/src/main/java/com/bnyer/auth/controller/FhUserController.java @@ -3,6 +3,7 @@ package com.bnyer.auth.controller; import com.bnyer.auth.service.FhUserLoginService; import com.bnyer.common.core.domain.R; import com.bnyer.common.core.dto.FhLoginDto; +import com.bnyer.common.security.auth.FhAuthUtil; import com.bnyer.common.security.service.FhUserTokenService; import com.bnyer.common.security.utils.SecurityUtils; import com.bnyer.img.api.model.LoginFhUser; @@ -43,7 +44,8 @@ public class FhUserController { String token = SecurityUtils.getFhToken(request); //删除快手用户缓存 - fUserTokenService.delLoginFhUser(token); + //fUserTokenService.delLoginFhUser(token); + FhAuthUtil.logoutByToken(token); return R.ok(); } } diff --git a/bnyer-auth/src/main/java/com/bnyer/auth/controller/TiktokUserController.java b/bnyer-auth/src/main/java/com/bnyer/auth/controller/TiktokUserController.java index 76eea4b..f3e126a 100644 --- a/bnyer-auth/src/main/java/com/bnyer/auth/controller/TiktokUserController.java +++ b/bnyer-auth/src/main/java/com/bnyer/auth/controller/TiktokUserController.java @@ -3,6 +3,7 @@ package com.bnyer.auth.controller; import com.bnyer.auth.service.TiktokUserLoginService; import com.bnyer.common.core.domain.R; import com.bnyer.common.core.dto.TiktokLoginDto; +import com.bnyer.common.security.auth.TiktokAuthUtil; import com.bnyer.common.security.service.TiktokUserTokenService; import com.bnyer.common.security.utils.SecurityUtils; import com.bnyer.img.api.model.LoginTiktokUser; @@ -43,7 +44,8 @@ public class TiktokUserController { String token = SecurityUtils.getTiktokToken(request); //删除抖音用户缓存 - tiktokUserTokenService.delLoginFhUser(token); + //tiktokUserTokenService.delLoginTiktokUser(token); + TiktokAuthUtil.logoutByToken(token); return R.ok(); } } diff --git a/bnyer-auth/src/main/java/com/bnyer/auth/controller/WxUserController.java b/bnyer-auth/src/main/java/com/bnyer/auth/controller/WxUserController.java index 96dfecb..78e50b8 100644 --- a/bnyer-auth/src/main/java/com/bnyer/auth/controller/WxUserController.java +++ b/bnyer-auth/src/main/java/com/bnyer/auth/controller/WxUserController.java @@ -3,6 +3,7 @@ package com.bnyer.auth.controller; import com.bnyer.auth.service.WxUserLoginService; import com.bnyer.common.core.domain.R; import com.bnyer.common.core.dto.WxLoginDto; +import com.bnyer.common.security.auth.WechatAuthUtil; import com.bnyer.common.security.service.WxUserTokenService; import com.bnyer.common.security.utils.SecurityUtils; import com.bnyer.img.api.model.LoginWechatUser; @@ -28,13 +29,13 @@ public class WxUserController private WxUserLoginService wxUserLoginService; @Autowired - private WxUserTokenService WxUserTokenService; + private WxUserTokenService wxUserTokenService; @ApiOperation(value="微信小程序用户登录") @PostMapping(value = "/wxUserLogin") public R loginWx(@Validated @RequestBody @ApiParam("登录对象") WxLoginDto dto){ LoginWechatUser loginWxUser = wxUserLoginService.login(dto); - return R.ok(WxUserTokenService.createToken(loginWxUser)); + return R.ok(wxUserTokenService.createToken(loginWxUser)); } @PostMapping("/wxUserLogout") @@ -43,7 +44,8 @@ public class WxUserController { String token = SecurityUtils.getWechatToken(request); //删除微信用户缓存 - WxUserTokenService.delLoginFhUser(token); + //WxUserTokenService.delLoginFhUser(token); + WechatAuthUtil.logoutByToken(token); return R.ok(); } } diff --git a/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/CreatorAuthLogic.java b/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/CreatorAuthLogic.java new file mode 100644 index 0000000..44f50d0 --- /dev/null +++ b/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/CreatorAuthLogic.java @@ -0,0 +1,66 @@ +package com.bnyer.common.security.auth; + +import com.bnyer.common.core.utils.SpringUtils; +import com.bnyer.common.security.service.CreatorTokenService; +import com.bnyer.common.security.service.TiktokUserTokenService; +import com.bnyer.img.api.model.LoginCreator; +import com.bnyer.img.api.model.LoginTiktokUser; + +/** + * 艺术家Token 权限验证,逻辑实现类 + * + * @author penny + */ +public class CreatorAuthLogic +{ + + public CreatorTokenService tokenService = SpringUtils.getBean(CreatorTokenService.class); + + + /** + * 会话注销,根据指定Token + */ + public void logoutByToken(String token) + { + tokenService.delLoginCreator(token); + } + + + /** + * 获取当前用户缓存信息, 如果未登录,则抛出异常 + * + * @param token 前端传递的认证信息 + * @return 用户缓存信息 + */ + public LoginCreator getLoginUser(String token) + { + return tokenService.getLoginUser(token); + } + + /** + * 验证当前用户有效期, 如果相差不足120分钟,自动刷新缓存 + * + * @param loginCreator 当前用户信息 + */ + public void verifyLoginUserExpire(LoginCreator loginCreator) + { + tokenService.verifyToken(loginCreator); + } + + + + + + + + + + + + + + + + + +} diff --git a/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/CreatorAuthUtil.java b/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/CreatorAuthUtil.java new file mode 100644 index 0000000..aa98987 --- /dev/null +++ b/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/CreatorAuthUtil.java @@ -0,0 +1,45 @@ +package com.bnyer.common.security.auth; + +import com.bnyer.img.api.model.LoginCreator; + +/** + * 抖音Token 权限验证工具类 + * + * @author penny + */ +public class CreatorAuthUtil +{ + /** + * 底层的 AuthLogic 对象 + */ + public static CreatorAuthLogic authLogic = new CreatorAuthLogic(); + + + /** + * 会话注销,根据指定Token + * + * @param token 指定token + */ + public static void logoutByToken(String token) + { + authLogic.logoutByToken(token); + } + + + /** + * 获取当前登录用户信息 + */ + public static LoginCreator getLoginUser(String token) + { + return authLogic.getLoginUser(token); + } + + /** + * 验证当前用户有效期 + */ + public static void verifyLoginUserExpire(LoginCreator loginCreator) + { + authLogic.verifyLoginUserExpire(loginCreator); + } + +} diff --git a/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/FhAuthLogic.java b/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/FhAuthLogic.java new file mode 100644 index 0000000..628ef5d --- /dev/null +++ b/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/FhAuthLogic.java @@ -0,0 +1,64 @@ +package com.bnyer.common.security.auth; + +import com.bnyer.common.core.utils.SpringUtils; +import com.bnyer.common.security.service.FhUserTokenService; +import com.bnyer.img.api.model.LoginFhUser; + +/** + * 快手Token 权限验证,逻辑实现类 + * + * @author penny + */ +public class FhAuthLogic +{ + + public FhUserTokenService tokenService = SpringUtils.getBean(FhUserTokenService.class); + + + /** + * 会话注销,根据指定Token + */ + public void logoutByToken(String token) + { + tokenService.delLoginFhUser(token); + } + + + /** + * 获取当前用户缓存信息, 如果未登录,则抛出异常 + * + * @param token 前端传递的认证信息 + * @return 用户缓存信息 + */ + public LoginFhUser getLoginUser(String token) + { + return tokenService.getLoginUser(token); + } + + /** + * 验证当前用户有效期, 如果相差不足120分钟,自动刷新缓存 + * + * @param loginFhUser 当前用户信息 + */ + public void verifyLoginUserExpire(LoginFhUser loginFhUser) + { + tokenService.verifyToken(loginFhUser); + } + + + + + + + + + + + + + + + + + +} diff --git a/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/FhAuthUtil.java b/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/FhAuthUtil.java new file mode 100644 index 0000000..64490fc --- /dev/null +++ b/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/FhAuthUtil.java @@ -0,0 +1,45 @@ +package com.bnyer.common.security.auth; + +import com.bnyer.img.api.model.LoginFhUser; + +/** + * 快手Token 权限验证工具类 + * + * @author penny + */ +public class FhAuthUtil +{ + /** + * 底层的 AuthLogic 对象 + */ + public static FhAuthLogic authLogic = new FhAuthLogic(); + + + /** + * 会话注销,根据指定Token + * + * @param token 指定token + */ + public static void logoutByToken(String token) + { + authLogic.logoutByToken(token); + } + + + /** + * 获取当前登录用户信息 + */ + public static LoginFhUser getLoginUser(String token) + { + return authLogic.getLoginUser(token); + } + + /** + * 验证当前用户有效期 + */ + public static void verifyLoginUserExpire(LoginFhUser loginFhUser) + { + authLogic.verifyLoginUserExpire(loginFhUser); + } + +} diff --git a/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/TiktokAuthLogic.java b/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/TiktokAuthLogic.java new file mode 100644 index 0000000..8802d59 --- /dev/null +++ b/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/TiktokAuthLogic.java @@ -0,0 +1,64 @@ +package com.bnyer.common.security.auth; + +import com.bnyer.common.core.utils.SpringUtils; +import com.bnyer.common.security.service.TiktokUserTokenService; +import com.bnyer.img.api.model.LoginTiktokUser; + +/** + * 抖音Token 权限验证,逻辑实现类 + * + * @author penny + */ +public class TiktokAuthLogic +{ + + public TiktokUserTokenService tokenService = SpringUtils.getBean(TiktokUserTokenService.class); + + + /** + * 会话注销,根据指定Token + */ + public void logoutByToken(String token) + { + tokenService.delLoginTiktokUser(token); + } + + + /** + * 获取当前用户缓存信息, 如果未登录,则抛出异常 + * + * @param token 前端传递的认证信息 + * @return 用户缓存信息 + */ + public LoginTiktokUser getLoginUser(String token) + { + return tokenService.getLoginUser(token); + } + + /** + * 验证当前用户有效期, 如果相差不足120分钟,自动刷新缓存 + * + * @param loginTiktokUser 当前用户信息 + */ + public void verifyLoginUserExpire(LoginTiktokUser loginTiktokUser) + { + tokenService.verifyToken(loginTiktokUser); + } + + + + + + + + + + + + + + + + + +} diff --git a/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/TiktokAuthUtil.java b/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/TiktokAuthUtil.java new file mode 100644 index 0000000..fbfacb4 --- /dev/null +++ b/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/TiktokAuthUtil.java @@ -0,0 +1,45 @@ +package com.bnyer.common.security.auth; + +import com.bnyer.img.api.model.LoginTiktokUser; + +/** + * 抖音Token 权限验证工具类 + * + * @author penny + */ +public class TiktokAuthUtil +{ + /** + * 底层的 AuthLogic 对象 + */ + public static TiktokAuthLogic authLogic = new TiktokAuthLogic(); + + + /** + * 会话注销,根据指定Token + * + * @param token 指定token + */ + public static void logoutByToken(String token) + { + authLogic.logoutByToken(token); + } + + + /** + * 获取当前登录用户信息 + */ + public static LoginTiktokUser getLoginUser(String token) + { + return authLogic.getLoginUser(token); + } + + /** + * 验证当前用户有效期 + */ + public static void verifyLoginUserExpire(LoginTiktokUser loginTiktokUser) + { + authLogic.verifyLoginUserExpire(loginTiktokUser); + } + +} diff --git a/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/WechatAuthLogic.java b/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/WechatAuthLogic.java new file mode 100644 index 0000000..351a475 --- /dev/null +++ b/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/WechatAuthLogic.java @@ -0,0 +1,66 @@ +package com.bnyer.common.security.auth; + +import com.bnyer.common.core.utils.SpringUtils; +import com.bnyer.common.security.service.TiktokUserTokenService; +import com.bnyer.common.security.service.WxUserTokenService; +import com.bnyer.img.api.model.LoginTiktokUser; +import com.bnyer.img.api.model.LoginWechatUser; + +/** + * 微信Token 权限验证,逻辑实现类 + * + * @author penny + */ +public class WechatAuthLogic +{ + + public WxUserTokenService tokenService = SpringUtils.getBean(WxUserTokenService.class); + + + /** + * 会话注销,根据指定Token + */ + public void logoutByToken(String token) + { + tokenService.delLoginWechatUser(token); + } + + + /** + * 获取当前用户缓存信息, 如果未登录,则抛出异常 + * + * @param token 前端传递的认证信息 + * @return 用户缓存信息 + */ + public LoginWechatUser getLoginUser(String token) + { + return tokenService.getLoginUser(token); + } + + /** + * 验证当前用户有效期, 如果相差不足120分钟,自动刷新缓存 + * + * @param loginWechatUser 当前用户信息 + */ + public void verifyLoginUserExpire(LoginWechatUser loginWechatUser) + { + tokenService.verifyToken(loginWechatUser); + } + + + + + + + + + + + + + + + + + +} diff --git a/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/WechatAuthUtil.java b/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/WechatAuthUtil.java new file mode 100644 index 0000000..239cdbb --- /dev/null +++ b/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/WechatAuthUtil.java @@ -0,0 +1,45 @@ +package com.bnyer.common.security.auth; + +import com.bnyer.img.api.model.LoginWechatUser; + +/** + * 微信Token 权限验证工具类 + * + * @author penny + */ +public class WechatAuthUtil +{ + /** + * 底层的 AuthLogic 对象 + */ + public static WechatAuthLogic authLogic = new WechatAuthLogic(); + + + /** + * 会话注销,根据指定Token + * + * @param token 指定token + */ + public static void logoutByToken(String token) + { + authLogic.logoutByToken(token); + } + + + /** + * 获取当前登录用户信息 + */ + public static LoginWechatUser getLoginUser(String token) + { + return authLogic.getLoginUser(token); + } + + /** + * 验证当前用户有效期 + */ + public static void verifyLoginUserExpire(LoginWechatUser loginWechatUser) + { + authLogic.verifyLoginUserExpire(loginWechatUser); + } + +} 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 05bde6f..0711b83 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,7 +5,12 @@ import javax.servlet.http.HttpServletResponse; import com.alibaba.fastjson.JSON; import com.bnyer.common.core.constant.TokenConstants; +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 lombok.extern.slf4j.Slf4j; import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.AsyncHandlerInterceptor; @@ -13,7 +18,6 @@ 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.common.security.auth.AuthUtil; import com.bnyer.system.api.model.LoginUser; /** @@ -56,6 +60,13 @@ public class HeaderInterceptor implements AsyncHandlerInterceptor 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)); @@ -65,6 +76,13 @@ public class HeaderInterceptor implements AsyncHandlerInterceptor 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)); @@ -74,6 +92,13 @@ public class HeaderInterceptor implements AsyncHandlerInterceptor 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)); @@ -83,6 +108,13 @@ public class HeaderInterceptor implements AsyncHandlerInterceptor 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); + } } 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 0c81ae0..0d551a2 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 @@ -36,6 +36,8 @@ public class CreatorTokenService private final static String ACCESS_TOKEN = RedisKeyConstant.WECHAT_CREATOR_LOGIN_KEY; + private final static Long MILLIS_MINUTE_TEN = CacheConstants.REFRESH_TIME * MILLIS_MINUTE; + /** * 创建令牌 */ @@ -76,6 +78,45 @@ public class CreatorTokenService } } + /** + * 获取用户身份信息 + * + * @return 用户信息 + */ + public LoginCreator getLoginUser(String token) + { + LoginCreator user = null; + try + { + if (StringUtils.isNotEmpty(token)) + { + // + String phone = JwtUtils.getCreatorPhone(token); + user = redisService.getCacheObject(getTokenKey(phone)); + return user; + } + } + catch (Exception e) + { + } + return user; + } + + /** + * 验证令牌有效期,相差不足120分钟,自动刷新缓存 + * + * @param loginCreator 艺术家用户 + */ + public void verifyToken(LoginCreator loginCreator) + { + long expireTime = loginCreator.getExpireTime(); + long currentTime = System.currentTimeMillis(); + if (expireTime - currentTime <= MILLIS_MINUTE_TEN) + { + refreshToken(loginCreator); + } + } + /** * 刷新令牌有效期 * 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 d088326..e4675d6 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 @@ -36,6 +36,8 @@ public class FhUserTokenService private final static String ACCESS_TOKEN = RedisKeyConstant.FH_USER_LOGIN_KEY; + private final static Long MILLIS_MINUTE_TEN = CacheConstants.REFRESH_TIME * MILLIS_MINUTE; + /** * 创建令牌 */ @@ -79,6 +81,45 @@ public class FhUserTokenService } } + /** + * 获取用户身份信息 + * + * @return 用户信息 + */ + public LoginFhUser getLoginUser(String token) + { + LoginFhUser user = null; + try + { + if (StringUtils.isNotEmpty(token)) + { + // + String openId = JwtUtils.getFhUserOpenid(token); + user = redisService.getCacheObject(getTokenKey(openId)); + return user; + } + } + catch (Exception e) + { + } + return user; + } + + /** + * 验证令牌有效期,相差不足120分钟,自动刷新缓存 + * + * @param loginFhUser 快手用户 + */ + public void verifyToken(LoginFhUser loginFhUser) + { + long expireTime = loginFhUser.getExpireTime(); + long currentTime = System.currentTimeMillis(); + if (expireTime - currentTime <= MILLIS_MINUTE_TEN) + { + refreshToken(loginFhUser); + } + } + /** * 刷新令牌有效期 * 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 3301ae3..d8c6984 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 @@ -10,6 +10,7 @@ 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; @@ -36,6 +37,8 @@ public class TiktokUserTokenService private final static String ACCESS_TOKEN = RedisKeyConstant.TIKTOK_USER_LOGIN_KEY; + private final static Long MILLIS_MINUTE_TEN = CacheConstants.REFRESH_TIME * MILLIS_MINUTE; + /** * 创建令牌 */ @@ -70,7 +73,7 @@ public class TiktokUserTokenService /** * 删除抖音小程序用户缓存信息 */ - public void delLoginFhUser(String token) + public void delLoginTiktokUser(String token) { if (StringUtils.isNotEmpty(token)) { @@ -79,6 +82,45 @@ public class TiktokUserTokenService } } + /** + * 获取用户身份信息 + * + * @return 用户信息 + */ + public LoginTiktokUser getLoginUser(String token) + { + LoginTiktokUser user = null; + try + { + if (StringUtils.isNotEmpty(token)) + { + // + String openId = JwtUtils.getTiktokUserOpenid(token); + user = redisService.getCacheObject(getTokenKey(openId)); + return user; + } + } + catch (Exception e) + { + } + return user; + } + + /** + * 验证令牌有效期,相差不足120分钟,自动刷新缓存 + * + * @param loginTiktokUser 抖音用户 + */ + public void verifyToken(LoginTiktokUser loginTiktokUser) + { + long expireTime = loginTiktokUser.getExpireTime(); + long currentTime = System.currentTimeMillis(); + if (expireTime - currentTime <= MILLIS_MINUTE_TEN) + { + refreshToken(loginTiktokUser); + } + } + /** * 刷新令牌有效期 * 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 037c72b..55c270d 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 @@ -9,7 +9,6 @@ import com.bnyer.common.core.utils.StringUtils; 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.LoginFhUser; import com.bnyer.img.api.model.LoginWechatUser; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -37,6 +36,8 @@ public class WxUserTokenService private final static String ACCESS_TOKEN = RedisKeyConstant.WECHAT_USER_LOGIN_KEY; + private final static Long MILLIS_MINUTE_TEN = CacheConstants.REFRESH_TIME * MILLIS_MINUTE; + /** * 创建令牌 */ @@ -71,12 +72,51 @@ public class WxUserTokenService /** * 删除微信小程序用户缓存信息 */ - public void delLoginFhUser(String token) + public void delLoginWechatUser(String token) { if (StringUtils.isNotEmpty(token)) { - String wxUserKey = JwtUtils.getWechatUserOpenid(token); - redisService.deleteObject(getTokenKey(wxUserKey)); + String openId = JwtUtils.getWechatUserOpenid(token); + redisService.deleteObject(getTokenKey(openId)); + } + } + + /** + * 获取用户身份信息 + * + * @return 用户信息 + */ + public LoginWechatUser getLoginUser(String token) + { + LoginWechatUser user = null; + try + { + if (StringUtils.isNotEmpty(token)) + { + // + String openId = JwtUtils.getWechatUserOpenid(token); + user = redisService.getCacheObject(getTokenKey(openId)); + return user; + } + } + catch (Exception e) + { + } + return user; + } + + /** + * 验证令牌有效期,相差不足120分钟,自动刷新缓存 + * + * @param loginWechatUser 微信用户 + */ + public void verifyToken(LoginWechatUser loginWechatUser) + { + long expireTime = loginWechatUser.getExpireTime(); + long currentTime = System.currentTimeMillis(); + if (expireTime - currentTime <= MILLIS_MINUTE_TEN) + { + refreshToken(loginWechatUser); } }