|
@@ -137,27 +137,29 @@ public class MdeOldSyncService {
|
|
|
|
|
|
private String url = "https://www.mendunerhr.com/";
|
|
|
|
|
|
+ private Map<Long, OldMdeUser> userMap = new HashMap<>();
|
|
|
+
|
|
|
@Async
|
|
|
@TenantIgnore
|
|
|
public void run() {
|
|
|
// // 同步区域
|
|
|
// syncArea();
|
|
|
-// // 同步感兴趣城市 or 订阅的职位类型
|
|
|
-// syncInterested();
|
|
|
// // 同步职位信息
|
|
|
// syncPosition();
|
|
|
-// // 同步用户信息
|
|
|
-// syncUser();
|
|
|
+ // 同步用户信息
|
|
|
+ syncUser();
|
|
|
// 同步vip企业信息
|
|
|
syncVipEnterprise();
|
|
|
-// // 同步发布职位
|
|
|
-// syncJob();
|
|
|
-// // 同步人才工作经历、教育经历
|
|
|
-// syncPersonExtend();
|
|
|
-// // 同步人才简历附件、投递简历
|
|
|
-// syncCv();
|
|
|
-// // 计算工作年限和最高学历
|
|
|
-// syncEduAndWork();
|
|
|
+ // 同步发布职位
|
|
|
+ syncJob();
|
|
|
+ // 同步人才工作经历、教育经历
|
|
|
+ syncPersonExtend();
|
|
|
+ // 同步感兴趣城市 or 订阅的职位类型
|
|
|
+ syncInterested();
|
|
|
+ // 同步人才简历附件、投递简历
|
|
|
+ syncCv();
|
|
|
+ // 计算工作年限和最高学历
|
|
|
+ syncEduAndWork();
|
|
|
}
|
|
|
|
|
|
public void syncArea() {
|
|
@@ -276,16 +278,16 @@ public class MdeOldSyncService {
|
|
|
// 企业vip用户
|
|
|
List<OldMdeUser> userList = oldUserMapper.selectList(new LambdaQueryWrapperX<OldMdeUser>()
|
|
|
.eq(OldMdeUser::getDelFlag, 0)
|
|
|
- .eq(OldMdeUser::getIdentityFlag,"1")
|
|
|
- .gt(OldMdeUser::getVipFlag,"0")
|
|
|
+ .eq(OldMdeUser::getIdentityFlag, "1")
|
|
|
+ .gt(OldMdeUser::getVipFlag, "0")
|
|
|
);
|
|
|
|
|
|
userList.forEach(oldMdeUser -> {
|
|
|
EnterpriseDO enterpriseDO = enterpriseMapper.selectOne(EnterpriseDO::getId, oldMdeUser.getUserCode());
|
|
|
if (null != enterpriseDO) {
|
|
|
- enterpriseDO.setVipFlag(oldMdeUser.getVipFlag());
|
|
|
- enterpriseDO.setVipExpireDate(oldMdeUser.getDueDate().atStartOfDay());
|
|
|
- enterpriseMapper.updateById(enterpriseDO);
|
|
|
+ enterpriseDO.setVipFlag(oldMdeUser.getVipFlag());
|
|
|
+ enterpriseDO.setVipExpireDate(oldMdeUser.getDueDate().atStartOfDay());
|
|
|
+ enterpriseMapper.updateById(enterpriseDO);
|
|
|
}
|
|
|
});
|
|
|
|
|
@@ -379,11 +381,33 @@ public class MdeOldSyncService {
|
|
|
// 所有用户
|
|
|
List<OldMdeUser> userList = oldUserMapper.selectList(new LambdaQueryWrapperX<OldMdeUser>()
|
|
|
.eq(OldMdeUser::getDelFlag, 0)
|
|
|
+ // 求职用户在前面,招聘用户在后面
|
|
|
+ .orderByAsc(OldMdeUser::getIdentityFlag)
|
|
|
);
|
|
|
-
|
|
|
+ userMap.putAll(userList.stream().collect(Collectors.toMap(OldMdeUser::getUserCode, v -> v)));
|
|
|
// 新增用户 or 人才基本信息
|
|
|
userList.stream().forEach(oldMdeUser -> {
|
|
|
- MdeUserDO userDO = mdeUserMapper.selectOne(MdeUserDO::getId, oldMdeUser.getUserCode());
|
|
|
+
|
|
|
+ MdeUserDO userDO = null;
|
|
|
+ if (oldMdeUser.getIdentityFlag().equals("1")) {
|
|
|
+ // 企业用户,判断预留的手机号有没有注册过用户
|
|
|
+ MdeUserDO enterpriseUser = mdeUserMapper.selectOne(MdeUserDO::getPhone, oldMdeUser.getEntPhone());
|
|
|
+ if (null != enterpriseUser) {
|
|
|
+ // 存在了,不再创建用户
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // 求职端用户
|
|
|
+ userDO = mdeUserMapper.selectOne(MdeUserDO::getId, oldMdeUser.getUserCode());
|
|
|
+ if (null != userDO) {
|
|
|
+ MdeUserDO userNameUserDO = mdeUserMapper.selectOne(MdeUserDO::getUsername, oldMdeUser.getUserName());
|
|
|
+ if (null != userNameUserDO) {
|
|
|
+ // 根据id可以匹配到数据,并且账号名也匹配到数据,说明是同一个用户,直接使用账号名(手机号)匹配到的数据
|
|
|
+ userDO = userNameUserDO;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
// 账户信息
|
|
|
MdeUserDO insertionDO = MdeUserDO.builder()
|
|
@@ -440,13 +464,14 @@ public class MdeOldSyncService {
|
|
|
// 企业用户
|
|
|
List<OldMdeUser> enterpriseUserList = userList.stream().filter(c -> c.getIdentityFlag().equals("1")).collect(Collectors.toList());
|
|
|
enterpriseUserList.forEach(oldMdeUser -> {
|
|
|
- EnterpriseUserBindDO userDO = enterpriseUserBindMapper.selectOne(EnterpriseUserBindDO::getUserId, oldMdeUser.getUserCode());
|
|
|
+ // 根据手机号获取用户信息
|
|
|
+ MdeUserDO enterpriseUser = mdeUserMapper.selectOne(MdeUserDO::getPhone, oldMdeUser.getEntPhone());
|
|
|
+ if (null == enterpriseUser) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
// 借用用户编号作为企业编号匹配唯一键(旧平台只会存在人-企业一对一)
|
|
|
EnterpriseDO enterpriseDO = enterpriseMapper.selectOne(EnterpriseDO::getId, oldMdeUser.getUserCode());
|
|
|
-
|
|
|
- EnterpriseAddressDO enterpriseAddressDO = enterpriseAddressMapper.selectOne(EnterpriseAddressDO::getEnterpriseId, oldMdeUser.getUserCode());
|
|
|
-
|
|
|
EnterpriseDO enterpriseInsertionDO = EnterpriseDO.builder()
|
|
|
.id(null == enterpriseDO ? oldMdeUser.getUserCode() : enterpriseDO.getId())
|
|
|
.parentId(0L)
|
|
@@ -463,8 +488,14 @@ public class MdeOldSyncService {
|
|
|
.build();
|
|
|
|
|
|
|
|
|
+ // 该企业下的用户信息
|
|
|
+ EnterpriseUserBindDO userDO = enterpriseUserBindMapper.selectOne(
|
|
|
+ EnterpriseUserBindDO::getUserId, enterpriseUser.getId(),
|
|
|
+ EnterpriseUserBindDO::getEnterpriseId, oldMdeUser.getUserCode()
|
|
|
+ );
|
|
|
+
|
|
|
EnterpriseUserBindDO userInsertionDO = EnterpriseUserBindDO.builder()
|
|
|
- .id(null == userDO ? oldMdeUser.getUserCode() : userDO.getId())
|
|
|
+ .id(null == userDO ? null : userDO.getId())
|
|
|
.enterpriseId(oldMdeUser.getUserCode())
|
|
|
.userId(oldMdeUser.getUserCode())
|
|
|
.name(oldMdeUser.getEntContacts())
|
|
@@ -475,6 +506,10 @@ public class MdeOldSyncService {
|
|
|
.userType(EnterpriseUserTypeEnum.ADMIN.getType())
|
|
|
.build();
|
|
|
|
|
|
+
|
|
|
+ // 企业的地址
|
|
|
+ EnterpriseAddressDO enterpriseAddressDO = enterpriseAddressMapper.selectOne(EnterpriseAddressDO::getEnterpriseId, oldMdeUser.getUserCode());
|
|
|
+
|
|
|
EnterpriseAddressDO addressInsertionDO = EnterpriseAddressDO.builder()
|
|
|
.id(null == enterpriseAddressDO ? oldMdeUser.getUserCode() : enterpriseAddressDO.getId())
|
|
|
.enterpriseId(oldMdeUser.getUserCode())
|
|
@@ -527,6 +562,9 @@ public class MdeOldSyncService {
|
|
|
// 职位信息
|
|
|
List<OldMdeJobAdvertised> jobList = oldJobAdvertisedMapper.selectList();
|
|
|
jobList.forEach(oldMdeJobAdvertised -> {
|
|
|
+ if (!userMap.containsKey(oldMdeJobAdvertised.getPublisher())) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
JobAdvertisedDO jobAdvertisedDO = jobAdvertisedMapper.selectOne(JobAdvertisedDO::getId, oldMdeJobAdvertised.getJobId());
|
|
|
|
|
|
|
|
@@ -588,6 +626,9 @@ public class MdeOldSyncService {
|
|
|
List<OldMdeEducationExperience> eduList =
|
|
|
oldEducationExperienceMapper.selectList(OldMdeEducationExperience::getDelFlag, 0);
|
|
|
eduList.forEach(e -> {
|
|
|
+ if (!userMap.containsKey(e.getUserCode())) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
EduExpDO eduExpDO = eduExpMapper.selectOne(EduExpDO::getId, e.getEduId());
|
|
|
EduExpDO insertionDO = EduExpDO.builder()
|
|
|
.id(null == eduExpDO ? e.getEduId() : eduExpDO.getId())
|
|
@@ -607,6 +648,9 @@ public class MdeOldSyncService {
|
|
|
|
|
|
List<OldMdeWorkExperience> workList = oldWorkExperienceMapper.selectList(OldMdeWorkExperience::getDelFlag, 0);
|
|
|
workList.forEach(e -> {
|
|
|
+ if (!userMap.containsKey(e.getUserCode())) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
WorkExpDO workExpDO = workExpMapper.selectOne(WorkExpDO::getId, e.getWorkId());
|
|
|
WorkExpDO insertionDO = WorkExpDO.builder()
|
|
|
.id(null == workExpDO ? e.getWorkId() : workExpDO.getId())
|
|
@@ -633,6 +677,9 @@ public class MdeOldSyncService {
|
|
|
// 人才投递的简历、附件
|
|
|
List<OldMdeUserCv> cvList = oldUserCvMapper.selectList(OldMdeUserCv::getDelFlag, 0);
|
|
|
cvList.forEach(e -> {
|
|
|
+ if (!userMap.containsKey(e.getUserCode())) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
CvAttachmentDO cvDO = cvAttachmentMapper.selectOne(CvAttachmentDO::getId, e.getCvId());
|
|
|
CvAttachmentDO insertionDO = CvAttachmentDO.builder()
|
|
|
.id(null == cvDO ? e.getCvId() : cvDO.getId())
|
|
@@ -651,6 +698,9 @@ public class MdeOldSyncService {
|
|
|
if (!StringUtils.hasText(e.getCvUrl())) {
|
|
|
return;
|
|
|
}
|
|
|
+ if (!userMap.containsKey(Long.valueOf(e.getPublisher()))) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
JobCvRelDO cvDO = jobCvRelMapper.selectOne(JobCvRelDO::getId, e.getIntvId());
|
|
|
// 根据职位查询企业ID
|
|
|
JobAdvertisedDO advertisedDO = jobAdvertisedMapper.selectOne(JobAdvertisedDO::getId, e.getPosId());
|
|
@@ -680,6 +730,7 @@ public class MdeOldSyncService {
|
|
|
public void syncEduAndWork() {
|
|
|
List<PersonInfoDO> personList = personInfoMapper.selectList();
|
|
|
personList.forEach(person -> {
|
|
|
+
|
|
|
boolean isUpdate = false;
|
|
|
EduExpDO eduMax = eduExpMapper.selectMaxEducationByUserId(person.getUserId());
|
|
|
if (null != eduMax) {
|