diff --git a/src/main/java/com/budwk/app/sys/services/impl/SysDataUserAllUpdateServiceImpl.java b/src/main/java/com/budwk/app/sys/services/impl/SysDataUserAllUpdateServiceImpl.java index e54f7e6..7dcda8c 100644 --- a/src/main/java/com/budwk/app/sys/services/impl/SysDataUserAllUpdateServiceImpl.java +++ b/src/main/java/com/budwk/app/sys/services/impl/SysDataUserAllUpdateServiceImpl.java @@ -121,16 +121,15 @@ public class SysDataUserAllUpdateServiceImpl implements SysDataUserUpdateService */ private boolean checkMembershipEligibility(String userState, String preparedBy, Date postDoctoralJoinDate) { // 博士后单独判断:只要进站时间在两年内就是会员 - if ("博士后".equals(preparedBy)) { - if (postDoctoralJoinDate != null) { - Date twoYearsAgo = DateUtil.offset(DateUtil.date(), DateField.YEAR, -2).toJdkDate(); - return postDoctoralJoinDate.after(twoYearsAgo); - } - return false; - } +// if ("博士后".equals(preparedBy)) { +// if (postDoctoralJoinDate != null) { +// Date twoYearsAgo = DateUtil.offset(DateUtil.date(), DateField.YEAR, -2).toJdkDate(); +// return postDoctoralJoinDate.after(twoYearsAgo); +// } +// return false; +// } - // 其他人员需要判断在岗状态和聘用方式 - if (!"在岗".equals(userState)) { + if (!"在岗".equals(userState) && !"在岗-里仁学院".equals(userState)) { return false; } @@ -195,7 +194,11 @@ public class SysDataUserAllUpdateServiceImpl implements SysDataUserUpdateService u.setSalt(salt); u.setPassword(PwdUtil.getPassword(PwdUtil.generate(12), salt)); - if (u.getMember()) { + // 判断是否为会员 + boolean isMember = checkMembershipEligibility(u.getUserState(), u.getPreparedBy(), u.getPostDoctoralJoinDate()); + u.setMember(isMember); + + if (isMember) { addMemberUserIds.add(u.getId()); } needInitUserList.add(u); @@ -205,10 +208,16 @@ public class SysDataUserAllUpdateServiceImpl implements SysDataUserUpdateService // 更新会员状态 boolean currentIsMember = user.getMember() != null && user.getMember(); + boolean shouldBeMember = checkMembershipEligibility(u.getUserState(), u.getPreparedBy(), u.getPostDoctoralJoinDate()); - if (!currentIsMember) { + // 设置新的会员状态 + u.setMember(shouldBeMember); + + if (shouldBeMember && !currentIsMember) { + // 应该是会员但当前不是,需要添加 addMemberUserIds.add(user.getId()); - } else{ + } else if (!shouldBeMember && currentIsMember) { + // 不应该是会员但当前是,需要移除 removeMemberUserIds.add(user.getId()); } diff --git a/src/main/java/com/budwk/app/sys/services/impl/SysDataUserIncrUpdateServiceImpl.java b/src/main/java/com/budwk/app/sys/services/impl/SysDataUserIncrUpdateServiceImpl.java index 78b3469..603effe 100644 --- a/src/main/java/com/budwk/app/sys/services/impl/SysDataUserIncrUpdateServiceImpl.java +++ b/src/main/java/com/budwk/app/sys/services/impl/SysDataUserIncrUpdateServiceImpl.java @@ -70,7 +70,7 @@ public class SysDataUserIncrUpdateServiceImpl implements SysDataUserUpdateServic // 检查是否符合会员条件 // 1. 用户状态为"在岗" - if ("在岗".equals(sysUser.getUserState())) { + if ("在岗".equals(sysUser.getUserState()) || "在岗-里仁学院".equals(sysUser.getUserState())) { // 2. 检查聘用方式条件 List membershipQualifyingPreparedBy = Arrays.asList("新人事代理", "校聘合同制", "事业编制"); @@ -79,12 +79,12 @@ public class SysDataUserIncrUpdateServiceImpl implements SysDataUserUpdateServic // 第二种情况:聘用方式是博士后,且进站时间不超过两年 boolean isQualifiedPostdoc = false; - if ("博士后".equals(sysUser.getPreparedBy()) && sysUser.getPostDoctoralJoinDate() != null) { - Calendar twoYearsAgo = Calendar.getInstance(); - twoYearsAgo.add(Calendar.YEAR, -2); - Date twoYearsAgoDate = twoYearsAgo.getTime(); - isQualifiedPostdoc = sysUser.getPostDoctoralJoinDate().after(twoYearsAgoDate); - } +// if ("博士后".equals(sysUser.getPreparedBy()) && sysUser.getPostDoctoralJoinDate() != null) { +// Calendar twoYearsAgo = Calendar.getInstance(); +// twoYearsAgo.add(Calendar.YEAR, -2); +// Date twoYearsAgoDate = twoYearsAgo.getTime(); +// isQualifiedPostdoc = sysUser.getPostDoctoralJoinDate().after(twoYearsAgoDate); +// } // 如果满足任一条件,设置为会员 if (isQualifiedByPreparedBy || isQualifiedPostdoc) {