perf:代码结构调整

This commit is contained in:
曾文豪
2024-08-08 16:16:21 +08:00
parent b34d9d6242
commit 8dc8709499
23 changed files with 792 additions and 506 deletions

View File

@@ -0,0 +1,104 @@
package com.tiesheng.role.controller;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.tiesheng.role.pojos.dao.CoreRoleAuthority;
import com.tiesheng.role.pojos.dao.CoreRoleServer;
import com.tiesheng.role.pojos.dto.OwnerMenuDTO;
import com.tiesheng.role.pojos.dto.OwnerPointDTO;
import com.tiesheng.role.pojos.vo.ServiceMenuVO;
import com.tiesheng.role.service.CoreRoleService;
import com.tiesheng.util.pojos.ApiResp;
import com.tiesheng.util.pojos.TokenBean;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.validation.Valid;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@RestController
@RequestMapping("/comm/role")
public class CommRoleController {
@Resource
CoreRoleService coreRoleService;
/**
* 获取自己拥有的服务
*
* @return
*/
@GetMapping("/owner/server")
public ApiResp<List<CoreRoleServer>> ownerServer(TokenBean tokenBean) {
List<CoreRoleAuthority> allOwnerMenus = coreRoleService.getOwnerAuthorityLeafList(tokenBean.getId(), tokenBean.getRoleId());
List<String> list = allOwnerMenus.stream().map(CoreRoleAuthority::getService).collect(Collectors.toList());
List<CoreRoleServer> roleServerList = new ArrayList<>();
if (CollUtil.isNotEmpty(list)) {
roleServerList = coreRoleService.getServerMapper().selectList(new QueryWrapper<CoreRoleServer>()
.in("id", list)
.eq(CoreRoleServer.IS_DELETED, 0)
.eq("is_open", 1)
);
}
return ApiResp.respOK(roleServerList);
}
/**
* 获取自己拥有的菜单
*
* @return
*/
@GetMapping("/owner/menu")
public ApiResp<List<ServiceMenuVO>> ownerMenu(@Valid OwnerMenuDTO dto, TokenBean tokenBean) {
List<ServiceMenuVO> ownerMenus = coreRoleService.getOwnerMenus(tokenBean.getId(), tokenBean.getRoleId(), dto);
return ApiResp.respOK(ownerMenus);
}
/**
* 获取自己拥有的功能点
*
* @return
*/
@GetMapping("/owner/point")
public ApiResp<List<CoreRoleAuthority>> ownerPoint(@Valid OwnerPointDTO dto, TokenBean tokenBean) {
List<CoreRoleAuthority> allOwnerMenus = coreRoleService.getOwnerAuthorityLeafList(tokenBean.getId(), tokenBean.getRoleId());
String parentId;
if (StrUtil.isNotEmpty(dto.getParentNo())) {
CoreRoleAuthority selected = coreRoleService.getAuthorityMapper().selectOne(new QueryWrapper<CoreRoleAuthority>()
.eq("no", dto.getParentNo())
.eq("is_deleted", 0)
.last("limit 1")
);
parentId = selected == null ? "" : selected.getId();
} else {
parentId = "";
}
List<CoreRoleAuthority> collect = allOwnerMenus.stream()
.filter(it -> Objects.equals(it.getType(), "point"))
.filter(it -> it.getService().equals(dto.getService()))
.filter(it -> it.getPlatform().equals(dto.getPlatform()))
.filter(it -> {
if (StrUtil.isNotEmpty(parentId)) {
return parentId.equals(it.getParent());
}
return true;
}).collect(Collectors.toList());
return ApiResp.respOK(collect);
}
}

View File

@@ -1,322 +0,0 @@
package com.tiesheng.role.controller;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.tiesheng.annotation.role.RoleAuthority;
import com.tiesheng.role.pojos.dao.*;
import com.tiesheng.role.pojos.dto.GroupRxUpdateDTO;
import com.tiesheng.role.pojos.dto.MenuListDTO;
import com.tiesheng.role.pojos.dto.OwnerMenuDTO;
import com.tiesheng.role.pojos.dto.OwnerPointDTO;
import com.tiesheng.role.pojos.vo.GroupTypeDTO;
import com.tiesheng.role.pojos.vo.RoleUserPageVO;
import com.tiesheng.role.pojos.vo.ServiceMenuVO;
import com.tiesheng.role.service.CoreRoleService;
import com.tiesheng.util.exception.ApiException;
import com.tiesheng.util.pojos.ApiResp;
import com.tiesheng.util.pojos.IdDTO;
import com.tiesheng.util.pojos.PageDTO;
import com.tiesheng.util.pojos.TokenBean;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.Valid;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@RestController
@RequestMapping("/role")
@RoleAuthority(value = "role", group = "role")
public class RoleController {
@Resource
CoreRoleService coreRoleService;
/**
* 角色列表
*
* @return
*/
@GetMapping("/group/list")
@RoleAuthority(value = "groupList")
public ApiResp<List<CoreRoleGroup>> groupList(@Valid GroupTypeDTO dto) {
return ApiResp.respOK(coreRoleService.list(
new QueryWrapper<CoreRoleGroup>()
.eq("is_deleted", 0)
.eq("type", dto.getType())
.orderByAsc("sort")
));
}
/**
* 角色编辑
*
* @param roleGroup
* @return
*/
@PostMapping("/group/update")
@RoleAuthority(value = "groupUpdate")
public ApiResp<String> groupUpdate(@RequestBody CoreRoleGroup roleGroup) {
if (StrUtil.isNotEmpty(roleGroup.getId())) {
roleGroup.setType(null);
roleGroup.setIsSystem(null);
}
coreRoleService.saveOrUpdate(roleGroup);
return ApiResp.respOK("");
}
/**
* 角色-删除
*
* @return
*/
@PostMapping("/group/deleted")
@RoleAuthority(value = "groupDeleted")
public ApiResp<String> groupDeleted(@RequestBody @Valid IdDTO dto) {
CoreRoleGroup byId = coreRoleService.getById(dto.getId());
if (byId == null || byId.getIsDeleted() != 0) {
throw new ApiException("角色不存在或已删除");
}
if (byId.getIsSystem() == 1) {
throw new ApiException(StrUtil.format("该{}无法删除",
Objects.equals(byId.getType(), "role") ? "角色" : "职位"));
}
CoreRoleGroup coreServiceMenu = new CoreRoleGroup();
coreServiceMenu.setId(dto.getId());
coreServiceMenu.setIsDeleted(1);
coreRoleService.updateById(coreServiceMenu);
return ApiResp.respOK("");
}
/**
* 获取角色的权限
*
* @return
*/
@GetMapping("/group/rx/list")
public ApiResp<List<CoreRoleGroupRx>> groupRxList(@Valid IdDTO dto) {
List<CoreRoleGroupRx> list = coreRoleService.getGroupRxMapper().selectList(new QueryWrapper<CoreRoleGroupRx>()
.eq(CoreRoleGroupRx.IS_DELETED, 0)
.eq("group_id", dto.getId())
);
return ApiResp.respOK(list);
}
/**
* 角色的权限编辑
*
* @return
*/
@PostMapping("/group/rx/update")
@RoleAuthority(value = "groupRxUpdate")
public ApiResp<String> groupRxUpdate(@RequestBody @Valid GroupRxUpdateDTO dto) {
coreRoleService.updateGroupRx(dto);
return ApiResp.respOK("");
}
/**
* 授权列表
*
* @return
*/
@GetMapping("/user/page")
@RoleAuthority(value = "userPage")
public ApiResp<List<RoleUserPageVO>> userPage(PageDTO dto) {
QueryWrapper<CoreRoleUser> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("cru.is_deleted", 0);
dto.likeColumns(queryWrapper, "cru.ext1", "cru.ext2", "cru.ext3");
queryWrapper.orderByAsc("cru.user_id");
Page<RoleUserPageVO> page = dto.pageObj();
coreRoleService.getUserMapper().page(page, queryWrapper);
return ApiResp.respOK(page.getRecords(), page.getTotal());
}
/**
* 授权调整
*
* @return
*/
@PostMapping("/user/update")
@RoleAuthority(value = "userUpdate")
public ApiResp<String> userUpdate(@RequestBody CoreRoleUser roleUser) {
coreRoleService.roleUserUpdate(roleUser);
return ApiResp.respOK("");
}
/**
* 授权-删除
*
* @return
*/
@PostMapping("/user/deleted")
@RoleAuthority(value = "userDeleted")
public ApiResp<String> userDeleted(@RequestBody @Valid IdDTO dto) {
coreRoleService.roleUserDeleted(dto.getId());
return ApiResp.respOK("");
}
/**
* 获取服务列表
*
* @return
*/
@GetMapping("/server/list")
@RoleAuthority(value = "serverList")
public ApiResp<List<CoreRoleServer>> list() {
return ApiResp.respOK(coreRoleService.getServerMapper().selectList(new QueryWrapper<CoreRoleServer>()
.eq(CoreRoleServer.IS_DELETED, 0)
.eq("is_open", 1)
));
}
/**
* 修改服务
*
* @param coreService
* @return
*/
@PostMapping("/server/update")
@RoleAuthority(value = "serverUpdate")
public ApiResp<String> update(@RequestBody CoreRoleServer coreService) {
if (StrUtil.isNotEmpty(coreService.getId())) {
coreRoleService.getServerMapper().updateById(coreService);
} else {
coreRoleService.getServerMapper().insert(coreService);
}
return ApiResp.respOK("");
}
/**
* 权限-列出
*
* @return
*/
@GetMapping("/authority/list")
public ApiResp<List<ServiceMenuVO>> menuList(@Valid MenuListDTO dto) {
List<CoreRoleAuthority> list = coreRoleService.getAuthorityMapper().selectList(new QueryWrapper<CoreRoleAuthority>()
.eq(CoreRoleAuthority.IS_DELETED, 0)
.eq("service", dto.getService())
.eq(StrUtil.isNotEmpty(dto.getPlatform()), "platform", dto.getPlatform())
.orderByAsc("sort")
);
List<ServiceMenuVO> collect = coreRoleService.menuChildrenWrap(list, null);
return ApiResp.respOK(collect);
}
/**
* 权限-编辑
*
* @return
*/
@PostMapping("/authority/update")
@RoleAuthority(value = "authorityUpdate")
public ApiResp<String> menuUpdate(@RequestBody CoreRoleAuthority serviceMenu) {
serviceMenu.setParent(StrUtil.emptyToDefault(serviceMenu.getParent(), null));
if (StrUtil.isEmpty(serviceMenu.getId())) {
coreRoleService.getAuthorityMapper().insert(serviceMenu);
} else {
serviceMenu.setNo(null);
coreRoleService.getAuthorityMapper().updateById(serviceMenu);
}
return ApiResp.respOK("");
}
/**
* 获取自己拥有的服务
*
* @return
*/
@GetMapping("/owner/server")
public ApiResp<List<CoreRoleServer>> ownerServer(TokenBean tokenBean) {
List<CoreRoleAuthority> allOwnerMenus = coreRoleService.getOwnerAuthorityLeafList(tokenBean.getId(), tokenBean.getRoleId());
List<String> list = allOwnerMenus.stream().map(CoreRoleAuthority::getService).collect(Collectors.toList());
List<CoreRoleServer> roleServerList = new ArrayList<>();
if (CollUtil.isNotEmpty(list)) {
roleServerList = coreRoleService.getServerMapper().selectList(new QueryWrapper<CoreRoleServer>()
.in("id", list)
.eq(CoreRoleServer.IS_DELETED, 0)
.eq("is_open", 1)
);
}
return ApiResp.respOK(roleServerList);
}
/**
* 获取自己拥有的菜单
*
* @return
*/
@GetMapping("/owner/menu")
public ApiResp<List<ServiceMenuVO>> ownerMenu(TokenBean tokenBean, @Valid OwnerMenuDTO dto) {
List<ServiceMenuVO> ownerMenus = coreRoleService.getOwnerMenus(tokenBean.getId(), tokenBean.getRoleId(), dto);
return ApiResp.respOK(ownerMenus);
}
/**
* 获取自己拥有的功能点
*
* @return
*/
@GetMapping("/owner/point")
public ApiResp<List<CoreRoleAuthority>> ownerPoint(TokenBean tokenBean, @Valid OwnerPointDTO dto) {
List<CoreRoleAuthority> allOwnerMenus = coreRoleService.getOwnerAuthorityLeafList(tokenBean.getId(), tokenBean.getRoleId());
String parentId;
if (StrUtil.isNotEmpty(dto.getParentNo())) {
CoreRoleAuthority selected = coreRoleService.getAuthorityMapper().selectOne(new QueryWrapper<CoreRoleAuthority>()
.eq("no", dto.getParentNo())
.eq("is_deleted", 0)
.last("limit 1")
);
parentId = selected == null ? "" : selected.getId();
} else {
parentId = "";
}
List<CoreRoleAuthority> collect = allOwnerMenus.stream()
.filter(it -> Objects.equals(it.getType(), "point"))
.filter(it -> it.getService().equals(dto.getService()))
.filter(it -> it.getPlatform().equals(dto.getPlatform()))
.filter(it -> {
if (StrUtil.isNotEmpty(parentId)) {
return parentId.equals(it.getParent());
}
return true;
}).collect(Collectors.toList());
return ApiResp.respOK(collect);
}
}

View File

@@ -0,0 +1,122 @@
package com.tiesheng.role.controller.role;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.tiesheng.annotation.role.RoleAuthority;
import com.tiesheng.role.pojos.dao.CoreRoleGroup;
import com.tiesheng.role.pojos.dao.CoreRoleGroupRx;
import com.tiesheng.role.pojos.dto.GroupRxUpdateDTO;
import com.tiesheng.role.pojos.vo.GroupTypeDTO;
import com.tiesheng.role.service.CoreRoleService;
import com.tiesheng.util.exception.ApiException;
import com.tiesheng.util.pojos.ApiResp;
import com.tiesheng.util.pojos.IdDTO;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.Valid;
import java.util.List;
import java.util.Objects;
@RestController
@RequestMapping("/role/group")
@RoleAuthority(value = "group", group = "role")
public class RoleGroupController {
@Resource
CoreRoleService coreRoleService;
/**
* 角色列表
*
* @return
*/
@GetMapping("/page")
public ApiResp<List<CoreRoleGroup>> groupPage(@Valid GroupTypeDTO dto) {
QueryWrapper<CoreRoleGroup> queryWrapper = new QueryWrapper<CoreRoleGroup>()
.eq("is_deleted", 0)
.eq(StrUtil.isNotEmpty(dto.getType()), "type", dto.getType())
.orderByAsc("sort");
dto.likeColumns(queryWrapper, "name");
Page<CoreRoleGroup> page = dto.pageObj();
coreRoleService.page(page, queryWrapper);
return ApiResp.respOK(page.getRecords(), page.getTotal());
}
/**
* 角色编辑
*
* @param roleGroup
* @return
*/
@PostMapping("/update")
public ApiResp<String> groupUpdate(@RequestBody CoreRoleGroup roleGroup) {
if (StrUtil.isNotEmpty(roleGroup.getId())) {
roleGroup.setType(null);
roleGroup.setIsSystem(null);
}
coreRoleService.saveOrUpdate(roleGroup);
return ApiResp.respOK("");
}
/**
* 角色-删除
*
* @return
*/
@PostMapping("/deleted")
public ApiResp<String> groupDeleted(@RequestBody @Valid IdDTO dto) {
CoreRoleGroup byId = coreRoleService.getById(dto.getId());
if (byId == null || byId.getIsDeleted() != 0) {
throw new ApiException("角色不存在或已删除");
}
if (byId.getIsSystem() == 1) {
throw new ApiException(StrUtil.format("该{}无法删除",
Objects.equals(byId.getType(), "role") ? "角色" : "职位"));
}
CoreRoleGroup coreServiceMenu = new CoreRoleGroup();
coreServiceMenu.setId(dto.getId());
coreServiceMenu.setIsDeleted(1);
coreRoleService.updateById(coreServiceMenu);
return ApiResp.respOK("");
}
/**
* 获取角色的权限
*
* @return
*/
@GetMapping("/rx/list")
public ApiResp<List<CoreRoleGroupRx>> groupRxList(@Valid IdDTO dto) {
List<CoreRoleGroupRx> list = coreRoleService.getGroupRxMapper().selectList(new QueryWrapper<CoreRoleGroupRx>()
.eq(CoreRoleGroupRx.IS_DELETED, 0)
.eq("group_id", dto.getId())
);
return ApiResp.respOK(list);
}
/**
* 角色的权限编辑
*
* @return
*/
@PostMapping("/rx/update")
public ApiResp<String> groupRxUpdate(@RequestBody @Valid GroupRxUpdateDTO dto) {
coreRoleService.updateGroupRx(dto);
return ApiResp.respOK("");
}
}

View File

@@ -0,0 +1,95 @@
package com.tiesheng.role.controller.role;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.tiesheng.annotation.role.RoleAuthority;
import com.tiesheng.role.pojos.dao.CoreRoleAuthority;
import com.tiesheng.role.pojos.dao.CoreRoleServer;
import com.tiesheng.role.pojos.dto.MenuListDTO;
import com.tiesheng.role.pojos.vo.ServiceMenuVO;
import com.tiesheng.role.service.CoreRoleService;
import com.tiesheng.util.pojos.ApiResp;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.Valid;
import java.util.List;
@RestController
@RequestMapping("/role")
@RoleAuthority(value = "server", group = "role")
public class RoleServerController {
@Resource
CoreRoleService coreRoleService;
/**
* 获取服务列表
*
* @return
*/
@GetMapping("/server/list")
public ApiResp<List<CoreRoleServer>> list() {
return ApiResp.respOK(coreRoleService.getServerMapper().selectList(new QueryWrapper<CoreRoleServer>()
.eq(CoreRoleServer.IS_DELETED, 0)
.eq("is_open", 1)
));
}
/**
* 修改服务
*
* @param coreService
* @return
*/
@PostMapping("/server/update")
public ApiResp<String> update(@RequestBody CoreRoleServer coreService) {
if (StrUtil.isNotEmpty(coreService.getId())) {
coreRoleService.getServerMapper().updateById(coreService);
} else {
coreRoleService.getServerMapper().insert(coreService);
}
return ApiResp.respOK("");
}
/**
* 权限-列出
*
* @return
*/
@GetMapping("/authority/list")
public ApiResp<List<ServiceMenuVO>> menuList(@Valid MenuListDTO dto) {
List<CoreRoleAuthority> list = coreRoleService.getAuthorityMapper().selectList(new QueryWrapper<CoreRoleAuthority>()
.eq(CoreRoleAuthority.IS_DELETED, 0)
.eq("service", dto.getService())
.eq(StrUtil.isNotEmpty(dto.getPlatform()), "platform", dto.getPlatform())
.orderByAsc("sort")
);
List<ServiceMenuVO> collect = coreRoleService.menuChildrenWrap(list, null);
return ApiResp.respOK(collect);
}
/**
* 权限-编辑
*
* @return
*/
@PostMapping("/authority/update")
public ApiResp<String> menuUpdate(@RequestBody CoreRoleAuthority serviceMenu) {
serviceMenu.setParent(StrUtil.emptyToDefault(serviceMenu.getParent(), null));
if (StrUtil.isEmpty(serviceMenu.getId())) {
coreRoleService.getAuthorityMapper().insert(serviceMenu);
} else {
serviceMenu.setNo(null);
coreRoleService.getAuthorityMapper().updateById(serviceMenu);
}
return ApiResp.respOK("");
}
}

View File

@@ -0,0 +1,69 @@
package com.tiesheng.role.controller.role;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.tiesheng.annotation.role.RoleAuthority;
import com.tiesheng.role.pojos.dao.CoreRoleUser;
import com.tiesheng.role.pojos.vo.RoleUserPageVO;
import com.tiesheng.role.service.CoreRoleService;
import com.tiesheng.util.pojos.ApiResp;
import com.tiesheng.util.pojos.IdDTO;
import com.tiesheng.util.pojos.PageDTO;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.Valid;
import java.util.List;
@RestController
@RequestMapping("/role/user")
@RoleAuthority(value = "user", group = "role")
public class RoleUserController {
@Resource
CoreRoleService coreRoleService;
/**
* 授权列表
*
* @return
*/
@GetMapping("/page")
public ApiResp<List<RoleUserPageVO>> userPage(PageDTO dto) {
QueryWrapper<CoreRoleUser> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("cru.is_deleted", 0);
dto.likeColumns(queryWrapper, "cru.ext1", "cru.ext2", "cru.ext3");
queryWrapper.orderByAsc("cru.user_id");
Page<RoleUserPageVO> page = dto.pageObj();
coreRoleService.getUserMapper().page(page, queryWrapper);
return ApiResp.respOK(page.getRecords(), page.getTotal());
}
/**
* 授权调整
*
* @return
*/
@PostMapping("/update")
public ApiResp<String> userUpdate(@RequestBody CoreRoleUser roleUser) {
coreRoleService.roleUserUpdate(roleUser);
return ApiResp.respOK("");
}
/**
* 授权-删除
*
* @return
*/
@PostMapping("/deleted")
public ApiResp<String> userDeleted(@RequestBody @Valid IdDTO dto) {
coreRoleService.roleUserDeleted(dto.getId());
return ApiResp.respOK("");
}
}

View File

@@ -6,13 +6,10 @@ import com.tiesheng.role.pojos.dao.CoreRoleAuthority;
import java.util.List;
public interface CoreRoleAuthorityMapper extends BaseMapper<CoreRoleAuthority> {
/**
* 批量插入数据
*
* @param coreRoleAuthorities
*/
void batchInsert(List<CoreRoleAuthority> coreRoleAuthorities);
}
}

View File

@@ -1,11 +1,8 @@
package com.tiesheng.role.pojos.dao;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.tiesheng.util.pojos.DaoBase;
import java.util.Date;
/**
* 角色-权限
@@ -78,6 +75,12 @@ public class CoreRoleAuthority extends DaoBase {
@TableField(value = "platform")
private String platform;
/**
* 版本号
*/
@TableField(value = "version")
private String version;
/**
* 扩展1
*/
@@ -294,6 +297,24 @@ public class CoreRoleAuthority extends DaoBase {
this.platform = platform;
}
/**
* 获取版本号
*
* @return version - 版本号
*/
public String getVersion() {
return version;
}
/**
* 设置版本号
*
* @param version 版本号
*/
public void setVersion(String version) {
this.version = version;
}
/**
* 获取扩展1
*
@@ -347,4 +368,4 @@ public class CoreRoleAuthority extends DaoBase {
public void setExt3(String ext3) {
this.ext3 = ext3;
}
}
}

View File

@@ -1,10 +1,9 @@
package com.tiesheng.role.pojos.vo;
import javax.validation.constraints.NotEmpty;
import com.tiesheng.util.pojos.PageDTO;
public class GroupTypeDTO {
public class GroupTypeDTO extends PageDTO {
@NotEmpty(message = "请选择一个类型")
private String type;
///////////////////////////////////////////////////////////////////////////

View File

@@ -3,6 +3,7 @@ package com.tiesheng.role.service;
import cn.hutool.core.annotation.AnnotationUtil;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.Validator;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -221,6 +222,9 @@ public class CoreRoleService extends TsServiceBase<CoreRoleGroupMapper, CoreRole
public void onApplicationEvent(ContextRefreshedEvent event) {
ApplicationContext applicationContext = event.getApplicationContext();
Map<String, Object> beansOfType = applicationContext.getBeansWithAnnotation(RoleAuthority.class);
String version = DateUtil.format(new Date(), "yyyyMMddHHmmss");
for (Map.Entry<String, Object> entry : beansOfType.entrySet()) {
Class<?> targetClass = AopUtils.getTargetClass(entry.getValue());
@@ -235,8 +239,13 @@ public class CoreRoleService extends TsServiceBase<CoreRoleGroupMapper, CoreRole
}
}
tsAuthorityHandler.addRoleAuthority(menu, points);
tsAuthorityHandler.addRoleAuthority(version, menu, points);
}
coreRoleAuthorityMapper.delete(new QueryWrapper<CoreRoleAuthority>()
.ne("version", version)
);
}
}

View File

@@ -27,7 +27,7 @@ public class RoleAuthorityHandler implements TsAuthorityHandler {
@Override
public void addRoleAuthority(RoleAuthority menu, List<RoleAuthority> points) {
public void addRoleAuthority(String version, RoleAuthority menu, List<RoleAuthority> points) {
if (menu.group().length == 0) {
return;
}
@@ -54,6 +54,7 @@ public class RoleAuthorityHandler implements TsAuthorityHandler {
groupAuthority.setLevel(level);
groupAuthority.setPlatform(menu.platform());
groupAuthority.setParent(parentId);
groupAuthority.setVersion(version);
groupAuthority.setId(StrUtil.join("_", groupAuthority.getService(), groupAuthority.getNo()));
list.add(groupAuthority);
}
@@ -68,6 +69,7 @@ public class RoleAuthorityHandler implements TsAuthorityHandler {
menuAuthority.setLevel(groupAuthority.getLevel() + 1);
menuAuthority.setParent(groupAuthority.getId());
menuAuthority.setPlatform(menu.platform());
menuAuthority.setVersion(version);
menuAuthority.setId(StrUtil.join("_", menuAuthority.getService(), menuAuthority.getNo()));
list.add(menuAuthority);
@@ -80,6 +82,7 @@ public class RoleAuthorityHandler implements TsAuthorityHandler {
point.setType("point");
point.setLevel(menuAuthority.getLevel() + 1);
point.setParent(menuAuthority.getId());
point.setVersion(version);
point.setPlatform(StrUtil.emptyToDefault(authority.platform(), menu.platform()));
point.setId(StrUtil.join("_", point.getService(), point.getNo()));
list.add(point);