From 70d2a5d0f9c6951b2d4cac954041ed73582ff7eb Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期一, 09 六月 2025 11:54:00 +0800
Subject: [PATCH] 6.9新增登录失败冻结逻辑

---
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AgeUtils.java |  145 +++++++++++++++++++++++++++++++----------------
 1 files changed, 95 insertions(+), 50 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AgeUtils.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AgeUtils.java
index f37264e..d55983e 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AgeUtils.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AgeUtils.java
@@ -1,5 +1,8 @@
 package com.panzhihua.common.utlis;
 
+import cn.hutool.core.util.IdcardUtil;
+import com.panzhihua.common.constants.Constants;
+
 import java.text.SimpleDateFormat;
 import java.util.Calendar;
 import java.util.Date;
@@ -11,54 +14,9 @@
     // 根据年月日计算年龄,birthTimeString:"1994-11-14"
     public static int getAgeFromBirthTime(String birthTimeString) {
         // 先截取到字符串中的年、月、日
-        int selectYear = Integer.parseInt(birthTimeString.substring(0,4));
-        int selectMonth = Integer.parseInt(birthTimeString.substring(4,6));
-        int selectDay = Integer.parseInt(birthTimeString.substring(6,8));
-        // 得到当前时间的年、月、日
-        Calendar cal = Calendar.getInstance();
-        int yearNow = cal.get(Calendar.YEAR);
-        int monthNow = cal.get(Calendar.MONTH) + 1;
-        int dayNow = cal.get(Calendar.DATE);
-
-        // 用当前年月日减去生日年月日
-        int yearMinus = yearNow - selectYear;
-        int monthMinus = monthNow - selectMonth;
-        int dayMinus = dayNow - selectDay;
-
-        int age = yearMinus;// 先大致赋值
-        if (yearMinus < 0) {// 选了未来的年份
-            age = 0;
-        } else if (yearMinus == 0) {// 同年的,要么为1,要么为0
-            if (monthMinus < 0) {// 选了未来的月份
-                age = 0;
-            } else if (monthMinus == 0) {// 同月份的
-                if (dayMinus < 0) {// 选了未来的日期
-                    age = 0;
-                } else if (dayMinus >= 0) {
-                    age = 1;
-                }
-            } else if (monthMinus > 0) {
-                age = 1;
-            }
-        } else if (yearMinus > 0) {
-            if (monthMinus < 0) {// 当前月>生日月
-            } else if (monthMinus == 0) {// 同月份的,再根据日期计算年龄
-                if (dayMinus < 0) {
-                } else if (dayMinus >= 0) {
-                    age = age + 1;
-                }
-            } else if (monthMinus > 0) {
-                age = age + 1;
-            }
-        }
-        return age;
-    }
-
-    public static int getAgeFromBirthTimes(String birthTimeString) {
-        // 先截取到字符串中的年、月、日
-        int selectYear = Integer.parseInt(birthTimeString.substring(0,4));
-        int selectMonth = Integer.parseInt(birthTimeString.substring(5,7));
-        int selectDay = Integer.parseInt(birthTimeString.substring(8,10));
+        int selectYear = Integer.parseInt(birthTimeString.substring(0, 4));
+        int selectMonth = Integer.parseInt(birthTimeString.substring(4, 6));
+        int selectDay = Integer.parseInt(birthTimeString.substring(6, 8));
         // 得到当前时间的年、月、日
         Calendar cal = Calendar.getInstance();
         int yearNow = cal.get(Calendar.YEAR);
@@ -107,8 +65,95 @@
         return getAgeFromBirthTime(birthTimeString);
     }
 
+    public static String getAgeFormatBirthday(String brithday) {
+        if (StringUtils.isEmpty(brithday)) {
+            return "";
+        }
+        String year = brithday.substring(0, 4);
+        String month = brithday.substring(4, 6);
+        String ri = brithday.substring(6, 8);
+        return year + "-" + month + "-" + ri;
+    }
+
+    public static int getAgeFromBirthTimes(String birthTimeString) {
+        // 先截取到字符串中的年、月、日
+        int selectYear = Integer.parseInt(birthTimeString.substring(0, 4));
+        int selectMonth = Integer.parseInt(birthTimeString.substring(5, 7));
+        int selectDay = Integer.parseInt(birthTimeString.substring(8, 10));
+        // 得到当前时间的年、月、日
+        Calendar cal = Calendar.getInstance();
+        int yearNow = cal.get(Calendar.YEAR);
+        int monthNow = cal.get(Calendar.MONTH) + 1;
+        int dayNow = cal.get(Calendar.DATE);
+
+        // 用当前年月日减去生日年月日
+        int yearMinus = yearNow - selectYear;
+        int monthMinus = monthNow - selectMonth;
+        int dayMinus = dayNow - selectDay;
+
+        int age = yearMinus;// 先大致赋值
+        if (yearMinus < 0) {// 选了未来的年份
+            age = 0;
+        } else if (yearMinus == 0) {// 同年的,要么为1,要么为0
+            if (monthMinus < 0) {// 选了未来的月份
+                age = 0;
+            } else if (monthMinus == 0) {// 同月份的
+                if (dayMinus < 0) {// 选了未来的日期
+                    age = 0;
+                } else if (dayMinus >= 0) {
+                    age = 1;
+                }
+            } else if (monthMinus > 0) {
+                age = 1;
+            }
+        } else if (yearMinus > 0) {
+            if (monthMinus < 0) {// 当前月>生日月
+            } else if (monthMinus == 0) {// 同月份的,再根据日期计算年龄
+                if (dayMinus < 0) {
+                } else if (dayMinus >= 0) {
+                    age = age + 1;
+                }
+            } else if (monthMinus > 0) {
+                age = age + 1;
+            }
+        }
+        return age - 1;
+    }
+
+    /**
+     * 根据身份证号判断年龄段
+     * @param idCard    身份证号
+     * @return  年龄段(1.80-89周岁 2.90-99周岁 3.100周岁(含)以上)
+     */
+    public static int getAgeCategory(String idCard){
+        int nub = -1;
+        int age = 0;
+        try {
+            age = IdcardUtil.getAgeByIdCard(idCard);
+        }catch (Exception e){
+            return -1;
+        }
+        if (age >= Constants.EIGHTY && age < Constants.NINETY) {
+            nub = 1;
+        }else if (age >= Constants.NINETY && age < Constants.ONE_HUNDRED){
+            nub = 2;
+        }else if (age >= Constants.ONE_HUNDRED){
+            nub = 3;
+        }
+        return nub;
+    }
+
+    public static int getAgeFromBirthTimes(long birthTimeLong) {
+        Date date = new Date(birthTimeLong * 1000l);
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+        String birthTimeString = format.format(date);
+        return getAgeFromBirthTimes(birthTimeString);
+    }
+
     public static void main(String[] args) {
-        int age = getAgeFromBirthTime("1995-08-18");
-        System.out.println(age);
+        String yese = "19980516";
+        String year = yese.substring(0, 4);
+        String month = yese.substring(4, 6);
+        String ri = yese.substring(6, 8);
     }
 }

--
Gitblit v1.7.1