|
@@ -148,7 +148,7 @@ public class WeComUserDataJob {
|
|
|
StaffWithUser staffWithUser = new StaffWithUser();
|
|
|
staffWithUser.setStaffId(staff.getId());
|
|
|
staffWithUser.setUserId(userId);
|
|
|
- staffWithUserMapper.insert(staffWithUser);
|
|
|
+ staffWithUserMapper.insertSelective(staffWithUser);
|
|
|
}
|
|
|
}
|
|
|
String nextCursor = jsonObject.getString("next_cursor");
|
|
@@ -241,7 +241,6 @@ public class WeComUserDataJob {
|
|
|
|
|
|
@XxlJob("statisticsUserCountJob")
|
|
|
public ReturnT<String> statisticsUserCount(String param) throws IOException {
|
|
|
- refreshTag();
|
|
|
StaffExample staffExample = new StaffExample();
|
|
|
List<Staff> staffList = staffMapper.selectByExample(staffExample);
|
|
|
String date;
|
|
@@ -303,44 +302,9 @@ public class WeComUserDataJob {
|
|
|
newCount++;
|
|
|
}
|
|
|
count++;
|
|
|
- JSONArray tagIds = followInfo.getJSONArray("tag_id");
|
|
|
Long userId = weComUserMapper.selectIdByExternalUserId(externalUserId);
|
|
|
if (userId == null) {
|
|
|
- String name = externalContact.getString("name");
|
|
|
- String unionId = externalContact.getString("unionid");
|
|
|
- String avatar = externalContact.getString("avatar");
|
|
|
- Integer type = externalContact.getInteger("type");
|
|
|
- Integer gender = externalContact.getInteger("gender");
|
|
|
- WeComUser weComUser = new WeComUser();
|
|
|
- weComUser.setExternalUserId(externalUserId);
|
|
|
- weComUser.setName(name);
|
|
|
- weComUser.setType(type);
|
|
|
- weComUser.setUnionId(unionId);
|
|
|
- weComUser.setGender(gender);
|
|
|
- weComUser.setAvatar(avatar);
|
|
|
- weComUser.setCreatedAt(createAt);
|
|
|
- weComUserMapper.insertSelective(weComUser);
|
|
|
- userId = weComUser.getId();
|
|
|
- StaffWithUser staffWithUser = new StaffWithUser();
|
|
|
- staffWithUser.setStaffId(staff.getId());
|
|
|
- staffWithUser.setUserId(userId);
|
|
|
- staffWithUserMapper.insert(staffWithUser);
|
|
|
- }
|
|
|
-
|
|
|
- if (!tagIds.isEmpty()) {
|
|
|
- List<String> tagIdList = tagIds.toJavaList(String.class);
|
|
|
- for (String tagId : tagIdList) {
|
|
|
- TagExample example = new TagExample();
|
|
|
- example.createCriteria().andTagIdEqualTo(tagId);
|
|
|
- List<Tag> tags = tagMapper.selectByExample(example);
|
|
|
- if (!CollectionUtils.isEmpty(tags)) {
|
|
|
- Tag tag = tags.get(0);
|
|
|
- UserWithTag userWithTag = new UserWithTag();
|
|
|
- userWithTag.setUserId(userId);
|
|
|
- userWithTag.setTagId(tag.getId());
|
|
|
- addUserWithTag(userWithTag);
|
|
|
- }
|
|
|
- }
|
|
|
+ addUser(externalContact, corpId, externalUserId, createAt, staff.getId());
|
|
|
}
|
|
|
}
|
|
|
String nextCursor = jsonObject.getString("next_cursor");
|
|
@@ -360,6 +324,7 @@ public class WeComUserDataJob {
|
|
|
@XxlJob("getUserTagJob")
|
|
|
public ReturnT<String> getUserTag(String param) {
|
|
|
try {
|
|
|
+ refreshTag();
|
|
|
XxlJobParam xxlJobParam = new XxlJobParam();
|
|
|
if (StringUtils.isNotEmpty(param)) {
|
|
|
xxlJobParam = JSONObject.parseObject(param, XxlJobParam.class);
|
|
@@ -381,7 +346,31 @@ public class WeComUserDataJob {
|
|
|
for (Staff staff : staffList) {
|
|
|
List<String> existExternalUserIds = getUserList(staff.getCarrierId(), corp.getId());
|
|
|
for (String externalUserId : existExternalUserIds) {
|
|
|
- weComUserService.getUserDetail(externalUserId, corp.getId());
|
|
|
+ JSONObject userDetail = weComUserService.getUserDetail(externalUserId, corp.getId());
|
|
|
+ JSONObject externalContact = userDetail.getJSONObject("external_contact");
|
|
|
+ JSONObject followInfo = userDetail.getJSONObject("follow_info");
|
|
|
+ Long createAt = followInfo.getLong("createtime");
|
|
|
+ JSONArray tagIds = followInfo.getJSONArray("tag_id");
|
|
|
+ if (!tagIds.isEmpty()) {
|
|
|
+ List<String> tagIdList = tagIds.toJavaList(String.class);
|
|
|
+ for (String tagId : tagIdList) {
|
|
|
+ TagExample example = new TagExample();
|
|
|
+ example.createCriteria().andTagIdEqualTo(tagId);
|
|
|
+ List<Tag> tags = tagMapper.selectByExample(example);
|
|
|
+ if (!CollectionUtils.isEmpty(tags)) {
|
|
|
+ Long userId = weComUserMapper.selectIdByExternalUserId(externalUserId);
|
|
|
+ if (userId == null) {
|
|
|
+ userId = addUser(externalContact, corp.getId(), externalUserId, createAt, staff.getId());
|
|
|
+ }
|
|
|
+ Tag tag = tags.get(0);
|
|
|
+ UserWithTag userWithTag = new UserWithTag();
|
|
|
+ userWithTag.setUserId(userId);
|
|
|
+ userWithTag.setTagId(tag.getId());
|
|
|
+ addUserWithTag(userWithTag);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -449,4 +438,28 @@ public class WeComUserDataJob {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private Long addUser(JSONObject externalContact, Long corpId, String externalUserId, Long createAt, Long staffId) {
|
|
|
+ String name = externalContact.getString("name");
|
|
|
+ String unionId = externalContact.getString("unionid");
|
|
|
+ String avatar = externalContact.getString("avatar");
|
|
|
+ Integer type = externalContact.getInteger("type");
|
|
|
+ Integer gender = externalContact.getInteger("gender");
|
|
|
+ WeComUser weComUser = new WeComUser();
|
|
|
+ weComUser.setCorpId(corpId);
|
|
|
+ weComUser.setExternalUserId(externalUserId);
|
|
|
+ weComUser.setName(name);
|
|
|
+ weComUser.setType(type);
|
|
|
+ weComUser.setUnionId(unionId);
|
|
|
+ weComUser.setGender(gender);
|
|
|
+ weComUser.setAvatar(avatar);
|
|
|
+ weComUser.setCreatedAt(createAt);
|
|
|
+ weComUserMapper.insertSelective(weComUser);
|
|
|
+ Long userId = weComUser.getId();
|
|
|
+ StaffWithUser staffWithUser = new StaffWithUser();
|
|
|
+ staffWithUser.setStaffId(staffId);
|
|
|
+ staffWithUser.setUserId(userId);
|
|
|
+ staffWithUserMapper.insertSelective(staffWithUser);
|
|
|
+ return userId;
|
|
|
+ }
|
|
|
+
|
|
|
}
|