refactor: 优化用户和角色部分数据填充方式

This commit is contained in:
Charles7c 2024-01-20 21:14:58 +08:00
parent f813c71d73
commit 7a3ccc2dee
7 changed files with 35 additions and 29 deletions

View File

@ -30,7 +30,7 @@ public interface ContainerConstants extends top.charles7c.continew.starter.exten
String USER_ROLE_ID_LIST = "UserRoleIdList";
/**
* 用户角色名称列表
* 角色部门列表
*/
String USER_ROLE_NAME_LIST = "UserRoleNameList";
String ROLE_DEPT_ID_LIST = "RoleDeptIdList";
}

View File

@ -16,20 +16,20 @@
package top.charles7c.continew.admin.system.model.resp;
import java.io.Serial;
import java.util.List;
import lombok.Data;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.crane4j.annotation.Assemble;
import cn.crane4j.annotation.Mapping;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import top.charles7c.continew.starter.extension.crud.converter.ExcelBaseEnumConverter;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import top.charles7c.continew.admin.common.constant.ContainerConstants;
import top.charles7c.continew.admin.common.enums.DataScopeEnum;
import top.charles7c.continew.admin.common.enums.DisEnableStatusEnum;
import top.charles7c.continew.starter.extension.crud.base.BaseDetailResp;
import top.charles7c.continew.starter.extension.crud.converter.ExcelBaseEnumConverter;
import java.io.Serial;
import java.util.List;
/**
* 角色详情信息
@ -40,6 +40,7 @@ import top.charles7c.continew.starter.extension.crud.base.BaseDetailResp;
@Data
@ExcelIgnoreUnannotated
@Schema(description = "角色详情信息")
@Assemble(container = ContainerConstants.ROLE_DEPT_ID_LIST, key = "id", props = @Mapping(ref = "deptIds"))
public class RoleDetailResp extends BaseDetailResp {
@Serial

View File

@ -16,6 +16,7 @@
package top.charles7c.continew.admin.system.model.resp;
import cn.crane4j.annotation.Assemble;
import cn.crane4j.annotation.AssembleMethod;
import cn.crane4j.annotation.ContainerMethod;
import cn.crane4j.annotation.Mapping;
@ -23,6 +24,7 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import top.charles7c.continew.admin.common.constant.ContainerConstants;
import top.charles7c.continew.admin.common.enums.DisEnableStatusEnum;
import top.charles7c.continew.admin.common.enums.GenderEnum;
import top.charles7c.continew.admin.common.util.helper.LoginHelper;
@ -44,6 +46,7 @@ import java.util.Objects;
@Data
@ExcelIgnoreUnannotated
@Schema(description = "用户详情信息")
@Assemble(container = ContainerConstants.USER_ROLE_ID_LIST, key = "id", props = @Mapping(ref = "roleIds"))
public class UserDetailResp extends BaseDetailResp {
@Serial

View File

@ -16,20 +16,20 @@
package top.charles7c.continew.admin.system.service.impl;
import java.util.List;
import java.util.stream.Collectors;
import cn.crane4j.annotation.ContainerMethod;
import cn.crane4j.annotation.MappingType;
import cn.hutool.core.collection.CollUtil;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import cn.hutool.core.collection.CollUtil;
import top.charles7c.continew.admin.common.constant.ContainerConstants;
import top.charles7c.continew.admin.system.mapper.RoleDeptMapper;
import top.charles7c.continew.admin.system.model.entity.RoleDeptDO;
import top.charles7c.continew.admin.system.service.RoleDeptService;
import java.util.List;
import java.util.stream.Collectors;
/**
* 角色和部门业务实现
*
@ -78,6 +78,7 @@ public class RoleDeptServiceImpl implements RoleDeptService {
}
@Override
@ContainerMethod(namespace = ContainerConstants.ROLE_DEPT_ID_LIST, type = MappingType.NONE)
public List<Long> listDeptIdByRoleId(Long roleId) {
return roleDeptMapper.selectDeptIdByRoleId(roleId);
}

View File

@ -138,7 +138,6 @@ public class RoleServiceImpl extends BaseServiceImpl<RoleMapper, RoleDO, RoleRes
} else {
detail.setMenuIds(roleMenuService.listMenuIdByRoleIds(CollUtil.newArrayList(roleId)));
}
detail.setDeptIds(roleDeptService.listDeptIdByRoleId(roleId));
}
}

View File

@ -16,20 +16,20 @@
package top.charles7c.continew.admin.system.service.impl;
import java.util.List;
import java.util.stream.Collectors;
import cn.crane4j.annotation.ContainerMethod;
import cn.crane4j.annotation.MappingType;
import cn.hutool.core.collection.CollUtil;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import cn.hutool.core.collection.CollUtil;
import top.charles7c.continew.admin.common.constant.ContainerConstants;
import top.charles7c.continew.admin.system.mapper.UserRoleMapper;
import top.charles7c.continew.admin.system.model.entity.UserRoleDO;
import top.charles7c.continew.admin.system.service.UserRoleService;
import java.util.List;
import java.util.stream.Collectors;
/**
* 用户和角色业务实现
*
@ -72,6 +72,7 @@ public class UserRoleServiceImpl implements UserRoleService {
}
@Override
@ContainerMethod(namespace = ContainerConstants.USER_ROLE_ID_LIST, type = MappingType.NONE)
public List<Long> listRoleIdByUserId(Long userId) {
return userRoleMapper.selectRoleIdByUserId(userId);
}

View File

@ -152,11 +152,12 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserRes
protected void fill(Object obj) {
super.fill(obj);
if (obj instanceof UserDetailResp detail) {
List<Long> roleIdList = userRoleService.listRoleIdByUserId(detail.getId());
detail.setRoleIds(roleIdList);
List<Long> roleIdList = detail.getRoleIds();
if (CollUtil.isNotEmpty(roleIdList)) {
detail.setRoleNames(String.join(StringConstants.CHINESE_COMMA, roleService.listNameByIds(roleIdList)));
}
}
}
@Override
@Transactional(rollbackFor = Exception.class)