From 4346299a036e371b6b2499a0f965ccbf38faea3c Mon Sep 17 00:00:00 2001 From: chenbowen Date: Mon, 27 Oct 2025 09:55:15 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E4=BF=AE=E5=A4=8D=E9=9D=9E=E6=B0=B8?= =?UTF-8?q?=E4=B9=85=E5=9C=B0=E5=9D=80=E7=9A=84=E6=94=B9=E5=8A=A8=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E6=97=A0=E6=B3=95=E6=AD=A3=E5=B8=B8=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=A4=B4=E5=83=8F=E7=9A=84=20bug=202.=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BB=A3=E7=A0=81=E7=94=9F=E6=88=90=E5=99=A8?= =?UTF-8?q?=E6=89=A7=E8=A1=8C=E5=90=8C=E6=AD=A5=E6=97=B6=EF=BC=8C=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E4=BE=9D=E6=8D=AE=E5=AF=BC=E5=85=A5=E8=BF=9B=E8=A1=8C?= =?UTF-8?q?=E7=AE=80=E5=86=99=E5=8C=B9=E9=85=8D=E8=BD=AC=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plat/module/infra/api/file/FileApi.java | 5 +++ .../infra/api/file/dto/FileRespDTO.java | 9 +++++ .../module/infra/api/file/FileApiImpl.java | 26 +++++++++++++-- .../admin/codegen/CodegenController.java | 11 +++++-- .../infra/service/codegen/CodegenService.java | 2 +- .../service/codegen/CodegenServiceImpl.java | 4 +-- .../codegen/CodegenServiceImplTest.java | 2 +- .../auth/vo/AuthPermissionInfoRespVO.java | 2 +- .../user/vo/profile/UserProfileRespVO.java | 2 +- .../vo/profile/UserProfileUpdateReqVO.java | 15 +++++++-- .../admin/user/vo/user/UserRespVO.java | 2 +- .../admin/user/vo/user/UserSaveReqVO.java | 12 ++++++- .../system/convert/auth/AuthConvert.java | 6 +++- .../system/convert/user/UserConvert.java | 2 ++ .../service/user/AdminUserServiceImpl.java | 33 +++++++++++++++---- 15 files changed, 109 insertions(+), 24 deletions(-) diff --git a/zt-module-infra/zt-module-infra-api/src/main/java/com/zt/plat/module/infra/api/file/FileApi.java b/zt-module-infra/zt-module-infra-api/src/main/java/com/zt/plat/module/infra/api/file/FileApi.java index 5424ac10..aa671935 100644 --- a/zt-module-infra/zt-module-infra-api/src/main/java/com/zt/plat/module/infra/api/file/FileApi.java +++ b/zt-module-infra/zt-module-infra-api/src/main/java/com/zt/plat/module/infra/api/file/FileApi.java @@ -43,6 +43,11 @@ public interface FileApi { CommonResult getFile(@Parameter(description = "文件编号", required = true, example = "1024") @RequestParam("fileId") @NotNull(message = "文件编号不能为空") Long fileId); + @GetMapping(PREFIX + "/info") + @Operation(summary = "根据文件编号获取文件信息") + CommonResult getFileInfo(@Parameter(description = "文件编号", required = true, example = "1024") + @RequestParam("fileId") @NotNull(message = "文件编号不能为空") Long fileId); + /** * 删除文件 * diff --git a/zt-module-infra/zt-module-infra-api/src/main/java/com/zt/plat/module/infra/api/file/dto/FileRespDTO.java b/zt-module-infra/zt-module-infra-api/src/main/java/com/zt/plat/module/infra/api/file/dto/FileRespDTO.java index c5a77274..01093d15 100644 --- a/zt-module-infra/zt-module-infra-api/src/main/java/com/zt/plat/module/infra/api/file/dto/FileRespDTO.java +++ b/zt-module-infra/zt-module-infra-api/src/main/java/com/zt/plat/module/infra/api/file/dto/FileRespDTO.java @@ -16,6 +16,15 @@ public class FileRespDTO { @Schema(description = "文件目录", example = "xxx") private String directory; + @Schema(description = "文件访问地址", example = "https://www.iocoder.cn/xxx.png") + private String url; + + @Schema(description = "文件预览地址", example = "https://www.iocoder.cn/preview/xxx") + private String previewUrl; + + @Schema(description = "是否加密", example = "false") + private Boolean encrypted; + @Schema(description = "文件的 MIME 类型", example = "image/png") private String type; diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/api/file/FileApiImpl.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/api/file/FileApiImpl.java index 0833b2d4..f3d184c0 100644 --- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/api/file/FileApiImpl.java +++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/api/file/FileApiImpl.java @@ -1,6 +1,7 @@ package com.zt.plat.module.infra.api.file; import com.zt.plat.framework.common.pojo.CommonResult; +import com.zt.plat.framework.common.util.object.BeanUtils; import com.zt.plat.module.infra.api.file.dto.FileCreateReqDTO; import com.zt.plat.module.infra.api.file.dto.FileRespDTO; import com.zt.plat.module.infra.controller.admin.file.vo.file.FileRespVO; @@ -76,6 +77,20 @@ public class FileApiImpl implements FileApi { } } + @Override + public CommonResult getFileInfo(Long fileId) { + try { + FileDO fileDO = fileService.getActiveFileById(fileId); + if (fileDO == null) { + return CommonResult.error(404, "文件不存在"); + } + FileRespDTO respDTO = convertToRespDTO(fileDO); + return success(respDTO); + } catch (Exception e) { + return CommonResult.error(500, "获取文件信息失败:" + e.getMessage()); + } + } + @Override public CommonResult deleteFile(Long fileId) { try { @@ -97,19 +112,23 @@ public class FileApiImpl implements FileApi { * 将 FileDO 转换为 FileRespDTO */ private FileRespDTO convertToRespDTO(FileDO fileDO) { + FileRespVO fileRespVO = BeanUtils.toBean(fileDO, FileRespVO.class); FileRespDTO respDTO = new FileRespDTO(); respDTO.setId(fileDO.getId()); respDTO.setName(fileDO.getName()); respDTO.setType(fileDO.getType()); respDTO.setSize(fileDO.getSize()); - + respDTO.setUrl(fileRespVO.getUrl()); + respDTO.setPreviewUrl(fileRespVO.getPreviewUrl()); + respDTO.setEncrypted(Boolean.TRUE.equals(fileRespVO.getIsEncrypted())); + // 从文件路径中提取目录信息 String path = fileDO.getPath(); if (path != null && path.contains("/")) { String directory = path.substring(0, path.lastIndexOf("/")); respDTO.setDirectory(directory); } - + return respDTO; } @@ -122,6 +141,9 @@ public class FileApiImpl implements FileApi { respDTO.setName(fileRespVO.getName()); respDTO.setType(fileRespVO.getType()); respDTO.setSize(fileRespVO.getSize()); + respDTO.setUrl(fileRespVO.getUrl()); + respDTO.setPreviewUrl(fileRespVO.getPreviewUrl()); + respDTO.setEncrypted(Boolean.TRUE.equals(fileRespVO.getIsEncrypted())); // 从文件路径中提取目录信息 String path = fileRespVO.getPath(); diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/codegen/CodegenController.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/codegen/CodegenController.java index b5970cd3..9f732611 100644 --- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/codegen/CodegenController.java +++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/codegen/CodegenController.java @@ -106,10 +106,15 @@ public class CodegenController { @Operation(summary = "基于数据库的表结构,同步数据库的表和字段定义") @PutMapping("/sync-from-db") - @Parameter(name = "tableId", description = "表编号", required = true, example = "1024") + @Parameters({ + @Parameter(name = "tableId", description = "表编号", required = true, example = "1024"), + @Parameter(name = "isStandardized", description = "是否标准化缩写字段名", example = "false") + }) @PreAuthorize("@ss.hasPermission('infra:codegen:update')") - public CommonResult syncCodegenFromDB(@RequestParam("tableId") Long tableId) { - codegenService.syncCodegenFromDB(tableId); + public CommonResult syncCodegenFromDB( + @RequestParam("tableId") Long tableId, + @RequestParam(value = "isStandardized", required = false, defaultValue = "false") Boolean isStandardized) { + codegenService.syncCodegenFromDB(tableId, isStandardized); return success(true); } diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/service/codegen/CodegenService.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/service/codegen/CodegenService.java index b23b23fc..1d72d212 100644 --- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/service/codegen/CodegenService.java +++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/service/codegen/CodegenService.java @@ -39,7 +39,7 @@ public interface CodegenService { * * @param tableId 表编号 */ - void syncCodegenFromDB(Long tableId); + void syncCodegenFromDB(Long tableId, Boolean isStandardized); /** * 删除数据库的表和字段定义 diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/service/codegen/CodegenServiceImpl.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/service/codegen/CodegenServiceImpl.java index f1e001e0..766ed84b 100644 --- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/service/codegen/CodegenServiceImpl.java +++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/service/codegen/CodegenServiceImpl.java @@ -148,14 +148,14 @@ public class CodegenServiceImpl implements CodegenService { @Override @Transactional(rollbackFor = Exception.class) - public void syncCodegenFromDB(Long tableId) { + public void syncCodegenFromDB(Long tableId, Boolean isStandardized) { // 校验是否已经存在 CodegenTableDO table = codegenTableMapper.selectById(tableId); if (table == null) { throw exception(CODEGEN_TABLE_NOT_EXISTS); } // 从数据库中,获得数据库表结构 - TableInfo tableInfo = databaseTableService.getTable(table.getDataSourceConfigId(), table.getTableName(),false); + TableInfo tableInfo = databaseTableService.getTable(table.getDataSourceConfigId(), table.getTableName(), Boolean.TRUE.equals(isStandardized)); // 执行同步 syncCodegen0(tableId, tableInfo); } diff --git a/zt-module-infra/zt-module-infra-server/src/test/java/com/zt/plat/module/infra/service/codegen/CodegenServiceImplTest.java b/zt-module-infra/zt-module-infra-server/src/test/java/com/zt/plat/module/infra/service/codegen/CodegenServiceImplTest.java index 7600274b..ab2f0846 100644 --- a/zt-module-infra/zt-module-infra-server/src/test/java/com/zt/plat/module/infra/service/codegen/CodegenServiceImplTest.java +++ b/zt-module-infra/zt-module-infra-server/src/test/java/com/zt/plat/module/infra/service/codegen/CodegenServiceImplTest.java @@ -261,7 +261,7 @@ public class CodegenServiceImplTest extends BaseDbUnitTest { }))).thenReturn(newColumns); // 调用 - codegenService.syncCodegenFromDB(tableId); + codegenService.syncCodegenFromDB(tableId, false); // 断言 List dbColumns = codegenColumnMapper.selectList(); assertEquals(newColumns.size(), dbColumns.size()); diff --git a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/auth/vo/AuthPermissionInfoRespVO.java b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/auth/vo/AuthPermissionInfoRespVO.java index eb88cd80..86fed622 100644 --- a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/auth/vo/AuthPermissionInfoRespVO.java +++ b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/auth/vo/AuthPermissionInfoRespVO.java @@ -41,7 +41,7 @@ public class AuthPermissionInfoRespVO { @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道源码") private String nickname; - @Schema(description = "用户头像", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/xx.jpg") + @Schema(description = "用户头像", requiredMode = Schema.RequiredMode.REQUIRED, example = "123456") private String avatar; @Schema(description = "部门编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") diff --git a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/user/vo/profile/UserProfileRespVO.java b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/user/vo/profile/UserProfileRespVO.java index 534ff673..43d1983f 100644 --- a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/user/vo/profile/UserProfileRespVO.java +++ b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/user/vo/profile/UserProfileRespVO.java @@ -34,7 +34,7 @@ public class UserProfileRespVO { @Schema(description = "用户性别,参见 SexEnum 枚举类", example = "1") private Integer sex; - @Schema(description = "用户头像", example = "https://www.iocoder.cn/xxx.png") + @Schema(description = "用户头像", example = "123456" ) private String avatar; @Schema(description = "最后登录 IP", requiredMode = Schema.RequiredMode.REQUIRED, example = "192.168.1.1") diff --git a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/user/vo/profile/UserProfileUpdateReqVO.java b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/user/vo/profile/UserProfileUpdateReqVO.java index 9905963e..c7eb4642 100644 --- a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/user/vo/profile/UserProfileUpdateReqVO.java +++ b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/user/vo/profile/UserProfileUpdateReqVO.java @@ -1,12 +1,13 @@ package com.zt.plat.module.system.controller.admin.user.vo.profile; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonSetter; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.hibernate.validator.constraints.Length; import jakarta.validation.constraints.Email; import jakarta.validation.constraints.Size; -import org.hibernate.validator.constraints.URL; @Schema(description = "管理后台 - 用户个人信息更新 Request VO") @@ -29,8 +30,16 @@ public class UserProfileUpdateReqVO { @Schema(description = "用户性别,参见 SexEnum 枚举类", example = "1") private Integer sex; - @Schema(description = "角色头像", example = "https://www.iocoder.cn/1.png") - @URL(message = "头像地址格式不正确") + @Schema(description = "用户头像", example = "123456" ) private String avatar; + @JsonIgnore + private boolean avatarPresent; + + @JsonSetter("avatar") + public void setAvatarValue(String avatar) { + this.avatar = avatar; + this.avatarPresent = true; + } + } diff --git a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/user/vo/user/UserRespVO.java b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/user/vo/user/UserRespVO.java index 62fecf8e..7802caf7 100644 --- a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/user/vo/user/UserRespVO.java +++ b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/user/vo/user/UserRespVO.java @@ -54,7 +54,7 @@ public class UserRespVO{ @DictFormat(DictTypeConstants.USER_SEX) private Integer sex; - @Schema(description = "用户头像", example = "https://www.iocoder.cn/xxx.png") + @Schema(description = "用户头像", example = "123456789") private String avatar; @Schema(description = "状态,参见 CommonStatusEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") diff --git a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/user/vo/user/UserSaveReqVO.java b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/user/vo/user/UserSaveReqVO.java index fb416258..b902e3af 100644 --- a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/user/vo/user/UserSaveReqVO.java +++ b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/user/vo/user/UserSaveReqVO.java @@ -2,6 +2,7 @@ package com.zt.plat.module.system.controller.admin.user.vo.user; import cn.hutool.core.util.ObjectUtil; import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonSetter; import com.mzt.logapi.starter.annotation.DiffLogField; import com.zt.plat.framework.common.validation.Mobile; import com.zt.plat.framework.common.validation.Password; @@ -67,10 +68,19 @@ public class UserSaveReqVO { @Schema(description = "用户状态", example = "1") private Integer status; - @Schema(description = "用户头像", example = "https://www.iocoder.cn/xxx.png") + @Schema(description = "用户头像", example = "123456789") @DiffLogField(name = "用户头像") private String avatar; + @JsonIgnore + private boolean avatarPresent; + + @JsonSetter("avatar") + public void setAvatarValue(String avatar) { + this.avatar = avatar; + this.avatarPresent = true; + } + @Schema(description = "用户来源类型", example = "1") private Integer userSource; diff --git a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/convert/auth/AuthConvert.java b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/convert/auth/AuthConvert.java index ceb91e72..d2e18777 100644 --- a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/convert/auth/AuthConvert.java +++ b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/convert/auth/AuthConvert.java @@ -29,7 +29,7 @@ public interface AuthConvert { AuthLoginRespVO convert(OAuth2AccessTokenDO bean); default AuthPermissionInfoRespVO convert(AdminUserDO user, List roleList, List menuList) { - return AuthPermissionInfoRespVO.builder() + AuthPermissionInfoRespVO respVO = AuthPermissionInfoRespVO.builder() .user(BeanUtils.toBean(user, AuthPermissionInfoRespVO.UserVO.class)) .roles(convertSet(roleList, RoleDO::getCode)) // 权限标识信息 @@ -37,6 +37,10 @@ public interface AuthConvert { // 菜单树 .menus(buildMenuTree(menuList)) .build(); + if (respVO.getUser() != null) { + respVO.getUser().setAvatar(user.getAvatar()); + } + return respVO; } AuthPermissionInfoRespVO.MenuVO convertTreeNode(MenuDO menu); diff --git a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/convert/user/UserConvert.java b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/convert/user/UserConvert.java index 414b695a..d424c824 100644 --- a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/convert/user/UserConvert.java +++ b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/convert/user/UserConvert.java @@ -31,6 +31,7 @@ public interface UserConvert { default UserRespVO convert(AdminUserDO user) { UserRespVO vo = BeanUtils.toBean(user, UserRespVO.class); + vo.setAvatar(user.getAvatar()); if (user.getDeptIds() != null) { vo.setDeptIds(CollectionUtils.convertList(user.getDeptIds(), Long::longValue)); } @@ -47,6 +48,7 @@ public interface UserConvert { default UserProfileRespVO convert(AdminUserDO user, List userRoles, List depts, List posts) { UserProfileRespVO userVO = BeanUtils.toBean(user, UserProfileRespVO.class); + userVO.setAvatar(user.getAvatar()); userVO.setRoles(BeanUtils.toBean(userRoles, RoleSimpleRespVO.class)); userVO.setDepts(BeanUtils.toBean(depts, DeptSimpleRespVO.class)); userVO.setPosts(BeanUtils.toBean(posts, PostSimpleRespVO.class)); diff --git a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/service/user/AdminUserServiceImpl.java b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/service/user/AdminUserServiceImpl.java index 52703ed2..0df5d241 100644 --- a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/service/user/AdminUserServiceImpl.java +++ b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/service/user/AdminUserServiceImpl.java @@ -119,6 +119,7 @@ public class AdminUserServiceImpl implements AdminUserService { if (user.getUserSource() == null) { user.setUserSource(UserSourceEnum.EXTERNAL.getSource()); } + user.setAvatar(normalizeAvatarValue(createReqVO.getAvatar())); user.setPassword(encodePassword(createReqVO.getPassword())); userMapper.insert(user); // 2.2 插入关联部门 @@ -202,6 +203,9 @@ public class AdminUserServiceImpl implements AdminUserService { if (StrUtil.isNotBlank(updateReqVO.getRemark())) { updateObj.setRemark(updateReqVO.getRemark()); } + if (updateReqVO.isAvatarPresent()) { + updateObj.setAvatar(normalizeAvatarValue(updateReqVO.getAvatar())); + } userMapper.updateById(updateObj); // 2.2 更新部门 @@ -250,7 +254,12 @@ public class AdminUserServiceImpl implements AdminUserService { validateEmailUnique(id, reqVO.getEmail()); validateMobileUnique(id, reqVO.getMobile()); // 执行更新 - userMapper.updateById(BeanUtils.toBean(reqVO, AdminUserDO.class).setId(id)); + AdminUserDO updateObj = BeanUtils.toBean(reqVO, AdminUserDO.class); + updateObj.setId(id); + if (reqVO.isAvatarPresent()) { + updateObj.setAvatar(normalizeAvatarValue(reqVO.getAvatar())); + } + userMapper.updateById(updateObj); } @Override @@ -313,12 +322,14 @@ public class AdminUserServiceImpl implements AdminUserService { @Override public AdminUserDO getUserByUsername(String username) { - return userMapper.selectByUsername(username); + AdminUserDO user = userMapper.selectByUsername(username); + return user; } @Override public AdminUserDO getUserByMobile(String mobile) { - return userMapper.selectByMobile(mobile); + AdminUserDO user = userMapper.selectByMobile(mobile); + return user; } @Override @@ -375,7 +386,8 @@ public class AdminUserServiceImpl implements AdminUserService { if (CollUtil.isEmpty(userIds)) { return Collections.emptyList(); } - return userMapper.selectBatchIds(userIds); + List users = userMapper.selectBatchIds(userIds); + return users; } @Override @@ -383,7 +395,8 @@ public class AdminUserServiceImpl implements AdminUserService { if (CollUtil.isEmpty(ids)) { return Collections.emptyList(); } - return userMapper.selectListByIds(ids); + List users = userMapper.selectListByIds(ids); + return users; } @Override @@ -408,7 +421,8 @@ public class AdminUserServiceImpl implements AdminUserService { @Override public List getUserListByNickname(String nickname) { - return userMapper.selectListByNickname(nickname); + List users = userMapper.selectListByNickname(nickname); + return users; } /** @@ -468,6 +482,10 @@ public class AdminUserServiceImpl implements AdminUserService { }); } + private String normalizeAvatarValue(String avatarValue) { + return StrUtil.isBlank(avatarValue) ? null : avatarValue.trim(); + } + private AdminUserDO validateUserForCreateOrUpdate(Long id, String username, String mobile, String email, Set deptIds, Set postIds) { // 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确 @@ -572,7 +590,8 @@ public class AdminUserServiceImpl implements AdminUserService { @Override public List getUserListByStatus(Integer status) { - return userMapper.selectListByStatus(status); + List users = userMapper.selectListByStatus(status); + return users; } @Override