Commit 2a723934 by 墨竹

fix:bug修改

parent 068d8aae
...@@ -12,7 +12,10 @@ import com.gic.haoban.app.customer.enums.QywxSyncTaskTypeEnum; ...@@ -12,7 +12,10 @@ import com.gic.haoban.app.customer.enums.QywxSyncTaskTypeEnum;
import com.gic.haoban.base.api.common.BasePageInfo; import com.gic.haoban.base.api.common.BasePageInfo;
import com.gic.haoban.base.api.common.ServiceResponse; import com.gic.haoban.base.api.common.ServiceResponse;
import com.gic.haoban.common.utils.PageUtil; import com.gic.haoban.common.utils.PageUtil;
import com.gic.haoban.manage.api.dto.*; import com.gic.haoban.manage.api.dto.AlertMessageDTO;
import com.gic.haoban.manage.api.dto.ClerkStaffWxUserDTO;
import com.gic.haoban.manage.api.dto.ExternalClerkRelatedDTO;
import com.gic.haoban.manage.api.dto.ExternalClerkRelatedShortInfoDTO;
import com.gic.haoban.manage.api.enums.AlertTypeEnum; import com.gic.haoban.manage.api.enums.AlertTypeEnum;
import com.gic.haoban.manage.api.service.CheckQywxSettingApiService; import com.gic.haoban.manage.api.service.CheckQywxSettingApiService;
import com.gic.haoban.manage.api.service.ExternalClerkRelatedApiService; import com.gic.haoban.manage.api.service.ExternalClerkRelatedApiService;
...@@ -320,10 +323,10 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA ...@@ -320,10 +323,10 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
} }
String lockKey = "updateNewExternalUserid_" + wxEnterpriseId; String lockKey = "updateNewExternalUserid_" + wxEnterpriseId;
if (RedisUtil.isLocked(lockKey)) { if (RedisUtil.isLocked(lockKey)) {
log.info("redis锁,lockKey:{}",lockKey); log.info("redis锁,lockKey:{}", lockKey);
return false; return false;
} }
RedisUtil.lock(lockKey,1L,TimeUnit.DAYS,0L); RedisUtil.lock(lockKey, 1L, TimeUnit.DAYS, 0L);
try { try {
updateNewExUserId(tabHaobanWxEnterprise.getWxEnterpriseId(), tabHaobanWxEnterprise.getCorpid()); updateNewExUserId(tabHaobanWxEnterprise.getWxEnterpriseId(), tabHaobanWxEnterprise.getCorpid());
log.info("企业外部联系人id end,wxEnterpriseId:{}", wxEnterpriseId); log.info("企业外部联系人id end,wxEnterpriseId:{}", wxEnterpriseId);
...@@ -339,55 +342,60 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA ...@@ -339,55 +342,60 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
@Override @Override
public void updateNewExternalUseridMq(String res) { public void updateNewExternalUseridMq(String res) {
log.info("更新新的外部联系人id mq,start"); log.info("更新新的外部联系人id mq,start");
JSONObject jsonObject = JSON.parseObject(res); try {
String corpid = jsonObject.getString("corpid"); JSONObject jsonObject = JSON.parseObject(res);
String wxEnterpriseId = jsonObject.getString("wxEnterpriseId"); String corpid = jsonObject.getString("corpid");
Boolean isLastPage = jsonObject.getBoolean("isLastPage"); String wxEnterpriseId = jsonObject.getString("wxEnterpriseId");
log.info("更新新的外部联系人id mq,corpid:{},wxEnterpriseId:{}", corpid, wxEnterpriseId); Boolean isLastPage = jsonObject.getBoolean("isLastPage");
String externalUserIdLists = jsonObject.getString("externalUserIdList"); log.info("更新新的外部联系人id mq,corpid:{},wxEnterpriseId:{}", corpid, wxEnterpriseId);
List<String> externalUserIdList = JSON.parseArray(externalUserIdLists, String.class); String externalUserIdLists = jsonObject.getString("externalUserIdList");
//查询企微接口,更新新的external_user_id List<String> externalUserIdList = JSON.parseArray(externalUserIdLists, String.class);
List<QywxNewExternalUseridDTO> newExternalUseridList = qywxUserApiService.getNewExternalUseridByList(corpid, config.getWxSuiteid(), externalUserIdList); //查询企微接口,更新新的external_user_id
if (CollectionUtils.isEmpty(newExternalUseridList)) { List<QywxNewExternalUseridDTO> newExternalUseridList = qywxUserApiService.getNewExternalUseridByList(corpid, config.getWxSuiteid(), externalUserIdList);
log.info("更新新的外部联系人id,查询企业微信接口报错"); if (CollectionUtils.isEmpty(newExternalUseridList)) {
wxEnterriseMapper.updateExternalFlagById(3, wxEnterpriseId); log.info("更新新的外部联系人id,查询企业微信接口报错");
return;
}
List<TabExternalUseridLog> tabExternalUseridLogList = new ArrayList<>();
for (QywxNewExternalUseridDTO qywxNewExternalUseridDTO : newExternalUseridList) {
String new_external_userid = qywxNewExternalUseridDTO.getNew_external_userid();
String external_userid = qywxNewExternalUseridDTO.getExternal_userid();
//好友关系表
tabHaobanExternalClerkRelatedMapper.updateExternalUserIdByOldExternalUserId(new_external_userid, external_userid, wxEnterpriseId);
//会员关系表
memberUnionidRelatedMapper.updateExternalUserIdByOldExternalUserId(new_external_userid, external_userid, wxEnterpriseId);
TabExternalUseridLog tabExternalUseridLog = new TabExternalUseridLog();
tabExternalUseridLog.setId(UniqueIdUtils.uniqueLong());
tabExternalUseridLog.setOldExternalUserId(external_userid);
tabExternalUseridLog.setNewExternalUserId(new_external_userid);
tabExternalUseridLog.setWxEnterpriseId(wxEnterpriseId);
tabExternalUseridLog.setCreatorId("admin");
tabExternalUseridLog.setCreatorName("系统管理员");
tabExternalUseridLogList.add(tabExternalUseridLog);
}
externalUseridLogMapper.insertBatch(tabExternalUseridLogList);
//最后一页
if (isLastPage) {
//serviceCorpid 默认为:达摩网络
boolean flag = qywxUserApiService.finishExternalUseridMigration(corpid, config.getCorpid());
log.info("更新新的外部联系人id最后一页,设置迁移完成:flag:{}", flag);
if (flag) {
//成功
wxEnterriseMapper.updateExternalFlagById(1, wxEnterpriseId);
} else {
//失败
wxEnterriseMapper.updateExternalFlagById(3, wxEnterpriseId); wxEnterriseMapper.updateExternalFlagById(3, wxEnterpriseId);
externalUseridLogMapper.updateStatusFlagByWxEnterpriseId(0, wxEnterpriseId); return;
//回退老的
externalUseridLogMapper.updateOldExternalUserId(wxEnterpriseId);
} }
List<TabExternalUseridLog> tabExternalUseridLogList = new ArrayList<>();
for (QywxNewExternalUseridDTO qywxNewExternalUseridDTO : newExternalUseridList) {
String new_external_userid = qywxNewExternalUseridDTO.getNew_external_userid();
String external_userid = qywxNewExternalUseridDTO.getExternal_userid();
//好友关系表
tabHaobanExternalClerkRelatedMapper.updateExternalUserIdByOldExternalUserId(new_external_userid, external_userid, wxEnterpriseId);
//会员关系表
memberUnionidRelatedMapper.updateExternalUserIdByOldExternalUserId(new_external_userid, external_userid, wxEnterpriseId);
TabExternalUseridLog tabExternalUseridLog = new TabExternalUseridLog();
tabExternalUseridLog.setId(UniqueIdUtils.uniqueLong());
tabExternalUseridLog.setOldExternalUserId(external_userid);
tabExternalUseridLog.setNewExternalUserId(new_external_userid);
tabExternalUseridLog.setWxEnterpriseId(wxEnterpriseId);
tabExternalUseridLog.setCreatorId("admin");
tabExternalUseridLog.setCreatorName("系统管理员");
tabExternalUseridLogList.add(tabExternalUseridLog);
}
externalUseridLogMapper.insertBatch(tabExternalUseridLogList);
//最后一页
if (isLastPage) {
//serviceCorpid 默认为:达摩网络
boolean flag = qywxUserApiService.finishExternalUseridMigration(corpid, config.getCorpid());
log.info("更新新的外部联系人id最后一页,设置迁移完成:flag:{}", flag);
if (flag) {
//成功
wxEnterriseMapper.updateExternalFlagById(1, wxEnterpriseId);
} else {
//失败
wxEnterriseMapper.updateExternalFlagById(3, wxEnterpriseId);
externalUseridLogMapper.updateStatusFlagByWxEnterpriseId(0, wxEnterpriseId);
//回退老的
externalUseridLogMapper.updateOldExternalUserId(wxEnterpriseId);
}
}
log.info("更新新的外部联系人id mq,end");
} catch (Exception e) {
log.info("更新新的外部联系人id mq报错:{},res:{}", e.getMessage(), res, e);
} }
log.info("更新新的外部联系人id mq,end");
} }
/** /**
...@@ -400,7 +408,7 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA ...@@ -400,7 +408,7 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
*/ */
private void updateNewExUserId(String wxEnterpriseId, String corpid) { private void updateNewExUserId(String wxEnterpriseId, String corpid) {
wxEnterriseMapper.updateExternalFlagById(2, wxEnterpriseId); wxEnterriseMapper.updateExternalFlagById(2, wxEnterpriseId);
messageAlert(wxEnterpriseId,"更新新的外部联系人id"); messageAlert(wxEnterpriseId, "更新新的外部联系人id");
// 限流器 // 限流器
RRateLimiter rateLimiter = RedisUtil.getRedisClient().getRateLimiter("haoban:manage3:updateNewExUserId:limit"); RRateLimiter rateLimiter = RedisUtil.getRedisClient().getRateLimiter("haoban:manage3:updateNewExUserId:limit");
// 每1秒产生5个令牌 // 每1秒产生5个令牌
...@@ -462,7 +470,7 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA ...@@ -462,7 +470,7 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
* @param wxEnterpriseId wx企业标识 * @param wxEnterpriseId wx企业标识
* @param titleSub 子标题 * @param titleSub 子标题
*/ */
private void messageAlert(String wxEnterpriseId,String titleSub) { private void messageAlert(String wxEnterpriseId, String titleSub) {
ProviderLocalTag providerLocalTag = ProviderLocalTag.tag.get(); ProviderLocalTag providerLocalTag = ProviderLocalTag.tag.get();
String traceId = providerLocalTag.traceId; String traceId = providerLocalTag.traceId;
AlertMessageDTO messageDTO = new AlertMessageDTO(); AlertMessageDTO messageDTO = new AlertMessageDTO();
......
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