Commit dc0195dd authored by 技术部-任文超's avatar 技术部-任文超
parent 7b3dd1c0
...@@ -76,42 +76,6 @@ public class UserCenterController { ...@@ -76,42 +76,6 @@ public class UserCenterController {
return JsonResult.buildSuccessResult(null, result); return JsonResult.buildSuccessResult(null, result);
} }
/**
* 上传后调用该接口保存用户头像
*
* @param phoneNo 用户手机号
* @param avatarUrl 上传后生成的头像地址
* @return
*/
@RequestMapping("/save/avatar")
public JsonResult SaveUserAvatarAddr(String phoneNo, String avatarUrl) {
if (StringUtils.isBlank(avatarUrl) || StringUtils.isBlank(phoneNo)) {
LOGGER.error("参数不合法:avatarUrl:{}, phoneNo:{}", avatarUrl, phoneNo);
return JsonResult.buildErrorStateResult("参数不合法", null);
}
Long userId = queryUserId(phoneNo);
if (null == userId || userId == 0L) {
return JsonResult.buildErrorStateResult("该用户不存在", null);
}
if (StringUtils.isBlank(avatarUrl)) {
avatarUrl = Constants.UserAvatar.AVATAR_DEFAULT;
}
UserAttached userAttached = userCenterService.searchUserAttachedByUserId(userId);
//查询到数据,直接更新头像和更新时间
if (null != userAttached) {
userAttached.setAvatar(avatarUrl);
userAttached.setUpdatedAt(new Timestamp(System.currentTimeMillis()));
} else {
userAttached = createUserAttached(userId, avatarUrl, "");
}
UserAttached result = userCenterService.saveUserAttached(userAttached);
if (null == userAttached) {
LOGGER.error("保存用户头像昵称失败.");
return JsonResult.buildErrorStateResult("信息保存失败,请稍后再试.", null);
}
return JsonResult.buildSuccessResult("保存成功", result);
}
/** /**
* 根据用户手机号查询昵称. * 根据用户手机号查询昵称.
* *
...@@ -157,15 +121,36 @@ public class UserCenterController { ...@@ -157,15 +121,36 @@ public class UserCenterController {
// 替换所有,UTF-8编码时4字节的Emoji表情字符 // 替换所有,UTF-8编码时4字节的Emoji表情字符
nick = EmojiUtil.filterUnicode4(nick); nick = EmojiUtil.filterUnicode4(nick);
} }
UserAttached userAttached = userCenterService.searchUserAttachedByUserId(userId); UserAttached userAttached = userCenterService.saveUserNick(userId, nick);
return JsonResult.buildSuccessResult(null, userAttached.getNick());
}
/**
* 上传后调用该接口保存用户头像
*
* @param phoneNo 用户手机号
* @param avatarUrl 上传后生成的头像地址
* @return
*/
@RequestMapping("/save/avatar")
public JsonResult SaveUserAvatarAddr(String phoneNo, String avatarUrl) {
if (StringUtils.isBlank(avatarUrl) || StringUtils.isBlank(phoneNo)) {
LOGGER.error("参数不合法:avatarUrl:{}, phoneNo:{}", avatarUrl, phoneNo);
return JsonResult.buildErrorStateResult("参数不合法", null);
}
Long userId = queryUserId(phoneNo);
if (null == userId || userId == 0L) {
return JsonResult.buildErrorStateResult("该用户不存在", null);
}
if (StringUtils.isBlank(avatarUrl)) {
avatarUrl = Constants.UserAvatar.AVATAR_DEFAULT;
}
UserAttached userAttached = userCenterService.saveUserAvatar(userId, avatarUrl);
if (null == userAttached) { if (null == userAttached) {
userAttached = createUserAttached(userId, "", nick); LOGGER.error("保存用户头像昵称失败.");
} else { return JsonResult.buildErrorStateResult("信息保存失败,请稍后再试.", null);
userAttached.setNick(nick);
userAttached.setUpdatedAt(new Timestamp(System.currentTimeMillis()));
} }
UserAttached result = userCenterService.saveUserAttached(userAttached); return JsonResult.buildSuccessResult("保存成功", userAttached);
return JsonResult.buildSuccessResult(null, result.getNick());
} }
/** /**
......
...@@ -6,7 +6,26 @@ import cn.quantgroup.xyqb.entity.UserAttached; ...@@ -6,7 +6,26 @@ import cn.quantgroup.xyqb.entity.UserAttached;
* Created by 11 on 2017/3/22. * Created by 11 on 2017/3/22.
*/ */
public interface UserCenterService { public interface UserCenterService {
UserAttached searchUserAttachedByUserId(Long userId); /**
* 查询用户附加信息
* @param userId
* @return
*/
UserAttached searchUserAttachedByUserId(long userId);
/**
* 保存用户头像
* @param userId - 用户主键
* @param avatar - 头像url地址
* @return
*/
UserAttached saveUserAvatar(long userId, String avatar);
UserAttached saveUserAttached(UserAttached userAttached); /**
* 保存用户昵称
* @param userId - 用户主键
* @param nick - 昵称
* @return
*/
UserAttached saveUserNick(long userId, String nick);
} }
...@@ -3,9 +3,14 @@ package cn.quantgroup.xyqb.service.user.impl; ...@@ -3,9 +3,14 @@ package cn.quantgroup.xyqb.service.user.impl;
import cn.quantgroup.xyqb.entity.UserAttached; import cn.quantgroup.xyqb.entity.UserAttached;
import cn.quantgroup.xyqb.repository.IUserAttachedRepository; import cn.quantgroup.xyqb.repository.IUserAttachedRepository;
import cn.quantgroup.xyqb.service.user.UserCenterService; import cn.quantgroup.xyqb.service.user.UserCenterService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.sql.Timestamp;
import java.util.Objects;
import java.util.Optional;
/** /**
* Created by 11 on 2017/3/22. * Created by 11 on 2017/3/22.
*/ */
...@@ -16,12 +21,60 @@ public class UserCenterServiceImpl implements UserCenterService { ...@@ -16,12 +21,60 @@ public class UserCenterServiceImpl implements UserCenterService {
private IUserAttachedRepository userAttachedRepository; private IUserAttachedRepository userAttachedRepository;
@Override @Override
public UserAttached searchUserAttachedByUserId(Long userId) { public UserAttached searchUserAttachedByUserId(long userId) {
return userAttachedRepository.findByUserId(userId); return userAttachedRepository.findByUserId(userId);
} }
@Override @Override
public UserAttached saveUserAttached(UserAttached userAttached) { public UserAttached saveUserAvatar(long userId, String avatar) {
UserAttached userAttached = userAttachedRepository.findByUserId(userId);
if(Objects.isNull(userAttached)){
userAttached = createUserAttached(userId, avatar, null);
}
if(!Objects.equals(avatar, userAttached.getAvatar())){
userAttached.setAvatar(avatar);
userAttached.setUpdatedAt(new Timestamp(System.currentTimeMillis()));
}
return userAttachedRepository.save(userAttached);
}
@Override
public UserAttached saveUserNick(long userId, String nick) {
UserAttached userAttached = userAttachedRepository.findByUserId(userId);
if(Objects.isNull(userAttached)){
userAttached = createUserAttached(userId, null, nick);
}
if(!Objects.equals(nick, userAttached.getNick())){
userAttached.setNick(nick);
userAttached.setUpdatedAt(new Timestamp(System.currentTimeMillis()));
}
return userAttachedRepository.save(userAttached);
}
/**
* 创建用户附加信息实体
*
* @param userId - 用户主键
* @param avatar - 头像url地址
* @param nick - 昵称
* @return
*/
private synchronized UserAttached createUserAttached(Long userId, String avatar, String nick) {
UserAttached userAttached = userAttachedRepository.findByUserId(userId);
// 更新实例
userAttached = Optional.ofNullable(userAttached).orElse(new UserAttached());
Timestamp now = new Timestamp(System.currentTimeMillis());
userAttached.setUserId(userId);
if(StringUtils.isBlank(userAttached.getAvatar())){
userAttached.setAvatar(avatar);
}
if(StringUtils.isBlank(userAttached.getNick())){
userAttached.setNick(nick);
}
if(Objects.isNull(userAttached.getCreatedAt())){
userAttached.setCreatedAt(now);
}
userAttached.setUpdatedAt(now);
return userAttachedRepository.save(userAttached); return userAttachedRepository.save(userAttached);
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment