From cdf31c3e13f7c6783ab5285f74b42939544b1db7 Mon Sep 17 00:00:00 2001 From: ziin Date: Mon, 20 Apr 2026 16:28:51 +0800 Subject: [PATCH] =?UTF-8?q?refactor(auth):=20=E6=96=B0=E5=A2=9E=20AUTO=5FT?= =?UTF-8?q?K=20=E5=8A=9F=E8=83=BD=E6=9D=83=E9=99=90=E4=B8=8E=E8=BF=87?= =?UTF-8?q?=E6=9C=9F=E6=97=B6=E9=97=B4=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yupi/springbootinit/component/FeatureAuthComponent.java | 5 ++++- .../springbootinit/controller/FeatureAuthController.java | 5 +++++ .../springbootinit/controller/TaskExecuteController.java | 5 +++-- .../com/yupi/springbootinit/model/entity/SystemTenant.java | 6 ++++++ .../com/yupi/springbootinit/model/entity/SystemUsers.java | 4 ++++ .../yupi/springbootinit/model/vo/user/SystemUsersVO.java | 4 ++++ .../com/yupi/springbootinit/service/impl/LoginService.java | 1 + src/main/resources/application.yml | 2 ++ 8 files changed, 29 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/yupi/springbootinit/component/FeatureAuthComponent.java b/src/main/java/com/yupi/springbootinit/component/FeatureAuthComponent.java index 66a9752..eb5878a 100644 --- a/src/main/java/com/yupi/springbootinit/component/FeatureAuthComponent.java +++ b/src/main/java/com/yupi/springbootinit/component/FeatureAuthComponent.java @@ -153,7 +153,10 @@ public class FeatureAuthComponent { } // 校验功能代码(如果指定) - if (StrUtil.isNotBlank(requiredFeatureCode) && !requiredFeatureCode.equals(payload.getFeatureCode())) { + // 功能码统一按忽略大小写比较,避免发证与校验阶段大小写不一致 + if (StrUtil.isNotBlank(requiredFeatureCode) + && (StrUtil.isBlank(payload.getFeatureCode()) + || !requiredFeatureCode.equalsIgnoreCase(payload.getFeatureCode()))) { log.warn("功能代码不匹配,需要: {}, Ticket: {}", requiredFeatureCode, payload.getFeatureCode()); throw new BusinessException(ErrorCode.TICKET_FEATURE_MISMATCH, "功能代码不匹配"); } diff --git a/src/main/java/com/yupi/springbootinit/controller/FeatureAuthController.java b/src/main/java/com/yupi/springbootinit/controller/FeatureAuthController.java index 6945f88..0930c89 100644 --- a/src/main/java/com/yupi/springbootinit/controller/FeatureAuthController.java +++ b/src/main/java/com/yupi/springbootinit/controller/FeatureAuthController.java @@ -135,6 +135,9 @@ public class FeatureAuthController { case "BROTHER": case "BIG_BROTHER": return tenant.getBrotherExpireTime(); + case "AUTO_TK": + // auto_tk 当前走租户通用到期时间 + return tenant.getAutoTkExpireTime(); default: return tenant.getExpireTime(); } @@ -160,6 +163,8 @@ public class FeatureAuthController { return user.getBigBrother() != null && user.getBigBrother() == 1; case "WEB_AI": return user.getWebAi() != null && user.getWebAi() == 1; + case "AUTO_TK": + return user.getAutoTk() != null && user.getAutoTk() == 1; default: // 未知功能代码,默认不允许 return false; diff --git a/src/main/java/com/yupi/springbootinit/controller/TaskExecuteController.java b/src/main/java/com/yupi/springbootinit/controller/TaskExecuteController.java index 869e775..e9a4630 100644 --- a/src/main/java/com/yupi/springbootinit/controller/TaskExecuteController.java +++ b/src/main/java/com/yupi/springbootinit/controller/TaskExecuteController.java @@ -39,8 +39,9 @@ public class TaskExecuteController { * 2. 请求头 X-Machine-Id: 与 Ticket 中一致的设备 ID */ @PostMapping("/execute-task") - @RequireFeatureTicket(featureCode = "CRAWL") - @ApiOperation(value = "执行任务", notes = "需要 Feature Ticket 校验,功能代码: CRAWL") + // 任务执行接口改为校验 auto_tk 功能票据 + @RequireFeatureTicket(featureCode = "auto_tk") + @ApiOperation(value = "执行任务", notes = "需要 Feature Ticket 校验,功能代码: auto_tk") public BaseResponse> executeTask( @RequestBody Map taskParams, HttpServletRequest request) { diff --git a/src/main/java/com/yupi/springbootinit/model/entity/SystemTenant.java b/src/main/java/com/yupi/springbootinit/model/entity/SystemTenant.java index d3a6359..1295575 100644 --- a/src/main/java/com/yupi/springbootinit/model/entity/SystemTenant.java +++ b/src/main/java/com/yupi/springbootinit/model/entity/SystemTenant.java @@ -107,6 +107,12 @@ public class SystemTenant { @TableField(value = "brother_expire_time") private LocalDateTime brotherExpireTime; + /** + * tks私信过期时间 + */ + @ApiModelProperty(value="大哥过期时间") + @TableField(value = "auto_tk_expire_time") + private LocalDateTime autoTkExpireTime; /** * 账号数量 diff --git a/src/main/java/com/yupi/springbootinit/model/entity/SystemUsers.java b/src/main/java/com/yupi/springbootinit/model/entity/SystemUsers.java index 9478f06..ceebb4c 100644 --- a/src/main/java/com/yupi/springbootinit/model/entity/SystemUsers.java +++ b/src/main/java/com/yupi/springbootinit/model/entity/SystemUsers.java @@ -196,6 +196,10 @@ public class SystemUsers { @ApiModelProperty(value = "能否登录智能回复客户端") private Byte webAi; + @TableField(value = "auto_tk") + @ApiModelProperty(value = "tk自动回复") + private Byte autoTk; + @TableField(value = "points") @ApiModelProperty(value = "用户积分") private Integer points; diff --git a/src/main/java/com/yupi/springbootinit/model/vo/user/SystemUsersVO.java b/src/main/java/com/yupi/springbootinit/model/vo/user/SystemUsersVO.java index 04e9b8a..1a8ddf4 100644 --- a/src/main/java/com/yupi/springbootinit/model/vo/user/SystemUsersVO.java +++ b/src/main/java/com/yupi/springbootinit/model/vo/user/SystemUsersVO.java @@ -51,6 +51,8 @@ public class SystemUsersVO { private Byte webAi; + private Byte autoTk; + private Boolean aiReplayEnabled; private Boolean crawlEnabled; @@ -61,5 +63,7 @@ public class SystemUsersVO { private Boolean webAiEnabled; + private Boolean autoTkEnabled; + private Integer points; } diff --git a/src/main/java/com/yupi/springbootinit/service/impl/LoginService.java b/src/main/java/com/yupi/springbootinit/service/impl/LoginService.java index 2007ef1..b67a7ba 100644 --- a/src/main/java/com/yupi/springbootinit/service/impl/LoginService.java +++ b/src/main/java/com/yupi/springbootinit/service/impl/LoginService.java @@ -128,6 +128,7 @@ public class LoginService { vo.setBigBrotherEnabled(isEnabled(user.getBigBrother())); vo.setAiChatEnabled(isEnabled(user.getAiChat())); vo.setWebAiEnabled(isEnabled(user.getWebAi())); + vo.setAutoTkEnabled(isEnabled(user.getAutoTk())); } private boolean isEnabled(Byte value) { diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 6c37b89..02fa92b 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -102,6 +102,8 @@ sa-token: token-style: random-128 # 是否输出操作日志 is-log: true + #活跃时间自动续签token + active-timeout: 86400 md5: