Browse Source

用户信息卡片和大图显示

master
xie.bx 3 years ago
parent
commit
b4b435d654
  1. 34
      im-platform/src/main/java/com/lx/implatform/service/impl/UserServiceImpl.java
  2. 2
      im-ui/src/components/group/GroupMember.vue
  3. 2
      im-ui/src/components/setting/Setting.vue

34
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<UserMapper, User> 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<UserMapper, User> 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<UserMapper, User> implements IU
if(null == user){
throw new GlobalException(ResultCode.PROGRAM_ERROR,"用户不存在");
}
// 更新好友昵称和头像
if(!user.getNickName().equals(vo.getNickName()) || !user.getHeadImageThumb().equals(vo.getHeadImageThumb())){
QueryWrapper<Friend> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(Friend::getFriendId,session.getId());
List<Friend> 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<GroupMember> 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());

2
im-ui/src/components/group/GroupMember.vue

@ -4,7 +4,7 @@
<div v-if="showDel" @click.stop="handleDelete()" class="btn-kick el-icon-error"></div>
</head-image>
<div class="member-name">{{member.aliasName}}</div>
</div>
</template>

2
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']">
<img v-if="userInfo.headImage" :src="userInfo.headImage" class="avatar">
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</file-upload>

Loading…
Cancel
Save