|
|
@@ -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());
|