feat: 2.5.0
1. namespace新增用户页面开发
This commit is contained in:
parent
07efc4a2a8
commit
0170b22f98
@ -7,7 +7,14 @@
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
🔥🔥🔥 致力提高分布式业务系统一致性的分布式重试平台
|
🔥🔥🔥 灵活,可靠和快速的分布式任务重试和分布式任务调度平台<br> <br/>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
|
||||||
|
> ✅️ 可重放,可管控、为提高分布式业务系统一致性的分布式任务重试平台 <br/>
|
||||||
|
> ✅️ 支持秒级、可中断、可编排的高性能分布式任务调度平台
|
||||||
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
# 🌸 简介
|
# 🌸 简介
|
||||||
|
@ -7,26 +7,27 @@ USE
|
|||||||
|
|
||||||
CREATE TABLE `namespace`
|
CREATE TABLE `namespace`
|
||||||
(
|
(
|
||||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
`name` varchar(64) NOT NULL COMMENT '名称',
|
`name` varchar(64) NOT NULL COMMENT '名称',
|
||||||
`unique_id` varchar(64) NOT NULL COMMENT '唯一id',
|
`unique_id` varchar(64) NOT NULL COMMENT '唯一id',
|
||||||
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
`description` varchar(256) NOT NULL DEFAULT '' COMMENT '描述',
|
||||||
`update_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
`deleted` tinyint(4) NOT NULL DEFAULT '0' COMMENT '逻辑删除 1、删除',
|
`update_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||||
|
`deleted` tinyint(4) NOT NULL DEFAULT '0' COMMENT '逻辑删除 1、删除',
|
||||||
PRIMARY KEY (`id`),
|
PRIMARY KEY (`id`),
|
||||||
KEY `idx_name` (`name`),
|
KEY `idx_name` (`name`),
|
||||||
UNIQUE KEY `uk_unique_id` (`unique_id`)
|
UNIQUE KEY `uk_unique_id` (`unique_id`)
|
||||||
) ENGINE = InnoDB
|
) ENGINE = InnoDB
|
||||||
DEFAULT CHARSET = utf8mb4 COMMENT ='命名空间';
|
DEFAULT CHARSET = utf8mb4 COMMENT ='命名空间';
|
||||||
|
|
||||||
INSERT INTO `namespace` (`id`, `name`, `unique_id`, `create_dt`, `update_dt`, `deleted`)
|
INSERT INTO `namespace` (`id`, `name`, `unique_id`, `create_dt`, `update_dt`, `deleted`)
|
||||||
VALUES (1, 'default', '764d604ec6fc45f68cd92514c40e9e1a', now(), now(), 0);
|
VALUES (1, 'Default', '764d604ec6fc45f68cd92514c40e9e1a', now(), now(), 0);
|
||||||
|
|
||||||
|
|
||||||
CREATE TABLE `group_config`
|
CREATE TABLE `group_config`
|
||||||
(
|
(
|
||||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
`namespace_id` bigint(20) unsigned NOT NULL DEFAULT 1 COMMENT '命名空间id',
|
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
|
||||||
`group_name` varchar(64) NOT NULL DEFAULT '' COMMENT '组名称',
|
`group_name` varchar(64) NOT NULL DEFAULT '' COMMENT '组名称',
|
||||||
`description` varchar(256) NOT NULL DEFAULT '' COMMENT '组描述',
|
`description` varchar(256) NOT NULL DEFAULT '' COMMENT '组描述',
|
||||||
`group_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '组状态 0、未启用 1、启用',
|
`group_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '组状态 0、未启用 1、启用',
|
||||||
@ -46,8 +47,8 @@ CREATE TABLE `group_config`
|
|||||||
|
|
||||||
CREATE TABLE `notify_config`
|
CREATE TABLE `notify_config`
|
||||||
(
|
(
|
||||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
`namespace_id` bigint(20) unsigned NOT NULL DEFAULT 1 COMMENT '命名空间id',
|
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
|
||||||
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
||||||
`scene_name` varchar(64) NOT NULL COMMENT '场景名称',
|
`scene_name` varchar(64) NOT NULL COMMENT '场景名称',
|
||||||
`notify_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '通知状态 0、未启用 1、启用',
|
`notify_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '通知状态 0、未启用 1、启用',
|
||||||
@ -70,7 +71,7 @@ CREATE TABLE `notify_config`
|
|||||||
CREATE TABLE `retry_dead_letter_0`
|
CREATE TABLE `retry_dead_letter_0`
|
||||||
(
|
(
|
||||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
`namespace_id` bigint(20) unsigned NOT NULL DEFAULT 1 COMMENT '命名空间id',
|
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
|
||||||
`unique_id` varchar(64) NOT NULL COMMENT '同组下id唯一',
|
`unique_id` varchar(64) NOT NULL COMMENT '同组下id唯一',
|
||||||
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
||||||
`scene_name` varchar(64) NOT NULL COMMENT '场景名称',
|
`scene_name` varchar(64) NOT NULL COMMENT '场景名称',
|
||||||
@ -95,7 +96,7 @@ CREATE TABLE `retry_dead_letter_0`
|
|||||||
CREATE TABLE `retry_task_0`
|
CREATE TABLE `retry_task_0`
|
||||||
(
|
(
|
||||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
`namespace_id` bigint(20) unsigned NOT NULL DEFAULT 1 COMMENT '命名空间id',
|
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
|
||||||
`unique_id` varchar(64) NOT NULL COMMENT '同组下id唯一',
|
`unique_id` varchar(64) NOT NULL COMMENT '同组下id唯一',
|
||||||
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
||||||
`scene_name` varchar(64) NOT NULL COMMENT '场景名称',
|
`scene_name` varchar(64) NOT NULL COMMENT '场景名称',
|
||||||
@ -125,7 +126,7 @@ CREATE TABLE `retry_task_0`
|
|||||||
CREATE TABLE `retry_task_log`
|
CREATE TABLE `retry_task_log`
|
||||||
(
|
(
|
||||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
`namespace_id` bigint(20) unsigned NOT NULL DEFAULT 1 COMMENT '命名空间id',
|
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
|
||||||
`unique_id` varchar(64) NOT NULL COMMENT '同组下id唯一',
|
`unique_id` varchar(64) NOT NULL COMMENT '同组下id唯一',
|
||||||
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
||||||
`scene_name` varchar(64) NOT NULL COMMENT '场景名称',
|
`scene_name` varchar(64) NOT NULL COMMENT '场景名称',
|
||||||
@ -168,7 +169,7 @@ CREATE TABLE `retry_task_log_message`
|
|||||||
CREATE TABLE `scene_config`
|
CREATE TABLE `scene_config`
|
||||||
(
|
(
|
||||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
`namespace_id` bigint(20) unsigned NOT NULL DEFAULT 1 COMMENT '命名空间id',
|
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
|
||||||
`scene_name` varchar(64) NOT NULL COMMENT '场景名称',
|
`scene_name` varchar(64) NOT NULL COMMENT '场景名称',
|
||||||
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
||||||
`scene_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '组状态 0、未启用 1、启用',
|
`scene_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '组状态 0、未启用 1、启用',
|
||||||
@ -246,7 +247,7 @@ CREATE TABLE `system_user_permission`
|
|||||||
(
|
(
|
||||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
||||||
`namespace_id` bigint(20) unsigned NOT NULL DEFAULT 1 COMMENT '命名空间id',
|
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
|
||||||
`system_user_id` bigint(20) NOT NULL COMMENT '系统用户id',
|
`system_user_id` bigint(20) NOT NULL COMMENT '系统用户id',
|
||||||
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
`update_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
`update_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||||
@ -271,7 +272,7 @@ CREATE TABLE `sequence_alloc`
|
|||||||
CREATE TABLE `job`
|
CREATE TABLE `job`
|
||||||
(
|
(
|
||||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
`namespace_id` bigint(20) unsigned NOT NULL DEFAULT 1 COMMENT '命名空间id',
|
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
|
||||||
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
||||||
`job_name` varchar(64) NOT NULL COMMENT '名称',
|
`job_name` varchar(64) NOT NULL COMMENT '名称',
|
||||||
`args_str` text DEFAULT NULL COMMENT '执行方法参数',
|
`args_str` text DEFAULT NULL COMMENT '执行方法参数',
|
||||||
@ -307,7 +308,7 @@ CREATE TABLE `job`
|
|||||||
CREATE TABLE `job_log_message`
|
CREATE TABLE `job_log_message`
|
||||||
(
|
(
|
||||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
`namespace_id` bigint(20) unsigned NOT NULL DEFAULT 1 COMMENT '命名空间id',
|
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
|
||||||
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
||||||
`job_id` bigint(20) NOT NULL COMMENT '任务信息id',
|
`job_id` bigint(20) NOT NULL COMMENT '任务信息id',
|
||||||
`task_batch_id` bigint(20) NOT NULL COMMENT '任务批次id',
|
`task_batch_id` bigint(20) NOT NULL COMMENT '任务批次id',
|
||||||
@ -350,7 +351,7 @@ CREATE TABLE `job_task`
|
|||||||
CREATE TABLE `job_task_batch`
|
CREATE TABLE `job_task_batch`
|
||||||
(
|
(
|
||||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
`namespace_id` bigint(20) unsigned NOT NULL DEFAULT 1 COMMENT '命名空间id',
|
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
|
||||||
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
||||||
`job_id` bigint(20) NOT NULL COMMENT '任务id',
|
`job_id` bigint(20) NOT NULL COMMENT '任务id',
|
||||||
`task_batch_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '任务批次状态 0、失败 1、成功',
|
`task_batch_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '任务批次状态 0、失败 1、成功',
|
||||||
|
@ -14,7 +14,7 @@ public class GroupConfig implements Serializable {
|
|||||||
@TableId(value = "id", type = IdType.AUTO)
|
@TableId(value = "id", type = IdType.AUTO)
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
private Long namespaceId;
|
private String namespaceId;
|
||||||
|
|
||||||
|
|
||||||
private String groupName;
|
private String groupName;
|
||||||
|
@ -25,6 +25,8 @@ public class SystemUserPermission implements Serializable {
|
|||||||
|
|
||||||
private String groupName;
|
private String groupName;
|
||||||
|
|
||||||
|
private String namespaceId;
|
||||||
|
|
||||||
private Long systemUserId;
|
private Long systemUserId;
|
||||||
|
|
||||||
private LocalDateTime createDt;
|
private LocalDateTime createDt;
|
||||||
|
@ -68,9 +68,9 @@ public class GroupConfigController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@LoginRequired
|
@LoginRequired
|
||||||
@GetMapping("/all/group-name/list")
|
@PostMapping("/all/group-name/list")
|
||||||
public List<String> getAllGroupNameList(@RequestParam("namespaceId") Long namespaceId) {
|
public List<GroupConfigResponseVO> getAllGroupNameList(@RequestBody List<String> namespaceIds) {
|
||||||
return groupConfigService.getAllGroupNameList(namespaceId);
|
return groupConfigService.getAllGroupNameList(namespaceIds);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Deprecated
|
@Deprecated
|
||||||
|
@ -45,8 +45,8 @@ public class NamespaceController {
|
|||||||
return namespaceService.deleteNamespace(id);
|
return namespaceService.deleteNamespace(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
// @PutMapping
|
@GetMapping("/all")
|
||||||
public List<NamespaceResponseVO> getNamespaceByUserId(@LoginUser SystemUser systemUser) {
|
public List<NamespaceResponseVO> getAllNamespace() {
|
||||||
return namespaceService.getNamespaceByUserId(systemUser);
|
return namespaceService.getAllNamespace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -14,6 +14,11 @@ public class NamespaceRequestVO {
|
|||||||
|
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 命名空间唯一标识
|
||||||
|
*/
|
||||||
|
String uniqueId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 名称
|
* 名称
|
||||||
*/
|
*/
|
||||||
|
@ -29,5 +29,5 @@ public class SystemUserRequestVO {
|
|||||||
@NotNull(groups = {PutMapping.class, PostMapping.class})
|
@NotNull(groups = {PutMapping.class, PostMapping.class})
|
||||||
private Integer role;
|
private Integer role;
|
||||||
|
|
||||||
private List<String> groupNameList;
|
private List<UserPermissionRequestVO> permissions;
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,15 @@
|
|||||||
|
package com.aizuda.easy.retry.server.web.model.request;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author: xiaowoniu
|
||||||
|
* @date : 2023-11-22 09:15
|
||||||
|
* @since : 2.5.0
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class UserPermissionRequestVO {
|
||||||
|
|
||||||
|
private String groupName;
|
||||||
|
private String namespaceId;
|
||||||
|
}
|
@ -19,8 +19,11 @@ public class SystemUserResponseVO {
|
|||||||
|
|
||||||
private Integer role;
|
private Integer role;
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
private List<String> groupNameList;
|
private List<String> groupNameList;
|
||||||
|
|
||||||
|
private List<NamespaceResponseVO> namespaceIdList;
|
||||||
|
|
||||||
private String token;
|
private String token;
|
||||||
|
|
||||||
private LocalDateTime createDt;
|
private LocalDateTime createDt;
|
||||||
|
@ -23,5 +23,5 @@ public interface GroupConfigService {
|
|||||||
|
|
||||||
GroupConfigResponseVO getGroupConfigByGroupName(String groupName);
|
GroupConfigResponseVO getGroupConfigByGroupName(String groupName);
|
||||||
|
|
||||||
List<String> getAllGroupNameList(final Long namespaceId);
|
List<GroupConfigResponseVO> getAllGroupNameList(final List<String> namespaceId);
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,8 @@ public interface NamespaceService {
|
|||||||
|
|
||||||
PageResult<List<NamespaceResponseVO>> getNamespacePage(NamespaceQueryVO queryVO);
|
PageResult<List<NamespaceResponseVO>> getNamespacePage(NamespaceQueryVO queryVO);
|
||||||
|
|
||||||
List<NamespaceResponseVO> getNamespaceByUserId(SystemUser systemUser);
|
|
||||||
|
|
||||||
Boolean deleteNamespace(Long id);
|
Boolean deleteNamespace(Long id);
|
||||||
|
|
||||||
|
List<NamespaceResponseVO> getAllNamespace();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -236,14 +236,14 @@ public class GroupConfigServiceImpl implements GroupConfigService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<String> getAllGroupNameList(final Long namespaceId) {
|
public List<GroupConfigResponseVO> getAllGroupNameList(final List<String> namespaceId) {
|
||||||
ConfigAccess<GroupConfig> groupConfigAccess = accessTemplate.getGroupConfigAccess();
|
ConfigAccess<GroupConfig> groupConfigAccess = accessTemplate.getGroupConfigAccess();
|
||||||
|
|
||||||
return groupConfigAccess.list(new LambdaQueryWrapper<GroupConfig>()
|
List<GroupConfig> groupConfigs = groupConfigAccess.list(new LambdaQueryWrapper<GroupConfig>()
|
||||||
.eq(GroupConfig::getNamespaceId, namespaceId)
|
.in(GroupConfig::getNamespaceId, namespaceId)
|
||||||
.select(GroupConfig::getGroupName)).stream()
|
.select(GroupConfig::getGroupName, GroupConfig::getNamespaceId)).stream()
|
||||||
.map(GroupConfig::getGroupName)
|
.collect(Collectors.toList());
|
||||||
.collect(Collectors.toList());
|
return GroupConfigResponseVOConverter.INSTANCE.toGroupConfigResponseVO(groupConfigs);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -37,7 +37,9 @@ public class NamespaceServiceImpl implements NamespaceService {
|
|||||||
public Boolean saveNamespace(final NamespaceRequestVO namespaceRequestVO) {
|
public Boolean saveNamespace(final NamespaceRequestVO namespaceRequestVO) {
|
||||||
Namespace namespace = new Namespace();
|
Namespace namespace = new Namespace();
|
||||||
namespace.setName(namespaceRequestVO.getName());
|
namespace.setName(namespaceRequestVO.getName());
|
||||||
namespace.setUniqueId(IdUtil.simpleUUID());
|
if (StrUtil.isBlank(namespaceRequestVO.getUniqueId())) {
|
||||||
|
namespace.setUniqueId(IdUtil.simpleUUID());
|
||||||
|
}
|
||||||
return 1 == namespaceMapper.insert(namespace);
|
return 1 == namespaceMapper.insert(namespace);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -59,22 +61,27 @@ public class NamespaceServiceImpl implements NamespaceService {
|
|||||||
|
|
||||||
LambdaQueryWrapper<Namespace> queryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<Namespace> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
if (StrUtil.isNotBlank(queryVO.getName())) {
|
if (StrUtil.isNotBlank(queryVO.getName())) {
|
||||||
queryWrapper.like(Namespace::getName,queryVO.getName() + "%");
|
queryWrapper.like(Namespace::getName, queryVO.getName() + "%");
|
||||||
}
|
}
|
||||||
|
|
||||||
queryWrapper.eq(Namespace::getDeleted, StatusEnum.NO);
|
queryWrapper.eq(Namespace::getDeleted, StatusEnum.NO);
|
||||||
queryWrapper.orderByDesc(Namespace::getId);
|
queryWrapper.orderByDesc(Namespace::getId);
|
||||||
PageDTO<Namespace> selectPage = namespaceMapper.selectPage(pageDTO, queryWrapper);
|
PageDTO<Namespace> selectPage = namespaceMapper.selectPage(pageDTO, queryWrapper);
|
||||||
return new PageResult<>(pageDTO, NamespaceResponseVOConverter.INSTANCE.toNamespaceResponseVOs(selectPage.getRecords()));
|
return new PageResult<>(pageDTO,
|
||||||
}
|
NamespaceResponseVOConverter.INSTANCE.toNamespaceResponseVOs(selectPage.getRecords()));
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<NamespaceResponseVO> getNamespaceByUserId(final SystemUser systemUser) {
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Boolean deleteNamespace(Long id) {
|
public Boolean deleteNamespace(Long id) {
|
||||||
return 1 == namespaceMapper.deleteById(id);
|
return 1 == namespaceMapper.deleteById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<NamespaceResponseVO> getAllNamespace() {
|
||||||
|
List<Namespace> namespaces = namespaceMapper.selectList(
|
||||||
|
new LambdaQueryWrapper<Namespace>()
|
||||||
|
.select(Namespace::getName, Namespace::getUniqueId)
|
||||||
|
);
|
||||||
|
return NamespaceResponseVOConverter.INSTANCE.toNamespaceResponseVOs(namespaces);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,8 +5,12 @@ import cn.hutool.core.util.StrUtil;
|
|||||||
import cn.hutool.crypto.SecureUtil;
|
import cn.hutool.crypto.SecureUtil;
|
||||||
import com.aizuda.easy.retry.server.common.config.SystemProperties;
|
import com.aizuda.easy.retry.server.common.config.SystemProperties;
|
||||||
import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException;
|
import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException;
|
||||||
|
import com.aizuda.easy.retry.server.web.model.request.UserPermissionRequestVO;
|
||||||
|
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.SystemUserMapper;
|
import com.aizuda.easy.retry.template.datasource.persistence.mapper.SystemUserMapper;
|
||||||
import com.aizuda.easy.retry.template.datasource.persistence.mapper.SystemUserPermissionMapper;
|
import com.aizuda.easy.retry.template.datasource.persistence.mapper.SystemUserPermissionMapper;
|
||||||
|
import com.aizuda.easy.retry.template.datasource.persistence.po.Namespace;
|
||||||
import com.aizuda.easy.retry.template.datasource.persistence.po.SystemUser;
|
import com.aizuda.easy.retry.template.datasource.persistence.po.SystemUser;
|
||||||
import com.aizuda.easy.retry.template.datasource.persistence.po.SystemUserPermission;
|
import com.aizuda.easy.retry.template.datasource.persistence.po.SystemUserPermission;
|
||||||
import com.aizuda.easy.retry.server.web.service.SystemUserService;
|
import com.aizuda.easy.retry.server.web.service.SystemUserService;
|
||||||
@ -49,12 +53,15 @@ public class SystemUserServiceImpl implements SystemUserService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private SystemUserPermissionMapper systemUserPermissionMapper;
|
private SystemUserPermissionMapper systemUserPermissionMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
|
private NamespaceMapper namespaceMapper;
|
||||||
|
@Autowired
|
||||||
private SystemProperties systemProperties;
|
private SystemProperties systemProperties;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SystemUserResponseVO login(SystemUserRequestVO requestVO) {
|
public SystemUserResponseVO login(SystemUserRequestVO requestVO) {
|
||||||
|
|
||||||
SystemUser systemUser = systemUserMapper.selectOne(new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getUsername, requestVO.getUsername()));
|
SystemUser systemUser = systemUserMapper.selectOne(
|
||||||
|
new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getUsername, requestVO.getUsername()));
|
||||||
if (Objects.isNull(systemUser)) {
|
if (Objects.isNull(systemUser)) {
|
||||||
throw new EasyRetryServerException("用户名或密码错误");
|
throw new EasyRetryServerException("用户名或密码错误");
|
||||||
}
|
}
|
||||||
@ -69,32 +76,36 @@ public class SystemUserServiceImpl implements SystemUserService {
|
|||||||
systemUserResponseVO.setToken(token);
|
systemUserResponseVO.setToken(token);
|
||||||
systemUserResponseVO.setMode(systemProperties.getMode().name());
|
systemUserResponseVO.setMode(systemProperties.getMode().name());
|
||||||
|
|
||||||
if (RoleEnum.ADMIN.getRoleId().equals(systemUser.getRole())) {
|
getPermission(systemUser, systemUserResponseVO);
|
||||||
return systemUserResponseVO;
|
|
||||||
}
|
|
||||||
|
|
||||||
List<SystemUserPermission> systemUserPermissions = systemUserPermissionMapper.selectList(new LambdaQueryWrapper<SystemUserPermission>()
|
|
||||||
.eq(SystemUserPermission::getSystemUserId, systemUser.getId()));
|
|
||||||
systemUserResponseVO.setGroupNameList(systemUserPermissions.stream()
|
|
||||||
.map(SystemUserPermission::getGroupName).collect(Collectors.toList()));
|
|
||||||
|
|
||||||
return systemUserResponseVO;
|
return systemUserResponseVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void getPermission(final SystemUser systemUser, final SystemUserResponseVO systemUserResponseVO) {
|
||||||
|
|
||||||
|
LambdaQueryWrapper<Namespace> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper.select(Namespace::getId, Namespace::getUniqueId, Namespace::getName);
|
||||||
|
if (RoleEnum.USER.getRoleId().equals(systemUser.getRole())) {
|
||||||
|
List<SystemUserPermission> systemUserPermissions = systemUserPermissionMapper.selectList(
|
||||||
|
new LambdaQueryWrapper<SystemUserPermission>()
|
||||||
|
.select(SystemUserPermission::getNamespaceId)
|
||||||
|
.eq(SystemUserPermission::getSystemUserId, systemUser.getId())
|
||||||
|
.groupBy(SystemUserPermission::getNamespaceId));
|
||||||
|
queryWrapper.in(Namespace::getId, systemUserPermissions.stream()
|
||||||
|
.map(SystemUserPermission::getNamespaceId).collect(Collectors.toList()));
|
||||||
|
}
|
||||||
|
|
||||||
|
List<Namespace> namespaces = namespaceMapper.selectList(queryWrapper);
|
||||||
|
systemUserResponseVO.setNamespaceIdList(
|
||||||
|
NamespaceResponseVOConverter.INSTANCE.toNamespaceResponseVOs(namespaces));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SystemUserResponseVO getUserInfo(SystemUser systemUser) {
|
public SystemUserResponseVO getUserInfo(SystemUser systemUser) {
|
||||||
SystemUserResponseVO systemUserResponseVO = SystemUserResponseVOConverter.INSTANCE.convert(systemUser);
|
SystemUserResponseVO systemUserResponseVO = SystemUserResponseVOConverter.INSTANCE.convert(systemUser);
|
||||||
systemUserResponseVO.setMode(systemProperties.getMode().name());
|
systemUserResponseVO.setMode(systemProperties.getMode().name());
|
||||||
|
|
||||||
if (RoleEnum.ADMIN.getRoleId().equals(systemUser.getRole())) {
|
getPermission(systemUser, systemUserResponseVO);
|
||||||
return systemUserResponseVO;
|
|
||||||
}
|
|
||||||
|
|
||||||
List<SystemUserPermission> systemUserPermissions = systemUserPermissionMapper.selectList(new LambdaQueryWrapper<SystemUserPermission>()
|
|
||||||
.eq(SystemUserPermission::getSystemUserId, systemUser.getId()));
|
|
||||||
systemUserResponseVO.setGroupNameList(systemUserPermissions.stream()
|
|
||||||
.map(SystemUserPermission::getGroupName).collect(Collectors.toList()));
|
|
||||||
|
|
||||||
|
|
||||||
return systemUserResponseVO;
|
return systemUserResponseVO;
|
||||||
}
|
}
|
||||||
@ -102,7 +113,8 @@ public class SystemUserServiceImpl implements SystemUserService {
|
|||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public void addUser(SystemUserRequestVO requestVO) {
|
public void addUser(SystemUserRequestVO requestVO) {
|
||||||
long count = systemUserMapper.selectCount(new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getUsername, requestVO.getUsername()));
|
long count = systemUserMapper.selectCount(
|
||||||
|
new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getUsername, requestVO.getUsername()));
|
||||||
if (count > 0) {
|
if (count > 0) {
|
||||||
throw new EasyRetryServerException("该用户已存在");
|
throw new EasyRetryServerException("该用户已存在");
|
||||||
}
|
}
|
||||||
@ -112,19 +124,21 @@ public class SystemUserServiceImpl implements SystemUserService {
|
|||||||
systemUser.setPassword(SecureUtil.sha256(requestVO.getPassword()));
|
systemUser.setPassword(SecureUtil.sha256(requestVO.getPassword()));
|
||||||
systemUser.setRole(requestVO.getRole());
|
systemUser.setRole(requestVO.getRole());
|
||||||
|
|
||||||
Assert.isTrue(1 == systemUserMapper.insert(systemUser), () -> new EasyRetryServerException("新增用户失败"));
|
Assert.isTrue(1 == systemUserMapper.insert(systemUser), () -> new EasyRetryServerException("新增用户失败"));
|
||||||
|
|
||||||
// 只添加为普通用户添加权限
|
// 只添加为普通用户添加权限
|
||||||
List<String> groupNameList = requestVO.getGroupNameList();
|
List<UserPermissionRequestVO> groupNameList = requestVO.getPermissions();
|
||||||
if (CollectionUtils.isEmpty(groupNameList) || RoleEnum.ADMIN.getRoleId().equals(requestVO.getRole())) {
|
if (CollectionUtils.isEmpty(groupNameList) || RoleEnum.ADMIN.getRoleId().equals(requestVO.getRole())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (String groupName : groupNameList) {
|
for (UserPermissionRequestVO permission : groupNameList) {
|
||||||
SystemUserPermission systemUserPermission = new SystemUserPermission();
|
SystemUserPermission systemUserPermission = new SystemUserPermission();
|
||||||
systemUserPermission.setSystemUserId(systemUser.getId());
|
systemUserPermission.setSystemUserId(systemUser.getId());
|
||||||
systemUserPermission.setGroupName(groupName);
|
systemUserPermission.setGroupName(permission.getGroupName());
|
||||||
Assert.isTrue(1 == systemUserPermissionMapper.insert(systemUserPermission), () -> new EasyRetryServerException("新增用户权限失败"));
|
systemUserPermission.setNamespaceId(permission.getNamespaceId());
|
||||||
|
Assert.isTrue(1 == systemUserPermissionMapper.insert(systemUserPermission),
|
||||||
|
() -> new EasyRetryServerException("新增用户权限失败"));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -132,13 +146,15 @@ public class SystemUserServiceImpl implements SystemUserService {
|
|||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public void update(SystemUserRequestVO requestVO) {
|
public void update(SystemUserRequestVO requestVO) {
|
||||||
SystemUser systemUser = systemUserMapper.selectOne(new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getId, requestVO.getId()));
|
SystemUser systemUser = systemUserMapper.selectOne(
|
||||||
|
new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getId, requestVO.getId()));
|
||||||
if (Objects.isNull(systemUser)) {
|
if (Objects.isNull(systemUser)) {
|
||||||
throw new EasyRetryServerException("该用户不存在");
|
throw new EasyRetryServerException("该用户不存在");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!systemUser.getUsername().equals(requestVO.getUsername())) {
|
if (!systemUser.getUsername().equals(requestVO.getUsername())) {
|
||||||
long count = systemUserMapper.selectCount(new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getUsername, requestVO.getUsername()));
|
long count = systemUserMapper.selectCount(
|
||||||
|
new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getUsername, requestVO.getUsername()));
|
||||||
if (count > 0) {
|
if (count > 0) {
|
||||||
throw new EasyRetryServerException("该用户已存在");
|
throw new EasyRetryServerException("该用户已存在");
|
||||||
}
|
}
|
||||||
@ -151,22 +167,24 @@ public class SystemUserServiceImpl implements SystemUserService {
|
|||||||
|
|
||||||
systemUser.setRole(requestVO.getRole());
|
systemUser.setRole(requestVO.getRole());
|
||||||
|
|
||||||
Assert.isTrue(1 == systemUserMapper.updateById(systemUser), () -> new EasyRetryServerException("更新用户失败"));
|
Assert.isTrue(1 == systemUserMapper.updateById(systemUser), () -> new EasyRetryServerException("更新用户失败"));
|
||||||
|
|
||||||
// 只添加为普通用户添加权限
|
// 只添加为普通用户添加权限
|
||||||
List<String> groupNameList = requestVO.getGroupNameList();
|
List<UserPermissionRequestVO> permissions = requestVO.getPermissions();
|
||||||
if (CollectionUtils.isEmpty(groupNameList) || RoleEnum.ADMIN.getRoleId().equals(requestVO.getRole())) {
|
if (CollectionUtils.isEmpty(permissions) || RoleEnum.ADMIN.getRoleId().equals(requestVO.getRole())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
systemUserPermissionMapper.delete(new LambdaQueryWrapper<SystemUserPermission>()
|
systemUserPermissionMapper.delete(new LambdaQueryWrapper<SystemUserPermission>()
|
||||||
.eq(SystemUserPermission::getSystemUserId, systemUser.getId()));
|
.eq(SystemUserPermission::getSystemUserId, systemUser.getId()));
|
||||||
|
|
||||||
for (String groupName : groupNameList) {
|
for (UserPermissionRequestVO permission : permissions) {
|
||||||
SystemUserPermission systemUserPermission = new SystemUserPermission();
|
SystemUserPermission systemUserPermission = new SystemUserPermission();
|
||||||
systemUserPermission.setSystemUserId(systemUser.getId());
|
systemUserPermission.setSystemUserId(systemUser.getId());
|
||||||
systemUserPermission.setGroupName(groupName);
|
systemUserPermission.setGroupName(permission.getGroupName());
|
||||||
Assert.isTrue(1 == systemUserPermissionMapper.insert(systemUserPermission), () -> new EasyRetryServerException("更新用户权限失败"));
|
systemUserPermission.setNamespaceId(permission.getNamespaceId());
|
||||||
|
Assert.isTrue(1 == systemUserPermissionMapper.insert(systemUserPermission),
|
||||||
|
() -> new EasyRetryServerException("更新用户权限失败"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -180,28 +198,31 @@ public class SystemUserServiceImpl implements SystemUserService {
|
|||||||
systemUserLambdaQueryWrapper.like(SystemUser::getUsername, "%" + queryVO.getUsername() + "%");
|
systemUserLambdaQueryWrapper.like(SystemUser::getUsername, "%" + queryVO.getUsername() + "%");
|
||||||
}
|
}
|
||||||
|
|
||||||
userPageDTO = systemUserMapper.selectPage(userPageDTO, systemUserLambdaQueryWrapper.orderByDesc(SystemUser::getId));
|
userPageDTO = systemUserMapper.selectPage(userPageDTO,
|
||||||
|
systemUserLambdaQueryWrapper.orderByDesc(SystemUser::getId));
|
||||||
|
|
||||||
List<SystemUserResponseVO> userResponseVOList = SystemUserResponseVOConverter.INSTANCE.batchConvert(userPageDTO.getRecords());
|
List<SystemUserResponseVO> userResponseVOList = SystemUserResponseVOConverter.INSTANCE.batchConvert(
|
||||||
|
userPageDTO.getRecords());
|
||||||
|
|
||||||
userResponseVOList.stream()
|
userResponseVOList.stream()
|
||||||
.filter(systemUserResponseVO -> systemUserResponseVO.getRole().equals(RoleEnum.USER.getRoleId()))
|
.filter(systemUserResponseVO -> systemUserResponseVO.getRole().equals(RoleEnum.USER.getRoleId()))
|
||||||
.forEach(systemUserResponseVO -> {
|
.forEach(systemUserResponseVO -> {
|
||||||
List<SystemUserPermission> systemUserPermissionList = systemUserPermissionMapper.selectList(
|
List<SystemUserPermission> systemUserPermissionList = systemUserPermissionMapper.selectList(
|
||||||
new LambdaQueryWrapper<SystemUserPermission>()
|
new LambdaQueryWrapper<SystemUserPermission>()
|
||||||
.select(SystemUserPermission::getGroupName)
|
.select(SystemUserPermission::getGroupName)
|
||||||
.eq(SystemUserPermission::getSystemUserId, systemUserResponseVO.getId()));
|
.eq(SystemUserPermission::getSystemUserId, systemUserResponseVO.getId()));
|
||||||
|
|
||||||
systemUserResponseVO.setGroupNameList(systemUserPermissionList.stream()
|
systemUserResponseVO.setGroupNameList(systemUserPermissionList.stream()
|
||||||
.map(SystemUserPermission::getGroupName).collect(Collectors.toList()));
|
.map(SystemUserPermission::getGroupName).collect(Collectors.toList()));
|
||||||
});
|
});
|
||||||
|
|
||||||
return new PageResult<>(userPageDTO, userResponseVOList);
|
return new PageResult<>(userPageDTO, userResponseVOList);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SystemUserResponseVO getSystemUserByUserName(String username) {
|
public SystemUserResponseVO getSystemUserByUserName(String username) {
|
||||||
SystemUser systemUser = systemUserMapper.selectOne(new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getUsername, username));
|
SystemUser systemUser = systemUserMapper.selectOne(
|
||||||
|
new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getUsername, username));
|
||||||
if (Objects.isNull(systemUser)) {
|
if (Objects.isNull(systemUser)) {
|
||||||
throw new EasyRetryServerException("用户不存在");
|
throw new EasyRetryServerException("用户不存在");
|
||||||
}
|
}
|
||||||
@ -220,7 +241,7 @@ public class SystemUserServiceImpl implements SystemUserService {
|
|||||||
private String getToken(SystemUser systemUser) {
|
private String getToken(SystemUser systemUser) {
|
||||||
String sign = systemUser.getPassword();
|
String sign = systemUser.getPassword();
|
||||||
return JWT.create().withExpiresAt(new Date(System.currentTimeMillis() + EXPIRE_TIME))
|
return JWT.create().withExpiresAt(new Date(System.currentTimeMillis() + EXPIRE_TIME))
|
||||||
.withAudience(JsonUtil.toJsonString(SystemUserResponseVOConverter.INSTANCE.convert(systemUser)))
|
.withAudience(JsonUtil.toJsonString(SystemUserResponseVOConverter.INSTANCE.convert(systemUser)))
|
||||||
.sign(Algorithm.HMAC256(sign));
|
.sign(Algorithm.HMAC256(sign));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -50,11 +50,19 @@ const api = {
|
|||||||
addNamespace: '/namespace',
|
addNamespace: '/namespace',
|
||||||
updateNamespace: '/namespace',
|
updateNamespace: '/namespace',
|
||||||
namespaceList: '/namespace/list',
|
namespaceList: '/namespace/list',
|
||||||
delNamespace: '/namespace/'
|
delNamespace: '/namespace/',
|
||||||
|
allNamespace: '/namespace/all'
|
||||||
}
|
}
|
||||||
|
|
||||||
export default api
|
export default api
|
||||||
|
|
||||||
|
export function getAllNamespace () {
|
||||||
|
return request({
|
||||||
|
url: api.allNamespace,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
export function delNamespace (id) {
|
export function delNamespace (id) {
|
||||||
return request({
|
return request({
|
||||||
url: api.delNamespace + id,
|
url: api.delNamespace + id,
|
||||||
@ -215,11 +223,11 @@ export function getGroupConfigForPage (parameter) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getAllGroupNameList (parameter) {
|
export function getAllGroupNameList (data) {
|
||||||
return request({
|
return request({
|
||||||
url: api.allGroupNameList,
|
url: api.allGroupNameList,
|
||||||
method: 'get',
|
method: 'post',
|
||||||
params: parameter
|
data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ import {
|
|||||||
TOGGLE_WEAK,
|
TOGGLE_WEAK,
|
||||||
TOGGLE_MULTI_TAB,
|
TOGGLE_MULTI_TAB,
|
||||||
// i18n
|
// i18n
|
||||||
APP_LANGUAGE
|
APP_LANGUAGE, APP_NAMESPACE
|
||||||
} from '@/store/mutation-types'
|
} from '@/store/mutation-types'
|
||||||
import { loadLanguageAsync } from '@/locales'
|
import { loadLanguageAsync } from '@/locales'
|
||||||
|
|
||||||
@ -29,6 +29,7 @@ const app = {
|
|||||||
color: '',
|
color: '',
|
||||||
weak: false,
|
weak: false,
|
||||||
multiTab: true,
|
multiTab: true,
|
||||||
|
namespace: '',
|
||||||
lang: 'zh-CN',
|
lang: 'zh-CN',
|
||||||
_antLocale: {}
|
_antLocale: {}
|
||||||
},
|
},
|
||||||
@ -80,6 +81,10 @@ const app = {
|
|||||||
[TOGGLE_MULTI_TAB]: (state, bool) => {
|
[TOGGLE_MULTI_TAB]: (state, bool) => {
|
||||||
storage.set(TOGGLE_MULTI_TAB, bool)
|
storage.set(TOGGLE_MULTI_TAB, bool)
|
||||||
state.multiTab = bool
|
state.multiTab = bool
|
||||||
|
},
|
||||||
|
[APP_NAMESPACE]: (state, namespace) => {
|
||||||
|
storage.set(APP_NAMESPACE, namespace)
|
||||||
|
state.namespace = namespace
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
actions: {
|
actions: {
|
||||||
@ -92,6 +97,16 @@ const app = {
|
|||||||
reject(e)
|
reject(e)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
},
|
||||||
|
setNamespace ({ commit }, namespaceId) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
commit(APP_NAMESPACE, namespaceId)
|
||||||
|
// loadLanguageAsync(lang).then(() => {
|
||||||
|
// resolve()
|
||||||
|
// }).catch((e) => {
|
||||||
|
// reject(e)
|
||||||
|
// })
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -12,6 +12,7 @@ export const TOGGLE_COLOR = 'color'
|
|||||||
export const TOGGLE_WEAK = 'weak'
|
export const TOGGLE_WEAK = 'weak'
|
||||||
export const TOGGLE_MULTI_TAB = 'multi_tab'
|
export const TOGGLE_MULTI_TAB = 'multi_tab'
|
||||||
export const APP_LANGUAGE = 'app_language'
|
export const APP_LANGUAGE = 'app_language'
|
||||||
|
export const APP_NAMESPACE = 'app_namespace'
|
||||||
|
|
||||||
export const CONTENT_WIDTH_TYPE = {
|
export const CONTENT_WIDTH_TYPE = {
|
||||||
Fluid: 'Fluid',
|
Fluid: 'Fluid',
|
||||||
|
@ -38,19 +38,35 @@
|
|||||||
</a-select>
|
</a-select>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item
|
<a-form-item
|
||||||
label="权限"
|
label="命名空间"
|
||||||
|
v-if="role !== '2'">
|
||||||
|
<a-select
|
||||||
|
mode="tags"
|
||||||
|
style="width: 100%"
|
||||||
|
:token-separators="[',']"
|
||||||
|
@change="value => handleNamespacesIdChange(value)"
|
||||||
|
v-decorator="[
|
||||||
|
'namespacesIds',
|
||||||
|
{rules: [{ required: true, message: '请分配命名空间'}]}
|
||||||
|
]">
|
||||||
|
<a-select-option v-for="(item, index) in namespaceList" :key="index" :value="item.uniqueId">
|
||||||
|
{{ item.name }} ({{ item.uniqueId }})
|
||||||
|
</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item
|
||||||
|
label="组"
|
||||||
v-if="role !== '2'">
|
v-if="role !== '2'">
|
||||||
<a-select
|
<a-select
|
||||||
mode="tags"
|
mode="tags"
|
||||||
|
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
:token-separators="[',']"
|
:token-separators="[',']"
|
||||||
v-decorator="[
|
v-decorator="[
|
||||||
'groupNameList',
|
'groupNames',
|
||||||
{rules: [{ required: true, message: '请分配组'}]}
|
{rules: [{ required: true, message: '请分配组'}]}
|
||||||
]">
|
]">
|
||||||
<a-select-option v-for="(item, index) in groupNameList" :key="index" :value="item">
|
<a-select-option v-for="(item, index) in groupNameList" :key="index" :value="item.name">
|
||||||
{{ item }}
|
{{ item.name }} ({{ item.namespaceId }})
|
||||||
</a-select-option>
|
</a-select-option>
|
||||||
</a-select>
|
</a-select>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
@ -69,7 +85,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import md5 from 'md5'
|
import md5 from 'md5'
|
||||||
import { getAllGroupNameList, saveUser, getSystemUserByUserName } from '@/api/manage'
|
import { saveUser, getSystemUserByUserName, getAllNamespace, getAllGroupNameList } from '@/api/manage'
|
||||||
import pick from 'lodash.pick'
|
import pick from 'lodash.pick'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@ -85,12 +101,13 @@ export default {
|
|||||||
labelCol: { lg: { span: 7 }, sm: { span: 7 } },
|
labelCol: { lg: { span: 7 }, sm: { span: 7 } },
|
||||||
wrapperCol: { lg: { span: 10 }, sm: { span: 17 } }
|
wrapperCol: { lg: { span: 10 }, sm: { span: 17 } }
|
||||||
},
|
},
|
||||||
groupNameList: []
|
groupNameList: [],
|
||||||
|
namespaceList: []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted () {
|
mounted () {
|
||||||
getAllGroupNameList().then(res => {
|
getAllNamespace().then(res => {
|
||||||
this.groupNameList = res.data
|
this.namespaceList = res.data
|
||||||
})
|
})
|
||||||
|
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
@ -105,6 +122,11 @@ export default {
|
|||||||
handleChange (role) {
|
handleChange (role) {
|
||||||
this.role = role
|
this.role = role
|
||||||
},
|
},
|
||||||
|
handleNamespacesIdChange (namespacesIds) {
|
||||||
|
getAllGroupNameList(namespacesIds).then(res => {
|
||||||
|
this.groupNameList = res.data
|
||||||
|
})
|
||||||
|
},
|
||||||
handleSubmit (e) {
|
handleSubmit (e) {
|
||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
this.form.validateFields((err, values) => {
|
this.form.validateFields((err, values) => {
|
||||||
@ -135,7 +157,7 @@ export default {
|
|||||||
new Promise((resolve) => {
|
new Promise((resolve) => {
|
||||||
setTimeout(resolve, 1500)
|
setTimeout(resolve, 1500)
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
const formData = pick(data, ['id', 'username', 'role', 'groupNameList'])
|
const formData = pick(data, ['id', 'username', 'role', 'groupNames', 'namespacesIds'])
|
||||||
formData.role = formData.role.toString()
|
formData.role = formData.role.toString()
|
||||||
form.setFieldsValue(formData)
|
form.setFieldsValue(formData)
|
||||||
})
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user