Commit b1bbc90d by 李小龙

saas角色

parent 195e200c
Showing with 679 additions and 90 deletions
CREATE TABLE `saas_user` (
`id` varchar(64) NOT NULL COLLATE utf8mb4_general_ci COMMENT 'id id为1是超级管理员',
`username` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '姓名',
`account` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '账户',
`password` varchar(64) NOT NULL COMMENT '密码',
`mobile` varchar(11) NOT NULL COMMENT '手机号',
`status` char(1) NOT NULL COMMENT '状态 0禁用 1启用',
`remark` varchar(1024) DEFAULT NULL COMMENT '备注',
`create_date` datetime NOT NULL COMMENT '创建时间',
`update_date` datetime NOT NULL COMMENT '更新时间',
`del_flag` CHAR(1) DEFAULT NULL COMMENT '删除标识',
`create_by` varchar(64) NOT NULL COMMENT '创建人',
`update_by` varchar(64) NOT NULL COMMENT '更新人',
PRIMARY KEY (`id`),
KEY `plat_user_account_index` (`account`),
KEY `plat_user_mobile_index` (`mobile`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='saas端用户';
CREATE TABLE `saas_role` (
`id` varchar(64) NOT NULL COLLATE utf8mb4_general_ci COMMENT 'id',
`name` varchar(128) NOT NULL COMMENT '角色名称',
`code` varchar(128) DEFAULT NULL COMMENT '编码',
`status` char(1) NOT NULL COMMENT '状态 0禁用 1启用',
`remark` varchar(1024) DEFAULT NULL COMMENT '备注',
`data_scope_type` char(1) DEFAULT NULL COMMENT '数据权限 1全部 2指定租户',
`data_scope` varchar(600) DEFAULT NULL COMMENT '数据权限 租户id列表 以逗号分隔',
`create_date` datetime NOT NULL COMMENT '创建时间',
`update_date` datetime NOT NULL COMMENT '更新时间',
`del_flag` CHAR(1) DEFAULT NULL COMMENT '删除标识',
`create_by` varchar(64) NOT NULL COMMENT '创建人',
`update_by` varchar(64) NOT NULL COMMENT '更新人',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='saas端角色';
CREATE TABLE `saas_user_role` (
`id` varchar(64) NOT NULL COLLATE utf8mb4_general_ci COMMENT 'id',
`user_id` varchar(64) NOT NULL COMMENT '用户id',
`role_id` varchar(64) NOT NULL COMMENT '角色id',
`create_date` datetime NOT NULL COMMENT '创建时间',
`update_date` datetime NOT NULL COMMENT '更新时间',
`del_flag` CHAR(1) DEFAULT NULL COMMENT '删除标识',
`create_by` varchar(64) NOT NULL COMMENT '创建人',
`update_by` varchar(64) NOT NULL COMMENT '更新人',
PRIMARY KEY (`id`),
KEY `plat_user_role_role_id_index` (`role_id`),
KEY `plat_user_role_user_id_index` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='saas端用户角色表';
CREATE TABLE `saas_role_menu` (
`id` varchar(64) NOT NULL COLLATE utf8mb4_general_ci COMMENT 'id',
`role_id` varchar(64) NOT NULL COMMENT '角色id',
`menu_id` varchar(64) DEFAULT NULL COMMENT '菜单id',
`create_date` datetime NOT NULL COMMENT '创建时间',
`update_date` datetime NOT NULL COMMENT '更新时间',
`del_flag` CHAR(1) DEFAULT NULL COMMENT '删除标识',
`create_by` varchar(64) NOT NULL COMMENT '创建人',
`update_by` varchar(64) NOT NULL COMMENT '更新人',
PRIMARY KEY (`id`),
KEY `plat_role_menu_menu_id_index` (`menu_id`),
KEY `plat_role_menu_role_id_index` (`role_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='saas端角色菜单关联表';
CREATE TABLE `saas_menu` (
`id` varchar(64) NOT NULL COLLATE utf8mb4_general_ci COMMENT 'id',
`parent_id` varchar(64) NOT NULL COMMENT '父级id',
`name` varchar(100) NOT NULL COMMENT '名称',
`code` varchar(100) DEFAULT NULL COMMENT '模块+类名+方法',
`icon` varchar(100) DEFAULT NULL COMMENT '图标',
`sort` int(11) DEFAULT NULL COMMENT '排序',
`status` char(1) NOT NULL COMMENT '状态 0禁用 1启用',
`category` varchar(20) NOT NULL COMMENT '类型 0目录 1菜单 2按钮',
`request_path` varchar(200) DEFAULT NULL COMMENT '前端路径',
`component_path` varchar(200) DEFAULT NULL COMMENT '组件路径',
`component_name` varchar(100) DEFAULT NULL COMMENT '组件名称',
`remark` varchar(255) DEFAULT NULL COMMENT '备注',
`hidden_status` char(1) DEFAULT NULL COMMENT '隐藏状态 0不隐藏 1隐藏',
`create_date` datetime NOT NULL COMMENT '创建时间',
`update_date` datetime NOT NULL COMMENT '更新时间',
`del_flag` CHAR(1) DEFAULT NULL COMMENT '删除标识',
`cache_status` char(1) DEFAULT NULL COMMENT '缓存状态 0不缓存 1缓存',
`create_by` varchar(64) NOT NULL COMMENT '创建人',
`update_by` varchar(64) NOT NULL COMMENT '更新人',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='saas端菜单';
CREATE TABLE `tnt_auth_menu` (
`id` varchar(64) NOT NULL COLLATE utf8mb4_general_ci COMMENT '主键id',
`parent_id` varchar(64) NOT NULL COMMENT '父级id',
`name` varchar(100) NOT NULL COMMENT '资源名称',
`request_path` varchar(200) DEFAULT NULL COMMENT '账号链接',
`sort` int(11) DEFAULT NULL COMMENT '排序',
`icon` varchar(100) DEFAULT NULL COMMENT '图标',
`resource_type` varchar(20) NOT NULL COMMENT '类型 1目录 2菜单/功能 3按钮/应用',
`hidden_status` char(1) DEFAULT NULL COMMENT '隐藏状态 0不隐藏 1隐藏',
`remark` varchar(255) DEFAULT NULL COMMENT '备注',
`cache_status` char(1) DEFAULT NULL COMMENT '缓存状态 0不缓存 1缓存',
`status` char(1) NOT NULL COMMENT '状态 0禁用 1启用',
`create_date` datetime NOT NULL COMMENT '创建时间',
`update_date` datetime NOT NULL COMMENT '更新时间',
`del_flag` CHAR(1) DEFAULT NULL COMMENT '删除标识',
`create_by` varchar(64) NOT NULL COMMENT '创建人',
`update_by` varchar(64) NOT NULL COMMENT '更新人',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='租户端资源管理';
CREATE TABLE `saas_privacy_config` (
`id` varchar(64) NOT NULL COLLATE utf8mb4_general_ci COMMENT 'id',
`title` varchar(500) DEFAULT NULL COMMENT '标题',
`content` varchar(2000) DEFAULT NULL COMMENT '内容',
`category` varchar(10) DEFAULT NULL COMMENT '分类 0-隐私政策 1-关于我们',
`create_date` datetime NOT NULL COMMENT '创建时间',
`update_date` datetime NOT NULL COMMENT '更新时间',
`del_flag` CHAR(1) DEFAULT NULL COMMENT '删除标识',
`create_by` varchar(64) NOT NULL COMMENT '创建人',
`update_by` varchar(64) NOT NULL COMMENT '更新人',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='隐私政策/关于我们';
CREATE TABLE `saas_operation_log` (
`id` varchar(64) NOT NULL COLLATE utf8mb4_general_ci COMMENT 'id',
`saas_user_id` varchar(64) NOT NULL COMMENT '操作人',
`tenant_id` char(64) DEFAULT NULL COMMENT '租户ID',
`content` varchar(500) DEFAULT NULL COMMENT '操作内容',
`create_date` datetime NOT NULL COMMENT '创建时间',
`update_date` datetime NOT NULL COMMENT '更新时间',
`del_flag` CHAR(1) DEFAULT NULL COMMENT '删除标识',
`create_by` varchar(64) NOT NULL COMMENT '创建人',
`update_by` varchar(64) NOT NULL COMMENT '更新人',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='saas端操作日志';
CREATE TABLE `tnt_tenant` (
`id` varchar(64) NOT NULL COLLATE utf8mb4_general_ci COMMENT 'id',
`name` varchar(128) DEFAULT NULL COMMENT '名称',
`status` varchar(10) NOT NULL COMMENT '状态 0停用 1启用',
`start_time` datetime NOT NULL COMMENT '租户有效期-开始时间',
`end_time` datetime NOT NULL COMMENT '租户有效期-结束时间',
`tnt_user_id` varchar(64) NOT NULL COMMENT '租户管理员id',
`menu_list` varchar(600) DEFAULT NULL COMMENT '菜单id列表 以逗号分隔',
`alert_channel` varchar(32) DEFAULT NULL COMMENT '告警渠道 1-短信 2-邮件 3-语音短信 4-云龄工单 5-晶奇工单',
`create_date` datetime NOT NULL COMMENT '创建时间',
`update_date` datetime NOT NULL COMMENT '更新时间',
`del_flag` CHAR(1) DEFAULT NULL COMMENT '删除标识',
`create_by_` varchar(64) NOT NULL COMMENT '创建人',
`update_by` varchar(64) NOT NULL COMMENT '更新人',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 STATS_AUTO_RECALC=0 ROW_FORMAT=COMPACT COMMENT='租户管理';
......@@ -4,7 +4,7 @@ import com.makeit.common.dto.LoginDTO;
import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils;
import com.makeit.service.saas.SaasUserService;
import com.makeit.utils.user.UserLoginVO;
import com.makeit.utils.user.SaasUserLoginVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -23,7 +23,7 @@ public class SaasLoginController {
@ApiOperation("登录")
@PostMapping("login")
public ApiResponseEntity<UserLoginVO> login(@RequestBody LoginDTO loginDTO) {
public ApiResponseEntity<SaasUserLoginVO> login(@RequestBody LoginDTO loginDTO) {
return ApiResponseUtils.success(saasUserService.login(loginDTO));
}
......
package com.makeit.controller.saas;
import com.makeit.common.dto.BaseIdDTO;
import com.makeit.common.dto.StatusDTO;
import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils;
import com.makeit.global.annotation.Action;
import com.makeit.module.admin.saas.SaasRoleDTOVO;
import com.makeit.module.admin.saas.PlatRoleMenuDTO;
import com.makeit.module.admin.saas.PlatUserRoleDTO;
import com.makeit.service.saas.SaasRoleService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* <p>
* saas端角色 前端控制器
* </p>
*
* @author eugene young
* @since 2022-05-10
*/
@Api(tags = "saas端-角色")
@RestController
@RequestMapping("/saas/role")
public class SaasRoleController {
@Autowired
private SaasRoleService saasRoleService;
@Action(module = "saas端-角色", name = "列表", code = "saas:role:list")
@ApiOperation("列表")
@PostMapping("list")
public ApiResponseEntity<List<SaasRoleDTOVO>> list(@RequestBody SaasRoleDTOVO dto){
return ApiResponseUtils.success(saasRoleService.list(dto));
}
@ApiOperation("列表(AuthIgnore)")
@PostMapping("listAuthIgnore")
public ApiResponseEntity<List<SaasRoleDTOVO>> listAuthIgnore(@RequestBody SaasRoleDTOVO dto){
return ApiResponseUtils.success(saasRoleService.list(dto));
}
@Action(module = "saas端-角色", name = "新增", code = "saas:role:add")
@ApiOperation("新增")
@PostMapping("add")
public ApiResponseEntity<?> add(@Validated @RequestBody SaasRoleDTOVO dto){
saasRoleService.add(dto);
return ApiResponseUtils.success();
}
@Action(module = "saas端-角色", name = "编辑", code = "saas:role:edit")
@ApiOperation("编辑")
@PostMapping("edit")
public ApiResponseEntity<?> edit(@Validated @RequestBody SaasRoleDTOVO dto){
saasRoleService.edit(dto);
return ApiResponseUtils.success();
}
@Action(module = "saas端-角色", name = "详情", code = "saas:role:view")
@ApiOperation("详情")
@PostMapping("view")
public ApiResponseEntity<SaasRoleDTOVO> view(@RequestBody BaseIdDTO dto){
return ApiResponseUtils.success(saasRoleService.view(dto.getId()));
}
@Action(module = "saas端-角色", name = "删除", code = "saas:role:del")
@ApiOperation("删除")
@PostMapping("del")
public ApiResponseEntity<?> del(@RequestBody BaseIdDTO dto){
saasRoleService.del(dto.getId());
return ApiResponseUtils.success();
}
@Action(module = "saas端-角色", name = "改变状态", code = "saas:role:changeStatus")
@ApiOperation("改变状态")
@PostMapping("changeStatus")
public ApiResponseEntity<?> changeStatus(@RequestBody StatusDTO dto){
saasRoleService.changeStatus(dto);
return ApiResponseUtils.success();
}
@Action(module = "saas端-角色", name = "分配用户", code = "saas:role:assignUserList")
@ApiOperation("分配用户")
@PostMapping("assignUserList")
public ApiResponseEntity<?> assignUserList(@RequestBody List<PlatUserRoleDTO> userRoleDTOList){//参数要不要是一个对象里 有一个数组
saasRoleService.assignUserList(userRoleDTOList);
return ApiResponseUtils.success();
}
@Action(module = "saas端-角色", name = "删除分配用户", code = "saas:role:removeAssignUserList")
@ApiOperation("删除分配用户")
@PostMapping("removeAssignUserList")
public ApiResponseEntity<?> removeAssignUserList(@RequestBody List<PlatUserRoleDTO> userRoleDTOList){
saasRoleService.removeAssignUserList(userRoleDTOList);
return ApiResponseUtils.success();
}
@Action(module = "saas端-角色", name = "分配菜单", code = "saas:role:assignMenuList")
@ApiOperation("分配菜单")
@PostMapping("assignMenuList")
public ApiResponseEntity<?> assignMenuList(@RequestBody PlatRoleMenuDTO roleMenuDTO){
saasRoleService.assignMenuList(roleMenuDTO);
return ApiResponseUtils.success();
}
}
package com.makeit.controller.saas;
import com.makeit.common.dto.BaseIdDTO;
import com.makeit.common.dto.StatusDTO;
import com.makeit.common.page.PageReqDTO;
import com.makeit.common.page.PageVO;
import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils;
import com.makeit.global.annotation.Action;
import com.makeit.module.admin.saas.SaasUserDTOVO;
import com.makeit.module.admin.saas.PlatUserQueryDTO;
import com.makeit.service.saas.SaasUserService;
import com.makeit.utils.user.SaasUserLoginVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* <p>
* SAAS端用户 前端控制器
* </p>
*
* @author eugene young
* @since 2022-05-10
*/
@Api(tags = "SAAS端-用户")
@RestController
@RequestMapping("/saas/user")
public class SaasUserController {
@Autowired
private SaasUserService saasUserService;
@Action(module = "SAAS端-用户", name = "分页列表", code = "saas:user:page")
@ApiOperation("分页列表")
@PostMapping("page")
public ApiResponseEntity<PageVO<SaasUserDTOVO>> page(@RequestBody PageReqDTO<PlatUserQueryDTO> page){
return ApiResponseUtils.success(saasUserService.page(page));
}
@ApiOperation("分页列表")
@PostMapping("pageAuthIgnore")
public ApiResponseEntity<PageVO<SaasUserDTOVO>> pageAuthIgnore(@RequestBody PageReqDTO<PlatUserQueryDTO> page){
return ApiResponseUtils.success(saasUserService.page(page));
}
//@Action(module = "SAAS端-用户", name = "分页列表-排除超级管理员", code = "plat:user:pageNotSuperAdmin")
@ApiOperation("分页列表-排除超级管理员")
@PostMapping("pageNotSuperAdmin")
public ApiResponseEntity<PageVO<SaasUserDTOVO>> pageNotSuperAdmin(@RequestBody PageReqDTO<PlatUserQueryDTO> page){
return ApiResponseUtils.success(saasUserService.pageNoSuperAdmin(page));
}
@ApiOperation("分页列表(AuthIgnore)")
@PostMapping("listAuthIgnore")
public ApiResponseEntity<List<SaasUserDTOVO>> listAuthIgnore(@RequestBody PlatUserQueryDTO dto){
return ApiResponseUtils.success(saasUserService.list(dto));
}
@ApiOperation("分页列表-排除超级管理员(AuthIgnore)")
@PostMapping("listNotSuperAdminAuthIgnore")
public ApiResponseEntity<List<SaasUserDTOVO>> listNotSuperAdminAuthIgnore(@RequestBody PlatUserQueryDTO dto){
return ApiResponseUtils.success(saasUserService.listNoSuperAdmin(dto));
}
@Action(module = "SAAS端-用户", name = "新增", code = "saas:user:add")
@ApiOperation("新增")
@PostMapping("add")
public ApiResponseEntity<?> add(@Validated @RequestBody SaasUserDTOVO dto){
saasUserService.add(dto);
return ApiResponseUtils.success();
}
@Action(module = "SAAS端-用户", name = "编辑", code = "saas:user:edit")
@ApiOperation("编辑")
@PostMapping("edit")
public ApiResponseEntity<?> edit(@Validated @RequestBody SaasUserDTOVO dto){
saasUserService.edit(dto);
return ApiResponseUtils.success();
}
@Action(module = "SAAS端-用户", name = "改变密码", code = "saas:user:changePassword")
@ApiOperation("改变密码")
@PostMapping("changePassword")
public ApiResponseEntity<?> changePassword(@RequestBody SaasUserDTOVO dto){
saasUserService.changePassword(dto);
return ApiResponseUtils.success();
}
@Action(module = "SAAS端-用户", name = "详情", code = "saas:user:view")
@ApiOperation("详情")
@PostMapping("view")
public ApiResponseEntity<SaasUserDTOVO> view(@RequestBody BaseIdDTO dto){;
return ApiResponseUtils.success(saasUserService.view(dto.getId()));
}
@Action(module = "SAAS端-用户", name = "删除", code = "saas:user:del")
@ApiOperation("删除")
@PostMapping("del")
public ApiResponseEntity<?> del(@RequestBody BaseIdDTO dto){
saasUserService.del(dto.getId());
return ApiResponseUtils.success();
}
@Action(module = "SAAS端-用户", name = "改变状态", code = "saas:user:changeStatus")
@ApiOperation("改变状态")
@PostMapping("changeStatus")
public ApiResponseEntity<?> changeStatus(@RequestBody StatusDTO dto){
saasUserService.changeStatus(dto);
return ApiResponseUtils.success();
}
@ApiOperation("获取当前登录用户的角色菜单")
@PostMapping("getRoleMenu")
public ApiResponseEntity<SaasUserLoginVO> getRoleAndMenuList(){
return ApiResponseUtils.success(saasUserService.getRoleAndMenuList());
}
@ApiOperation("获取当前登录用户的用户信息")
@PostMapping("getUserVO")
public ApiResponseEntity<SaasUserLoginVO> getUserInfo(){
return ApiResponseUtils.success(saasUserService.getUserVO());
}
}
......@@ -37,7 +37,7 @@ public class BaseEntity implements Serializable {
@ApiModelProperty(value = "创建时间", required = false)
@TableField(value = "create_date", fill = FieldFill.INSERT, typeHandler = LocalDateTimeTypeHandler.class)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createdAt;
private LocalDateTime createDate;
/**
* 更新时间
......@@ -45,7 +45,7 @@ public class BaseEntity implements Serializable {
@ApiModelProperty(value = "更新时间", required = false)
@TableField(value = "update_date", fill = FieldFill.INSERT_UPDATE, typeHandler = LocalDateTimeTypeHandler.class)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updatedAt;
private LocalDateTime updateDate;
@TableLogic
......
......@@ -19,12 +19,12 @@ public class LocalDateTimeObjectHandler implements MetaObjectHandlerInternal{
@Override
public void insertFill(MetaObject metaObject, MetaObjectHandler handler) {
handler.setFieldValByName(BaseEntity.Fields.createdAt, LocalDateTime.now(), metaObject);
handler.setFieldValByName(BaseEntity.Fields.updatedAt, LocalDateTime.now(), metaObject);
handler.setFieldValByName(BaseEntity.Fields.createDate, LocalDateTime.now(), metaObject);
handler.setFieldValByName(BaseEntity.Fields.updateDate, LocalDateTime.now(), metaObject);
}
@Override
public void updateFill(MetaObject metaObject, MetaObjectHandler handler) {
handler.setFieldValByName(BaseEntity.Fields.updatedAt, LocalDateTime.now(), metaObject);
handler.setFieldValByName(BaseEntity.Fields.updateDate, LocalDateTime.now(), metaObject);
}
}
......@@ -48,12 +48,16 @@ public class RedisConst {
//public static final String PLATFORM_TOKEN_PREFIX = "plat:token:";
//public static final String PLATFORM_TOKEN_ROLE_MENU_PREFIX = "plat:role:menu:token:";//TODO ywc 这里可能有大key问题
//todo 为啥要区分?
public static final String TOKEN_PREFIX = "token:";
public static final String TOKEN_ROLE_MENU_PREFIX = "role:menu:token:";//TODO ywc 这里可能有大key问题 改成list存?
public static final String WECHAT_TOKEN_PREFIX = "wechat:token:";
public static final String WECHAT_TOKEN_ROLE_MENU_PREFIX = "wechat:role:menu:token:";//TODO ywc 这里可能有大key问题
public static final String PLATFORM_TOKEN_PREFIX = "plat:token:";
public static final String PLATFORM_TOKEN_ROLE_MENU_PREFIX = "plat:role:menu:token:";
//public static final String CUS_TOKEN_PREFIX = "cus:token:";
public static final int PLATFORM_EXPIRE_MINUTES = 120;
......@@ -86,8 +90,7 @@ public class RedisConst {
public static final String TOPIC_TNT_CONFIG_REFRESH = "topic:tnt:config:refresh";
public static final String TOPIC_I18N_DIC_REFRESH = "topic:i18n:dict:refresh";
public static final String PLATFORM_TOKEN_PREFIX = "plat:token:";
public static final String PLATFORM_TOKEN_ROLE_MENU_PREFIX = "plat:role:menu:token:";
......
......@@ -67,7 +67,7 @@ public class PlatMenuDTOVO extends BaseIdDTO implements Serializable {
*/
@ApiModelProperty(value = "创建时间", required = false)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createdAt;
private LocalDateTime createDate;
@TableField(exist = false)
@ApiModelProperty(value = "子集")
......
......@@ -12,9 +12,9 @@ import javax.validation.constraints.Size;
import java.io.Serializable;
import java.time.LocalDateTime;
@ApiModel("平台端角色 列表 新增 编辑 详情")
@ApiModel("SAAS端角色 列表 新增 编辑 详情")
@Data
public class PlatRoleDTOVO extends BaseIdDTO implements Serializable {
public class SaasRoleDTOVO extends BaseIdDTO implements Serializable {
@NotBlank(message = "名称不能为空")
@Size(max = 64, message = "名称最长为64字符")
......@@ -47,7 +47,7 @@ public class PlatRoleDTOVO extends BaseIdDTO implements Serializable {
*/
@ApiModelProperty(value = "创建时间", required = false)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createdAt;
private LocalDateTime createDate;
@ApiModelProperty(value = "关键词 查询用")
private String keyword;
......
......@@ -17,7 +17,7 @@ import java.util.List;
@ApiModel("平台端用户 新增 编辑 详情")
@Data
public class PlatUserDTOVO extends BaseIdDTO implements Serializable {
public class SaasUserDTOVO extends BaseIdDTO implements Serializable {
// @ApiModelProperty(value = "用户名")
......@@ -60,9 +60,9 @@ public class PlatUserDTOVO extends BaseIdDTO implements Serializable {
*/
@ApiModelProperty(value = "创建时间", required = false)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createdAt;
private LocalDateTime createDate;
@TableField(exist = false)
@ApiModelProperty(value = "角色集合")
private List<PlatRoleDTOVO> roleList;
private List<SaasRoleDTOVO> roleList;
}
......@@ -64,7 +64,7 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
.eq(StringUtils.isNotBlank(dto.getTag()), SysDept::getTag, dto.getTag())
.orderByAsc(SysDept::getTag)
.orderByAsc(SysDept::getCreatedAt);
.orderByAsc(SysDept::getCreateDate);
return lambdaQueryWrapper;
}
......
......@@ -71,7 +71,7 @@ public class SysFactoryServiceImpl extends ServiceImpl<SysFactoryMapper, SysFact
LambdaQueryWrapper<SysFactory> lambdaQueryWrapper = new QueryWrapper<SysFactory>().lambda()
.like(StringUtils.isNotBlank(dto.getName()), SysFactory::getName, dto.getName());
lambdaQueryWrapper.orderByDesc(SysFactory::getCreatedAt);
lambdaQueryWrapper.orderByDesc(SysFactory::getCreateDate);
return lambdaQueryWrapper;
}
......@@ -157,7 +157,7 @@ public class SysFactoryServiceImpl extends ServiceImpl<SysFactoryMapper, SysFact
if (SysUserUtil.isSuper()) {
List<SysFactory> factoryList = list(new QueryWrapper<SysFactory>().lambda()
.orderByAsc(SysFactory::getCreatedAt)
.orderByAsc(SysFactory::getCreateDate)
);
return factoryList;
}
......@@ -171,7 +171,7 @@ public class SysFactoryServiceImpl extends ServiceImpl<SysFactoryMapper, SysFact
List<SysFactory> factoryList = list(new QueryWrapper<SysFactory>().lambda()
.in(SysFactory::getId, factoryIdList)
.orderByAsc(SysFactory::getCreatedAt)
.orderByAsc(SysFactory::getCreateDate)
);
return factoryList;
......@@ -200,7 +200,7 @@ public class SysFactoryServiceImpl extends ServiceImpl<SysFactoryMapper, SysFact
userIdList = new ArrayList<>(userIdList);
userIdList.add(-1 + "");
List<SysFactory> tenantList = list(new QueryWrapper<SysFactory>().lambda()
.orderByAsc(SysFactory::getCreatedAt)
.orderByAsc(SysFactory::getCreateDate)
);
return BeanDtoVoUtils.listVo(tenantList, SysFactoryDTOVO.class);
}
......
......@@ -68,7 +68,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
.in(StringUtils.isNotBlank(dto.getRoleId()), SysMenu::getId, menuIdList)
//.orderByAsc(TntMenu::getParentId)
.orderByAsc(SysMenu::getSort)
.orderByAsc(SysMenu::getCreatedAt)
.orderByAsc(SysMenu::getCreateBy)
);
return BeanDtoVoUtils.listVo(sysMenuList, SysMenuDTOVO.class);
......
......@@ -86,7 +86,7 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
.like(StringUtils.isNotBlank(dto.getKeyword()), SysRole::getName, dto.getKeyword());
})
.eq(StringUtils.isNotBlank(dto.getStatus()), SysRole::getStatus, dto.getStatus())
.orderByDesc(SysRole::getCreatedAt);
.orderByDesc(SysRole::getCreateDate);
menuFilter(dto, lambdaQueryWrapper);
......
......@@ -271,7 +271,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
List<SysMenu> menuList = sysMenuService.list(new QueryWrapper<SysMenu>().lambda()
.eq(SysMenu::getStatus, CommonEnum.YES.getValue())
.orderByAsc(SysMenu::getSort)
.orderByAsc(SysMenu::getCreatedAt)
.orderByAsc(SysMenu::getCreateDate)
);
return menuList;
......@@ -385,7 +385,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
.in(SysMenu::getId, menuIdList)
.eq(SysMenu::getStatus, CommonEnum.YES.getValue())
.orderByAsc(SysMenu::getSort)
.orderByAsc(SysMenu::getCreatedAt)
.orderByAsc(SysMenu::getCreateDate)
);
userLoginVO.setRoleList(BeanDtoVoUtils.listVo(roleList, SysRoleDTOVO.class));
......@@ -560,7 +560,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
roleIdList(lambdaQueryWrapper, dto);
lambdaQueryWrapper.orderByDesc(SysUser::getCreatedAt);
lambdaQueryWrapper.orderByDesc(SysUser::getCreateDate);
lambdaQueryWrapper.orderByDesc(SysUser::getId);
//TODO ywc 要不要改成全查出来 内存过滤
......
......@@ -35,7 +35,7 @@ public class SysConfigCategoryServiceImpl extends ServiceImpl<SysConfigCategoryM
.like(StringUtils.isNotBlank(tntConfigCategory.getName()), SysConfigCategory::getName, tntConfigCategory.getName())
.like(StringUtils.isNotBlank(tntConfigCategory.getCode()), SysConfigCategory::getCode, tntConfigCategory.getCode())
.eq(SysConfigCategory::getTenantId, tntConfigCategory.getTenantId())
.orderByAsc(SysConfigCategory::getCreatedAt)
.orderByAsc(SysConfigCategory::getCreateDate)
);
return BeanDtoVoUtils.listVo(configCategoryList, SysConfigCategoryDTOVO.class);
}
......
......@@ -36,10 +36,10 @@ public class SysDictionaryCategoryServiceImpl extends ServiceImpl<SysDictionaryC
public List<SysDictionaryCategory> getEpDictionaryCategoryByList() {
List<SysDictionaryCategory> sysDictionaryCategoryList = list(new QueryWrapper<SysDictionaryCategory>().lambda()
/*.orderByAsc(PlatDictionaryCategory::getSort)*/.orderByAsc(SysDictionaryCategory::getCreatedAt));
/*.orderByAsc(PlatDictionaryCategory::getSort)*/.orderByAsc(SysDictionaryCategory::getCreateDate));
List<SysDictionary> sysDictionaryList = sysDictionaryService.list(new QueryWrapper<SysDictionary>().lambda()
.orderByAsc(SysDictionary::getSort).orderByAsc(SysDictionary::getCreatedAt));
.orderByAsc(SysDictionary::getSort).orderByAsc(SysDictionary::getCreateDate));
Map<String, List<SysDictionary>> sysDictionaryMap = sysDictionaryList.stream().collect(Collectors.groupingBy(item -> item.getCategoryId()));
for (SysDictionaryCategory sysDictionaryCategory : sysDictionaryCategoryList) {
......@@ -55,13 +55,13 @@ public class SysDictionaryCategoryServiceImpl extends ServiceImpl<SysDictionaryC
List<SysDictionaryCategory> sysDictionaryCategoryList = list(new QueryWrapper<SysDictionaryCategory>().lambda()
.like(SysDictionaryCategory::getCode, prefix)
.orderByAsc(SysDictionaryCategory::getCreatedAt));
.orderByAsc(SysDictionaryCategory::getCreateDate));
List<String> idList = StreamUtil.mapId(sysDictionaryCategoryList, SysDictionaryCategory::getId);
List<SysDictionary> sysDictionaryList = sysDictionaryService.list(new QueryWrapper<SysDictionary>().lambda()
.in(SysDictionary::getCategoryId, idList)
.orderByAsc(SysDictionary::getSort).orderByAsc(SysDictionary::getCreatedAt));
.orderByAsc(SysDictionary::getSort).orderByAsc(SysDictionary::getCreateDate));
Map<String, List<SysDictionary>> sysDictionaryMap = sysDictionaryList.stream().collect(Collectors.groupingBy(item -> item.getCategoryId()));
for (SysDictionaryCategory sysDictionaryCategory : sysDictionaryCategoryList) {
......@@ -124,7 +124,7 @@ public class SysDictionaryCategoryServiceImpl extends ServiceImpl<SysDictionaryC
public List<SysDictionaryCategory> list(SysDictionaryCategory sysDictionaryCategory) {
List<SysDictionaryCategory> configCategoryList = list(new QueryWrapper<SysDictionaryCategory>().lambda()
.like(StringUtils.isNotBlank(sysDictionaryCategory.getName()), SysDictionaryCategory::getName, sysDictionaryCategory.getName())
.orderByAsc(SysDictionaryCategory::getCreatedAt)
.orderByAsc(SysDictionaryCategory::getCreateDate)
);
return configCategoryList;
}
......
......@@ -15,7 +15,7 @@ public class PlatUserUtil {
return BeanDtoVoUtils.convert(TokenUtil.getPlatUserDetail(), PlatUserVO.class);
}
public static UserLoginVO getUserVODetail() {
public static SaasUserLoginVO getUserVODetail() {
TokenUtil.platGetToken();
return TokenUtil.getPlatUserDetail();
}
......
......@@ -2,7 +2,7 @@ package com.makeit.utils.user;
import com.makeit.module.admin.saas.PlatMenuDTOVO;
import com.makeit.module.admin.saas.PlatRoleDTOVO;
import com.makeit.module.admin.saas.SaasRoleDTOVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -10,7 +10,7 @@ import java.io.Serializable;
import java.util.List;
@Data
public class UserLoginVO implements Serializable {
public class SaasUserLoginVO implements Serializable {
@ApiModelProperty("id")
private String id;
......@@ -19,7 +19,7 @@ public class UserLoginVO implements Serializable {
private String account;
@ApiModelProperty("姓名")
private String name;
private String username;
// @ApiModelProperty("用户名")
// private String username;
......@@ -28,7 +28,7 @@ public class UserLoginVO implements Serializable {
private String token;
@ApiModelProperty("角色列表")
private List<PlatRoleDTOVO> roleList;
private List<SaasRoleDTOVO> roleList;
@ApiModelProperty("菜单树形列表")
private List<PlatMenuDTOVO> menuList;
......
......@@ -13,7 +13,7 @@ public class ThreadLocalUserUtil {
private static final ThreadLocal<String> THREAD_LOCAL_TNT_TOKEN = new BizThreadLocal<>();
private static final ThreadLocal<String> THREAD_LOCAL_WECHAT_TOKEN = new BizThreadLocal<>();
private static final ThreadLocal<UserLoginVO> THREAD_LOCAL_TNT_USER = new BizThreadLocal<>();
private static final ThreadLocal<SaasUserLoginVO> THREAD_LOCAL_TNT_USER = new BizThreadLocal<>();
private static final ThreadLocal<WechatUserInfo> THREAD_LOCAL_WECHAT_USER = new BizThreadLocal<>();
private static final ThreadLocal<SysUserRoleMenuRedisVO> THREAD_LOCAL_TNT_USER_ROLE_MENU = new BizThreadLocal<>();
......@@ -68,6 +68,11 @@ public class ThreadLocalUserUtil {
}
public static SaasUserLoginVO getSaasUser(){
SaasUserLoginVO saasUserDetail = TokenUtil.getSaasUserDetail();
return saasUserDetail;
}
public static WechatUserInfo getWechatUser() {
WechatUserInfo wechatUserInfo = THREAD_LOCAL_WECHAT_USER.get();
if (wechatUserInfo == null) {
......
......@@ -37,10 +37,10 @@ public class TokenUtil {
return getToken(RedisConst.PLATFORM_TOKEN_PREFIX, RequestUtil.getHeader(HeaderConst.PLATFORM_TOKEN));
}
public static UserLoginVO getPlatUserDetail() {
public static SaasUserLoginVO getPlatUserDetail() {
String token = RequestUtil.getHeader(HeaderConst.PLATFORM_TOKEN);
if (StringUtils.isNotBlank(token)) {
UserLoginVO userLoginVO = RedisUtil.get(RedisConst.PLATFORM_TOKEN_PREFIX + token);
SaasUserLoginVO userLoginVO = RedisUtil.get(RedisConst.PLATFORM_TOKEN_PREFIX + token);
return userLoginVO;
}
return null;
......@@ -66,9 +66,9 @@ public class TokenUtil {
RedisTemplateUtil.expire(prefix + token, RedisConst.PLATFORM_EXPIRE_MINUTES, TimeUnit.MINUTES);
}
public static UserLoginVO getTntUserDetail(String token) {
public static SaasUserLoginVO getTntUserDetail(String token) {
if (StringUtils.isNotBlank(token)) {
UserLoginVO userLoginVO = RedisTemplateUtil.get(RedisConst.TOKEN_PREFIX + token, UserLoginVO.class);
SaasUserLoginVO userLoginVO = RedisTemplateUtil.get(RedisConst.TOKEN_PREFIX + token, SaasUserLoginVO.class);
return userLoginVO;
}
return null;
......@@ -217,6 +217,15 @@ public class TokenUtil {
return null;
}
public static SaasUserLoginVO getSaasUserDetail() {
String token = RequestUtil.getHeader(HeaderConst.PLATFORM_TOKEN);
if (StringUtils.isNotBlank(token)) {
SaasUserLoginVO userLoginVO = RedisTemplateUtil.get(RedisConst.PLATFORM_TOKEN_PREFIX + token, SaasUserLoginVO.class);
return userLoginVO;
}
return null;
}
public static void setMobileCode(String phone, String token, Integer t, int minutes) {
RedisTemplateUtil.set(RedisConst.TOKEN_MOBILE_CODE_PREFIX + ":" + phone + ":" + token, t, minutes);
......
......@@ -3,7 +3,7 @@ package com.makeit.utils.user.common;
import com.makeit.enums.HeaderConst;
import com.makeit.utils.user.ThreadLocalUserUtil;
import com.makeit.utils.user.TokenUtil;
import com.makeit.utils.user.UserLoginVO;
import com.makeit.utils.user.SaasUserLoginVO;
import com.makeit.utils.user.tenant.SysUserLoginVO;
import com.makeit.utils.user.wechat.WechatUserInfo;
import org.apache.commons.lang3.StringUtils;
......@@ -13,6 +13,7 @@ public class CommonUserUtil {
public static CommonUserVO getUser() {
SysUserLoginVO sysUserLoginVO = ThreadLocalUserUtil.getTntUser();
if (sysUserLoginVO != null) {
return new CommonUserVO(sysUserLoginVO.getId(), sysUserLoginVO.getName());
......@@ -23,6 +24,11 @@ public class CommonUserUtil {
return new CommonUserVO(wechatUserInfo.getId(), wechatUserInfo.getName());
}
SaasUserLoginVO saasUser = ThreadLocalUserUtil.getSaasUser();
if(saasUser != null){
return new CommonUserVO(saasUser.getId(),saasUser.getUsername());
}
return null;
}
......@@ -39,9 +45,9 @@ public class CommonUserUtil {
String wechatToken = httpHeaders.getFirst(HeaderConst.WECHAT_TOKEN);
if (StringUtils.isNotBlank(tenantToken)) {
UserLoginVO sysUserLoginVO = TokenUtil.getTntUserDetail(tenantToken);
SaasUserLoginVO sysUserLoginVO = TokenUtil.getTntUserDetail(tenantToken);
if (sysUserLoginVO != null) {
return new CommonUserVO(sysUserLoginVO.getId(), sysUserLoginVO.getName());
return new CommonUserVO(sysUserLoginVO.getId(), sysUserLoginVO.getUsername());
}
}
......
package com.makeit.service.saas;
import com.baomidou.mybatisplus.extension.service.IService;
import com.makeit.common.dto.StatusDTO;
import com.makeit.entity.saas.SaasRole;
import com.makeit.module.admin.saas.SaasRoleDTOVO;
import com.makeit.module.admin.saas.PlatRoleMenuDTO;
import com.makeit.module.admin.saas.PlatUserRoleDTO;
import java.util.List;
/**
* @author lixl
......@@ -10,4 +16,22 @@ import com.makeit.entity.saas.SaasRole;
*/
public interface SaasRoleService extends IService<SaasRole> {
List<SaasRoleDTOVO> list(SaasRoleDTOVO dto);
void add(SaasRoleDTOVO dto);
void edit(SaasRoleDTOVO dto);
SaasRoleDTOVO view(String id);
void del(String id);
void changeStatus(StatusDTO dto);
void assignUserList(List<PlatUserRoleDTO> userRoleDTOList);
void removeAssignUserList(List<PlatUserRoleDTO> userRoleDTOList);
void assignMenuList(PlatRoleMenuDTO roleMenuDTO);
}
......@@ -5,10 +5,10 @@ import com.makeit.common.dto.LoginDTO;
import com.makeit.common.dto.StatusDTO;
import com.makeit.common.page.PageReqDTO;
import com.makeit.common.page.PageVO;
import com.makeit.module.admin.saas.PlatUserDTOVO;
import com.makeit.module.admin.saas.SaasUserDTOVO;
import com.makeit.module.admin.saas.PlatUserQueryDTO;
import com.makeit.entity.saas.SaasUser;
import com.makeit.utils.user.UserLoginVO;
import com.makeit.utils.user.SaasUserLoginVO;
import java.util.List;
......@@ -18,31 +18,31 @@ import java.util.List;
* @createDate 2023-08-29 11:14:07
*/
public interface SaasUserService extends IService<SaasUser> {
PageVO<PlatUserDTOVO> page(PageReqDTO<PlatUserQueryDTO> page);
PageVO<SaasUserDTOVO> page(PageReqDTO<PlatUserQueryDTO> page);
PageVO<PlatUserDTOVO> pageNoSuperAdmin(PageReqDTO<PlatUserQueryDTO> page);
PageVO<SaasUserDTOVO> pageNoSuperAdmin(PageReqDTO<PlatUserQueryDTO> page);
List<PlatUserDTOVO> list(PlatUserQueryDTO dto);
List<SaasUserDTOVO> list(PlatUserQueryDTO dto);
List<PlatUserDTOVO> listNoSuperAdmin(PlatUserQueryDTO dto);
List<SaasUserDTOVO> listNoSuperAdmin(PlatUserQueryDTO dto);
void add(PlatUserDTOVO dto);
void add(SaasUserDTOVO dto);
void edit(PlatUserDTOVO dto);
void edit(SaasUserDTOVO dto);
void changePassword(PlatUserDTOVO dto);
void changePassword(SaasUserDTOVO dto);
PlatUserDTOVO view(String id);
SaasUserDTOVO view(String id);
void del(String id);
void changeStatus(StatusDTO dto);
UserLoginVO login(LoginDTO loginDTO);
SaasUserLoginVO login(LoginDTO loginDTO);
UserLoginVO getRoleAndMenuList();
SaasUserLoginVO getRoleAndMenuList();
UserLoginVO getUserVO();
SaasUserLoginVO getUserVO();
void logout();
......
......@@ -84,7 +84,7 @@ public class SaasMenuServiceImpl extends ServiceImpl<SaasMenuMapper, SaasMenu> i
.in(StringUtils.isNotBlank(dto.getRoleId()), SaasMenu::getId, menuIdList)
//.orderByAsc(PlatMenu::getParentId)
.orderByAsc(SaasMenu::getSort)
.orderByAsc(SaasMenu::getCreatedAt)
.orderByAsc(SaasMenu::getCreateDate)
);
return BeanDtoVoUtils.listVo(platMenuList, PlatMenuDTOVO.class);
......@@ -178,7 +178,7 @@ public class SaasMenuServiceImpl extends ServiceImpl<SaasMenuMapper, SaasMenu> i
List<SaasMenu> exitList = list(new QueryWrapper<SaasMenu>().lambda()
.isNotNull(SaasMenu::getCode)
.in(SaasMenu::getCategory, SysEnum.MenuTypeEnum.MENU.getValue(), SysEnum.MenuTypeEnum.BUTTON.getValue())
.orderByDesc(SaasMenu::getCreatedAt)
.orderByDesc(SaasMenu::getCreateDate)
);
Map<String, SaasMenu> exitCodeMap = StreamUtil.toMapDep(exitList, SaasMenu::getCode);
......
package com.makeit.service.saas.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.makeit.common.dto.StatusDTO;
import com.makeit.entity.saas.SaasRole;
import com.makeit.entity.saas.SaasRoleMenu;
import com.makeit.entity.saas.SaasUserRole;
import com.makeit.enums.CodeMessageEnum;
import com.makeit.enums.CommonEnum;
import com.makeit.exception.BusinessException;
import com.makeit.mapper.saas.SaasRoleMapper;
import com.makeit.module.admin.saas.SaasRoleDTOVO;
import com.makeit.module.admin.saas.PlatRoleMenuDTO;
import com.makeit.module.admin.saas.PlatUserRoleDTO;
import com.makeit.service.saas.SaasRoleMenuService;
import com.makeit.service.saas.SaasRoleService;
import com.makeit.service.saas.SaasUserRoleService;
import com.makeit.utils.data.convert.BeanDtoVoUtils;
import com.makeit.utils.data.convert.StreamUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* @author lixl
......@@ -15,4 +36,120 @@ import org.springframework.stereotype.Service;
public class SaasRoleServiceImpl extends ServiceImpl<SaasRoleMapper, SaasRole>
implements SaasRoleService{
@Autowired
private SaasUserRoleService saasUserRoleService;
@Autowired
private SaasRoleMenuService saasRoleMenuService;
@Override
public List<SaasRoleDTOVO> list(SaasRoleDTOVO dto) {
List<SaasRole> platRoleList = list(new QueryWrapper<SaasRole>().lambda()
.like(StringUtils.isNotBlank(dto.getName()), SaasRole::getName, dto.getName())
.like(StringUtils.isNotBlank(dto.getCode()), SaasRole::getCode, dto.getCode())
.and(StringUtils.isNotBlank(dto.getKeyword()), qw -> {
qw.like(StringUtils.isNotBlank(dto.getKeyword()), SaasRole::getName, dto.getKeyword())
.or()
.like(StringUtils.isNotBlank(dto.getKeyword()), SaasRole::getCode, dto.getKeyword());
})
.eq(StringUtils.isNotBlank(dto.getStatus()), SaasRole::getStatus, dto.getStatus())
.orderByDesc(SaasRole::getCreateDate)
);
return BeanDtoVoUtils.listVo(platRoleList, SaasRoleDTOVO.class);
}
private void check(SaasRoleDTOVO dto) {
SaasRole old = getOne(new QueryWrapper<SaasRole>().lambda()
.eq(SaasRole::getName, dto.getName()));
if (old != null && !old.getId().equals(dto.getId())) {
throw new BusinessException(CodeMessageEnum.SYSTEM_ERROR_NAME_DUPLICATE);
}
old = getOne(new QueryWrapper<SaasRole>().lambda()
.eq(SaasRole::getCode, dto.getCode()));
if (old != null && !old.getId().equals(dto.getId())) {
throw new BusinessException(CodeMessageEnum.SYSTEM_ERROR_CODE_DUPLICATE);
}
}
@Transactional
@Override
public void add(SaasRoleDTOVO dto) {
check(dto);
save(BeanDtoVoUtils.convert(dto, SaasRole.class));
}
@Transactional
@Override
public void edit(SaasRoleDTOVO dto) {
check(dto);
updateById(BeanDtoVoUtils.convert(dto, SaasRole.class));
}
@Override
public SaasRoleDTOVO view(String id) {
return BeanDtoVoUtils.convert(getById(id), SaasRoleDTOVO.class);
}
@Transactional
@Override
public void del(String id) {
removeById(id);
}
@Transactional
@Override
public void changeStatus(StatusDTO dto) {
if (Arrays.stream(CommonEnum.values()).noneMatch(e -> e.getValue().equals(dto.getStatus()))) {
throw new BusinessException(CodeMessageEnum.SYSTEM_ERROR);
}
SaasRole role = getById(dto.getId());
if (role.getStatus().equals(dto.getStatus())) {
throw new BusinessException(CodeMessageEnum.SYSTEM_ERROR);
}
role.setStatus(dto.getStatus());
updateById(role);
}
@Transactional
@Override
public void assignUserList(List<PlatUserRoleDTO> userRoleDTOList) {
removeAssignUserList(userRoleDTOList);
List<SaasUserRole> userRoleList = BeanDtoVoUtils.listVo(userRoleDTOList, SaasUserRole.class);
saasUserRoleService.saveBatch(userRoleList);
}
@Transactional
@Override
public void removeAssignUserList(List<PlatUserRoleDTO> userRoleDTOList) {
Map<String, List<PlatUserRoleDTO>> roleUserMap = StreamUtil.groupBy(userRoleDTOList, PlatUserRoleDTO::getRoleId);
roleUserMap.forEach((k, v) -> {
List<String> userIdList = StreamUtil.map(v, PlatUserRoleDTO::getUserId);
userIdList.add(-1 + "");
saasUserRoleService.remove(new QueryWrapper<SaasUserRole>().lambda()
.eq(SaasUserRole::getRoleId, k)
.in(SaasUserRole::getUserId, userIdList));
});
}
@Transactional
@Override
public void assignMenuList(PlatRoleMenuDTO roleMenuDTO) {
//removeAssignMenuList(roleMenuDTOList);
saasRoleMenuService.remove(new QueryWrapper<SaasRoleMenu>().lambda().eq(SaasRoleMenu::getRoleId, roleMenuDTO.getRoleId()));
List<SaasRoleMenu> roleMenuList = StreamUtil.map(roleMenuDTO.getMenuIdList(), e -> {
SaasRoleMenu platRoleMenu = new SaasRoleMenu();
platRoleMenu.setRoleId(roleMenuDTO.getRoleId());
platRoleMenu.setMenuId(e);
return platRoleMenu;
});
saasRoleMenuService.saveBatch(roleMenuList);
}
}
......@@ -22,8 +22,8 @@ import com.makeit.enums.id.IdConst;
import com.makeit.exception.BusinessException;
import com.makeit.mapper.saas.SaasUserMapper;
import com.makeit.module.admin.saas.PlatMenuDTOVO;
import com.makeit.module.admin.saas.PlatRoleDTOVO;
import com.makeit.module.admin.saas.PlatUserDTOVO;
import com.makeit.module.admin.saas.SaasRoleDTOVO;
import com.makeit.module.admin.saas.SaasUserDTOVO;
import com.makeit.module.admin.saas.PlatUserQueryDTO;
import com.makeit.module.admin.saas.SaasUserRoleMenuRedisVO;
import com.makeit.service.saas.SaasMenuService;
......@@ -37,7 +37,7 @@ import com.makeit.utils.data.convert.PageUtil;
import com.makeit.utils.data.convert.StreamUtil;
import com.makeit.utils.data.id.IdGen;
import com.makeit.utils.user.PasswordUtils;
import com.makeit.utils.user.UserLoginVO;
import com.makeit.utils.user.SaasUserLoginVO;
import com.makeit.utils.user.PlatUserUtil;
import com.makeit.utils.user.PlatUserVO;
import com.makeit.utils.user.TokenUtil;
......@@ -85,7 +85,7 @@ implements SaasUserService{
//还是mybatis plus notin 查询
//现在是重复添加中间表 没有效果
public PageVO<PlatUserDTOVO> pageInternal(PageReqDTO<PlatUserQueryDTO> page, Consumer<LambdaQueryWrapper<SaasUser>> consumer) {
public PageVO<SaasUserDTOVO> pageInternal(PageReqDTO<PlatUserQueryDTO> page, Consumer<LambdaQueryWrapper<SaasUser>> consumer) {
PlatUserQueryDTO dto = page.getData();
......@@ -126,21 +126,21 @@ implements SaasUserService{
Page<SaasUser> pageList = page(p, lambdaQueryWrapper);
return PageUtil.toPageVO(BeanDtoVoUtils.listVo(pageList.getRecords(), PlatUserDTOVO.class), pageList);
return PageUtil.toPageVO(BeanDtoVoUtils.listVo(pageList.getRecords(), SaasUserDTOVO.class), pageList);
}
@Override
public PageVO<PlatUserDTOVO> page(PageReqDTO<PlatUserQueryDTO> page) {
public PageVO<SaasUserDTOVO> page(PageReqDTO<PlatUserQueryDTO> page) {
return pageInternal(page, null);
}
@Override
public PageVO<PlatUserDTOVO> pageNoSuperAdmin(PageReqDTO<PlatUserQueryDTO> page) {
public PageVO<SaasUserDTOVO> pageNoSuperAdmin(PageReqDTO<PlatUserQueryDTO> page) {
return pageInternal(page, qw -> qw.ne(SaasUser::getId, IdConst.SUPER_ADMIN_ID));
}
@Override
public List<PlatUserDTOVO> list(PlatUserQueryDTO dto) {
public List<SaasUserDTOVO> list(PlatUserQueryDTO dto) {
PageReqDTO<PlatUserQueryDTO> page = new PageReqDTO<>();
page.setPage(1);
page.setLimit(-1);
......@@ -149,7 +149,7 @@ implements SaasUserService{
}
@Override
public List<PlatUserDTOVO> listNoSuperAdmin(PlatUserQueryDTO dto) {
public List<SaasUserDTOVO> listNoSuperAdmin(PlatUserQueryDTO dto) {
PageReqDTO<PlatUserQueryDTO> page = new PageReqDTO<>();
page.setPage(1);
page.setLimit(-1);
......@@ -157,7 +157,7 @@ implements SaasUserService{
return pageInternal(page, qw -> qw.ne(SaasUser::getId, IdConst.SUPER_ADMIN_ID)).getList();
}
private void check(PlatUserDTOVO dto) {
private void check(SaasUserDTOVO dto) {
List<SaasUser> userList = list(
new QueryWrapper<SaasUser>().lambda()
.eq(SaasUser::getAccount, dto.getAccount())
......@@ -182,7 +182,7 @@ implements SaasUserService{
}
private void setRoleList(PlatUserDTOVO dto) {
private void setRoleList(SaasUserDTOVO dto) {
saasUserRoleService.remove(new QueryWrapper<SaasUserRole>().lambda()
.eq(SaasUserRole::getUserId, dto.getId()));
if (dto.getRoleList() != null) {
......@@ -198,7 +198,7 @@ implements SaasUserService{
}
}
private void getRoleList(PlatUserDTOVO userVO) {
private void getRoleList(SaasUserDTOVO userVO) {
List<SaasUserRole> userRoleList = saasUserRoleService.list(new QueryWrapper<SaasUserRole>().lambda()
.eq(SaasUserRole::getUserId, userVO.getId())
.orderByAsc(SaasUserRole::getId)
......@@ -217,7 +217,7 @@ implements SaasUserService{
newList.add(role);
}
});
userVO.setRoleList(BeanDtoVoUtils.listVo(new ArrayList<>(newList), PlatRoleDTOVO.class));
userVO.setRoleList(BeanDtoVoUtils.listVo(new ArrayList<>(newList), SaasRoleDTOVO.class));
}
private void setPassword(SaasUser user) {
......@@ -229,7 +229,7 @@ implements SaasUserService{
@Transactional
@Override
public void add(PlatUserDTOVO dto) {
public void add(SaasUserDTOVO dto) {
check(dto);
SaasUser user = BeanDtoVoUtils.convert(dto, SaasUser.class);
......@@ -245,7 +245,7 @@ implements SaasUserService{
@Transactional
@Override
public void edit(PlatUserDTOVO dto) {
public void edit(SaasUserDTOVO dto) {
dto.setAccount(null);
superCantEdit(dto);
check(dto);
......@@ -260,7 +260,7 @@ implements SaasUserService{
@Transactional
@Override
public void changePassword(PlatUserDTOVO dto) {
public void changePassword(SaasUserDTOVO dto) {
SaasUser user = getById(dto.getId());
user.setPassword(dto.getPassword());
setPassword(user);
......@@ -268,8 +268,8 @@ implements SaasUserService{
}
@Override
public PlatUserDTOVO view(String id) {
PlatUserDTOVO userVO = BeanDtoVoUtils.convert(getById(id), PlatUserDTOVO.class);
public SaasUserDTOVO view(String id) {
SaasUserDTOVO userVO = BeanDtoVoUtils.convert(getById(id), SaasUserDTOVO.class);
getRoleList(userVO);
return userVO;
}
......@@ -307,7 +307,7 @@ implements SaasUserService{
}
}
private void superCantEdit(PlatUserDTOVO dto) {
private void superCantEdit(SaasUserDTOVO dto) {
if (IdConst.SUPER_ADMIN_ID.equals(dto.getId())) {
if (dto.getRoleList() != null && !dto.getRoleList().isEmpty()) {
......@@ -325,7 +325,7 @@ implements SaasUserService{
}
}
private void fillMenuList(List<SaasMenu> menuList, UserLoginVO userLoginVO) {
private void fillMenuList(List<SaasMenu> menuList, SaasUserLoginVO userLoginVO) {
List<SaasMenu> buttonList = StreamUtil.filter(menuList, e -> SysEnum.MenuTypeEnum.MENU.getValue().equals(e.getCategory()) || SysEnum.MenuTypeEnum.BUTTON.getValue().equals(e.getCategory()));
List<SaasMenu> nonButtonList = StreamUtil.filter(menuList, e -> SysEnum.MenuTypeEnum.CATALOGUE.getValue().equals(e.getCategory()) || SysEnum.MenuTypeEnum.MENU.getValue().equals(e.getCategory()));
List<PlatMenuDTOVO> menuVOList = saasMenuService.tree(BeanDtoVoUtils.listVo(nonButtonList, PlatMenuDTOVO.class));
......@@ -334,7 +334,7 @@ implements SaasUserService{
userLoginVO.setMenuList(menuVOList);
}
private void supperRoleMenuList(UserLoginVO userLoginVO) {
private void supperRoleMenuList(SaasUserLoginVO userLoginVO) {
List<SaasMenu> menuList = saasMenuService.list(new QueryWrapper<SaasMenu>().lambda()
.eq(SaasMenu::getStatus, CommonEnum.YES.getValue())
......@@ -343,11 +343,11 @@ implements SaasUserService{
fillMenuList(menuList, userLoginVO);
}
private void setRoleMenuToRedis(UserLoginVO userLoginVO) {
private void setRoleMenuToRedis(SaasUserLoginVO userLoginVO) {
SaasUserRoleMenuRedisVO platUserRoleMenuRedisVO = new SaasUserRoleMenuRedisVO();
platUserRoleMenuRedisVO.setId(userLoginVO.getId());
if (userLoginVO.getRoleList() != null) {
platUserRoleMenuRedisVO.setRoleCodeList(StreamUtil.map(userLoginVO.getRoleList(), PlatRoleDTOVO::getCode));
platUserRoleMenuRedisVO.setRoleCodeList(StreamUtil.map(userLoginVO.getRoleList(), SaasRoleDTOVO::getCode));
}
if (userLoginVO.getButtonList() != null) {
platUserRoleMenuRedisVO.setButtonCodeList(StreamUtil.map(userLoginVO.getButtonList(), PlatMenuDTOVO::getCode));
......@@ -356,7 +356,7 @@ implements SaasUserService{
}
private UserLoginVO getRoleAndMenuList(UserLoginVO userLoginVO) {
private SaasUserLoginVO getRoleAndMenuList(SaasUserLoginVO userLoginVO) {
//TODO 用join做
//TODO 只返回必要字段 菜单和角色
......@@ -390,7 +390,7 @@ implements SaasUserService{
);
userLoginVO.setRoleList(BeanDtoVoUtils.listVo(roleList, PlatRoleDTOVO.class));
userLoginVO.setRoleList(BeanDtoVoUtils.listVo(roleList, SaasRoleDTOVO.class));
fillMenuList(menuList, userLoginVO);
......@@ -400,9 +400,9 @@ implements SaasUserService{
}
@Override
public UserLoginVO getRoleAndMenuList() {
public SaasUserLoginVO getRoleAndMenuList() {
PlatUserVO platUser = PlatUserUtil.getUserVO();
UserLoginVO platUserLoginVO = new UserLoginVO();
SaasUserLoginVO platUserLoginVO = new SaasUserLoginVO();
platUserLoginVO.setId(platUser.getId());
getRoleAndMenuList(platUserLoginVO);
return platUserLoginVO;
......@@ -410,12 +410,12 @@ implements SaasUserService{
@Override
public UserLoginVO getUserVO() {
public SaasUserLoginVO getUserVO() {
return PlatUserUtil.getUserVODetail();
}
@Override
public UserLoginVO login(LoginDTO loginDTO) {
public SaasUserLoginVO login(LoginDTO loginDTO) {
if (StringUtils.isBlank(loginDTO.getAccount())) {
throw new BusinessException(CodeMessageEnum.SYSTEM_ERROR);
}
......@@ -439,7 +439,7 @@ implements SaasUserService{
throw new BusinessException(CodeMessageEnum.SYSTEM_ERROR_AUTH_USER_PASSWORD);
}
UserLoginVO userLoginVO = BeanDtoVoUtils.convert(platUser, UserLoginVO.class);
SaasUserLoginVO userLoginVO = BeanDtoVoUtils.convert(platUser, SaasUserLoginVO.class);
String token = IdGen.getUUID();
userLoginVO.setToken(token);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment