Commit 415333153564a9c3c06b1fc09bac7e3796281d9e
1 parent
94a32d34
1. 合并 member 修改昵称和头像接口,统一成修改基本信息 API
Showing
8 changed files
with
40 additions
and
72 deletions
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/user/AppMemberUserController.http
| @@ -2,13 +2,3 @@ | @@ -2,13 +2,3 @@ | ||
| 2 | GET {{appApi}}/member/user/get | 2 | GET {{appApi}}/member/user/get |
| 3 | Authorization: Bearer test245 | 3 | Authorization: Bearer test245 |
| 4 | tenant-id: {{appTenentId}} | 4 | tenant-id: {{appTenentId}} |
| 5 | - | ||
| 6 | -### 请求 /member/user/profile/revise-nickname 接口 成功 | ||
| 7 | -PUT {{appApi}}/member/user/update-nickname?nickname=yunai222 | ||
| 8 | -Authorization: Bearer test245 | ||
| 9 | -tenant-id: {{appTenentId}} | ||
| 10 | - | ||
| 11 | -### 请求 /member/user/get-user-info 接口 成功 | ||
| 12 | -GET {{appApi}}/member/user/get-user-info?id=245 | ||
| 13 | -Authorization: Bearer test245 | ||
| 14 | -tenant-id: {{appTenentId}} |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/user/AppMemberUserController.java
| @@ -2,25 +2,23 @@ package cn.iocoder.yudao.module.member.controller.app.user; | @@ -2,25 +2,23 @@ package cn.iocoder.yudao.module.member.controller.app.user; | ||
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; | 3 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| 4 | import cn.iocoder.yudao.framework.security.core.annotations.PreAuthenticated; | 4 | import cn.iocoder.yudao.framework.security.core.annotations.PreAuthenticated; |
| 5 | -import cn.iocoder.yudao.module.member.controller.app.user.vo.AppUserInfoRespVO; | 5 | +import cn.iocoder.yudao.module.member.controller.app.user.vo.AppMemberUserInfoRespVO; |
| 6 | +import cn.iocoder.yudao.module.member.controller.app.user.vo.AppMemberUserUpdateReqVO; | ||
| 6 | import cn.iocoder.yudao.module.member.controller.app.user.vo.AppUserUpdateMobileReqVO; | 7 | import cn.iocoder.yudao.module.member.controller.app.user.vo.AppUserUpdateMobileReqVO; |
| 7 | import cn.iocoder.yudao.module.member.convert.user.MemberUserConvert; | 8 | import cn.iocoder.yudao.module.member.convert.user.MemberUserConvert; |
| 8 | import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; | 9 | import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; |
| 9 | import cn.iocoder.yudao.module.member.service.user.MemberUserService; | 10 | import cn.iocoder.yudao.module.member.service.user.MemberUserService; |
| 10 | -import io.swagger.v3.oas.annotations.tags.Tag; | ||
| 11 | import io.swagger.v3.oas.annotations.Operation; | 11 | import io.swagger.v3.oas.annotations.Operation; |
| 12 | +import io.swagger.v3.oas.annotations.tags.Tag; | ||
| 12 | import lombok.extern.slf4j.Slf4j; | 13 | import lombok.extern.slf4j.Slf4j; |
| 13 | import org.springframework.validation.annotation.Validated; | 14 | import org.springframework.validation.annotation.Validated; |
| 14 | import org.springframework.web.bind.annotation.*; | 15 | import org.springframework.web.bind.annotation.*; |
| 15 | -import org.springframework.web.multipart.MultipartFile; | ||
| 16 | 16 | ||
| 17 | import javax.annotation.Resource; | 17 | import javax.annotation.Resource; |
| 18 | import javax.validation.Valid; | 18 | import javax.validation.Valid; |
| 19 | 19 | ||
| 20 | -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; | ||
| 21 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | 20 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; |
| 22 | import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; | 21 | import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; |
| 23 | -import static cn.iocoder.yudao.module.infra.enums.ErrorCodeConstants.FILE_IS_EMPTY; | ||
| 24 | 22 | ||
| 25 | @Tag(name = "用户 APP - 用户个人中心") | 23 | @Tag(name = "用户 APP - 用户个人中心") |
| 26 | @RestController | 24 | @RestController |
| @@ -32,29 +30,18 @@ public class AppMemberUserController { | @@ -32,29 +30,18 @@ public class AppMemberUserController { | ||
| 32 | @Resource | 30 | @Resource |
| 33 | private MemberUserService userService; | 31 | private MemberUserService userService; |
| 34 | 32 | ||
| 35 | - @PutMapping("/update-nickname") | ||
| 36 | - @Operation(summary = "修改用户昵称") | 33 | + @PutMapping("/update") |
| 34 | + @Operation(summary = "修改基本信息") | ||
| 37 | @PreAuthenticated | 35 | @PreAuthenticated |
| 38 | - public CommonResult<Boolean> updateUserNickname(@RequestParam("nickname") String nickname) { | ||
| 39 | - userService.updateUserNickname(getLoginUserId(), nickname); | 36 | + public CommonResult<Boolean> updateUser(@RequestBody @Valid AppMemberUserUpdateReqVO reqVO) { |
| 37 | + userService.updateUser(getLoginUserId(), reqVO); | ||
| 40 | return success(true); | 38 | return success(true); |
| 41 | } | 39 | } |
| 42 | 40 | ||
| 43 | - @PostMapping("/update-avatar") | ||
| 44 | - @Operation(summary = "修改用户头像") | ||
| 45 | - @PreAuthenticated | ||
| 46 | - public CommonResult<String> updateUserAvatar(@RequestParam("avatarFile") MultipartFile file) throws Exception { | ||
| 47 | - if (file.isEmpty()) { | ||
| 48 | - throw exception(FILE_IS_EMPTY); | ||
| 49 | - } | ||
| 50 | - String avatar = userService.updateUserAvatar(getLoginUserId(), file.getInputStream()); | ||
| 51 | - return success(avatar); | ||
| 52 | - } | ||
| 53 | - | ||
| 54 | @GetMapping("/get") | 41 | @GetMapping("/get") |
| 55 | @Operation(summary = "获得基本信息") | 42 | @Operation(summary = "获得基本信息") |
| 56 | @PreAuthenticated | 43 | @PreAuthenticated |
| 57 | - public CommonResult<AppUserInfoRespVO> getUserInfo() { | 44 | + public CommonResult<AppMemberUserInfoRespVO> getUserInfo() { |
| 58 | MemberUserDO user = userService.getUser(getLoginUserId()); | 45 | MemberUserDO user = userService.getUser(getLoginUserId()); |
| 59 | return success(MemberUserConvert.INSTANCE.convert(user)); | 46 | return success(MemberUserConvert.INSTANCE.convert(user)); |
| 60 | } | 47 | } |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/user/vo/AppUserInfoRespVO.java renamed to yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/user/vo/AppMemberUserInfoRespVO.java
| @@ -9,7 +9,7 @@ import lombok.NoArgsConstructor; | @@ -9,7 +9,7 @@ import lombok.NoArgsConstructor; | ||
| 9 | @Data | 9 | @Data |
| 10 | @NoArgsConstructor | 10 | @NoArgsConstructor |
| 11 | @AllArgsConstructor | 11 | @AllArgsConstructor |
| 12 | -public class AppUserInfoRespVO { | 12 | +public class AppMemberUserInfoRespVO { |
| 13 | 13 | ||
| 14 | @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") | 14 | @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") |
| 15 | private String nickname; | 15 | private String nickname; |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/user/vo/AppMemberUserUpdateReqVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.member.controller.app.user.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | +import lombok.Data; | ||
| 5 | +import org.hibernate.validator.constraints.URL; | ||
| 6 | + | ||
| 7 | +@Schema(description = "用户 App - 会员用户更新 Request VO") | ||
| 8 | +@Data | ||
| 9 | +public class AppMemberUserUpdateReqVO { | ||
| 10 | + | ||
| 11 | + @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四") | ||
| 12 | + private String nickname; | ||
| 13 | + | ||
| 14 | + @Schema(description = "头像", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/x.png") | ||
| 15 | + @URL(message = "头像必须是 URL 格式") | ||
| 16 | + private String avatar; | ||
| 17 | + | ||
| 18 | +} |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/convert/user/MemberUserConvert.java
| @@ -4,7 +4,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; | @@ -4,7 +4,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 4 | import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO; | 4 | import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO; |
| 5 | import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserRespVO; | 5 | import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserRespVO; |
| 6 | import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserUpdateReqVO; | 6 | import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserUpdateReqVO; |
| 7 | -import cn.iocoder.yudao.module.member.controller.app.user.vo.AppUserInfoRespVO; | 7 | +import cn.iocoder.yudao.module.member.controller.app.user.vo.AppMemberUserInfoRespVO; |
| 8 | import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; | 8 | import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; |
| 9 | import org.mapstruct.Mapper; | 9 | import org.mapstruct.Mapper; |
| 10 | import org.mapstruct.factory.Mappers; | 10 | import org.mapstruct.factory.Mappers; |
| @@ -16,7 +16,7 @@ public interface MemberUserConvert { | @@ -16,7 +16,7 @@ public interface MemberUserConvert { | ||
| 16 | 16 | ||
| 17 | MemberUserConvert INSTANCE = Mappers.getMapper(MemberUserConvert.class); | 17 | MemberUserConvert INSTANCE = Mappers.getMapper(MemberUserConvert.class); |
| 18 | 18 | ||
| 19 | - AppUserInfoRespVO convert(MemberUserDO bean); | 19 | + AppMemberUserInfoRespVO convert(MemberUserDO bean); |
| 20 | 20 | ||
| 21 | MemberUserRespDTO convert2(MemberUserDO bean); | 21 | MemberUserRespDTO convert2(MemberUserDO bean); |
| 22 | 22 |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserService.java
| @@ -4,11 +4,11 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; | @@ -4,11 +4,11 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 4 | import cn.iocoder.yudao.framework.common.validation.Mobile; | 4 | import cn.iocoder.yudao.framework.common.validation.Mobile; |
| 5 | import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserPageReqVO; | 5 | import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserPageReqVO; |
| 6 | import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserUpdateReqVO; | 6 | import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserUpdateReqVO; |
| 7 | +import cn.iocoder.yudao.module.member.controller.app.user.vo.AppMemberUserUpdateReqVO; | ||
| 7 | import cn.iocoder.yudao.module.member.controller.app.user.vo.AppUserUpdateMobileReqVO; | 8 | import cn.iocoder.yudao.module.member.controller.app.user.vo.AppUserUpdateMobileReqVO; |
| 8 | import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; | 9 | import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; |
| 9 | 10 | ||
| 10 | import javax.validation.Valid; | 11 | import javax.validation.Valid; |
| 11 | -import java.io.InputStream; | ||
| 12 | import java.util.Collection; | 12 | import java.util.Collection; |
| 13 | import java.util.List; | 13 | import java.util.List; |
| 14 | 14 | ||
| @@ -70,26 +70,17 @@ public interface MemberUserService { | @@ -70,26 +70,17 @@ public interface MemberUserService { | ||
| 70 | List<MemberUserDO> getUserList(Collection<Long> ids); | 70 | List<MemberUserDO> getUserList(Collection<Long> ids); |
| 71 | 71 | ||
| 72 | /** | 72 | /** |
| 73 | - * 【会员】修改用户昵称 | 73 | + * 【会员】修改基本信息 |
| 74 | * | 74 | * |
| 75 | - * @param userId 用户id | ||
| 76 | - * @param nickname 用户新昵称 | 75 | + * @param userId 用户编号 |
| 76 | + * @param reqVO 基本信息 | ||
| 77 | */ | 77 | */ |
| 78 | - void updateUserNickname(Long userId, String nickname); | ||
| 79 | - | ||
| 80 | - /** | ||
| 81 | - * 【会员】修改用户头像 | ||
| 82 | - * | ||
| 83 | - * @param userId 用户id | ||
| 84 | - * @param inputStream 头像文件 | ||
| 85 | - * @return 头像url | ||
| 86 | - */ | ||
| 87 | - String updateUserAvatar(Long userId, InputStream inputStream) throws Exception; | 78 | + void updateUser(Long userId, AppMemberUserUpdateReqVO reqVO); |
| 88 | 79 | ||
| 89 | /** | 80 | /** |
| 90 | * 【会员】修改手机 | 81 | * 【会员】修改手机 |
| 91 | * | 82 | * |
| 92 | - * @param userId 用户id | 83 | + * @param userId 用户编号 |
| 93 | * @param reqVO 请求实体 | 84 | * @param reqVO 请求实体 |
| 94 | */ | 85 | */ |
| 95 | void updateUserMobile(Long userId, AppUserUpdateMobileReqVO reqVO); | 86 | void updateUserMobile(Long userId, AppUserUpdateMobileReqVO reqVO); |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java
| 1 | package cn.iocoder.yudao.module.member.service.user; | 1 | package cn.iocoder.yudao.module.member.service.user; |
| 2 | 2 | ||
| 3 | -import cn.hutool.core.io.IoUtil; | ||
| 4 | import cn.hutool.core.util.IdUtil; | 3 | import cn.hutool.core.util.IdUtil; |
| 5 | import cn.hutool.core.util.StrUtil; | 4 | import cn.hutool.core.util.StrUtil; |
| 6 | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | 5 | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; |
| @@ -8,6 +7,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; | @@ -8,6 +7,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 8 | import cn.iocoder.yudao.module.infra.api.file.FileApi; | 7 | import cn.iocoder.yudao.module.infra.api.file.FileApi; |
| 9 | import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserPageReqVO; | 8 | import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserPageReqVO; |
| 10 | import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserUpdateReqVO; | 9 | import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserUpdateReqVO; |
| 10 | +import cn.iocoder.yudao.module.member.controller.app.user.vo.AppMemberUserUpdateReqVO; | ||
| 11 | import cn.iocoder.yudao.module.member.controller.app.user.vo.AppUserUpdateMobileReqVO; | 11 | import cn.iocoder.yudao.module.member.controller.app.user.vo.AppUserUpdateMobileReqVO; |
| 12 | import cn.iocoder.yudao.module.member.convert.user.MemberUserConvert; | 12 | import cn.iocoder.yudao.module.member.convert.user.MemberUserConvert; |
| 13 | import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; | 13 | import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; |
| @@ -23,7 +23,6 @@ import org.springframework.transaction.annotation.Transactional; | @@ -23,7 +23,6 @@ import org.springframework.transaction.annotation.Transactional; | ||
| 23 | 23 | ||
| 24 | import javax.annotation.Resource; | 24 | import javax.annotation.Resource; |
| 25 | import javax.validation.Valid; | 25 | import javax.validation.Valid; |
| 26 | -import java.io.InputStream; | ||
| 27 | import java.time.LocalDateTime; | 26 | import java.time.LocalDateTime; |
| 28 | import java.util.Collection; | 27 | import java.util.Collection; |
| 29 | import java.util.List; | 28 | import java.util.List; |
| @@ -105,26 +104,9 @@ public class MemberUserServiceImpl implements MemberUserService { | @@ -105,26 +104,9 @@ public class MemberUserServiceImpl implements MemberUserService { | ||
| 105 | } | 104 | } |
| 106 | 105 | ||
| 107 | @Override | 106 | @Override |
| 108 | - public void updateUserNickname(Long userId, String nickname) { | ||
| 109 | - MemberUserDO user = this.validateUserExists(userId); | ||
| 110 | - // 仅当新昵称不等于旧昵称时进行修改 | ||
| 111 | - if (nickname.equals(user.getNickname())){ | ||
| 112 | - return; | ||
| 113 | - } | ||
| 114 | - MemberUserDO userDO = new MemberUserDO(); | ||
| 115 | - userDO.setId(user.getId()); | ||
| 116 | - userDO.setNickname(nickname); | ||
| 117 | - memberUserMapper.updateById(userDO); | ||
| 118 | - } | ||
| 119 | - | ||
| 120 | - @Override | ||
| 121 | - public String updateUserAvatar(Long userId, InputStream avatarFile) { | ||
| 122 | - validateUserExists(userId); | ||
| 123 | - // 创建文件 | ||
| 124 | - String avatar = fileApi.createFile(IoUtil.readBytes(avatarFile)); | ||
| 125 | - // 更新头像路径 | ||
| 126 | - memberUserMapper.updateById(MemberUserDO.builder().id(userId).avatar(avatar).build()); | ||
| 127 | - return avatar; | 107 | + public void updateUser(Long userId, AppMemberUserUpdateReqVO reqVO) { |
| 108 | + memberUserMapper.updateById(new MemberUserDO().setId(userId) | ||
| 109 | + .setNickname(reqVO.getNickname()).setAvatar(reqVO.getAvatar())); | ||
| 128 | } | 110 | } |
| 129 | 111 | ||
| 130 | @Override | 112 | @Override |
yudao-module-member/yudao-module-member-biz/src/test/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImplTest.java
| @@ -67,7 +67,7 @@ public class MemberUserServiceImplTest extends BaseDbAndRedisUnitTest { | @@ -67,7 +67,7 @@ public class MemberUserServiceImplTest extends BaseDbAndRedisUnitTest { | ||
| 67 | String newNickName = randomString(); | 67 | String newNickName = randomString(); |
| 68 | 68 | ||
| 69 | // 调用接口修改昵称 | 69 | // 调用接口修改昵称 |
| 70 | - memberUserService.updateUserNickname(userDO.getId(),newNickName); | 70 | + memberUserService.updateUser(userDO.getId(),newNickName); |
| 71 | // 查询新修改后的昵称 | 71 | // 查询新修改后的昵称 |
| 72 | String nickname = memberUserService.getUser(userDO.getId()).getNickname(); | 72 | String nickname = memberUserService.getUser(userDO.getId()).getNickname(); |
| 73 | // 断言 | 73 | // 断言 |