From fce0047b57c4b2af4f02f30bfb16e88dd005fe13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E8=89=AF=28004796=29?= Date: Thu, 18 Jan 2024 13:59:46 +0800 Subject: [PATCH] 123 --- .../com/ruoyi/cai/auth/CaiLoginManager.java | 5 ++-- .../cai/controller/app/UserAppController.java | 3 +- .../java/com/ruoyi/cai/enums/GenderEnum.java | 30 ++++++++++++++++--- .../ruoyi/cai/manager/CurrentUserManager.java | 28 ++++++++++++----- .../cai/service/impl/UserServiceImpl.java | 4 +-- 5 files changed, 54 insertions(+), 16 deletions(-) diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/auth/CaiLoginManager.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/auth/CaiLoginManager.java index 9ed143e2..cfcd075a 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/auth/CaiLoginManager.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/auth/CaiLoginManager.java @@ -8,6 +8,7 @@ import cn.hutool.extra.spring.SpringUtil; import com.alibaba.fastjson2.JSON; import com.ruoyi.cai.domain.*; import com.ruoyi.cai.enums.CodeEnum; +import com.ruoyi.cai.enums.GenderEnum; import com.ruoyi.cai.enums.SystemConfigEnum; import com.ruoyi.cai.executor.ExecutorConstant; import com.ruoyi.cai.manager.CodeManager; @@ -243,8 +244,8 @@ public class CaiLoginManager { add.setType(0); add.setPassword(BCrypt.hashpw(user.getPassword())); add.setMobile(user.getUsername()); - add.setAvatar(null); - add.setGender(0); + add.setGender(GenderEnum.NONE.getCode()); + add.setAvatar(GenderEnum.NONE.getDefaultAvatar()); add.setInviteId(user.getInviteId()); add.setImToken(IdUtil.simpleUUID()); userService.save(add); diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/UserAppController.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/UserAppController.java index 92059198..68515eed 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/UserAppController.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/UserAppController.java @@ -72,7 +72,8 @@ public class UserAppController { @Operation(summary = "修改当前用户信息") @Log(title = "修改当前用户信息", businessType = BusinessType.OTHER, isSaveDb = false) public R userUpdate(@Validated @RequestBody UserUpdateReq res){ - return R.ok(currentUserManager.userUpdate(res)); + currentUserManager.userUpdate(res); + return R.ok(); } @PostMapping("/album/del") diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/GenderEnum.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/GenderEnum.java index 2545b776..d274052c 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/GenderEnum.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/GenderEnum.java @@ -4,16 +4,38 @@ import lombok.Getter; @Getter public enum GenderEnum { - NONE(0,"未知"), - WOMEN(1,"女"), - MAN(2,"男"), + NONE(0,"未知","images/avatar/avatar.png"), + WOMEN(1,"女","images/avatar/woman.png"), + MAN(2,"男","images/avatar/man.png"), ; private final Integer code; private final String name; + private final String defaultAvatar; - GenderEnum(Integer code, String name) { + GenderEnum(Integer code, String name, String defaultAvatar) { this.code = code; this.name = name; + this.defaultAvatar = defaultAvatar; + } + + public static GenderEnum getByCode(Integer code){ + GenderEnum[] values = GenderEnum.values(); + for (GenderEnum value : values) { + if(value.getCode().equals(code)){ + return value; + } + } + return null; + } + + public static boolean checkDefaultAvatar(String avatar){ + GenderEnum[] values = GenderEnum.values(); + for (GenderEnum value : values) { + if(value.getDefaultAvatar().equals(avatar)){ + return true; + } + } + return false; } } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/CurrentUserManager.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/CurrentUserManager.java index f1fdce33..6a2cdf53 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/CurrentUserManager.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/CurrentUserManager.java @@ -3,10 +3,10 @@ package com.ruoyi.cai.manager; import com.alibaba.fastjson2.JSON; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.ruoyi.cai.auth.CaiLoginManager; import com.ruoyi.cai.domain.*; import com.ruoyi.cai.dto.app.query.AccountAliBankCardRes; import com.ruoyi.cai.dto.app.query.AnchorUpdateReq; -import com.ruoyi.cai.dto.app.query.FinishUserUpdateReq; import com.ruoyi.cai.dto.app.query.UserUpdateReq; import com.ruoyi.cai.dto.app.vo.AnchorVo; import com.ruoyi.cai.dto.app.vo.CurrentUserInfoVo; @@ -14,6 +14,8 @@ import com.ruoyi.cai.dto.app.vo.user.CurrentUserUpdateInfoVo; import com.ruoyi.cai.dto.app.vo.user.UserAccountVo; import com.ruoyi.cai.dto.app.vo.user.UserAlbumDTO; import com.ruoyi.cai.dto.app.vo.user.UserCountVo; +import com.ruoyi.cai.enums.GenderEnum; +import com.ruoyi.cai.executor.ExecutorConstant; import com.ruoyi.cai.service.*; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.helper.LoginHelper; @@ -116,8 +118,12 @@ public class CurrentUserManager { return true; } + @Autowired + private CaiLoginManager loginManager; + public boolean userUpdate(UserUpdateReq res) { res.setUserId(LoginHelper.getUserId()); + User user = userService.getById(res.getUserId()); boolean updateFlag = false; boolean updateYunxin = false; UpdateUinfoReq uinfoReq = new UpdateUinfoReq(); @@ -130,9 +136,10 @@ public class CurrentUserManager { updateFlag=true; updateYunxin=true; } - if(res.getInviteId() != null){ + if(res.getInviteId() != null && user.getInviteId() != null){ update.set(User::getInviteId,res.getInviteId()); - // TODO 邀请人的后续操作 + user.setInviteId(res.getInviteId()); + ExecutorConstant.COMMON_EXECUTOR.execute(() -> loginManager.dealInviteId(user)); } if(res.getBirthday() != null){ update.set(User::getBirthday,res.getBirthday()); @@ -141,10 +148,15 @@ public class CurrentUserManager { updateYunxin=true; } if(res.getGender() != null){ - User user = userService.getById(res.getUserId()); + GenderEnum genderEnum = GenderEnum.getByCode(res.getGender()); + if(genderEnum == null){ + throw new ServiceException("性别参数异常"); + } if(user.getGender() != 0 && !user.getGender().equals(res.getGender())){ throw new ServiceException("性别不可以修改"); } + update.set(User::getGender,genderEnum.getCode()); + update.set(User::getAvatar,genderEnum.getDefaultAvatar()); } if(res.getCityId() != null){ update.set(User::getCityId,res.getCityId()); @@ -152,11 +164,13 @@ public class CurrentUserManager { updateFlag=true; } if(StringUtils.isNotEmpty(res.getAvatar())){ - update.set(User::getAvatar,res.getAvatar()); - update.set(User::getAvatarState,1); + if(!GenderEnum.checkDefaultAvatar(res.getAvatar())){ + update.set(User::getAvatar,res.getAvatar()); + update.set(User::getAvatarState,1); // uinfoReq.setIcon(res.getAvatar()); // updateYunxin=true; - updateFlag=true; + updateFlag=true; + } } if(updateFlag){ boolean flag = userService.update(update); diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UserServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UserServiceImpl.java index e14c1df2..35b9627c 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UserServiceImpl.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UserServiceImpl.java @@ -11,6 +11,7 @@ import com.ruoyi.cai.dto.app.query.index.UserQuery; import com.ruoyi.cai.dto.app.vo.user.UserInfoVo; import com.ruoyi.cai.dto.app.vo.user.UserListVo; import com.ruoyi.cai.dto.app.vo.user.OnlineStatusVo; +import com.ruoyi.cai.enums.GenderEnum; import com.ruoyi.cai.mapper.UserMapper; import com.ruoyi.cai.service.*; import com.ruoyi.cai.ws.service.RoomService; @@ -158,8 +159,7 @@ public class UserServiceImpl extends ServiceImpl implements Us if(user == null || user.getFinishStatus() == 1){ return; } - if(user.getCity() != null && user.getBirthday() != null && StringUtils.isNotEmpty(user.getNickname()) - && user.getGender() == 0){ + if(user.getCity() != null && user.getBirthday() != null && GenderEnum.NONE.getCode().equals(user.getGender())){ this.update(Wrappers.lambdaUpdate(User.class) .eq(User::getId,user.getId()) .set(User::getFinishStatus,1));