fix(产品需求、项目需求): 按照会议所说进行修改。

This commit is contained in:
dk
2026-05-18 16:44:29 +08:00
parent 50b84a57bb
commit 75886d7af5
42 changed files with 506 additions and 92 deletions

View File

@@ -14,6 +14,9 @@ public class AdminUserRespDTO implements VO {
@Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "小王")
private String nickname;
@Schema(description = "显示顺序", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
private Integer sort;
@Schema(description = "所属公司", example = "灿能")
private String company;

View File

@@ -43,6 +43,10 @@ public class DictDataRespVO {
@Schema(description = "颜色类型,default、primary、success、info、warning、danger", example = "default")
private String colorType;
@Schema(description = "标识", example = "system")
@ExcelProperty("标识")
private String sign;
@Schema(description = "css 样式", example = "btn-visible")
private String cssClass;

View File

@@ -42,6 +42,10 @@ public class DictDataSaveReqVO {
@Schema(description = "颜色类型,default、primary、success、info、warning、danger", example = "default")
private String colorType;
@Schema(description = "标识", example = "system")
@Size(max = 255, message = "标识长度不能超过255个字符")
private String sign;
@Schema(description = "css 样式", example = "btn-visible")
private String cssClass;

View File

@@ -22,6 +22,9 @@ public class DictDataSimpleRespVO {
@Schema(description = "颜色类型default、primary、success、info、warning、danger", example = "default")
private String colorType;
@Schema(description = "标识", example = "system")
private String sign;
@Schema(description = "css 样式", example = "btn-visible")
private String cssClass;

View File

@@ -184,9 +184,9 @@ public class UserController {
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<UserImportExcelVO> list = Arrays.asList(
UserImportExcelVO.builder().username("yunai").deptId(1L).positionId(1L).email("yunai@iocoder.cn").mobile("15601691300")
UserImportExcelVO.builder().username("yunai").deptId(1L).positionId(1L).sort(10).email("yunai@iocoder.cn").mobile("15601691300")
.nickname("灿能").status(CommonStatusEnum.ENABLE.getStatus()).sex(SexEnum.MALE.getSex()).build(),
UserImportExcelVO.builder().username("yuanma").deptId(2L).positionId(2L).email("yuanma@iocoder.cn").mobile("15601701300")
UserImportExcelVO.builder().username("yuanma").deptId(2L).positionId(2L).sort(20).email("yuanma@iocoder.cn").mobile("15601701300")
.nickname("源码").status(CommonStatusEnum.DISABLE.getStatus()).sex(SexEnum.FEMALE.getSex()).build()
);
// 输出

View File

@@ -33,6 +33,9 @@ public class UserImportExcelVO {
@ExcelProperty("主岗位编号")
private Long positionId;
@ExcelProperty("显示顺序")
private Integer sort;
@ExcelProperty("用户邮箱")
private String email;

View File

@@ -48,6 +48,10 @@ public class UserRespVO {
@ExcelProperty("主岗位")
private String positionName;
@Schema(description = "显示顺序", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
@ExcelProperty("显示顺序")
private Integer sort;
@Schema(description = "用户邮箱", example = "rdms@iocoder.cn")
@ExcelProperty("用户邮箱")
private String email;

View File

@@ -58,6 +58,11 @@ public class UserSaveReqVO {
@DiffLogField(name = "主岗位", function = PostParseFunction.NAME)
private Long positionId;
@Schema(description = "显示顺序", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
@NotNull(message = "显示顺序不能为空")
@DiffLogField(name = "显示顺序")
private Integer sort;
@Schema(description = "离职时间", example = "2026-03-19 00:00:00")
@DiffLogField(name = "离职时间")
private LocalDateTime resignedAt;

View File

@@ -17,8 +17,12 @@ public class UserSimpleRespVO {
@Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "灿能")
private String nickname;
@Schema(description = "显示顺序", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
private Integer sort;
@Schema(description = "部门ID", example = "我是一个用户")
private Long deptId;
@Schema(description = "部门名称", example = "IT 部")
private String deptName;

View File

@@ -23,4 +23,7 @@ public class AppDictDataRespVO {
@Schema(description = "字典类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "sys_common_sex")
private String dictType;
@Schema(description = "标识", example = "system")
private String sign;
}

View File

@@ -52,6 +52,11 @@ public class DictDataDO extends BaseDO {
* 对应到 element-ui 为 default、primary、success、info、warning、danger
*/
private String colorType;
/**
* 标识
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String sign;
/**
* css 样式
*/

View File

@@ -52,6 +52,11 @@ public class AdminUserDO extends BaseDO {
*/
private String nickname;
/**
* 显示排序
*/
private Integer sort;
/**
* 备注
*/

View File

@@ -35,23 +35,36 @@ public interface AdminUserMapper extends BaseMapperX<AdminUserDO> {
.betweenIfPresent(AdminUserDO::getCreateTime, reqVO.getCreateTime())
.inIfPresent(AdminUserDO::getDeptId, deptIds)
.inIfPresent(AdminUserDO::getId, userIds)
.orderByAsc(AdminUserDO::getSort)
.orderByDesc(AdminUserDO::getId));
}
default List<AdminUserDO> selectListByNickname(String nickname) {
return selectList(new LambdaQueryWrapperX<AdminUserDO>().like(AdminUserDO::getNickname, nickname));
return selectList(new LambdaQueryWrapperX<AdminUserDO>()
.like(AdminUserDO::getNickname, nickname)
.orderByAsc(AdminUserDO::getSort)
.orderByDesc(AdminUserDO::getId));
}
default List<AdminUserDO> selectListByStatus(Integer status) {
return selectList(AdminUserDO::getStatus, status);
return selectList(new LambdaQueryWrapperX<AdminUserDO>()
.eq(AdminUserDO::getStatus, status)
.orderByAsc(AdminUserDO::getSort)
.orderByDesc(AdminUserDO::getId));
}
default List<AdminUserDO> selectListByDeptIds(Collection<Long> deptIds) {
return selectList(AdminUserDO::getDeptId, deptIds);
return selectList(new LambdaQueryWrapperX<AdminUserDO>()
.in(AdminUserDO::getDeptId, deptIds)
.orderByAsc(AdminUserDO::getSort)
.orderByDesc(AdminUserDO::getId));
}
default List<AdminUserDO> selectListByPositionIds(Collection<Long> positionIds) {
return selectList(AdminUserDO::getPositionId, positionIds);
return selectList(new LambdaQueryWrapperX<AdminUserDO>()
.in(AdminUserDO::getPositionId, positionIds)
.orderByAsc(AdminUserDO::getSort)
.orderByDesc(AdminUserDO::getId));
}
}

View File

@@ -58,6 +58,7 @@ public class AdminUserServiceImpl implements AdminUserService {
static final String USER_INIT_PASSWORD_KEY = "system.user.init-password";
static final String USER_REGISTER_ENABLED_KEY = "system.user.register-enabled";
private static final Integer DEFAULT_REGISTER_USER_SORT = 999;
@Resource
private AdminUserMapper userMapper;
@@ -107,6 +108,7 @@ public class AdminUserServiceImpl implements AdminUserService {
// 2. 插入用户
AdminUserDO user = BeanUtils.toBean(registerReqVO, AdminUserDO.class);
user.setStatus(CommonStatusEnum.ENABLE.getStatus()); // 默认开启
user.setSort(DEFAULT_REGISTER_USER_SORT);
user.setPassword(encodePassword(registerReqVO.getPassword())); // 加密密码
userMapper.insert(user);
return user.getId();