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

Commit 0fc71e1a authored by 张国柄's avatar 张国柄

+同步`chime`标签;

parent 1f1176f8
...@@ -150,4 +150,25 @@ public class AdamUserInfoVo implements java.io.Serializable, Cloneable { ...@@ -150,4 +150,25 @@ public class AdamUserInfoVo implements java.io.Serializable, Cloneable {
} }
return this; return this;
} }
/**
* 社交用户标签处理
*
* @param vos List<AdamTagVo>
* @return String
*/
public String getTagMeForChime(List<AdamTagVo> vos) {
if (null == this.tagMe || this.tagMe.isEmpty()) {
return null;
}
// MME01:音乐人
this.tagMe.parallelStream().forEach(r -> {
List<AdamTagParentVo> tagVos = r.getTagVos();// A|B|C...
tagVos.parallelStream().forEach(rr -> {
vos.add(AdamTagVo.getNew().setVal(rr.getVal()).setDesc(rr.getDesc()));
});
});
return JsonUtils.toJson(vos);
}
} }
package com.liquidnet.service.feign.adam.rsc;
import com.liquidnet.service.base.ResponseDto;
import feign.hystrix.FallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Component
@FeignClient(name = "liquidnet-service-chime",
contextId = "FeignAdamChimeClient", path = "chime",
url = "${liquidnet.service.chime.url}",
fallback = FallbackFactory.Default.class)
public interface FeignAdamChimeClient {
@PostMapping("user/register")
ResponseDto<String> registerForUser(@RequestParam @Validated String userId,
@RequestParam @Validated String sex,
@RequestParam @Validated String tags,
@RequestParam @Validated String operateType
);
}
...@@ -49,6 +49,12 @@ ...@@ -49,6 +49,12 @@
<version>1.0-SNAPSHOT</version> <version>1.0-SNAPSHOT</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-api-feign-adam</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency> <dependency>
<groupId>com.liquidnet</groupId> <groupId>com.liquidnet</groupId>
......
...@@ -15,11 +15,13 @@ import com.liquidnet.service.adam.dto.vo.AdamTagVo; ...@@ -15,11 +15,13 @@ 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;
import com.liquidnet.service.base.SqlMapping; 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 lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -55,6 +57,9 @@ public class AdamUserInfoServiceImpl implements IAdamUserInfoService { ...@@ -55,6 +57,9 @@ public class AdamUserInfoServiceImpl implements IAdamUserInfoService {
@Autowired @Autowired
private EasemobUtil easemobUtil; private EasemobUtil easemobUtil;
@Autowired
private FeignAdamChimeClient feignAdamChimeClient;
@Value("${liquidnet.reviewer.user-info}") @Value("${liquidnet.reviewer.user-info}")
private Boolean reviewUserInfo; private Boolean reviewUserInfo;
// 用户注册IM的密码 // 用户注册IM的密码
...@@ -66,16 +71,15 @@ public class AdamUserInfoServiceImpl implements IAdamUserInfoService { ...@@ -66,16 +71,15 @@ public class AdamUserInfoServiceImpl implements IAdamUserInfoService {
String currentUid = CurrentUtil.getCurrentUid(); String currentUid = CurrentUtil.getCurrentUid();
AdamUserInfoVo userInfoVo = adamRdmService.getUserInfoVoByUid(currentUid); AdamUserInfoVo userInfoVo = adamRdmService.getUserInfoVoByUid(currentUid);
List<AdamTagParentVo> tagMe = parameter.getTagMe(); Integer voIsComplete = userInfoVo.getIsComplete();
String uuid = null, type = null, created = null, modified = null; int isComplete = voIsComplete == 0 ? 1 : voIsComplete;
boolean syncChimeFlg = false;// 标识是否需要同步`service-chime` boolean syncChimeFlg = false;// 标识是否需要同步`service-chime`
if (!CollectionUtil.isEmpty(tagMe)) {// 标签不为空则注册或更新IM boolean syncChimeRegisterFlg = false;// 标识同步`service-chime`是否为首次注册
String nickname = parameter.getNickname();
boolean syncIMNicknameFlg = null != nickname && !nickname.equals(userInfoVo.getNickname());
Integer voIsComplete = userInfoVo.getIsComplete();
int isComplete = voIsComplete == 0 ? 1 : voIsComplete; List<AdamTagParentVo> tagMe = parameter.getTagMe();
String uuid = null, type = null, created = null, modified = null;
if (!CollectionUtil.isEmpty(tagMe)) {// 标签不为空则注册或更新IM
if (isComplete == 1) {// 注册IM if (isComplete == 1) {// 注册IM
JSONObject jsonObject = null; JSONObject jsonObject = null;
try { try {
...@@ -86,10 +90,7 @@ public class AdamUserInfoServiceImpl implements IAdamUserInfoService { ...@@ -86,10 +90,7 @@ public class AdamUserInfoServiceImpl implements IAdamUserInfoService {
} catch (Exception e) { } catch (Exception e) {
log.error("###编辑资料:注册IM异常[uid:{},mobile:{}]", userInfoVo.getUid(), userInfoVo.getMobile()); log.error("###编辑资料:注册IM异常[uid:{},mobile:{}]", userInfoVo.getUid(), userInfoVo.getMobile());
} }
if (null == jsonObject) { if (null == jsonObject || StringUtil.isNotNull(jsonObject.get("error"))) {
return ResponseDto.failure(ErrorMapping.get("10014"));
}
if (StringUtil.isNotNull(jsonObject.get("error"))) {
return ResponseDto.failure(ErrorMapping.get("10014")); return ResponseDto.failure(ErrorMapping.get("10014"));
} }
if (jsonObject.getBooleanValue("activated")) { if (jsonObject.getBooleanValue("activated")) {
...@@ -99,25 +100,18 @@ public class AdamUserInfoServiceImpl implements IAdamUserInfoService { ...@@ -99,25 +100,18 @@ public class AdamUserInfoServiceImpl implements IAdamUserInfoService {
uuid = jsonObject.getString("uuid"); uuid = jsonObject.getString("uuid");
created = jsonObject.getString(created); created = jsonObject.getString(created);
modified = jsonObject.getString("modified"); modified = jsonObject.getString("modified");
syncChimeRegisterFlg = true;
} }
} else if (syncIMNicknameFlg && isComplete == 11) {// 同步IM信息 } else if (isComplete == 11) {// 同步IM信息
// TODO: 2021/9/17 暂未接入 // TODO: 2021/9/17 暂未接入
} }
userInfoVo.setIsComplete(isComplete);
syncChimeFlg = true; syncChimeFlg = true;
} else { } else {
tagMe = userInfoVo.getTagMe(); tagMe = userInfoVo.getTagMe();
} }
AdamTagVo existSex = userInfoVo.getSex();
AdamTagVo sex = parameter.getSex();
syncChimeFlg = syncChimeFlg || !userInfoVo.getSex().getVal().equals(sex.getVal());
if (syncChimeFlg) {// 同步`service-chime`
}
// userInfoVo.setAvatar(parameter.getAvatar()); // userInfoVo.setAvatar(parameter.getAvatar());
// userInfoVo.setBackground(parameter.getBackground()); // userInfoVo.setBackground(parameter.getBackground());
...@@ -125,20 +119,33 @@ public class AdamUserInfoServiceImpl implements IAdamUserInfoService { ...@@ -125,20 +119,33 @@ public class AdamUserInfoServiceImpl implements IAdamUserInfoService {
userInfoVo.setAvatar(StringUtils.isEmpty(userInfoVo.getAvatar()) ? AdamConst.DEF_URL_AVATAR : userInfoVo.getAvatar()); userInfoVo.setAvatar(StringUtils.isEmpty(userInfoVo.getAvatar()) ? AdamConst.DEF_URL_AVATAR : userInfoVo.getAvatar());
userInfoVo.setBackground(StringUtils.isEmpty(userInfoVo.getBackground()) ? AdamConst.DEF_URL_BACKGROUND : userInfoVo.getBackground()); userInfoVo.setBackground(StringUtils.isEmpty(userInfoVo.getBackground()) ? AdamConst.DEF_URL_BACKGROUND : userInfoVo.getBackground());
userInfoVo.setNickname(userInfoVo.getNickname()); userInfoVo.setNickname(userInfoVo.getNickname());
userInfoVo.setSex(sex); userInfoVo.setSex(parameter.getSex());
userInfoVo.setBirthday(parameter.getBirthday()); userInfoVo.setBirthday(parameter.getBirthday());
userInfoVo.setArea(parameter.getArea()); userInfoVo.setArea(parameter.getArea());
// userInfoVo.setSignature(parameter.getSignature()); // userInfoVo.setSignature(parameter.getSignature());
userInfoVo.setSignature(userInfoVo.getSignature()); userInfoVo.setSignature(userInfoVo.getSignature());
userInfoVo.setTagMe(tagMe); userInfoVo.setTagMe(tagMe);
userInfoVo.setUpdatedAt(LocalDateTime.now()); userInfoVo.setUpdatedAt(LocalDateTime.now());
// userInfoVo.setIsComplete(1); userInfoVo.setIsComplete(isComplete);
long s = System.currentTimeMillis(); long s = System.currentTimeMillis();
adamRdmService.setUserInfoVoByUid(userInfoVo.getUid(), userInfoVo); adamRdmService.setUserInfoVoByUid(userInfoVo.getUid(), userInfoVo);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s); log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
String sexStr = JsonUtils.toJson(userInfoVo.getSex());
if (syncChimeFlg || !userInfoVo.getSex().getVal().equals(existSex.getVal())) {// 同步`service-chime`
ResponseDto<String> chimeRegisterRstFlg = null;
try {
chimeRegisterRstFlg = feignAdamChimeClient.registerForUser(
userInfoVo.getUid(),
sexStr,
userInfoVo.getTagMeForChime(ObjectUtil.getAdamTagVoArrayList()),
syncChimeRegisterFlg ? "CREATE" : "UPDATE");
} catch (Exception e) {
log.error("同步`chime`用户标签信息异常", e);
}
log.debug("同步`chime`用户标签信息结果:{}", chimeRegisterRstFlg);
}
LinkedList<String> toMqSqls = CollectionUtil.linkedListString(); LinkedList<String> toMqSqls = CollectionUtil.linkedListString();
LinkedList<Object[]> updateUserObjs = CollectionUtil.linkedListObjectArr(), LinkedList<Object[]> updateUserObjs = CollectionUtil.linkedListObjectArr(),
...@@ -150,7 +157,7 @@ public class AdamUserInfoServiceImpl implements IAdamUserInfoService { ...@@ -150,7 +157,7 @@ public class AdamUserInfoServiceImpl implements IAdamUserInfoService {
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(), userInfoVo.getNickname(),
JsonUtils.toJson(sex), sexStr,
userInfoVo.getBirthday(), userInfoVo.getBirthday(),
userInfoVo.getArea(), userInfoVo.getArea(),
userInfoVo.getSignature(), userInfoVo.getSignature(),
...@@ -161,12 +168,21 @@ public class AdamUserInfoServiceImpl implements IAdamUserInfoService { ...@@ -161,12 +168,21 @@ public class AdamUserInfoServiceImpl implements IAdamUserInfoService {
); );
log.debug("#SQL.GET耗时:{}ms", System.currentTimeMillis() - s); log.debug("#SQL.GET耗时:{}ms", System.currentTimeMillis() - s);
s = System.currentTimeMillis();
if (syncChimeRegisterFlg) {
toMqSqls.add(SqlMapping.get("adam_user_busi_acct.add"));
LinkedList<Object[]> initUserBusiAcctObjs = CollectionUtil.linkedListObjectArr();
initUserBusiAcctObjs.add(new Object[]{
userInfoVo.getUid(), "IMHX", uuid, type, ppwd, 1, userInfoVo.getUpdatedAt()
});
queueUtils.sendMsgByRedis(MQConst.AdamQueue.SQL_UCENTER.getKey(),
SqlMapping.gets(toMqSqls, updateUserObjs, updateUserInfoObjs, initUserBusiAcctObjs)
);
} else {
queueUtils.sendMsgByRedis(MQConst.AdamQueue.SQL_UCENTER.getKey(), queueUtils.sendMsgByRedis(MQConst.AdamQueue.SQL_UCENTER.getKey(),
SqlMapping.gets(toMqSqls, updateUserObjs, updateUserInfoObjs) SqlMapping.gets(toMqSqls, updateUserObjs, updateUserInfoObjs)
); );
log.debug("#MQ耗时:{}ms", System.currentTimeMillis() - s); }
return ResponseDto.success(userInfoVo.desensitize(reviewUserInfo)); return ResponseDto.success(userInfoVo.desensitize(reviewUserInfo));
} }
......
...@@ -61,6 +61,7 @@ adam_user_member.close=UPDATE adam_user_member SET `state`=2, updated_at=?, comm ...@@ -61,6 +61,7 @@ adam_user_member.close=UPDATE adam_user_member SET `state`=2, updated_at=?, comm
candy_mgt_coupon.add_for_member=INSERT INTO candy_mgt_coupon (mcoupon_id, coupon_id, `state`, event_amt, event_type, event_limit, event_at, `operator`, created_at) VALUES (?, ?, 0, ?, 2, ?, ?, ?, ?) candy_mgt_coupon.add_for_member=INSERT INTO candy_mgt_coupon (mcoupon_id, coupon_id, `state`, event_amt, event_type, event_limit, event_at, `operator`, created_at) VALUES (?, ?, 0, ?, 2, ?, ?, ?, ?)
# ---------------------------------------------------- # ----------------------------------------------------
adam_user_busi_acct.add=INSERT INTO adam_user_busi_acct (`uid`, busi, uuid, `work`, ppwd, `state`, created_at) VALUES (?,?,?,?,?,?,?)
# ---------------------------------------------------- # ----------------------------------------------------
......
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