mirror of
https://github.com/continew-org/continew-admin.git
synced 2025-09-14 03:01:36 +08:00
fix: 参数配置支持设值为空
This commit is contained in:
@@ -57,6 +57,5 @@ public class OptionReq extends BaseReq {
|
|||||||
* 值
|
* 值
|
||||||
*/
|
*/
|
||||||
@Schema(description = "值", example = "ContiNew Admin")
|
@Schema(description = "值", example = "ContiNew Admin")
|
||||||
@NotBlank(message = "值不能为空")
|
|
||||||
private String value;
|
private String value;
|
||||||
}
|
}
|
@@ -73,11 +73,23 @@ public class OptionServiceImpl implements OptionService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void update(List<OptionReq> options) {
|
public void update(List<OptionReq> options) {
|
||||||
|
// 非空校验
|
||||||
|
List<Long> idList = options.stream().map(OptionReq::getId).toList();
|
||||||
|
List<OptionDO> optionList = baseMapper.selectBatchIds(idList);
|
||||||
|
Map<String, OptionDO> optionMap = optionList.stream()
|
||||||
|
.collect(Collectors.toMap(OptionDO::getCode, Function.identity(), (existing, replacement) -> existing));
|
||||||
|
for (OptionReq req : options) {
|
||||||
|
OptionDO option = optionMap.get(req.getCode());
|
||||||
|
ValidationUtils.throwIfNull(option, "参数 [{}] 不存在", req.getCode());
|
||||||
|
if (StrUtil.isNotBlank(option.getDefaultValue())) {
|
||||||
|
ValidationUtils.throwIfBlank(req.getValue(), "参数 [{}] 的值不能为空", option.getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 校验密码策略参数取值范围
|
||||||
Map<String, String> passwordPolicyOptionMap = options.stream()
|
Map<String, String> passwordPolicyOptionMap = options.stream()
|
||||||
.filter(option -> StrUtil.startWith(option
|
.filter(option -> StrUtil.startWith(option
|
||||||
.getCode(), PasswordPolicyEnum.CATEGORY + StringConstants.UNDERLINE))
|
.getCode(), PasswordPolicyEnum.CATEGORY + StringConstants.UNDERLINE))
|
||||||
.collect(Collectors.toMap(OptionReq::getCode, OptionReq::getValue, (oldVal, newVal) -> oldVal));
|
.collect(Collectors.toMap(OptionReq::getCode, OptionReq::getValue, (oldVal, newVal) -> oldVal));
|
||||||
// 校验密码策略参数取值范围
|
|
||||||
for (Map.Entry<String, String> passwordPolicyOptionEntry : passwordPolicyOptionMap.entrySet()) {
|
for (Map.Entry<String, String> passwordPolicyOptionEntry : passwordPolicyOptionMap.entrySet()) {
|
||||||
String code = passwordPolicyOptionEntry.getKey();
|
String code = passwordPolicyOptionEntry.getKey();
|
||||||
String value = passwordPolicyOptionEntry.getValue();
|
String value = passwordPolicyOptionEntry.getValue();
|
||||||
@@ -95,13 +107,13 @@ public class OptionServiceImpl implements OptionService {
|
|||||||
String category = req.getCategory();
|
String category = req.getCategory();
|
||||||
List<String> codeList = req.getCode();
|
List<String> codeList = req.getCode();
|
||||||
ValidationUtils.throwIf(StrUtil.isBlank(category) && CollUtil.isEmpty(codeList), "键列表不能为空");
|
ValidationUtils.throwIf(StrUtil.isBlank(category) && CollUtil.isEmpty(codeList), "键列表不能为空");
|
||||||
LambdaUpdateChainWrapper<OptionDO> chainWrapper = baseMapper.lambdaUpdate().set(OptionDO::getValue, null);
|
LambdaUpdateChainWrapper<OptionDO> updateWrapper = baseMapper.lambdaUpdate().set(OptionDO::getValue, null);
|
||||||
if (StrUtil.isNotBlank(category)) {
|
if (StrUtil.isNotBlank(category)) {
|
||||||
chainWrapper.eq(OptionDO::getCategory, category);
|
updateWrapper.eq(OptionDO::getCategory, category);
|
||||||
} else {
|
} else {
|
||||||
chainWrapper.in(OptionDO::getCode, req.getCode());
|
updateWrapper.in(OptionDO::getCode, req.getCode());
|
||||||
}
|
}
|
||||||
chainWrapper.update();
|
updateWrapper.update();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -199,3 +199,6 @@ INSERT INTO `sys_menu`
|
|||||||
(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`)
|
(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`)
|
||||||
VALUES
|
VALUES
|
||||||
(1017, '导入', 1010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:user:import', 7, 1, 1, NOW(), NULL, NULL);
|
(1017, '导入', 1010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:user:import', 7, 1, 1, NOW(), NULL, NULL);
|
||||||
|
|
||||||
|
-- changeset Charles7c:3.4-1
|
||||||
|
UPDATE `sys_option` SET `default_value` = NULL WHERE `code` = 'SITE_BEIAN';
|
Reference in New Issue
Block a user