修改同名时 使用最新的用户信息

This commit is contained in:
MerCry 2026-03-14 00:21:12 +08:00
parent ba3f96b2d3
commit 56cc49958a
3 changed files with 17 additions and 5 deletions

View File

@ -6,6 +6,7 @@ import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.util.Date;
@Getter
@Setter
@ -22,5 +23,11 @@ public class CorpDepartment implements Serializable {
private Long orderNo;
private String unitId;
private String name;
private Date createTime;
private Date updateTime;
}

View File

@ -6,6 +6,7 @@ import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.util.Date;
@Getter
@Setter
@ -26,4 +27,8 @@ public class CorpUser implements Serializable {
private String alias;
private String openUserid;
private Date createTime;
private Date updateTime;
}

View File

@ -39,7 +39,7 @@ public class CustomerExportService {
// 缓存映射
private Map<String, CorpUser> userIdToUserMap = new HashMap<>();
private Map<Long, String> departmentIdToNameMap = new HashMap<>();
private Map<Long, CorpDepartment> departmentIdToNameMap = new HashMap<>();
private Map<String, WecomTagDomain> tagIdToTagMap = new HashMap<>();
private Map<String, WecomTagGroupDomain> tagGroupIdToGroupMap = new HashMap<>();
private Map<String, List<WecomTagDomain>> tagGroupIdToTagsMap = new HashMap<>();
@ -55,25 +55,25 @@ public class CustomerExportService {
// 1. 加载用户数据
List<CorpUser> userList = corpUserMapper.selectList(null);
userIdToUserMap = userList.stream()
.collect(Collectors.toMap(CorpUser::getUserid, user -> user, (v1, v2) -> v1));
.collect(Collectors.toMap(CorpUser::getUserid, user -> user, (v1, v2) -> v1.getUpdateTime().compareTo(v2.getUpdateTime()) >= 0 ? v1 : v2));
log.debug("已加载 " + userIdToUserMap.size() + " 个用户");
// 2. 加载部门数据
List<CorpDepartment> departmentList = corpDepartmentMapper.selectList(null);
departmentIdToNameMap = departmentList.stream()
.collect(Collectors.toMap(CorpDepartment::getId, CorpDepartment::getName, (v1, v2) -> v1));
.collect(Collectors.toMap(CorpDepartment::getId, department->department, (v1, v2) -> v1.getUpdateTime().compareTo(v2.getUpdateTime()) >= 0 ? v1 : v2));
log.debug("已加载 " + departmentIdToNameMap.size() + " 个部门");
// 3. 加载标签数据
List<WecomTagDomain> tagList = wecomTagMapper.selectList(null);
tagIdToTagMap = tagList.stream()
.collect(Collectors.toMap(WecomTagDomain::getTagId, tag -> tag, (v1, v2) -> v1));
.collect(Collectors.toMap(WecomTagDomain::getTagId, tag -> tag, (v1, v2) -> v2));
log.debug("已加载 " + tagIdToTagMap.size() + " 个标签");
// 4. 加载标签组数据
List<WecomTagGroupDomain> tagGroupList = wecomTagGroupMapper.selectList(null);
tagGroupIdToGroupMap = tagGroupList.stream()
.collect(Collectors.toMap(WecomTagGroupDomain::getTagGroupId, group -> group, (v1, v2) -> v1));
.collect(Collectors.toMap(WecomTagGroupDomain::getTagGroupId, group -> group, (v1, v2) -> v2));
log.debug("已加载 " + tagGroupIdToGroupMap.size() + " 个标签组");
// 5. 构建标签组到标签列表的映射