|
@@ -714,8 +714,9 @@ public class SubSyncBusinessImpl implements ISubSyncBusiness {
|
|
|
//避免同步时用户中心更新的数据未被同步过来
|
|
|
//被同步的会在下次同步时再更新一次
|
|
|
Date updateTime = new Date();
|
|
|
-
|
|
|
watch.start("getUserInfoAddFromRemote");
|
|
|
+ //获取删除人员信息
|
|
|
+ getDelUserInfoFromRemote(subSyncConfig.getPageSize(), syncStartTime, headers);
|
|
|
//增量同步用户信息
|
|
|
String addUserInfoStatus = getAddUserInfo(subSyncConfig.getPageSize(), syncStartTime, headers);
|
|
|
watch.stop();
|
|
@@ -748,6 +749,69 @@ public class SubSyncBusinessImpl implements ISubSyncBusiness {
|
|
|
};
|
|
|
}
|
|
|
|
|
|
+ private void getDelUserInfoFromRemote(Integer pageSize, Date syncStartTime, List<Header> headers) {
|
|
|
+ int currentPage = 1;
|
|
|
+ Integer totalPage = null;
|
|
|
+ ApiSearchReq apiSearchReq = new ApiSearchReq();
|
|
|
+ //设置分页参数
|
|
|
+ ApiPageReq pageReq = new ApiPageReq();
|
|
|
+ pageReq.setSize(pageSize);
|
|
|
+ //设置同步时间
|
|
|
+ Map<String, SearchParam> filters = new HashMap<>();
|
|
|
+ SearchParam updateTimeSearch = new SearchParam();
|
|
|
+ updateTimeSearch.setOperator(SearchOperator.ge.name());
|
|
|
+ String dateFormat = DateUtils.getDateFormat(syncStartTime, DateConst.HYPHEN_DISPLAY_TIME);
|
|
|
+ updateTimeSearch.setValue(dateFormat);
|
|
|
+ filters.put("beginUpdateTime", updateTimeSearch);
|
|
|
+ SearchParam deleteSearch = new SearchParam();
|
|
|
+ deleteSearch.setOperator(SearchOperator.eq.name());
|
|
|
+ deleteSearch.setValue(BooleanEnum.TRUE.value);
|
|
|
+ filters.put("deleted", deleteSearch);
|
|
|
+ apiSearchReq.setFilters(filters);
|
|
|
+ apiSearchReq.setPage(pageReq);
|
|
|
+ String url = Joiner.on("").join(authConfig.getUserCenterUrl(), UserApiConstance.USER_INFO_SYNC_API);
|
|
|
+ logger.info("-------------getAddDelUserInfoFromRemote START-----------");
|
|
|
+ do {
|
|
|
+ logger.info("getAddDelUserInfoFromRemote currentPage:{}", currentPage);
|
|
|
+ pageReq.setFrom(currentPage);
|
|
|
+ String result = HttpUtil.postJSON(url, JSON.toJSONString(apiSearchReq), headers,null);
|
|
|
+ if (StringUtils.isBlank(result)) {
|
|
|
+ break ;
|
|
|
+ }
|
|
|
+ //从结果解析用户数据保存到原始数据表
|
|
|
+ ApiResult apiResult = JSON.parseObject(result, ApiResult.class);
|
|
|
+ if(!ResultEnum.SUCCESS.getKey().equals(apiResult.getStatusCode())) {
|
|
|
+ logger.info("getAddDelUserInfoFromRemote ERROR:{}, PAGE NO:{}",apiResult.getMessage(), currentPage);
|
|
|
+ break ;
|
|
|
+ }
|
|
|
+ JSONObject obj = (JSONObject) apiResult.getResult();
|
|
|
+ ApiResultPage<JSONObject> page = JSON.parseObject(obj.toJSONString(), new TypeReference<ApiResultPage<JSONObject>>(){});
|
|
|
+ //从结果解析总页数
|
|
|
+ totalPage = getTotalPage(pageSize, totalPage, page.getTotal().intValue());
|
|
|
+ //解析请求结果
|
|
|
+ saveDelUserOri(page);
|
|
|
+ } while (++currentPage <= totalPage);
|
|
|
+ logger.info("-------------getAddDelUserInfoFromRemote END-----------");
|
|
|
+ }
|
|
|
+
|
|
|
+ private void saveDelUserOri(ApiResultPage<JSONObject> page) {
|
|
|
+ List<JSONObject> content = page.getContent();
|
|
|
+ List<AuthUserAddOriginal> collect = content.stream().map(json -> {
|
|
|
+ AuthUserAddOriginal userOri = new AuthUserAddOriginal();
|
|
|
+ String idcard = json.getString("idcard");
|
|
|
+ String userDeleted = json.getString("deleted");
|
|
|
+ Date updateTime = json.getDate("updateTime");
|
|
|
+ String userType = json.getString("userType");
|
|
|
+ userOri.setIdcard(idcard);
|
|
|
+ userOri.setUserType(userType);
|
|
|
+ userOri.setUserDeleted(userDeleted);
|
|
|
+ userOri.setUserUpdateTime(updateTime);
|
|
|
+ return userOri;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ //过程数据保存
|
|
|
+ userAddOriginalService.batchSave(collect);
|
|
|
+ }
|
|
|
+
|
|
|
private void addUserInfoSync() {
|
|
|
diffTypeAddUserSync(UserTypeEnum.POLICE);
|
|
|
diffTypeAddUserSync(UserTypeEnum.HELPER);
|