记得上下班打卡 | git大法好,push需谨慎

Commit f66b2c85 authored by 张国柄's avatar 张国柄

开放资料编辑数美校验(昵称、签名、头像、背景);

parent feed19eb
...@@ -14,7 +14,7 @@ import com.liquidnet.service.base.ResponseDto; ...@@ -14,7 +14,7 @@ import com.liquidnet.service.base.ResponseDto;
*/ */
public interface IAdamUserInfoService { public interface IAdamUserInfoService {
ResponseDto<AdamUserInfoVo> edit(AdamUserInfoParam parameter); ResponseDto<AdamUserInfoVo> edit(AdamUserInfoVo existUserInfoVo, AdamUserInfoParam parameter);
String editMobile(String uid, String mobile); String editMobile(String uid, String mobile);
} }
...@@ -61,6 +61,11 @@ ...@@ -61,6 +61,11 @@
<artifactId>liquidnet-common-sms</artifactId> <artifactId>liquidnet-common-sms</artifactId>
<version>1.0-SNAPSHOT</version> <version>1.0-SNAPSHOT</version>
</dependency> </dependency>
<dependency>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-common-third-shumei</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency> <dependency>
<groupId>com.aliyun</groupId> <groupId>com.aliyun</groupId>
......
...@@ -2,6 +2,7 @@ package com.liquidnet.service.adam.controller; ...@@ -2,6 +2,7 @@ package com.liquidnet.service.adam.controller;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.github.xiaoymin.knife4j.annotations.ApiSupport; import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import com.liquidnet.common.third.shumei.util.ShumeiUtil;
import com.liquidnet.commons.lang.constant.LnsEnum; import com.liquidnet.commons.lang.constant.LnsEnum;
import com.liquidnet.commons.lang.constant.LnsRegex; import com.liquidnet.commons.lang.constant.LnsRegex;
import com.liquidnet.commons.lang.util.CollectionUtil; import com.liquidnet.commons.lang.util.CollectionUtil;
...@@ -33,7 +34,6 @@ import org.springframework.web.bind.annotation.*; ...@@ -33,7 +34,6 @@ import org.springframework.web.bind.annotation.*;
import javax.validation.Valid; import javax.validation.Valid;
import javax.validation.constraints.Pattern; import javax.validation.constraints.Pattern;
import java.time.LocalDateTime;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -57,6 +57,8 @@ public class AdamUserController { ...@@ -57,6 +57,8 @@ public class AdamUserController {
IAdamUserService adamUserService; IAdamUserService adamUserService;
@Autowired @Autowired
IAdamUserInfoService adamUserInfoService; IAdamUserInfoService adamUserInfoService;
@Autowired
private ShumeiUtil shumeiUtil;
@ApiOperationSupport(order = 1) @ApiOperationSupport(order = 1)
@ApiOperation(value = "资料编辑") @ApiOperation(value = "资料编辑")
...@@ -143,7 +145,43 @@ public class AdamUserController { ...@@ -143,7 +145,43 @@ public class AdamUserController {
//// editVo.setMobile(SensitizeUtil.custom(editVo.getMobile(), 3, 4)); //// editVo.setMobile(SensitizeUtil.custom(editVo.getMobile(), 3, 4));
// return ResponseDto.success(editVo.desensitize(reviewUserInfo)); // return ResponseDto.success(editVo.desensitize(reviewUserInfo));
parameter.setSex(sex); parameter.setSex(sex);
return adamUserInfoService.edit(parameter);
String currentUid = CurrentUtil.getCurrentUid();
AdamUserInfoVo existUserInfoVo = adamRdmService.getUserInfoVoByUid(currentUid);
String nickname = parameter.getNickname();
if (StringUtils.isNotBlank(nickname) && !StringUtils.equals(existUserInfoVo.getNickname(), nickname)) {
if (!shumeiUtil.checkText(currentUid, nickname)) {
return ResponseDto.failure(ErrorMapping.get("10020"));
}
}
String signature = parameter.getSignature();
if (StringUtils.isNotBlank(signature) && !StringUtils.equals(existUserInfoVo.getSignature(), signature)) {
if (!shumeiUtil.checkText(currentUid, signature)) {
return ResponseDto.failure(ErrorMapping.get("10021"));
}
}
String avatar = parameter.getAvatar();
if (StringUtils.isNotBlank(avatar)) {
if (!StringUtils.equals(existUserInfoVo.getAvatar(), avatar) && !StringUtils.equals(AdamConst.DEF_URL_AVATAR, avatar)) {
if (!shumeiUtil.checkImage(currentUid, avatar)) {
return ResponseDto.failure(ErrorMapping.get("10022"));
}
}
} else {
parameter.setAvatar(AdamConst.DEF_URL_AVATAR);
}
String background = parameter.getBackground();
if (StringUtils.isNotBlank(background)) {
if (!StringUtils.equals(existUserInfoVo.getBackground(), background) && !StringUtils.equals(AdamConst.DEF_URL_BACKGROUND, background)) {
if (!shumeiUtil.checkText(currentUid, background)) {
return ResponseDto.failure(ErrorMapping.get("10023"));
}
}
} else {
parameter.setBackground(AdamConst.DEF_URL_BACKGROUND);
}
return adamUserInfoService.edit(existUserInfoVo, parameter);
} }
@ApiOperationSupport(order = 2) @ApiOperationSupport(order = 2)
......
...@@ -5,14 +5,12 @@ import com.liquidnet.common.cache.redis.util.RedisUtil; ...@@ -5,14 +5,12 @@ import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.common.third.easemob.util.EasemobUtil; import com.liquidnet.common.third.easemob.util.EasemobUtil;
import com.liquidnet.commons.lang.core.JwtValidator; import com.liquidnet.commons.lang.core.JwtValidator;
import com.liquidnet.commons.lang.util.*; import com.liquidnet.commons.lang.util.*;
import com.liquidnet.service.adam.constant.AdamConst;
import com.liquidnet.service.adam.dto.AdamUserInfoParam; import com.liquidnet.service.adam.dto.AdamUserInfoParam;
import com.liquidnet.service.adam.dto.vo.AdamTagParentVo; import com.liquidnet.service.adam.dto.vo.AdamTagParentVo;
import com.liquidnet.service.adam.dto.vo.AdamTagVo; import com.liquidnet.service.adam.dto.vo.AdamTagVo;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo; import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
import com.liquidnet.service.adam.service.AdamRdmService; import com.liquidnet.service.adam.service.AdamRdmService;
import com.liquidnet.service.adam.service.IAdamUserInfoService; import com.liquidnet.service.adam.service.IAdamUserInfoService;
import com.liquidnet.service.adam.util.ObjectUtil;
import com.liquidnet.service.adam.util.QueueUtils; import com.liquidnet.service.adam.util.QueueUtils;
import com.liquidnet.service.base.ErrorMapping; import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
...@@ -20,7 +18,6 @@ import com.liquidnet.service.base.SqlMapping; ...@@ -20,7 +18,6 @@ import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst; import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.feign.adam.rsc.FeignAdamChimeClient; import com.liquidnet.service.feign.adam.rsc.FeignAdamChimeClient;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -64,28 +61,24 @@ public class AdamUserInfoServiceImpl implements IAdamUserInfoService { ...@@ -64,28 +61,24 @@ public class AdamUserInfoServiceImpl implements IAdamUserInfoService {
@Override @Override
// @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) // @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public ResponseDto<AdamUserInfoVo> edit(AdamUserInfoParam parameter) { public ResponseDto<AdamUserInfoVo> edit(AdamUserInfoVo existUserInfoVo, AdamUserInfoParam parameter) {
String currentUid = CurrentUtil.getCurrentUid(); Integer voIsComplete = existUserInfoVo.getIsComplete();
AdamUserInfoVo userInfoVo = adamRdmService.getUserInfoVoByUid(currentUid);
Integer voIsComplete = userInfoVo.getIsComplete();
int isComplete = voIsComplete == 0 ? 1 : voIsComplete; int isComplete = voIsComplete == 0 ? 1 : voIsComplete;
boolean syncChimeFlg = false;// 标识是否需要同步`service-chime` boolean syncChimeFlg = false;// 标识是否需要同步`service-chime`
boolean syncChimeRegisterFlg = false;// 标识同步`service-chime`是否为首次注册 boolean syncChimeRegisterFlg = false;// 标识同步`service-chime`是否为首次注册
List<AdamTagParentVo> tagMe = parameter.getTagMe(); List<AdamTagParentVo> tagMe = parameter.getTagMe();
String uuid = null, type = null, created = null, modified = null; String uuid = null, type = null;
if (!CollectionUtil.isEmpty(tagMe)) {// 标签不为空则注册或更新IM if (!CollectionUtil.isEmpty(tagMe)) {// 标签不为空则注册或更新IM
if (isComplete == 1) {// 注册IM if (isComplete == 1) {// 注册IM,参见:https://docs-im.easemob.com/im/server/ready/user
JSONObject jsonObject = null; JSONObject jsonObject = null;
try { try {
// 138cef91a62088bd3ef329fa3a6176cb18a > 138CEF91A62088BD3EF329FA3A6176CB18A > IM@zhengzai // 138cef91a62088bd3ef329fa3a6176cb18a > 138CEF91A62088BD3EF329FA3A6176CB18A > IM@zhengzai
String result = easemobUtil.createUser(userInfoVo.getUid(), ppwd, userInfoVo.getNickname()); String result = easemobUtil.createUser(existUserInfoVo.getUid(), ppwd, existUserInfoVo.getNickname());
jsonObject = JSONObject.parseObject(result); jsonObject = JSONObject.parseObject(result);
} catch (Exception e) { } catch (Exception e) {
log.error("###编辑资料:注册IM异常[uid:{},mobile:{}]", userInfoVo.getUid(), userInfoVo.getMobile()); log.error("###编辑资料:注册IM异常[uid:{},mobile:{}]", existUserInfoVo.getUid(), existUserInfoVo.getMobile());
} }
if (null == jsonObject || StringUtil.isNotNull(jsonObject.get("error"))) { if (null == jsonObject || StringUtil.isNotNull(jsonObject.get("error"))) {
return ResponseDto.failure(ErrorMapping.get("10014")); return ResponseDto.failure(ErrorMapping.get("10014"));
...@@ -95,8 +88,6 @@ public class AdamUserInfoServiceImpl implements IAdamUserInfoService { ...@@ -95,8 +88,6 @@ public class AdamUserInfoServiceImpl implements IAdamUserInfoService {
type = jsonObject.getString("type"); type = jsonObject.getString("type");
uuid = jsonObject.getString("uuid"); uuid = jsonObject.getString("uuid");
created = jsonObject.getString(created);
modified = jsonObject.getString("modified");
syncChimeRegisterFlg = true; syncChimeRegisterFlg = true;
} }
...@@ -106,38 +97,37 @@ public class AdamUserInfoServiceImpl implements IAdamUserInfoService { ...@@ -106,38 +97,37 @@ public class AdamUserInfoServiceImpl implements IAdamUserInfoService {
syncChimeFlg = true; syncChimeFlg = true;
} else { } else {
tagMe = userInfoVo.getTagMe(); tagMe = existUserInfoVo.getTagMe();
} }
AdamTagVo existSex = userInfoVo.getSex();
existUserInfoVo.setAvatar(parameter.getAvatar());
// userInfoVo.setAvatar(parameter.getAvatar()); existUserInfoVo.setBackground(parameter.getBackground());
// userInfoVo.setBackground(parameter.getBackground()); existUserInfoVo.setNickname(parameter.getNickname());
// userInfoVo.setNickname(parameter.getNickname()); existUserInfoVo.setSignature(parameter.getSignature());
userInfoVo.setAvatar(StringUtils.isEmpty(userInfoVo.getAvatar()) ? AdamConst.DEF_URL_AVATAR : userInfoVo.getAvatar()); // existUserInfoVo.setAvatar(StringUtils.isEmpty(existUserInfoVo.getAvatar()) ? AdamConst.DEF_URL_AVATAR : existUserInfoVo.getAvatar());
userInfoVo.setBackground(StringUtils.isEmpty(userInfoVo.getBackground()) ? AdamConst.DEF_URL_BACKGROUND : userInfoVo.getBackground()); // existUserInfoVo.setBackground(StringUtils.isEmpty(existUserInfoVo.getBackground()) ? AdamConst.DEF_URL_BACKGROUND : existUserInfoVo.getBackground());
userInfoVo.setNickname(userInfoVo.getNickname()); // existUserInfoVo.setNickname(existUserInfoVo.getNickname());
userInfoVo.setSex(parameter.getSex()); // existUserInfoVo.setSignature(existUserInfoVo.getSignature());
userInfoVo.setBirthday(parameter.getBirthday()); existUserInfoVo.setSex(parameter.getSex());
userInfoVo.setArea(parameter.getArea()); existUserInfoVo.setBirthday(parameter.getBirthday());
// userInfoVo.setSignature(parameter.getSignature()); existUserInfoVo.setArea(parameter.getArea());
userInfoVo.setSignature(userInfoVo.getSignature()); existUserInfoVo.setTagMe(tagMe);
userInfoVo.setTagMe(tagMe); existUserInfoVo.setUpdatedAt(LocalDateTime.now());
userInfoVo.setUpdatedAt(LocalDateTime.now()); existUserInfoVo.setIsComplete(isComplete);
userInfoVo.setIsComplete(isComplete);
long s = System.currentTimeMillis(); long s = System.currentTimeMillis();
adamRdmService.setUserInfoVoByUid(userInfoVo.getUid(), userInfoVo); adamRdmService.setUserInfoVoByUid(existUserInfoVo.getUid(), existUserInfoVo);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s); log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
String sexStr = JsonUtils.toJson(userInfoVo.getSex()); AdamTagVo existSex = existUserInfoVo.getSex();
if (syncChimeFlg || null == existSex || !userInfoVo.getSex().getVal().equals(existSex.getVal())) {// 同步`service-chime` String sexStr = JsonUtils.toJson(existUserInfoVo.getSex());
String tagMeStr = JsonUtils.toJson(tagMe);
if (syncChimeFlg || null == existSex || !parameter.getSex().getVal().equals(existSex.getVal())) {// 同步`service-chime`
ResponseDto<String> chimeRegisterRstFlg = null; ResponseDto<String> chimeRegisterRstFlg = null;
try { try {
chimeRegisterRstFlg = feignAdamChimeClient.registerForUser( chimeRegisterRstFlg = feignAdamChimeClient.registerForUser(
userInfoVo.getUid(), existUserInfoVo.getUid(), sexStr, tagMeStr,syncChimeRegisterFlg ? "CREATE" : "UPDATE"
sexStr, );
JsonUtils.toJson(tagMe),
syncChimeRegisterFlg ? "CREATE" : "UPDATE");
} catch (Exception e) { } catch (Exception e) {
log.error("同步`chime`用户标签信息异常", e); log.error("同步`chime`用户标签信息异常", e);
} }
...@@ -150,27 +140,21 @@ public class AdamUserInfoServiceImpl implements IAdamUserInfoService { ...@@ -150,27 +140,21 @@ public class AdamUserInfoServiceImpl implements IAdamUserInfoService {
s = System.currentTimeMillis(); s = System.currentTimeMillis();
toMqSqls.add(SqlMapping.get("adam_user.complete")); toMqSqls.add(SqlMapping.get("adam_user.complete"));
updateUserObjs.add(new Object[]{1, userInfoVo.getUpdatedAt(), userInfoVo.getUid()}); updateUserObjs.add(new Object[]{1, existUserInfoVo.getUpdatedAt(), existUserInfoVo.getUid()});
toMqSqls.add(SqlMapping.get("adam_user_info.edit")); toMqSqls.add(SqlMapping.get("adam_user_info.edit"));
updateUserInfoObjs.add(new Object[]{ updateUserInfoObjs.add(new Object[]{
userInfoVo.getNickname(), existUserInfoVo.getNickname(), sexStr, existUserInfoVo.getBirthday(), existUserInfoVo.getArea(),
sexStr, existUserInfoVo.getSignature(), existUserInfoVo.getAvatar(), existUserInfoVo.getBackground(),
userInfoVo.getBirthday(), tagMeStr, existUserInfoVo.getUid()
userInfoVo.getArea(), }
userInfoVo.getSignature(),
userInfoVo.getAvatar(),
userInfoVo.getBackground(),
JsonUtils.toJson(tagMe),
userInfoVo.getUid()}
); );
log.debug("#SQL.GET耗时:{}ms", System.currentTimeMillis() - s); log.debug("#SQL.GET耗时:{}ms", System.currentTimeMillis() - s);
if (syncChimeRegisterFlg) { if (syncChimeRegisterFlg) {
toMqSqls.add(SqlMapping.get("adam_user_busi_acct.add")); toMqSqls.add(SqlMapping.get("adam_user_busi_acct.add"));
LinkedList<Object[]> initUserBusiAcctObjs = CollectionUtil.linkedListObjectArr(); LinkedList<Object[]> initUserBusiAcctObjs = CollectionUtil.linkedListObjectArr();
initUserBusiAcctObjs.add(new Object[]{ initUserBusiAcctObjs.add(new Object[]{
userInfoVo.getUid(), "IMHX", uuid, type, ppwd, 1, userInfoVo.getUpdatedAt() existUserInfoVo.getUid(), "IMHX", uuid, type, ppwd, 1, existUserInfoVo.getUpdatedAt()
}); });
queueUtils.sendMsgByRedis(MQConst.AdamQueue.SQL_UCENTER.getKey(), queueUtils.sendMsgByRedis(MQConst.AdamQueue.SQL_UCENTER.getKey(),
SqlMapping.gets(toMqSqls, updateUserObjs, updateUserInfoObjs, initUserBusiAcctObjs) SqlMapping.gets(toMqSqls, updateUserObjs, updateUserInfoObjs, initUserBusiAcctObjs)
...@@ -180,7 +164,7 @@ public class AdamUserInfoServiceImpl implements IAdamUserInfoService { ...@@ -180,7 +164,7 @@ public class AdamUserInfoServiceImpl implements IAdamUserInfoService {
SqlMapping.gets(toMqSqls, updateUserObjs, updateUserInfoObjs) SqlMapping.gets(toMqSqls, updateUserObjs, updateUserInfoObjs)
); );
} }
return ResponseDto.success(userInfoVo.desensitize(reviewUserInfo)); return ResponseDto.success(existUserInfoVo.desensitize(reviewUserInfo));
} }
@Override @Override
......
...@@ -23,6 +23,10 @@ ...@@ -23,6 +23,10 @@
10017=入场人不存在,请核实 10017=入场人不存在,请核实
10018=收货地址不存在,请核实 10018=收货地址不存在,请核实
10019=入场人已存在,请核实 10019=入场人已存在,请核实
10020=昵称不合规
10021=签名不合规
10022=头像不合规
10023=背景图不合规
10101=姓名或身份证件号无效 10101=姓名或身份证件号无效
......
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