浏览代码

Merge branch 'dev-xym-user-tag' of Server/growth-manager into master

xueyiming 3 月之前
父节点
当前提交
0ab8c226fc
共有 1 个文件被更改,包括 32 次插入24 次删除
  1. 32 24
      offline-module/src/main/java/com/tzld/piaoquan/offline/job/WeComUserDataJob.java

+ 32 - 24
offline-module/src/main/java/com/tzld/piaoquan/offline/job/WeComUserDataJob.java

@@ -308,9 +308,7 @@ public class WeComUserDataJob {
                     }
                     count++;
                     Long userId = weComUserMapper.selectIdByExternalUserId(externalUserId);
-                    if (userId == null) {
-                        addUser(externalContact, corpId, externalUserId, createAt, staff.getId());
-                    }
+                    userId = addAndUpdateUser(externalContact, corpId, externalUserId, createAt, staff.getId(), userId);
                 }
                 String nextCursor = jsonObject.getString("next_cursor");
                 if (cursor.equals(nextCursor)) {
@@ -348,10 +346,10 @@ public class WeComUserDataJob {
                 if (xxlJobParam.getStaffId() != null) {
                     staffIds.add(xxlJobParam.getStaffId());
                 }
-                if(!CollectionUtils.isEmpty(xxlJobParam.getStaffIds())){
+                if (!CollectionUtils.isEmpty(xxlJobParam.getStaffIds())) {
                     staffIds.addAll(xxlJobParam.getStaffIds());
                 }
-                if(!CollectionUtils.isEmpty(staffIds)){
+                if (!CollectionUtils.isEmpty(staffIds)) {
                     staffCriteria.andIdIn(staffIds);
                 }
                 List<Staff> staffList = staffMapper.selectByExample(staffExample);
@@ -382,9 +380,8 @@ public class WeComUserDataJob {
                                     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());
-                                        }
+                                        userId = addAndUpdateUser(externalContact, corp.getId(), externalUserId,
+                                                createAt, staff.getId(), userId);
                                         Tag tag = tags.get(0);
                                         UserWithTag userWithTag = new UserWithTag();
                                         userWithTag.setUserId(userId);
@@ -460,27 +457,38 @@ public class WeComUserDataJob {
         }
     }
 
-    private Long addUser(JSONObject externalContact, Long corpId, String externalUserId, Long createAt, Long staffId) {
+    private Long addAndUpdateUser(JSONObject externalContact, Long corpId, String externalUserId, Long createAt, Long staffId, Long userId) {
         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);
+        if (userId == null) {
+            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);
+            userId = weComUser.getId();
+            StaffWithUser staffWithUser = new StaffWithUser();
+            staffWithUser.setStaffId(staffId);
+            staffWithUser.setUserId(userId);
+            staffWithUserMapper.insertSelective(staffWithUser);
+        } else {
+            WeComUser weComUser = new WeComUser();
+            weComUser.setId(userId);
+            weComUser.setName(name);
+            weComUser.setType(type);
+            weComUser.setUnionId(unionId);
+            weComUser.setGender(gender);
+            weComUser.setAvatar(avatar);
+            weComUserMapper.updateByPrimaryKeySelective(weComUser);
+        }
         return userId;
     }