From b4b435d6543d711ab79f0b31a7da00e317745d72 Mon Sep 17 00:00:00 2001 From: "xie.bx" Date: Fri, 4 Nov 2022 23:59:46 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E4=BF=A1=E6=81=AF=E5=8D=A1?= =?UTF-8?q?=E7=89=87=E5=92=8C=E5=A4=A7=E5=9B=BE=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/UserServiceImpl.java | 34 +++++++++++++++++-- im-ui/src/components/group/GroupMember.vue | 2 +- im-ui/src/components/setting/Setting.vue | 2 +- 3 files changed, 34 insertions(+), 4 deletions(-) diff --git a/im-platform/src/main/java/com/lx/implatform/service/impl/UserServiceImpl.java b/im-platform/src/main/java/com/lx/implatform/service/impl/UserServiceImpl.java index 438f3bf..45fe371 100644 --- a/im-platform/src/main/java/com/lx/implatform/service/impl/UserServiceImpl.java +++ b/im-platform/src/main/java/com/lx/implatform/service/impl/UserServiceImpl.java @@ -5,9 +5,13 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.lx.common.contant.RedisKey; import com.lx.common.enums.ResultCode; import com.lx.common.util.BeanUtils; +import com.lx.implatform.entity.Friend; +import com.lx.implatform.entity.GroupMember; import com.lx.implatform.entity.User; import com.lx.implatform.exception.GlobalException; import com.lx.implatform.mapper.UserMapper; +import com.lx.implatform.service.IFriendService; +import com.lx.implatform.service.IGroupMemberService; import com.lx.implatform.service.IUserService; import com.lx.implatform.session.SessionContext; import com.lx.implatform.session.UserSession; @@ -18,6 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.LinkedList; import java.util.List; @@ -40,6 +45,12 @@ public class UserServiceImpl extends ServiceImpl implements IU @Autowired private PasswordEncoder passwordEncoder; + @Autowired + private IGroupMemberService groupMemberService; + + @Autowired + private IFriendService friendService; + @Override public void register(RegisterVO vo) { User user = findUserByName(vo.getUserName()); @@ -58,7 +69,7 @@ public class UserServiceImpl extends ServiceImpl implements IU return this.getOne(queryWrapper); } - + @Transactional @Override public void update(UserVO vo) { UserSession session = SessionContext.getSession(); @@ -69,7 +80,26 @@ public class UserServiceImpl extends ServiceImpl implements IU if(null == user){ throw new GlobalException(ResultCode.PROGRAM_ERROR,"用户不存在"); } - + // 更新好友昵称和头像 + if(!user.getNickName().equals(vo.getNickName()) || !user.getHeadImageThumb().equals(vo.getHeadImageThumb())){ + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().eq(Friend::getFriendId,session.getId()); + List friends = friendService.list(queryWrapper); + for(Friend friend: friends){ + friend.setFriendNickName(vo.getNickName()); + friend.setFriendHeadImage(vo.getHeadImageThumb()); + } + friendService.updateBatchById(friends); + } + // 更新群聊中的头像 + if(!user.getHeadImageThumb().equals(vo.getHeadImageThumb())){ + List members = groupMemberService.findByUserId(session.getId()); + for(GroupMember member:members){ + member.setHeadImage(vo.getHeadImageThumb()); + } + groupMemberService.updateBatchById(members); + } + // 更新用户信息 user.setNickName(vo.getNickName()); user.setSex(vo.getSex()); user.setSignature(vo.getSignature()); diff --git a/im-ui/src/components/group/GroupMember.vue b/im-ui/src/components/group/GroupMember.vue index 3345994..493f1d4 100644 --- a/im-ui/src/components/group/GroupMember.vue +++ b/im-ui/src/components/group/GroupMember.vue @@ -4,7 +4,7 @@
{{member.aliasName}}
- + diff --git a/im-ui/src/components/setting/Setting.vue b/im-ui/src/components/setting/Setting.vue index 067e6e8..748cf70 100644 --- a/im-ui/src/components/setting/Setting.vue +++ b/im-ui/src/components/setting/Setting.vue @@ -8,7 +8,7 @@ :maxSize="maxSize" @success="handleUploadSuccess" - :fileTypes="['image/jpeg', 'image/png', 'image/jpg']"> + :fileTypes="['image/jpeg', 'image/png', 'image/jpg','image/webp']">