系统配置合并

This commit is contained in:
hzj
2026-02-11 14:34:33 +08:00
parent 6c91774200
commit 6234ac8ce9
8 changed files with 138 additions and 25 deletions

View File

@@ -0,0 +1,37 @@
package com.njcn.user.pojo.param;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Range;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
/**
* Description:
* Date: 2024/7/11 18:04【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Data
@ApiModel
public class AuthClientParam {
@ApiModelProperty(name = "sessionTime",value = "*会话超时时间(分钟)")
@NotNull(message = "会话超时时间(分钟)不可为空")
@Range(min = 1,max = 1440000,message = "会话超时时间(分钟)超范围")
private Integer accessTokenValidity;
@ApiModelProperty(name = "sessionRefreshTime",value = "*会话刷新时间(分钟)")
@NotNull(message = "会话刷新时间(分钟)不可为空")
@Range(min = 1,max = 1440000,message = "会话刷新时间(分钟)超范围")
private Integer refreshTokenValidity;
}

View File

@@ -29,15 +29,15 @@ public class PassWordRuleParam {
@Range(min = 5,max = 60,message = "自动解锁(分钟)超范围")
private Integer releaseTime;
@ApiModelProperty(name = "sessionTime",value = "*会话超时时间(分钟)")
@NotNull(message = "会话超时时间(分钟)不可为空")
@Range(min = 1,max = 1440000,message = "会话超时时间(分钟)超范围")
private Integer sessionTime;
@ApiModelProperty(name = "sessionRefreshTime",value = "*会话刷新时间(分钟)")
@NotNull(message = "会话刷新时间(分钟)不可为空")
@Range(min = 1,max = 1440000,message = "会话刷新时间(分钟)超范围")
private Integer sessionRefreshTime;
// @ApiModelProperty(name = "sessionTime",value = "*会话超时时间(分钟)")
// @NotNull(message = "会话超时时间(分钟)不可为空")
// @Range(min = 1,max = 1440000,message = "会话超时时间(分钟)超范围")
// private Integer sessionTime;
//
// @ApiModelProperty(name = "sessionRefreshTime",value = "*会话刷新时间(分钟)")
// @NotNull(message = "会话刷新时间(分钟)不可为空")
// @Range(min = 1,max = 1440000,message = "会话刷新时间(分钟)超范围")
// private Integer sessionRefreshTime;
@ApiModelProperty(name = "passwordExpirationDays",value = "密码有效期")
@NotNull(message = "密码有效期不可为空")
@@ -57,13 +57,24 @@ public class PassWordRuleParam {
//@NotNull(message = "密码大小写混合校验不可为空")
private Integer mixedCaseCheckFlag;*/
@ApiModelProperty(name = "maxUseUser",value = "大于0" )
@ApiModelProperty(name = "maxUseUser",value = "最大并发用户" )
@NotNull(message = "最大并发用户不可为空")
@Range(min = 10,max = 99,message = "最大并发用户超范围")
private Integer maxUseUser;
@NotNull(message = "账号长时间未登录休眠期(天)")
@ApiModelProperty(name = "maxUseUser",value = "验证密码错误次数" )
@NotNull(message = "验证密码错误次数时间范围不可为空")
@Range(min = 10,max = 99,message = "最大并发用户超范围")
private Integer lockPwdCheck;
@NotNull(message = "账号长时间未登录休眠期(天)不可为空")
@Range(min = 1,max = 180,message = "账号长时间未登录休眠期(天)超范围")
private Integer sleepDay;
@NotNull(message = "用户注销时间(天)不可为空")
@Range(min = 1,max = 360,message = "用户注销(天)超范围")
private Integer logoutDay;
//类型0-临时用户 1-正常用户)
@NotNull(message = "用户类型不可为空")
private Integer type;
}

View File

@@ -9,6 +9,8 @@ import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.common.utils.LogUtil;
import com.njcn.user.enums.UserResponseEnum;
import com.njcn.user.pojo.param.AuthClientParam;
import com.njcn.user.pojo.param.PassWordRuleParam;
import com.njcn.user.pojo.po.AuthClient;
import com.njcn.user.service.IAuthClientService;
import io.swagger.annotations.Api;
@@ -17,11 +19,8 @@ import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RestController;
import com.njcn.web.controller.BaseController;
import java.util.Objects;
@@ -57,5 +56,15 @@ public class AuthClientController extends BaseController {
}
}
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@ApiOperation("客户端会话配置更新")
@RequestMapping(value = "/sessionConfigUpdate", method = RequestMethod.POST)
public HttpResult<Boolean> sessionConfigUpdate(@RequestBody @Validated AuthClientParam authClientParam) {
String methodDescribe = getMethodDescribe("sessionConfigUpdate");
Boolean flag = authClientService.sessionConfigUpdate(authClientParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe);
}
}

View File

@@ -19,6 +19,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* Description:
* Date: 2024/7/11 18:01【需求编号】
@@ -34,6 +36,8 @@ import org.springframework.web.bind.annotation.RestController;
@AllArgsConstructor
public class PassWordRuleController extends BaseController {
private final IPassWordRuleService passWordRuleService;
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@ApiOperation("密码规则修改")
@RequestMapping(value = "/ruleUpdate", method = RequestMethod.POST)
@@ -64,6 +68,16 @@ public class PassWordRuleController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, userStrategy, methodDescribe);
}
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@ApiOperation("获取用户策略列表")
@RequestMapping(value = "/getUserStrategyList", method = RequestMethod.POST)
public HttpResult<List<PassWordRuleParam>> getUserStrategyList() {
String methodDescribe = getMethodDescribe("getUserStrategyList");
List<PassWordRuleParam> userStrategys = passWordRuleService.getUserStrategyList();
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, userStrategys, methodDescribe);
}
@OperateInfo(info = LogEnum.SYSTEM_SERIOUS)
@ApiOperation("解锁超级管理员")

View File

@@ -1,6 +1,7 @@
package com.njcn.user.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.user.pojo.param.AuthClientParam;
import com.njcn.user.pojo.po.AuthClient;
/**
@@ -19,4 +20,6 @@ public interface IAuthClientService extends IService<AuthClient> {
* @return .
*/
AuthClient getAuthClientByName(String clientName);
Boolean sessionConfigUpdate(AuthClientParam authClientParam);
}

View File

@@ -3,6 +3,8 @@ package com.njcn.user.service;
import com.njcn.user.pojo.param.PassWordRuleParam;
import com.njcn.user.pojo.po.UserStrategy;
import java.util.List;
/**
* Description:
* Date: 2024/7/11 18:06【需求编号】
@@ -18,4 +20,6 @@ public interface IPassWordRuleService {
Boolean unlockRoot();
UserStrategy getUserStrategy();
List<PassWordRuleParam> getUserStrategyList();
}

View File

@@ -5,6 +5,7 @@ import com.njcn.common.pojo.response.HttpResult;
import com.njcn.system.api.AreaFeignClient;
import com.njcn.system.pojo.po.Area;
import com.njcn.user.mapper.AuthClientMapper;
import com.njcn.user.pojo.param.AuthClientParam;
import com.njcn.user.pojo.po.AuthClient;
import com.njcn.user.service.IAuthClientService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -31,4 +32,11 @@ public class AuthClientServiceImpl extends ServiceImpl<AuthClientMapper, AuthCli
.eq(AuthClient::getState,DataStateEnum.ENABLE.getCode())
.one();
}
@Override
public Boolean sessionConfigUpdate(AuthClientParam authClientParam) {
return lambdaUpdate().set(AuthClient::getRefreshTokenValidity,authClientParam.getRefreshTokenValidity())
.set(AuthClient::getAccessTokenValidity,authClientParam.getAccessTokenValidity())
.update();
}
}

View File

@@ -2,7 +2,6 @@ package com.njcn.user.service.impl;
import com.njcn.common.pojo.enums.common.DataStateEnum;
import com.njcn.user.pojo.param.PassWordRuleParam;
import com.njcn.user.pojo.po.AuthClient;
import com.njcn.user.pojo.po.User;
import com.njcn.user.pojo.po.UserStrategy;
import com.njcn.user.service.IAuthClientService;
@@ -13,6 +12,9 @@ import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.stream.Collectors;
/**
* Description:
* Date: 2024/7/11 18:06【需求编号】
@@ -33,19 +35,21 @@ public class PassWordRuleServiceImpl implements IPassWordRuleService {
@Transactional(rollbackFor = {Exception.class})
public Boolean ruleUpdate(PassWordRuleParam passWordRuleParam) {
iUserStrategyService.lambdaUpdate().eq(UserStrategy::getType,"1")
iUserStrategyService.lambdaUpdate().eq(UserStrategy::getType,passWordRuleParam.getType())
.eq(UserStrategy::getState, DataStateEnum.ENABLE.getCode())
.set(UserStrategy::getLimitPwdTimes,passWordRuleParam.getErrorsCount())
.set(UserStrategy::getLimitPwdDate,passWordRuleParam.getPasswordExpirationMonth())
.set(UserStrategy::getLockPwdTime,passWordRuleParam.getReleaseTime())
.set(UserStrategy::getMaxNum,passWordRuleParam.getMaxUseUser())
.set(UserStrategy::getSleep,passWordRuleParam.getSleepDay())
.set(UserStrategy::getLockPwdCheck,passWordRuleParam.getLockPwdCheck())
.set(UserStrategy::getLogout,passWordRuleParam.getLogoutDay())
.update();
iAuthClientService.lambdaUpdate()
.set(AuthClient::getRefreshTokenValidity,passWordRuleParam.getSessionRefreshTime())
.set(AuthClient::getAccessTokenValidity,passWordRuleParam.getSessionTime())
.update();
// iAuthClientService.lambdaUpdate()
// .set(AuthClient::getRefreshTokenValidity,passWordRuleParam.getSessionRefreshTime())
// .set(AuthClient::getAccessTokenValidity,passWordRuleParam.getSessionTime())
// .update();
return true;
}
@@ -59,10 +63,11 @@ public class PassWordRuleServiceImpl implements IPassWordRuleService {
passWordRuleParam.setPasswordExpirationMonth(userStrategy.getLimitPwdDate());
passWordRuleParam.setMaxUseUser(userStrategy.getMaxNum());
passWordRuleParam.setSleepDay(userStrategy.getSleep());
AuthClient authClient = iAuthClientService.lambdaQuery().last(" limit 1").one();
passWordRuleParam.setSessionTime(authClient.getAccessTokenValidity());
passWordRuleParam.setSessionRefreshTime(authClient.getRefreshTokenValidity());
passWordRuleParam.setLockPwdCheck(userStrategy.getLockPwdCheck());
passWordRuleParam.setLogoutDay(userStrategy.getLogout());
// AuthClient authClient = iAuthClientService.lambdaQuery().last(" limit 1").one();
// passWordRuleParam.setSessionTime(authClient.getAccessTokenValidity());
// passWordRuleParam.setSessionRefreshTime(authClient.getRefreshTokenValidity());
return passWordRuleParam;
}
@@ -79,4 +84,26 @@ public class PassWordRuleServiceImpl implements IPassWordRuleService {
.eq(UserStrategy::getState, DataStateEnum.ENABLE.getCode())
.one();
}
@Override
public List<PassWordRuleParam> getUserStrategyList() {
List<UserStrategy> list = iUserStrategyService.list();
List<PassWordRuleParam> collect = list.stream().map(temp -> {
PassWordRuleParam passWordRuleParam = new PassWordRuleParam();
passWordRuleParam.setErrorsCount(temp.getLimitPwdTimes());
passWordRuleParam.setReleaseTime(temp.getLockPwdTime());
passWordRuleParam.setPasswordExpirationMonth(temp.getLimitPwdDate());
passWordRuleParam.setMaxUseUser(temp.getMaxNum());
passWordRuleParam.setSleepDay(temp.getSleep());
passWordRuleParam.setLockPwdCheck(temp.getLockPwdCheck());
passWordRuleParam.setLogoutDay(temp.getLogout());
passWordRuleParam.setType(temp.getType());
// AuthClient authClient = iAuthClientService.lambdaQuery().last(" limit 1").one();
// passWordRuleParam.setSessionTime(authClient.getAccessTokenValidity());
// passWordRuleParam.setSessionRefreshTime(authClient.getRefreshTokenValidity());
return passWordRuleParam;
}).collect(Collectors.toList());
return collect;
}
}