From 1cedd2f24693a26e1be0f2b6e4110c7dcdfbb47e Mon Sep 17 00:00:00 2001 From: gaoqr <13665037151@163.com> Date: Tue, 23 Sep 2025 10:54:51 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81token=E3=80=81=E5=A5=97=E9=A4=90?= =?UTF-8?q?=E4=BA=A7=E5=93=81id=E9=A2=84=E8=AE=BE=EF=BC=9B2=E3=80=81?= =?UTF-8?q?=E7=99=BB=E5=BD=95/=E8=AF=B7=E6=B1=82=E9=83=A8=E9=97=A8?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E4=BF=AE=E5=A4=8D=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../oauth2/OAuth2AccessTokenDO.java | 6 ++++++ .../dal/dataobject/organ/TenantPackageDO.java | 5 +++++ .../dal/dataobject/user/AdminUserDO.java | 6 ++++++ .../framework/product/ProductProperties.java | 21 +++++++++++++++++++ .../service/auth/AdminAuthServiceImpl.java | 11 ++++++++-- .../system/service/dept/DeptService.java | 7 +++++++ .../system/service/dept/DeptServiceImpl.java | 18 ++++++++++++++++ .../oauth2/OAuth2TokenServiceImpl.java | 3 ++- 8 files changed, 74 insertions(+), 3 deletions(-) create mode 100644 cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/framework/product/ProductProperties.java diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/oauth2/OAuth2AccessTokenDO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/oauth2/OAuth2AccessTokenDO.java index ae9fad5dd..e610783b3 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/oauth2/OAuth2AccessTokenDO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/oauth2/OAuth2AccessTokenDO.java @@ -111,4 +111,10 @@ public class OAuth2AccessTokenDO extends BaseDO { */ @TableField(exist = false) private String grayDefaultVersion; + + /** + * 产品id + */ + @TableField(exist = false) + private Long productId; } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/organ/TenantPackageDO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/organ/TenantPackageDO.java index 8285a4d03..c61d7121c 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/organ/TenantPackageDO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/organ/TenantPackageDO.java @@ -51,4 +51,9 @@ public class TenantPackageDO extends BaseDO { @TableField(typeHandler = JsonLongSetTypeHandler.class) private Set menuIds; + /** + * 产品id + */ + @TableField(exist = false) + private Long productId; } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/user/AdminUserDO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/user/AdminUserDO.java index 8e8b88a85..cdaf8c993 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/user/AdminUserDO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/user/AdminUserDO.java @@ -130,4 +130,10 @@ public class AdminUserDO extends OrganBaseDO { */ @TableField(exist = false) private UserTypeEnum userType; + + /** + * 产品id + */ + @TableField(exist = false) + private Long productId; } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/framework/product/ProductProperties.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/framework/product/ProductProperties.java new file mode 100644 index 000000000..204598104 --- /dev/null +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/framework/product/ProductProperties.java @@ -0,0 +1,21 @@ +package com.cf.imes.module.system.framework.product; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +/** + * @author Gqr + * @since 2025/9/23 9:14 + */ +@Configuration +@ConfigurationProperties(prefix = "chenfeng.product-id") +@Data +public class ProductProperties { + + /** + * imes生产系统 + */ + private Long imesProduct; + +} diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/auth/AdminAuthServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/auth/AdminAuthServiceImpl.java index bf51cc6d6..15eba63cb 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/auth/AdminAuthServiceImpl.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/auth/AdminAuthServiceImpl.java @@ -1,6 +1,5 @@ package com.cf.imes.module.system.service.auth; -import cn.hutool.core.util.ObjectUtil; import com.anji.captcha.model.common.ResponseModel; import com.anji.captcha.model.vo.CaptchaVO; import com.anji.captcha.service.CaptchaService; @@ -34,6 +33,8 @@ import com.cf.imes.module.system.enums.logger.LoginLogTypeEnum; import com.cf.imes.module.system.enums.logger.LoginResultEnum; import com.cf.imes.module.system.enums.oauth2.OAuth2ClientConstants; import com.cf.imes.module.system.enums.sms.SmsSceneEnum; +import com.cf.imes.module.system.framework.product.ProductProperties; +import com.cf.imes.module.system.service.dept.DeptService; import com.cf.imes.module.system.service.logger.LoginLogService; import com.cf.imes.module.system.service.member.MemberService; import com.cf.imes.module.system.service.oauth2.OAuth2TokenService; @@ -103,6 +104,12 @@ public class AdminAuthServiceImpl implements AdminAuthService { @Autowired private SecurityFrameworkService securityFrameworkService; + @Resource + private DeptService deptService; + + @Resource + private ProductProperties productProperties; + /** * 验证码的开关,默认为 true */ @@ -132,7 +139,7 @@ public class AdminAuthServiceImpl implements AdminAuthService { organFrameworkService.validOrgan(organId); // 校验部门有效性 OrganContextHolder.setOrganId(organId); - organFrameworkService.validDept(user.getDeptId()); + deptService.validUserLoginDept(user.getDeptId()); // 校验密码 if (!userService.isPasswordMatch(password, user.getPassword())) { createLoginLog(user.getId(), username, null, organId, logTypeEnum, LoginResultEnum.BAD_CREDENTIALS); diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/dept/DeptService.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/dept/DeptService.java index b3cb132dd..4211bdf70 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/dept/DeptService.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/dept/DeptService.java @@ -84,6 +84,13 @@ public interface DeptService { */ void validDept(Long deptId); + /** + * 用户登陆时部门校验 + * + * @param deptId + */ + void validUserLoginDept(Long deptId); + /** * 移除没有归属(上级)的部门 * diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/dept/DeptServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/dept/DeptServiceImpl.java index 0c8d3eb8a..6157f2724 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/dept/DeptServiceImpl.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/dept/DeptServiceImpl.java @@ -275,6 +275,24 @@ public class DeptServiceImpl implements DeptService { validParentDept(deptDO); } + /** + * 用户登陆时部门校验,部门不存在时也可以进行登录 + * + * @param deptId + */ + @Override + public void validUserLoginDept(Long deptId) { + DeptDO deptDO = deptMapper.selectById(deptId); + if (deptDO == null) { + return; + } + if (!CommonStatusEnum.ENABLE.getStatus().equals(deptDO.getStatus())) { + throw ServiceExceptionUtil.exception(ErrorCodeConstants.DEPT_NOT_ALLOWED_LOGIN, deptDO.getName()); + } + // 递归校验上级部门 + validParentDept(deptDO); + } + /** * 递归校验上级部门 diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/oauth2/OAuth2TokenServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/oauth2/OAuth2TokenServiceImpl.java index e04b5f74d..a3a814142 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/oauth2/OAuth2TokenServiceImpl.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/oauth2/OAuth2TokenServiceImpl.java @@ -224,7 +224,8 @@ public class OAuth2TokenServiceImpl implements OAuth2TokenService { .setNickname(user.getNickname()) .setDeptId(user.getDeptId()) .setGrayVersion(user.getGrayVersion()) - .setGrayDefaultVersion(user.getGrayDefaultVersion()); + .setGrayDefaultVersion(user.getGrayDefaultVersion()) + .setProductId(user.getProductId()); if (organId != null) { OrganContextHolder.setOrganId(organId); }