|
@@ -1,7 +1,6 @@
|
|
|
package com.citu.module.menduner.system.old;
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
-import com.citu.framework.common.util.date.DateUtils;
|
|
|
import com.citu.framework.common.util.object.ObjectUtils;
|
|
|
import com.citu.framework.mybatis.core.query.LambdaQueryWrapperX;
|
|
|
import com.citu.framework.tenant.core.aop.TenantIgnore;
|
|
@@ -12,6 +11,9 @@ import com.citu.module.menduner.system.dal.dataobject.eduexp.EduExpDO;
|
|
|
import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseAddressDO;
|
|
|
import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseDO;
|
|
|
import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseUserBindDO;
|
|
|
+import com.citu.module.menduner.system.dal.dataobject.hotel.HotelBrandDO;
|
|
|
+import com.citu.module.menduner.system.dal.dataobject.hotel.HotelCompanyDO;
|
|
|
+import com.citu.module.menduner.system.dal.dataobject.hotel.HotelSubBrandDO;
|
|
|
import com.citu.module.menduner.system.dal.dataobject.job.JobAdvertisedDO;
|
|
|
import com.citu.module.menduner.system.dal.dataobject.job.JobCvRelDO;
|
|
|
import com.citu.module.menduner.system.dal.dataobject.job.JobInterestedDO;
|
|
@@ -25,6 +27,9 @@ import com.citu.module.menduner.system.dal.mysql.eduexp.EduExpMapper;
|
|
|
import com.citu.module.menduner.system.dal.mysql.enterprise.EnterpriseAddressMapper;
|
|
|
import com.citu.module.menduner.system.dal.mysql.enterprise.EnterpriseMapper;
|
|
|
import com.citu.module.menduner.system.dal.mysql.enterprise.EnterpriseUserBindMapper;
|
|
|
+import com.citu.module.menduner.system.dal.mysql.hotel.HotelBrandMapper;
|
|
|
+import com.citu.module.menduner.system.dal.mysql.hotel.HotelCompanyMapper;
|
|
|
+import com.citu.module.menduner.system.dal.mysql.hotel.HotelSubBrandMapper;
|
|
|
import com.citu.module.menduner.system.dal.mysql.job.JobAdvertisedMapper;
|
|
|
import com.citu.module.menduner.system.dal.mysql.job.JobCvRelMapper;
|
|
|
import com.citu.module.menduner.system.dal.mysql.job.JobInterestedMapper;
|
|
@@ -53,8 +58,6 @@ import java.time.temporal.ChronoUnit;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
-import static com.citu.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY;
|
|
|
-
|
|
|
/**
|
|
|
* 门墩儿 老平台的数据同步
|
|
|
**/
|
|
@@ -134,32 +137,108 @@ public class MdeOldSyncService {
|
|
|
private OldInterestedAddsMapper oldInterestedAddsMapper;
|
|
|
@Resource
|
|
|
private OldMdeSubscribedPositionsMapper oldSubscribedPositionsMapper;
|
|
|
+ @Resource
|
|
|
+ private HotelBrandMapper hotelBrandMapper;
|
|
|
+ @Resource
|
|
|
+ private HotelSubBrandMapper hotelSubBrandMapper;
|
|
|
+ @Resource
|
|
|
+ private HotelCompanyMapper hotelCompanyMapper;
|
|
|
+ @Resource
|
|
|
+ private OldHotelBrandMapper oldHotelBrandMapper;
|
|
|
+ @Resource
|
|
|
+ private OldHotelCompanyMapper oldHotelCompanyMapper;
|
|
|
+ @Resource
|
|
|
+ private OldHotelSubbrandMapper oldHotelSubbrandMapper;
|
|
|
|
|
|
private String url = "https://www.mendunerhr.com/";
|
|
|
|
|
|
private Map<Long, OldMdeUser> userMap = new HashMap<>();
|
|
|
|
|
|
+ /**
|
|
|
+ * 表示如果区域匹配到这些值则赋null
|
|
|
+ **/
|
|
|
+ private List<String> areaNullList = new ArrayList<>() {{
|
|
|
+ // 全国
|
|
|
+ add("010000");
|
|
|
+ // 全国
|
|
|
+ add("010100");
|
|
|
+ // 不限
|
|
|
+ add("010101");
|
|
|
+ }};
|
|
|
+ /**
|
|
|
+ * 表示如果区域匹配到这些值则赋上级区域的编码
|
|
|
+ **/
|
|
|
+ private Map<String, String> areaParentMap = new HashMap<>() {{
|
|
|
+ // 北京市的<市辖区,北京市的编码>
|
|
|
+ put("110100", "110000");
|
|
|
+ // 天津市的<市辖区,天津市的编码>
|
|
|
+ put("120100", "110000");
|
|
|
+ // 上海市的<市辖区,上海市的编码>
|
|
|
+ put("310100", "310000");
|
|
|
+ // 重庆市的<市辖区,重庆市的编码>
|
|
|
+ put("500100", "500000");
|
|
|
+ }};
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据旧平台的区域编码获取新的区域编码保存
|
|
|
+ **/
|
|
|
+ private Long getAreaId(String areaId) {
|
|
|
+ if ("".equals(areaId)) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ if (areaNullList.contains(areaId)) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ if (areaParentMap.containsKey(areaId)) {
|
|
|
+ // 解决选择市辖区的问题
|
|
|
+ return Long.valueOf(areaParentMap.get(areaId));
|
|
|
+ }
|
|
|
+
|
|
|
+ return Long.valueOf(areaId);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 清洗区域信息
|
|
|
+ **/
|
|
|
+ private Set<String> cleanAreaIdList(Set<String> interestedAreaIdList) {
|
|
|
+ Set<String> newList = new HashSet<>();
|
|
|
+ for (String s : interestedAreaIdList) {
|
|
|
+ if (areaNullList.contains(s)) {
|
|
|
+ // 包含了就下一个
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (areaParentMap.containsKey(s)) {
|
|
|
+ newList.add(areaParentMap.get(s));
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ return newList;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
@Async
|
|
|
@TenantIgnore
|
|
|
public void run() {
|
|
|
-// // 同步区域
|
|
|
-// syncArea();
|
|
|
-// // 同步职位信息
|
|
|
-// syncPosition();
|
|
|
+ // 同步区域
|
|
|
+ syncArea();
|
|
|
+ // 同步职位信息
|
|
|
+ syncPosition();
|
|
|
// 同步用户信息
|
|
|
syncUser();
|
|
|
-// // 同步vip企业信息
|
|
|
-// syncVipEnterprise();
|
|
|
-// // 同步发布职位
|
|
|
-// syncJob();
|
|
|
-// // 同步人才工作经历、教育经历
|
|
|
-// syncPersonExtend();
|
|
|
-// // 同步感兴趣城市 or 订阅的职位类型
|
|
|
-// syncInterested();
|
|
|
-// // 同步人才简历附件、投递简历
|
|
|
-// syncCv();
|
|
|
+ // 同步vip企业信息
|
|
|
+ syncVipEnterprise();
|
|
|
+ // 同步发布职位
|
|
|
+ syncJob();
|
|
|
+ // 同步人才工作经历、教育经历
|
|
|
+ syncPersonExtend();
|
|
|
+ // 同步感兴趣城市 or 订阅的职位类型
|
|
|
+ syncInterested();
|
|
|
+ // 同步人才简历附件、投递简历
|
|
|
+ syncCv();
|
|
|
// 计算工作年限和最高学历
|
|
|
syncEduAndWork();
|
|
|
+ // 同步酒店品牌数据
|
|
|
+ syncHotel();
|
|
|
}
|
|
|
|
|
|
public void syncArea() {
|
|
@@ -168,18 +247,26 @@ public class MdeOldSyncService {
|
|
|
.orderByAsc(OldSysArea::getCode)
|
|
|
);
|
|
|
oldSysAreaList.forEach(oldSysArea -> {
|
|
|
+ if (areaNullList.contains(oldSysArea.getCode())) {
|
|
|
+ // 不要(全国)这种数据
|
|
|
+ return;
|
|
|
+ }
|
|
|
AreaDO areaDO = areaMapper.selectOne(AreaDO::getId, oldSysArea.getCode());
|
|
|
OldSysArea parent = null;
|
|
|
if (!"0".equals(oldSysArea.getParentId())) {
|
|
|
parent = oldSysAreaList.stream().filter(o -> o.getId().equals(oldSysArea.getParentId()))
|
|
|
.findFirst().orElse(null);
|
|
|
- if (null == parent) {
|
|
|
+ if (null == parent || areaNullList.contains(parent.getCode())) {
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
+ String name = oldSysArea.getName();
|
|
|
+ if (areaParentMap.containsKey(oldSysArea.getCode())) {
|
|
|
+ name = "市辖区";
|
|
|
+ }
|
|
|
areaDO = AreaDO.builder()
|
|
|
.id(null == areaDO ? Long.valueOf(oldSysArea.getCode()) : areaDO.getId())
|
|
|
- .name(oldSysArea.getName())
|
|
|
+ .name(name)
|
|
|
.type(String.valueOf(oldSysArea.getType()))
|
|
|
.parentId(null == parent ? 0L : Long.valueOf(parent.getCode()))
|
|
|
.build();
|
|
@@ -227,14 +314,14 @@ public class MdeOldSyncService {
|
|
|
interestedAreaIdList.addAll(jobInterested.getInterestedAreaIdList());
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+ Set<String> newAreaIdList = cleanAreaIdList(interestedAreaIdList);
|
|
|
JobInterestedDO insert = JobInterestedDO.builder()
|
|
|
.id(null == jobInterested ? oldSubscribedPositions.getUserCode() + oldSubscribedPositions.getPositionId()
|
|
|
: jobInterested.getId())
|
|
|
.userId(oldSubscribedPositions.getUserCode())
|
|
|
.positionId(oldSubscribedPositions.getPositionId())
|
|
|
.jobType(JobTypeEnum.FULL_TIME.getType())
|
|
|
- .interestedAreaIdList(interestedAreaIdList.size() > 0 ? new ArrayList<>(interestedAreaIdList) : null)
|
|
|
+ .interestedAreaIdList(newAreaIdList.size() > 0 ? new ArrayList<>(newAreaIdList) : null)
|
|
|
.build();
|
|
|
|
|
|
setCommon(insert);
|
|
@@ -242,36 +329,6 @@ public class MdeOldSyncService {
|
|
|
jobInterestedMapper.insertOrUpdate(insert);
|
|
|
});
|
|
|
|
|
|
-// groupByUser.entrySet().forEach(user -> {
|
|
|
-//
|
|
|
-//
|
|
|
-// JobInterestedDO jobInterested = jobInterestedMapper
|
|
|
-// .selectOne(new LambdaQueryWrapperX<JobInterestedDO>()
|
|
|
-// .eq(JobInterestedDO::getUserId, user.getKey())
|
|
|
-// );
|
|
|
-//
|
|
|
-// Set<String> interestedAreaIdList = new HashSet<>();
|
|
|
-//
|
|
|
-// for (OldInterestedAdds oldInterestedAdds : user.getValue()) {
|
|
|
-// interestedAreaIdList.add(oldInterestedAdds.getIntdCity());
|
|
|
-// }
|
|
|
-//
|
|
|
-// if (null != jobInterested && CollUtil.isNotEmpty(jobInterested.getInterestedAreaIdList())) {
|
|
|
-// interestedAreaIdList.addAll(jobInterested.getInterestedAreaIdList());
|
|
|
-// }
|
|
|
-//
|
|
|
-// JobInterestedDO insert = JobInterestedDO.builder()
|
|
|
-// .id(null == jobInterested ? user.getKey() : jobInterested.getId())
|
|
|
-// .userId(user.getKey())
|
|
|
-// .jobType(JobTypeEnum.FULL_TIME.getType())
|
|
|
-// .interestedAreaIdList(new ArrayList<>(interestedAreaIdList))
|
|
|
-// .build();
|
|
|
-//
|
|
|
-// setCommon(insert);
|
|
|
-//
|
|
|
-// jobInterestedMapper.insertOrUpdate(insert);
|
|
|
-//
|
|
|
-// });
|
|
|
}
|
|
|
|
|
|
public void syncVipEnterprise() {
|
|
@@ -376,6 +433,7 @@ public class MdeOldSyncService {
|
|
|
|
|
|
}
|
|
|
|
|
|
+
|
|
|
public boolean containsKey(Long key) {
|
|
|
if (userMap.isEmpty()) {
|
|
|
userMap.putAll(oldUserMapper.selectList(new LambdaQueryWrapperX<OldMdeUser>()
|
|
@@ -396,190 +454,224 @@ public class MdeOldSyncService {
|
|
|
);
|
|
|
userMap.putAll(userList.stream().collect(Collectors.toMap(OldMdeUser::getUserCode, v -> v)));
|
|
|
// 新增用户 or 人才基本信息
|
|
|
- userList.stream().forEach(oldMdeUser -> {
|
|
|
-
|
|
|
- MdeUserDO userDO = null;
|
|
|
- if (oldMdeUser.getIdentityFlag().equals("1")) {
|
|
|
- // 企业用户,判断预留的手机号有没有注册过用户
|
|
|
- if(StringUtils.hasText(oldMdeUser.getEntPhone())) {
|
|
|
- // 手机号不为空
|
|
|
- MdeUserDO enterpriseUser = mdeUserMapper.selectOne(MdeUserDO::getPhone, oldMdeUser.getEntPhone());
|
|
|
- if (null != enterpriseUser) {
|
|
|
- // 存在了,不再创建用户
|
|
|
- return;
|
|
|
- }
|
|
|
- }else {
|
|
|
- // 企业预留的手机号为空
|
|
|
- }
|
|
|
- } else {
|
|
|
- // 求职端用户
|
|
|
- userDO = mdeUserMapper.selectOne(MdeUserDO::getId, oldMdeUser.getUserCode());
|
|
|
- if (null == userDO ) {
|
|
|
- MdeUserDO userNameUserDO = mdeUserMapper.selectOne(MdeUserDO::getUsername, oldMdeUser.getUserName());
|
|
|
- if (null != userNameUserDO) {
|
|
|
- // 根据账号名也匹配到数据,说明是同一个用户,直接使用账号名(手机号)匹配到的数据
|
|
|
- userDO = userNameUserDO;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- // 账户信息
|
|
|
- MdeUserDO insertionDO = MdeUserDO.builder()
|
|
|
- .id(null == userDO ? oldMdeUser.getUserCode() : userDO.getId())
|
|
|
- .username(oldMdeUser.getIdentityFlag().equals("0") ? oldMdeUser.getUserName() : oldMdeUser.getEntPhone())
|
|
|
- // 重置密码手机号后6位
|
|
|
- .password(passwordEncoder.encode("147258369"))
|
|
|
- .email(oldMdeUser.getEmail())
|
|
|
- // 有座机,大坑
|
|
|
- // 个人用户getUserName是手机号,企业用户是邮箱,所以企业用户取getEntPhone
|
|
|
- .phone(oldMdeUser.getIdentityFlag().equals("0") ? oldMdeUser.getUserName() : oldMdeUser.getEntPhone())
|
|
|
- .avatar(null == oldMdeUser.getHeadPortrait() ? null : url + oldMdeUser.getHeadPortrait())
|
|
|
- .status(MendunerStatusEnum.ENABLE.getStatus())
|
|
|
- .build();
|
|
|
-
|
|
|
-
|
|
|
- // 人才基本信息
|
|
|
- PersonInfoDO personInfoDO = personInfoMapper.getByUserId(oldMdeUser.getUserCode());
|
|
|
- personInfoDO = PersonInfoDO.builder()
|
|
|
- .id(personInfoDO != null ? personInfoDO.getId() : null)
|
|
|
- .userId(oldMdeUser.getUserCode())
|
|
|
- .name(oldMdeUser.getName())
|
|
|
- .foreignName(oldMdeUser.getForeignName())
|
|
|
- .email(oldMdeUser.getEmail())
|
|
|
- .firstWorkTime(null == oldMdeUser.getFirstWork() ? null : oldMdeUser.getFirstWork().atStartOfDay())
|
|
|
- .jobType(JobTypeEnum.FULL_TIME.getType())
|
|
|
- .jobStatus(oldMdeUser.getWorkStatus())
|
|
|
- .advantage(oldMdeUser.getIntroduction())
|
|
|
- .avatar(null == oldMdeUser.getHeadPortrait() ? null : url + oldMdeUser.getHeadPortrait())
|
|
|
- .build();
|
|
|
-
|
|
|
- if (null != oldMdeUser.getBirthday()) {
|
|
|
- // 生日转换
|
|
|
- personInfoDO.setBirthday(DateUtils.of(oldMdeUser.getBirthday(), FORMAT_YEAR_MONTH_DAY).atStartOfDay());
|
|
|
- }
|
|
|
-
|
|
|
- if (oldMdeUser.getIdentityFlag().equals("0")) {
|
|
|
- // 企业基本信息 不新增人才信息,只有普通用户才新增
|
|
|
- setCommon(personInfoDO);
|
|
|
- personInfoMapper.insertOrUpdate(personInfoDO);
|
|
|
- }
|
|
|
-
|
|
|
- if (oldMdeUser.getIdentityFlag().equals("0")) {
|
|
|
- // 个人
|
|
|
- insertionDO.setPhone(oldMdeUser.getUserName().contains("+") ? null : oldMdeUser.getUserName());
|
|
|
- } else {
|
|
|
- // 企业
|
|
|
- insertionDO.setPhone(oldMdeUser.getEntPhone());
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- setCommon(insertionDO);
|
|
|
- mdeUserMapper.insertOrUpdate(insertionDO);
|
|
|
- });
|
|
|
-
|
|
|
+// userList.stream().forEach(oldMdeUser -> {
|
|
|
//
|
|
|
-// // 企业用户
|
|
|
-// List<OldMdeUser> enterpriseUserList = userList.stream().filter(c -> c.getIdentityFlag().equals("1")).collect(Collectors.toList());
|
|
|
-// enterpriseUserList.forEach(oldMdeUser -> {
|
|
|
-// MdeUserDO enterpriseUser = null;
|
|
|
-// if (StringUtils.hasText(oldMdeUser.getEntPhone())) {
|
|
|
-// // 根据手机号获取用户信息
|
|
|
-// enterpriseUser = mdeUserMapper.selectOne(MdeUserDO::getPhone, oldMdeUser.getEntPhone());
|
|
|
-// if (null == enterpriseUser) {
|
|
|
-// return;
|
|
|
+// MdeUserDO userDO = null;
|
|
|
+// if (oldMdeUser.getIdentityFlag().equals("1")) {
|
|
|
+// // 企业用户,判断预留的手机号有没有注册过用户
|
|
|
+// if (StringUtils.hasText(oldMdeUser.getEntPhone())) {
|
|
|
+// // 手机号不为空
|
|
|
+// MdeUserDO enterpriseUser = mdeUserMapper.selectOne(MdeUserDO::getPhone, oldMdeUser.getEntPhone());
|
|
|
+// if (null != enterpriseUser) {
|
|
|
+// // 存在了,不再创建用户
|
|
|
+// return;
|
|
|
+// }
|
|
|
+// } else {
|
|
|
+// // 企业预留的手机号为空
|
|
|
// }
|
|
|
// } else {
|
|
|
-// enterpriseUser = mdeUserMapper.selectOne(MdeUserDO::getUsername, oldMdeUser.getUserName());
|
|
|
-// if (null == enterpriseUser) {
|
|
|
-// return;
|
|
|
+// // 求职端用户
|
|
|
+// userDO = mdeUserMapper.selectOne(MdeUserDO::getId, oldMdeUser.getUserCode());
|
|
|
+// if (null == userDO) {
|
|
|
+// MdeUserDO userNameUserDO = mdeUserMapper.selectOne(MdeUserDO::getUsername, oldMdeUser.getUserName());
|
|
|
+// if (null != userNameUserDO) {
|
|
|
+// // 根据账号名也匹配到数据,说明是同一个用户,直接使用账号名(手机号)匹配到的数据
|
|
|
+// userDO = userNameUserDO;
|
|
|
+// }
|
|
|
// }
|
|
|
+//
|
|
|
// }
|
|
|
//
|
|
|
-// // 借用用户编号作为企业编号匹配唯一键(旧平台只会存在人-企业一对一)
|
|
|
-// EnterpriseDO enterpriseDO = enterpriseMapper.selectOne(EnterpriseDO::getId, oldMdeUser.getUserCode());
|
|
|
-// EnterpriseDO enterpriseInsertionDO = EnterpriseDO.builder()
|
|
|
-// .id(null == enterpriseDO ? oldMdeUser.getUserCode() : enterpriseDO.getId())
|
|
|
-// .parentId(0L)
|
|
|
-// .name(oldMdeUser.getName())
|
|
|
-// .foreignName(oldMdeUser.getForeignName())
|
|
|
-// .anotherName(oldMdeUser.getName())
|
|
|
-// .website(oldMdeUser.getWebsite())
|
|
|
-// .introduce(oldMdeUser.getIntroduction())
|
|
|
-// .contact(oldMdeUser.getEntContacts())
|
|
|
-// .phone(oldMdeUser.getEntPhone())
|
|
|
-// .logoUrl(null == oldMdeUser.getHeadPortrait() ? null : url + oldMdeUser.getHeadPortrait())
|
|
|
-// .businessUrl(null == oldMdeUser.getImage() ? null : url + oldMdeUser.getImage())
|
|
|
+// // 账户信息
|
|
|
+// MdeUserDO insertionDO = MdeUserDO.builder()
|
|
|
+// .id(null == userDO ? oldMdeUser.getUserCode() : userDO.getId())
|
|
|
+// .username(oldMdeUser.getIdentityFlag().equals("0") ? oldMdeUser.getUserName() : oldMdeUser.getEntPhone())
|
|
|
+// // 重置密码手机号后6位
|
|
|
+// .password(passwordEncoder.encode("147258369"))
|
|
|
+// .email(oldMdeUser.getEmail())
|
|
|
+// // 有座机,大坑
|
|
|
+// // 个人用户getUserName是手机号,企业用户是邮箱,所以企业用户取getEntPhone
|
|
|
+// .phone(oldMdeUser.getIdentityFlag().equals("0") ? oldMdeUser.getUserName() : oldMdeUser.getEntPhone())
|
|
|
+// .avatar(null == oldMdeUser.getHeadPortrait() ? null : url + oldMdeUser.getHeadPortrait())
|
|
|
// .status(MendunerStatusEnum.ENABLE.getStatus())
|
|
|
// .build();
|
|
|
//
|
|
|
//
|
|
|
-// // 该企业下的用户信息
|
|
|
-// EnterpriseUserBindDO userDO = enterpriseUserBindMapper.selectOne(
|
|
|
-// EnterpriseUserBindDO::getUserId, enterpriseUser.getId(),
|
|
|
-// EnterpriseUserBindDO::getEnterpriseId, oldMdeUser.getUserCode()
|
|
|
-// );
|
|
|
-//
|
|
|
-// EnterpriseUserBindDO userInsertionDO = EnterpriseUserBindDO.builder()
|
|
|
-// .id(null == userDO ? null : userDO.getId())
|
|
|
-// .enterpriseId(oldMdeUser.getUserCode())
|
|
|
-// .userId(enterpriseUser.getId())
|
|
|
-// .name(oldMdeUser.getEntContacts())
|
|
|
+// // 人才基本信息
|
|
|
+// PersonInfoDO personInfoDO = personInfoMapper.getByUserId(oldMdeUser.getUserCode());
|
|
|
+// personInfoDO = PersonInfoDO.builder()
|
|
|
+// .id(personInfoDO != null ? personInfoDO.getId() : null)
|
|
|
+// .userId(oldMdeUser.getUserCode())
|
|
|
+// .name(oldMdeUser.getName())
|
|
|
+// .foreignName(oldMdeUser.getForeignName())
|
|
|
+// .email(oldMdeUser.getEmail())
|
|
|
+// .firstWorkTime(null == oldMdeUser.getFirstWork() ? null : oldMdeUser.getFirstWork().atStartOfDay())
|
|
|
+// .jobType(JobTypeEnum.FULL_TIME.getType())
|
|
|
+// .jobStatus(oldMdeUser.getWorkStatus())
|
|
|
+// .advantage(oldMdeUser.getIntroduction())
|
|
|
// .avatar(null == oldMdeUser.getHeadPortrait() ? null : url + oldMdeUser.getHeadPortrait())
|
|
|
-// .email(oldMdeUser.getUserName())
|
|
|
-// .password((passwordEncoder.encode(oldMdeUser.getUserName())))
|
|
|
-// .phone(oldMdeUser.getEntPhone())
|
|
|
-// .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())
|
|
|
-// .address(oldMdeUser.getAddDetail())
|
|
|
-// .build();
|
|
|
-//
|
|
|
-// // 优先级:区 > 市 > 省
|
|
|
-// String area = oldMdeUser.getAddrArea();
|
|
|
-// String city = oldMdeUser.getAddrCity();
|
|
|
-// String province = oldMdeUser.getAddrProvince();
|
|
|
-//
|
|
|
-// if (StringUtils.hasText(area)) {
|
|
|
-// // 如果有区,则设置区ID
|
|
|
-// addressInsertionDO.setAreaId(Long.valueOf(area));
|
|
|
-// } else if (StringUtils.hasText(city)) {
|
|
|
-// // 如果没有区但有市,则设置市ID
|
|
|
-// addressInsertionDO.setAreaId(Long.valueOf(city));
|
|
|
-// } else if (StringUtils.hasText(province)) {
|
|
|
-// // 如果没有区和市但有省,则设置省ID
|
|
|
-// addressInsertionDO.setAreaId(Long.valueOf(province));
|
|
|
-// } else {
|
|
|
-// // 如果都没有,则设置为null
|
|
|
-// addressInsertionDO.setAreaId(null);
|
|
|
+// if (null != oldMdeUser.getBirthday()) {
|
|
|
+// // 生日转换
|
|
|
+// personInfoDO.setBirthday(DateUtils.of(oldMdeUser.getBirthday(), FORMAT_YEAR_MONTH_DAY).atStartOfDay());
|
|
|
// }
|
|
|
//
|
|
|
-// if (0 != oldMdeUser.getAddLongitude().compareTo(new BigDecimal("0E-8"))) {
|
|
|
-// addressInsertionDO.setLongitude(String.valueOf(oldMdeUser.getAddLongitude()));
|
|
|
-// addressInsertionDO.setLatitude(String.valueOf(oldMdeUser.getAddLatitude()));
|
|
|
+// if (oldMdeUser.getIdentityFlag().equals("0")) {
|
|
|
+// // 企业基本信息 不新增人才信息,只有普通用户才新增
|
|
|
+// setCommon(personInfoDO);
|
|
|
+// personInfoMapper.insertOrUpdate(personInfoDO);
|
|
|
// }
|
|
|
//
|
|
|
-// setCommon(enterpriseInsertionDO);
|
|
|
-// // 插入企业信息
|
|
|
-// enterpriseMapper.insertOrUpdate(enterpriseInsertionDO);
|
|
|
-//
|
|
|
-// setCommon(userInsertionDO);
|
|
|
-// // 插入企业用户绑定信息
|
|
|
-// enterpriseUserBindMapper.insertOrUpdate(userInsertionDO);
|
|
|
+// if (oldMdeUser.getIdentityFlag().equals("0")) {
|
|
|
+// // 个人
|
|
|
+// insertionDO.setPhone(oldMdeUser.getUserName().contains("+") ? null : oldMdeUser.getUserName());
|
|
|
+// } else {
|
|
|
+// // 企业
|
|
|
+// insertionDO.setPhone(oldMdeUser.getEntPhone());
|
|
|
+// }
|
|
|
//
|
|
|
-// setCommon(addressInsertionDO);
|
|
|
-// // 插入企业地址信息
|
|
|
-// enterpriseAddressMapper.insertOrUpdate(addressInsertionDO);
|
|
|
//
|
|
|
+// setCommon(insertionDO);
|
|
|
+// mdeUserMapper.insertOrUpdate(insertionDO);
|
|
|
// });
|
|
|
-//
|
|
|
+
|
|
|
+
|
|
|
+ // 企业用户
|
|
|
+ List<OldMdeUser> enterpriseUserList = userList.stream().filter(c -> c.getIdentityFlag().equals("1")).collect(Collectors.toList());
|
|
|
+ enterpriseUserList.forEach(oldMdeUser -> {
|
|
|
+ MdeUserDO enterpriseUser = null;
|
|
|
+ if (StringUtils.hasText(oldMdeUser.getEntPhone())) {
|
|
|
+ // 根据手机号获取用户信息
|
|
|
+ enterpriseUser = mdeUserMapper.selectOne(MdeUserDO::getPhone, oldMdeUser.getEntPhone());
|
|
|
+ if (null == enterpriseUser) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ enterpriseUser = mdeUserMapper.selectOne(MdeUserDO::getUsername, oldMdeUser.getUserName());
|
|
|
+ if (null == enterpriseUser) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // TODO 根据企业名称查询是否存在,存在则使用,不存在则创建
|
|
|
+ EnterpriseDO enterpriseDO = enterpriseMapper.selectOne(EnterpriseDO::getName, oldMdeUser.getName());
|
|
|
+
|
|
|
+ Long enterpriseId = null == enterpriseDO ? oldMdeUser.getUserCode() : enterpriseDO.getId();
|
|
|
+
|
|
|
+ // 借用用户编号作为企业编号匹配唯一键
|
|
|
+// EnterpriseDO enterpriseDO = enterpriseMapper.selectOne(EnterpriseDO::getId, oldMdeUser.getUserCode());
|
|
|
+ EnterpriseDO enterpriseInsertionDO = EnterpriseDO.builder()
|
|
|
+ .id(enterpriseId)
|
|
|
+ .parentId(0L)
|
|
|
+ .name(oldMdeUser.getName())
|
|
|
+ .foreignName(oldMdeUser.getForeignName())
|
|
|
+ .anotherName(oldMdeUser.getName())
|
|
|
+ .website(oldMdeUser.getWebsite())
|
|
|
+ .introduce(oldMdeUser.getIntroduction())
|
|
|
+ .contact(oldMdeUser.getEntContacts())
|
|
|
+ .phone(oldMdeUser.getEntPhone())
|
|
|
+ .logoUrl(null == oldMdeUser.getHeadPortrait() ? null : url + oldMdeUser.getHeadPortrait())
|
|
|
+ .businessUrl(null == oldMdeUser.getImage() ? null : url + oldMdeUser.getImage())
|
|
|
+ .status(MendunerStatusEnum.ENABLE.getStatus())
|
|
|
+ .build();
|
|
|
+
|
|
|
+ setCommon(enterpriseInsertionDO);
|
|
|
+ // 插入企业信息
|
|
|
+ enterpriseMapper.insertOrUpdate(enterpriseInsertionDO);
|
|
|
+
|
|
|
+
|
|
|
+ // 该企业下的用户信息
|
|
|
+ EnterpriseUserBindDO userDO = enterpriseUserBindMapper.selectOne(
|
|
|
+ EnterpriseUserBindDO::getUserId, enterpriseUser.getId(),
|
|
|
+ EnterpriseUserBindDO::getEnterpriseId, enterpriseId
|
|
|
+ );
|
|
|
+ // 再次查询一遍,根据企业id和用户类型=管理员查询,如果有数据就是普通用户,否则就是管理员
|
|
|
+ EnterpriseUserBindDO adminUser = enterpriseUserBindMapper.selectOne(
|
|
|
+ EnterpriseUserBindDO::getEnterpriseId, enterpriseId,
|
|
|
+ EnterpriseUserBindDO::getUserType, EnterpriseUserTypeEnum.ADMIN.getType()
|
|
|
+ );
|
|
|
+
|
|
|
+ String userType = EnterpriseUserTypeEnum.NORMAL.getType();
|
|
|
+ if (null == adminUser) {
|
|
|
+ // 没有数据,当前数据更改为管理员
|
|
|
+ userType = EnterpriseUserTypeEnum.ADMIN.getType();
|
|
|
+ } else {
|
|
|
+ // 有数据
|
|
|
+ if (null != userDO) {
|
|
|
+ // 存在则用自己的
|
|
|
+ userType = userDO.getUserType();
|
|
|
+ } else {
|
|
|
+ // 不存在数据并且
|
|
|
+ userType = EnterpriseUserTypeEnum.NORMAL.getType();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ EnterpriseUserBindDO userInsertionDO = EnterpriseUserBindDO.builder()
|
|
|
+ .id(null == userDO ? null : userDO.getId())
|
|
|
+ .enterpriseId(enterpriseId)
|
|
|
+ .userId(enterpriseUser.getId())
|
|
|
+ .name(oldMdeUser.getEntContacts())
|
|
|
+ .avatar(null == oldMdeUser.getHeadPortrait() ? null : url + oldMdeUser.getHeadPortrait())
|
|
|
+ .email(oldMdeUser.getUserName())
|
|
|
+ .password((passwordEncoder.encode(oldMdeUser.getUserName())))
|
|
|
+ .phone(oldMdeUser.getEntPhone())
|
|
|
+ .userType(userType)
|
|
|
+ .build();
|
|
|
+
|
|
|
+
|
|
|
+ setCommon(userInsertionDO);
|
|
|
+ // 插入企业用户绑定信息
|
|
|
+ enterpriseUserBindMapper.insertOrUpdate(userInsertionDO);
|
|
|
+
|
|
|
+
|
|
|
+ // 企业的地址
|
|
|
+ EnterpriseAddressDO enterpriseAddressDO = enterpriseAddressMapper.selectOne(EnterpriseAddressDO::getEnterpriseId, enterpriseId);
|
|
|
+
|
|
|
+ if (StringUtils.hasText(oldMdeUser.getAddDetail())) {
|
|
|
+ EnterpriseAddressDO addressInsertionDO = EnterpriseAddressDO.builder()
|
|
|
+ .id(null == enterpriseAddressDO ? enterpriseId : enterpriseAddressDO.getId())
|
|
|
+ .enterpriseId(enterpriseId)
|
|
|
+ .address(oldMdeUser.getAddDetail())
|
|
|
+ .build();
|
|
|
+
|
|
|
+ // 优先级:区 > 市 > 省
|
|
|
+ String area = oldMdeUser.getAddrArea();
|
|
|
+ String city = oldMdeUser.getAddrCity();
|
|
|
+ String province = oldMdeUser.getAddrProvince();
|
|
|
+
|
|
|
+ if (StringUtils.hasText(area)) {
|
|
|
+ // 如果有区,则设置区ID
|
|
|
+ addressInsertionDO.setAreaId(getAreaId(area));
|
|
|
+ } else if (StringUtils.hasText(city)) {
|
|
|
+ // 如果没有区但有市,则设置市ID
|
|
|
+ addressInsertionDO.setAreaId(getAreaId(city));
|
|
|
+ } else if (StringUtils.hasText(province)) {
|
|
|
+ // 如果没有区和市但有省,则设置省ID
|
|
|
+ addressInsertionDO.setAreaId(getAreaId(province));
|
|
|
+ } else {
|
|
|
+ // 如果都没有,则设置为null
|
|
|
+// addressInsertionDO.setAreaId(null);
|
|
|
+ // 不要这条数据
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (null == addressInsertionDO.getAreaId()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if (0 != oldMdeUser.getAddLongitude().compareTo(new BigDecimal("0E-8"))) {
|
|
|
+ addressInsertionDO.setLongitude(String.valueOf(oldMdeUser.getAddLongitude()));
|
|
|
+ addressInsertionDO.setLatitude(String.valueOf(oldMdeUser.getAddLatitude()));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ setCommon(addressInsertionDO);
|
|
|
+ // 插入企业地址信息
|
|
|
+ enterpriseAddressMapper.insertOrUpdate(addressInsertionDO);
|
|
|
+ }
|
|
|
+
|
|
|
+ });
|
|
|
+
|
|
|
|
|
|
}
|
|
|
|
|
@@ -595,6 +687,12 @@ public class MdeOldSyncService {
|
|
|
if (null == userId) {
|
|
|
return;
|
|
|
}
|
|
|
+ // TODO 职位根据发送人id查询企业用户表定位所在企业,然后使用企业id
|
|
|
+ Long enterpriseId = getEnterpriseId(oldMdeJobAdvertised.getPublisher());
|
|
|
+ if (null == enterpriseId) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
JobAdvertisedDO jobAdvertisedDO = jobAdvertisedMapper.selectOne(JobAdvertisedDO::getId, oldMdeJobAdvertised.getJobId());
|
|
|
|
|
|
|
|
@@ -606,7 +704,7 @@ public class MdeOldSyncService {
|
|
|
.requirement(oldMdeJobAdvertised.getJobRequirement())
|
|
|
.positionId(Long.valueOf(oldMdeJobAdvertised.getPositionId()))
|
|
|
.userId(userId)
|
|
|
- .enterpriseId(oldMdeJobAdvertised.getPublisher())
|
|
|
+ .enterpriseId(enterpriseId)
|
|
|
.address(oldMdeJobAdvertised.getAddDetail())
|
|
|
.eduType(eduTypeMapRelation.get(oldMdeJobAdvertised.getEducation()))
|
|
|
.expType(expTypeMapRelation.get(oldMdeJobAdvertised.getWorkExperience()))
|
|
@@ -631,13 +729,13 @@ public class MdeOldSyncService {
|
|
|
|
|
|
if (StringUtils.hasText(area)) {
|
|
|
// 如果有区,则设置区ID
|
|
|
- insertionDO.setAreaId(Long.valueOf(area));
|
|
|
+ insertionDO.setAreaId(getAreaId(area));
|
|
|
} else if (StringUtils.hasText(city)) {
|
|
|
// 如果没有区但有市,则设置市ID
|
|
|
- insertionDO.setAreaId(Long.valueOf(city));
|
|
|
+ insertionDO.setAreaId(getAreaId(city));
|
|
|
} else if (StringUtils.hasText(province)) {
|
|
|
// 如果没有区和市但有省,则设置省ID
|
|
|
- insertionDO.setAreaId(Long.valueOf(province));
|
|
|
+ insertionDO.setAreaId(getAreaId(province));
|
|
|
} else {
|
|
|
// 如果都没有,则设置为null
|
|
|
insertionDO.setAreaId(null);
|
|
@@ -835,11 +933,80 @@ public class MdeOldSyncService {
|
|
|
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ public void syncHotel() {
|
|
|
+ List<OldHotelBrand> brandList = oldHotelBrandMapper.selectList();
|
|
|
+ brandList.forEach(brand -> {
|
|
|
+ HotelBrandDO hotelBrandDO = hotelBrandMapper.selectOne(HotelBrandDO::getId, Long.valueOf(brand.getBrandId()));
|
|
|
+ HotelBrandDO insertDO = HotelBrandDO.builder()
|
|
|
+ .id(null == hotelBrandDO ? Long.valueOf(brand.getBrandId()) : hotelBrandDO.getId())
|
|
|
+ .nameCn(brand.getBrandNameCn())
|
|
|
+ .nameEn(brand.getBrandNameEn())
|
|
|
+ .international(brand.getInternational())
|
|
|
+ .sort(brand.getSortId())
|
|
|
+ .build();
|
|
|
+
|
|
|
+ setCommon(insertDO);
|
|
|
+ hotelBrandMapper.insertOrUpdate(insertDO);
|
|
|
+ });
|
|
|
+ List<OldHotelSubbrand> subbrandList = oldHotelSubbrandMapper.selectList();
|
|
|
+ subbrandList.forEach(subbrand -> {
|
|
|
+ HotelSubBrandDO hotelSubBrandDO = hotelSubBrandMapper.selectOne(HotelSubBrandDO::getId, Long.valueOf(subbrand.getSubbrandId()));
|
|
|
+ HotelSubBrandDO insertDO = HotelSubBrandDO.builder()
|
|
|
+ .id(null == hotelSubBrandDO ? Long.valueOf(subbrand.getSubbrandId()) : hotelSubBrandDO.getId())
|
|
|
+ .brandId(Long.valueOf(subbrand.getBrandId()))
|
|
|
+ .nameCn(subbrand.getSubbrandNameCn())
|
|
|
+ .nameEn(subbrand.getSubbrandNameEn())
|
|
|
+ .level(String.valueOf(subbrand.getHotelLevel()))
|
|
|
+ .international(subbrand.getInternational())
|
|
|
+ .sort(subbrand.getSortId())
|
|
|
+ .build();
|
|
|
+ setCommon(insertDO);
|
|
|
+ hotelSubBrandMapper.insertOrUpdate(insertDO);
|
|
|
+ });
|
|
|
+ List<OldHotelCompany> companyList = oldHotelCompanyMapper.selectList();
|
|
|
+ companyList.forEach(company -> {
|
|
|
+ HotelCompanyDO hotelCompanyDO = hotelCompanyMapper.selectOne(HotelCompanyDO::getId, Long.valueOf(company.getHotelId()));
|
|
|
+ HotelCompanyDO insertDO = HotelCompanyDO.builder()
|
|
|
+ .id(null == hotelCompanyDO ? Long.valueOf(company.getHotelId()) : hotelCompanyDO.getId())
|
|
|
+ .nameCn(company.getHotelNameCn())
|
|
|
+ .nameEn(company.getHotelNameEn())
|
|
|
+ .subBrandId(Long.valueOf(company.getSubbrandId()))
|
|
|
+ .addressCn(company.getHotelAddressCn())
|
|
|
+ .addressEn(company.getHotelAddressEn())
|
|
|
+ .zipCode(company.getHotelZipcode())
|
|
|
+ .country(company.getHotelCountry())
|
|
|
+ .areaId(getAreaId(company.getHotelArea()))
|
|
|
+ .build();
|
|
|
+
|
|
|
+ if (null != company.getHotelLongitude()) {
|
|
|
+ if (0 != company.getHotelLongitude().compareTo(new BigDecimal("0E-8"))) {
|
|
|
+ insertDO.setLongitude(String.valueOf(company.getHotelLongitude()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (null != company.getHotelLatitude()) {
|
|
|
+ if (0 != company.getHotelLatitude().compareTo(new BigDecimal("0E-8"))) {
|
|
|
+ insertDO.setLatitude(String.valueOf(company.getHotelLatitude()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ setCommon(insertDO);
|
|
|
+ hotelCompanyMapper.insertOrUpdate(insertDO);
|
|
|
+ });
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 设置租户
|
|
|
+ **/
|
|
|
private void setCommon(TenantBaseDO tenantBaseDO) {
|
|
|
tenantBaseDO.setTenantId(155L);
|
|
|
}
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
+ * 根据旧平台的用户id,获取新平台的用户id
|
|
|
+ **/
|
|
|
private Long getSystemUserId(Long userId) {
|
|
|
MdeUserDO enterpriseUser = null;
|
|
|
OldMdeUser oldMdeUser = userMap.get(userId);
|
|
@@ -857,4 +1024,27 @@ public class MdeOldSyncService {
|
|
|
}
|
|
|
return enterpriseUser.getId();
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据旧平台的用户编码获取所属的企业id
|
|
|
+ **/
|
|
|
+ private Long getEnterpriseId(Long publisher) {
|
|
|
+ // 根据发布者id查找企业,返回企业id
|
|
|
+ Long enterpriseId = null;
|
|
|
+ // 获取用户id
|
|
|
+ OldMdeUser oldMdeUser = userMap.get(publisher);
|
|
|
+ if (null != oldMdeUser) {
|
|
|
+ // 通过账户(邮箱) 查询企业用户绑定信息
|
|
|
+ EnterpriseUserBindDO bindDO = enterpriseUserBindMapper
|
|
|
+ .selectOne(EnterpriseUserBindDO::getEmail, oldMdeUser.getUserName());
|
|
|
+
|
|
|
+ if (null != bindDO) {
|
|
|
+ enterpriseId = bindDO.getEnterpriseId();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return enterpriseId;
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
}
|