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); }