Browse Source

fix: 超60周岁限制提醒

lixuesong 1 year ago
parent
commit
bcb55c59f6

+ 7 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/ApiController.java

@@ -1016,10 +1016,16 @@ public class ApiController {
 
 			// 超60周岁是否提醒
 			Map<String, String> checkResult = sysUserService.checkSixtyYearsOld(sysU);
-			mapOne.put("ageReminder", Boolean.TRUE.equals(sysU.getAgeReminder()) && CollUtil.isNotEmpty(checkResult));
+
 			if (CollUtil.isNotEmpty(checkResult)) {
 				mapOne.put("ageReminderInfo", CollUtil.get(checkResult.values(), 0));
+				// 超60周岁限制
+				mapOne.put("ageLimit", checkResult.containsKey("OVER"));
+				// 超60周岁提示
+				mapOne.put("ageReminder", Boolean.TRUE.equals(sysU.getAgeReminder()) && checkResult.containsKey("HALF_YEAR"));
 			} else {
+				mapOne.put("ageLimit", false);
+				mapOne.put("ageReminder", false);
 				mapOne.put("ageReminderInfo", null);
 			}
 

+ 24 - 22
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/SysUserServiceImpl.java

@@ -231,28 +231,30 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
 		Map<String, String> result = new HashMap<>();
 
 		String idCardNumber = userVO.getIdCardNumber();
-		if (IdcardUtil.isValidCard(idCardNumber)) {
-			// 当前日期
-			Calendar nowCal = Calendar.getInstance();
-			// 基于生日的日期,60周岁提前半年的时间
-			Calendar halfYearCal = IdcardUtil.getBirthDate(idCardNumber).toCalendar();
-			halfYearCal.add(Calendar.YEAR, 59);
-			halfYearCal.add(Calendar.MONTH, 6);
-			// 基于生日的日期,60周岁的时间
-			Calendar sixtyYearsOldYearCal = IdcardUtil.getBirthDate(idCardNumber).toCalendar();
-			sixtyYearsOldYearCal.add(Calendar.YEAR, 60);
-
-			if (sixtyYearsOldYearCal.compareTo(nowCal) > 0 && halfYearCal.compareTo(nowCal) <= 0) {
-				// 提前半年提醒,不满60周岁,但距离60周岁在半年内
-				String format = String.format("平台要求人员年龄在年满18岁未满60岁之间,您的账号将于%s年%s月%s日被停用,停用后将无法做任务或者资金结算,请知悉!",
-						sixtyYearsOldYearCal.get(Calendar.YEAR), sixtyYearsOldYearCal.get(Calendar.MONTH) + 1, sixtyYearsOldYearCal.get(Calendar.DAY_OF_MONTH));
-				result.put("HALF_YEAR", format);
-			} else if (sixtyYearsOldYearCal.compareTo(nowCal) <= 0) {
-				// 已超过60周岁
-				String format = String.format("您的账号已于%s年%s月%s日因年龄超限被停用,请知悉",
-						sixtyYearsOldYearCal.get(Calendar.YEAR), sixtyYearsOldYearCal.get(Calendar.MONTH) + 1, sixtyYearsOldYearCal.get(Calendar.DAY_OF_MONTH));
-				result.put("OVER", format);
-			}
+		if (!IdcardUtil.isValidCard(idCardNumber)) {
+			log.warn("无效的身份证号: {}", idCardNumber);
+		}
+
+		// 当前日期
+		Calendar nowCal = Calendar.getInstance();
+		// 基于生日的日期,60周岁提前半年的时间
+		Calendar halfYearCal = IdcardUtil.getBirthDate(idCardNumber).toCalendar();
+		halfYearCal.add(Calendar.YEAR, 59);
+		halfYearCal.add(Calendar.MONTH, 6);
+		// 基于生日的日期,60周岁的时间
+		Calendar sixtyYearsOldYearCal = IdcardUtil.getBirthDate(idCardNumber).toCalendar();
+		sixtyYearsOldYearCal.add(Calendar.YEAR, 60);
+
+		if (sixtyYearsOldYearCal.compareTo(nowCal) > 0 && halfYearCal.compareTo(nowCal) <= 0) {
+			// 提前半年提醒,不满60周岁,但距离60周岁在半年内
+			String format = String.format("平台要求人员年龄在年满18岁未满60岁之间,您的账号将于%s年%s月%s日被停用,停用后将无法做任务或者资金结算,请知悉!",
+					sixtyYearsOldYearCal.get(Calendar.YEAR), sixtyYearsOldYearCal.get(Calendar.MONTH) + 1, sixtyYearsOldYearCal.get(Calendar.DAY_OF_MONTH));
+			result.put("HALF_YEAR", format);
+		} else if (sixtyYearsOldYearCal.compareTo(nowCal) <= 0) {
+			// 已超过60周岁
+			String format = String.format("您的账号已于%s年%s月%s日因年龄超限被停用,请知悉",
+					sixtyYearsOldYearCal.get(Calendar.YEAR), sixtyYearsOldYearCal.get(Calendar.MONTH) + 1, sixtyYearsOldYearCal.get(Calendar.DAY_OF_MONTH));
+			result.put("OVER", format);
 		}
 
 		return result;