Commit dc0195dd authored by 技术部-任文超's avatar 技术部-任文超
parent 7b3dd1c0
......@@ -76,42 +76,6 @@ public class UserCenterController {
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 {
// 替换所有,UTF-8编码时4字节的Emoji表情字符
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) {
userAttached = createUserAttached(userId, "", nick);
} else {
userAttached.setNick(nick);
userAttached.setUpdatedAt(new Timestamp(System.currentTimeMillis()));
LOGGER.error("保存用户头像昵称失败.");
return JsonResult.buildErrorStateResult("信息保存失败,请稍后再试.", null);
}
UserAttached result = userCenterService.saveUserAttached(userAttached);
return JsonResult.buildSuccessResult(null, result.getNick());
return JsonResult.buildSuccessResult("保存成功", userAttached);
}
/**
......
......@@ -6,7 +6,26 @@ import cn.quantgroup.xyqb.entity.UserAttached;
* Created by 11 on 2017/3/22.
*/
public interface UserCenterService {
UserAttached searchUserAttachedByUserId(Long userId);
/**
* 查询用户附加信息
* @param userId
* @return
*/
UserAttached searchUserAttachedByUserId(long userId);
UserAttached saveUserAttached(UserAttached userAttached);
/**
* 保存用户头像
* @param userId - 用户主键
* @param avatar - 头像url地址
* @return
*/
UserAttached saveUserAvatar(long userId, String avatar);
/**
* 保存用户昵称
* @param userId - 用户主键
* @param nick - 昵称
* @return
*/
UserAttached saveUserNick(long userId, String nick);
}
......@@ -3,9 +3,14 @@ package cn.quantgroup.xyqb.service.user.impl;
import cn.quantgroup.xyqb.entity.UserAttached;
import cn.quantgroup.xyqb.repository.IUserAttachedRepository;
import cn.quantgroup.xyqb.service.user.UserCenterService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.sql.Timestamp;
import java.util.Objects;
import java.util.Optional;
/**
* Created by 11 on 2017/3/22.
*/
......@@ -16,12 +21,60 @@ public class UserCenterServiceImpl implements UserCenterService {
private IUserAttachedRepository userAttachedRepository;
@Override
public UserAttached searchUserAttachedByUserId(Long userId) {
public UserAttached searchUserAttachedByUserId(long userId) {
return userAttachedRepository.findByUserId(userId);
}
@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);
}
}
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