zoujiajian há 1 ano atrás
pai
commit
1b4dac4cee

+ 28 - 0
netflix-service/src/main/java/com/cyksj/service/corp/impl/CorpServiceImpl.java

@@ -124,6 +124,9 @@ public class CorpServiceImpl implements CorpService {
 	@Autowired
 	private CorpKfAccountSessionChatMapper corpKfAccountSessionChatMapper;
 
+	@Autowired
+	private CorpKfUserMapper corpKfUserMapper;
+
 	@PostConstruct
 	private void init() {
 		corpMessageRouter = new CorpMessageRouter(this)
@@ -764,6 +767,8 @@ public class CorpServiceImpl implements CorpService {
 				wxCpKfMsgSendRequest.setOpenKfid(event.getOpenKfid());
 				try {
 					wxCorpOps.sendMsgOnEvent(corpId, wxCpKfMsgSendRequest);
+					//同步用户信息
+					syncCorpkfUserInfo(event.getExternalUserId());
 				} catch (Exception e) {
 					log.error("发送微信客服欢迎语失败:{}", StringUtil.getErrorText(e));
 				}
@@ -773,6 +778,29 @@ public class CorpServiceImpl implements CorpService {
 		assignKfSession(corpId, openKfId, event.getExternalUserId(), corpKfAccountSessionConfig, sendDate, msgid);
 	}
 
+	/**
+	 * 同步用户信息
+	 */
+	private void syncCorpkfUserInfo(String externalUserid) throws Exception {
+		CorpKfUserInfo corpKfUserInfo = wxCorpOps.getCorpKfUserInfo(externalUserid);
+		CorpKfUser corpKfUser = corpKfUserMapper.selectOne(Wrappers.lambdaQuery(CorpKfUser.class)
+				.eq(CorpKfUser::getExternalUserid, externalUserid)
+				.last("limit 1"));
+		if (corpKfUser == null) {
+			try {
+				corpKfUser = new CorpKfUser();
+				BeanUtil.copyProperties(corpKfUserInfo, corpKfUser);
+				corpKfUserMapper.insert(corpKfUser);
+			} catch (Exception e) {
+			}
+		} else {
+			corpKfUser.setAvatar(corpKfUserInfo.getAvatar());
+			corpKfUser.setNickname(corpKfUserInfo.getNickname());
+			corpKfUser.setGender(corpKfUserInfo.getGender());
+			corpKfUserMapper.updateById(corpKfUser);
+		}
+	}
+
 	/**
 	 * 变更用户会话状态
 	 * serviceState 0未处理 1由智能助手接待 2待接入池排队中 3由人工接待 4 已结束/未开始