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

View File

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

View File

@ -16,20 +16,20 @@
package top.charles7c.continew.admin.system.service.impl; package top.charles7c.continew.admin.system.service.impl;
import java.util.List; import cn.crane4j.annotation.ContainerMethod;
import java.util.stream.Collectors; import cn.crane4j.annotation.MappingType;
import cn.hutool.core.collection.CollUtil;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import top.charles7c.continew.admin.common.constant.ContainerConstants;
import cn.hutool.core.collection.CollUtil;
import top.charles7c.continew.admin.system.mapper.RoleDeptMapper; import top.charles7c.continew.admin.system.mapper.RoleDeptMapper;
import top.charles7c.continew.admin.system.model.entity.RoleDeptDO; import top.charles7c.continew.admin.system.model.entity.RoleDeptDO;
import top.charles7c.continew.admin.system.service.RoleDeptService; 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 @Override
@ContainerMethod(namespace = ContainerConstants.ROLE_DEPT_ID_LIST, type = MappingType.NONE)
public List<Long> listDeptIdByRoleId(Long roleId) { public List<Long> listDeptIdByRoleId(Long roleId) {
return roleDeptMapper.selectDeptIdByRoleId(roleId); return roleDeptMapper.selectDeptIdByRoleId(roleId);
} }

View File

@ -138,7 +138,6 @@ public class RoleServiceImpl extends BaseServiceImpl<RoleMapper, RoleDO, RoleRes
} else { } else {
detail.setMenuIds(roleMenuService.listMenuIdByRoleIds(CollUtil.newArrayList(roleId))); 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; package top.charles7c.continew.admin.system.service.impl;
import java.util.List; import cn.crane4j.annotation.ContainerMethod;
import java.util.stream.Collectors; import cn.crane4j.annotation.MappingType;
import cn.hutool.core.collection.CollUtil;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import top.charles7c.continew.admin.common.constant.ContainerConstants;
import cn.hutool.core.collection.CollUtil;
import top.charles7c.continew.admin.system.mapper.UserRoleMapper; import top.charles7c.continew.admin.system.mapper.UserRoleMapper;
import top.charles7c.continew.admin.system.model.entity.UserRoleDO; import top.charles7c.continew.admin.system.model.entity.UserRoleDO;
import top.charles7c.continew.admin.system.service.UserRoleService; 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 @Override
@ContainerMethod(namespace = ContainerConstants.USER_ROLE_ID_LIST, type = MappingType.NONE)
public List<Long> listRoleIdByUserId(Long userId) { public List<Long> listRoleIdByUserId(Long userId) {
return userRoleMapper.selectRoleIdByUserId(userId); return userRoleMapper.selectRoleIdByUserId(userId);
} }

View File

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