Commit 31bc317b 31bc317b2f3a1766d15e8fd7a2922f32a89ae45a by xianghan

1.修改app登录时app账号和第三方账号同时存在时头像和昵称无法同步的问题

1 parent eea90473
......@@ -192,8 +192,8 @@ public class MemberProfileServiceImpl implements MemberProfileService {
} else {
member.setBirthday(memberDTO.getBirthday());
}
if(StringUtils.isNotBlank(memberProfileDTO.getAvatarUrl())) {
member.setAvatarUrl(memberProfileDTO.getAvatarUrl());
if(StringUtils.isNotBlank(resources.getAvatarUrl())) {
member.setAvatarUrl(resources.getAvatarUrl());
} else {
member.setAvatarUrl(memberDTO.getAvatarUrl());
}
......
......@@ -28,6 +28,8 @@ public class UserAppBind implements Serializable {
@Transient
private String password;
@Transient
private String headImgUrl;
// 主键
@Id
......
......@@ -104,7 +104,16 @@ public class UserAppServiceImpl implements UserAppService {
@Transactional(rollbackFor = Exception.class)
public UserAppSimpleDTO updateAppInfo(UserApp resources) {
if (this.userAppRepository.updateAppInfo(resources) > 0) {
Long id = resources.getId();
UserApp userApp = this.userAppRepository.findById(id).orElseGet(UserApp::new);
if (Objects.isNull(userApp.getId())) {
log.error("修改app信息失败,app账号信息不存在[updateAppInfo#]");
return new UserAppSimpleDTO();
}
userApp.copy(resources);
if (this.userAppRepository.updateAppInfo(userApp) > 0) {
UserAppSimple userAppSimple = this.userAppSimpleRepository.findById(resources.getId()).orElseGet(UserAppSimple::new);
if (Objects.nonNull(userAppSimple.getId())) {
MemberDTO memberDTO = this.memberService.findById(userAppSimple.getMemberId());
......
......@@ -29,4 +29,7 @@ public class TempPoints extends TempRights {
@Transient
protected Long rewardPointsExpireTime;
@Transient
protected String description;
}
......
......@@ -544,6 +544,8 @@ public class PointsOperationServiceImpl implements PointsOperationService {
String description = tempPoints.getDescription();
if (StringUtils.isEmpty(description)) {
pointsDetail.setDescription("#");
}else {
pointsDetail.setDescription(description);
}
// 保存积分流水
......
......@@ -173,11 +173,26 @@ public class UserOperationServiceImpl implements UserOperationService {
@Transactional(rollbackFor = Exception.class)
public boolean appBindThirdAccount(UserAppBind resources) {
String username = resources.getUsername();
String headImgUrl = resources.getHeadImgUrl();
String nickname = resources.getNickname();
UserAppDTO userAppDTO = this.userAppService.findByUsername(username);
if (Objects.isNull(userAppDTO.getId())) {
return false;
}
if (Objects.isNull(userAppDTO.getHeadimgurl())) {
UserApp userApp = new UserApp();
userApp.setUsername(username);
if (StringUtils.isNotBlank(headImgUrl) && StringUtils.isNotBlank(nickname)) {
if (headImgUrl.contains("http") || headImgUrl.contains("https")) {
String image = this.downloadWeixinImgeFromAppEngine(headImgUrl);
userApp.setHeadimgurl(image);
}
userApp.setNickname(nickname);
this.userAppService.updateAppLastActiveTimeAndNicknameAndHeadImg(userApp);
}
}
String account = resources.getAccount();
Integer accountType = resources.getAccountType();
UserAppBindDTO userAppBindDTO = this.userAppBindService.findFirstByAccountAndAccountType(account, accountType);
......