fix:2.5.0

1.针对命名空间的唯一标识添加校验逻辑
2.新增命名空间时,检查是否存在唯一标识
This commit is contained in:
byteblogs168 2023-12-01 22:52:11 +08:00
parent 51b82286ea
commit 2b35161dbc
2 changed files with 15 additions and 3 deletions

View File

@ -12,9 +12,7 @@ import com.aizuda.easy.retry.server.web.model.response.NamespaceResponseVO;
import com.aizuda.easy.retry.server.web.service.NamespaceService; import com.aizuda.easy.retry.server.web.service.NamespaceService;
import com.aizuda.easy.retry.server.web.service.convert.NamespaceResponseVOConverter; import com.aizuda.easy.retry.server.web.service.convert.NamespaceResponseVOConverter;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.NamespaceMapper; import com.aizuda.easy.retry.template.datasource.persistence.mapper.NamespaceMapper;
import com.aizuda.easy.retry.template.datasource.persistence.po.JobTaskBatch;
import com.aizuda.easy.retry.template.datasource.persistence.po.Namespace; import com.aizuda.easy.retry.template.datasource.persistence.po.Namespace;
import com.aizuda.easy.retry.template.datasource.persistence.po.SystemUser;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -35,6 +33,13 @@ public class NamespaceServiceImpl implements NamespaceService {
@Override @Override
public Boolean saveNamespace(final NamespaceRequestVO namespaceRequestVO) { public Boolean saveNamespace(final NamespaceRequestVO namespaceRequestVO) {
if (StrUtil.isNotBlank(namespaceRequestVO.getUniqueId())) {
Assert.isTrue(namespaceMapper.selectCount(new LambdaQueryWrapper<Namespace>()
.eq(Namespace::getUniqueId, namespaceRequestVO.getUniqueId())) == 0,
() -> new EasyRetryServerException("空间唯一标记已经存在 {}", namespaceRequestVO.getUniqueId()));
}
Namespace namespace = new Namespace(); Namespace namespace = new Namespace();
namespace.setName(namespaceRequestVO.getName()); namespace.setName(namespaceRequestVO.getName());
if (StrUtil.isBlank(namespaceRequestVO.getUniqueId())) { if (StrUtil.isBlank(namespaceRequestVO.getUniqueId())) {

View File

@ -13,7 +13,7 @@
:disabled="isEdit" :disabled="isEdit"
v-decorator="[ v-decorator="[
'uniqueId', 'uniqueId',
{rules: [{ required: false, message: '请输入空间名称', whitespace: true}]} {rules: [{ required: false, message: '请输入空间名称', whitespace: true},{required: true, max: 64, message: '最多支持64个字符'}, {validator: validate, trigger: ['change', 'blur']}]}
]" /> ]" />
</a-form-item> </a-form-item>
<a-form-item <a-form-item
@ -60,6 +60,13 @@ export default {
this.visible = true this.visible = true
this.form.resetFields() this.form.resetFields()
}, },
validate (rule, value, callback) {
const regex = /^[A-Za-z0-9_]+$/
if (!regex.test(value)) {
callback(new Error('仅支持数字字母下划线'))
}
callback()
},
handleOk (e) { handleOk (e) {
e.preventDefault() e.preventDefault()
this.form.validateFields((err, values) => { this.form.validateFields((err, values) => {