From c14d9e1eba68d0127d19a8bd4e0fc80be5ad3138 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期二, 11 十一月 2025 18:13:07 +0800
Subject: [PATCH] 大屏接口校验规则

---
 ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeDept.java                          |    5 ++
 ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeKeyPersonnelType.java              |    3 +
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TLargeKeyGridUserServiceImpl.java |   11 +++++
 ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeOrganization.java                  |    5 ++
 ruoyi-system/src/main/java/com/ruoyi/system/utils/util/IDCardAgeCalculator.java            |   38 +++++++++++++++++++
 ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeUser.java                          |    6 +++
 ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeVolunteer.java                     |    3 +
 ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeKeyGridUser.java                   |   10 +++++
 ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeSocialWorker.java                  |    7 +++
 ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeResourceType.java                  |    3 +
 ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeResource.java                      |    6 +++
 ruoyi-system/src/main/java/com/ruoyi/system/vo/TLargeKeyGridUserVO.java                    |    3 +
 12 files changed, 100 insertions(+), 0 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeDept.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeDept.java
index 5f19d6c..786a570 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeDept.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeDept.java
@@ -6,7 +6,9 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
+import org.hibernate.validator.constraints.Length;
 
+import javax.validation.constraints.NotBlank;
 import java.io.Serializable;
 import java.time.LocalDateTime;
 
@@ -29,6 +31,9 @@
     @TableId(value = "id", type = IdType.ASSIGN_ID)
     private String id;
 
+    @Length(max = 20,message = "部门名称长度不能超过20个字符")
+    @NotBlank(message = "部门名称不能为空")
+    @ApiModelProperty(value = "部门名称")
     @TableField("dept_name")
     private String deptName;
 
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeKeyGridUser.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeKeyGridUser.java
index 7088406..649fa38 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeKeyGridUser.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeKeyGridUser.java
@@ -6,7 +6,9 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
+import org.hibernate.validator.constraints.Length;
 
+import javax.validation.constraints.Pattern;
 import java.io.Serializable;
 import java.time.LocalDateTime;
 
@@ -29,26 +31,32 @@
     @TableId(value = "id", type = IdType.ASSIGN_ID)
     private String id;
 
+    @Length(max = 40,message = "网格不能超过40个字符")
     @ApiModelProperty(value = "网格")
     @TableField("grid_info")
     private String gridInfo;
 
+    @Length(max = 40,message = "小区名称不能超过40个字符")
     @ApiModelProperty(value = "小区名称")
     @TableField("community_name")
     private String communityName;
 
+    @Length(max = 100,message = "楼栋信息不能超过100个字符")
     @ApiModelProperty(value = "楼栋信息")
     @TableField("building_info")
     private String buildingInfo;
 
+    @Length(max = 40,message = "单元号不能超过40个字符")
     @ApiModelProperty(value = "单元号")
     @TableField("unit_number")
     private String unitNumber;
 
+    @Length(max = 40,message = "门牌号不能超过40个字符")
     @ApiModelProperty(value = "门牌号")
     @TableField("house_number")
     private String houseNumber;
 
+    @Length(max = 20,message = "姓名不能超过20个字符")
     @ApiModelProperty(value = "姓名")
     @TableField("user_name")
     private String userName;
@@ -57,10 +65,12 @@
     @TableField("user_sex")
     private Integer userSex;
 
+    @Pattern(regexp = "^$|(^[1-9]\\\\d{7}((0\\\\d)|(1[0-2]))(([0-2]\\\\d)|3[0-1])\\\\d{3}$)|(^[1-9]\\\\d{5}[1-9]\\\\d{3}((0\\\\d)|(1[0-2]))(([0-2]\\\\d)|3[0-1])((\\\\d{4})|\\\\d{3}[Xx])$)\n",message = "身份证号格式不正确")
     @ApiModelProperty(value = "身份证号")
     @TableField("id_card")
     private String idCard;
 
+    @Pattern(regexp = "^1[3-9]\\\\d{9}$",message = "手机号格式不正确")
     @ApiModelProperty(value = "联系电话")
     @TableField("contact_number")
     private String contactNumber;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeKeyPersonnelType.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeKeyPersonnelType.java
index c23ffe1..a1fc627 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeKeyPersonnelType.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeKeyPersonnelType.java
@@ -6,6 +6,7 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
+import org.hibernate.validator.constraints.Length;
 
 import java.io.Serializable;
 import java.time.LocalDateTime;
@@ -29,6 +30,7 @@
     @TableId(value = "id", type = IdType.ASSIGN_ID)
     private String id;
 
+    @Length(max = 40,message = "分类名称不能超过40个字符")
     @ApiModelProperty(value = "分类名称")
     @TableField("type_name")
     private String typeName;
@@ -37,6 +39,7 @@
     @TableField("show_type")
     private Integer showType;
 
+    @Length(max = 11,message = "显示数量不能超过11个字符")
     @ApiModelProperty(value = "显示数量")
     @TableField("show_number")
     private Integer showNumber;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeOrganization.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeOrganization.java
index f1b1a9c..9f956af 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeOrganization.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeOrganization.java
@@ -6,7 +6,9 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
+import org.hibernate.validator.constraints.Length;
 
+import javax.validation.constraints.Pattern;
 import java.io.Serializable;
 import java.time.LocalDateTime;
 
@@ -29,10 +31,12 @@
     @TableId(value = "id", type = IdType.ASSIGN_ID)
     private String id;
 
+    @Length(max = 50,message = "组织名称不能超过50个字符")
     @ApiModelProperty(value = "组织名称")
     @TableField("organization_name")
     private String organizationName;
 
+    @Length(max = 20,message = "组织负责人不能超过20个字符")
     @ApiModelProperty(value = "组织负责人")
     @TableField("organization_person")
     private String organizationPerson;
@@ -41,6 +45,7 @@
     @TableField("address")
     private String address;
 
+    @Pattern(regexp = "^1[3-9]\\\\d{9}$",message = "手机号格式不正确")
     @ApiModelProperty(value = "联系电话")
     @TableField("contact_number")
     private String contactNumber;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeResource.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeResource.java
index 4661d73..ab7b7db 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeResource.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeResource.java
@@ -6,7 +6,9 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
+import org.hibernate.validator.constraints.Length;
 
+import javax.validation.constraints.Pattern;
 import java.io.Serializable;
 import java.time.LocalDateTime;
 
@@ -37,6 +39,7 @@
     @TableField("type_children_id")
     private String typeChildrenId;
 
+    @Length(max = 40,message = "资源单位不能超过40个字符")
     @ApiModelProperty(value = "资源单位")
     @TableField("resource_unit")
     private String resourceUnit;
@@ -45,6 +48,7 @@
     @TableField("resource_name_desc")
     private String resourceNameDesc;
 
+    @Length(max = 50,message = "资源来源不能超过50个字符")
     @ApiModelProperty(value = "资源来源")
     @TableField("resource_source")
     private String resourceSource;
@@ -53,10 +57,12 @@
     @TableField("quantity_scale")
     private String quantityScale;
 
+    @Length(max = 20,message = "联系人不能超过20个字符")
     @ApiModelProperty(value = "联系人")
     @TableField("contact_person")
     private String contactPerson;
 
+    @Pattern(regexp = "^1[3-9]\\\\d{9}$",message = "手机号格式不正确")
     @ApiModelProperty(value = "联系电话")
     @TableField("contact_number")
     private String contactNumber;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeResourceType.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeResourceType.java
index 128edb3..195ce58 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeResourceType.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeResourceType.java
@@ -6,6 +6,7 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
+import org.hibernate.validator.constraints.Length;
 
 import java.io.Serializable;
 import java.time.LocalDateTime;
@@ -34,10 +35,12 @@
     @TableField("parent_id")
     private String parentId;
 
+    @Length(max = 40,message = "分类名称不能超过40个字符")
     @ApiModelProperty(value = "分类名称")
     @TableField("type_name")
     private String typeName;
 
+    @Length(max = 40,message = "单位名称不能超过40个字符")
     @ApiModelProperty(value = "单位名称")
     @TableField("unit_name")
     private String unitName;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeSocialWorker.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeSocialWorker.java
index 6220a83..531ae9f 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeSocialWorker.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeSocialWorker.java
@@ -7,7 +7,9 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
+import org.hibernate.validator.constraints.Length;
 
+import javax.validation.constraints.Pattern;
 import java.io.Serializable;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
@@ -31,6 +33,7 @@
     @TableId(value = "id", type = IdType.ASSIGN_ID)
     private String id;
 
+    @Length(max = 20,message = "姓名不能超过20个字符")
     @ApiModelProperty(value = "姓名")
     @TableField("user_name")
     private String userName;
@@ -44,18 +47,22 @@
     @TableField("birth_date")
     private LocalDate birthDate;
 
+    @Length(max = 20,message = "文化程度不能超过20个字符")
     @ApiModelProperty(value = "文化程度")
     @TableField("educational_level")
     private String educationalLevel;
 
+    @Length(max = 20,message = "政治面貌不能超过20个字符")
     @ApiModelProperty(value = "政治面貌")
     @TableField("political_status")
     private String politicalStatus;
 
+    @Pattern(regexp = "^1[3-9]\\\\d{9}$",message = "手机号格式不正确")
     @ApiModelProperty(value = "联系电话")
     @TableField("contact_number")
     private String contactNumber;
 
+    @Length(max = 40,message = "工作单位及职务不能超过40个字符")
     @ApiModelProperty(value = "工作单位及职务")
     @TableField("employer_position")
     private String employerPosition;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeUser.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeUser.java
index 193f1b5..c0b2ebe 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeUser.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeUser.java
@@ -6,7 +6,10 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
+import org.hibernate.validator.constraints.Length;
 
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Pattern;
 import java.io.Serializable;
 import java.time.LocalDateTime;
 
@@ -37,14 +40,17 @@
     @TableField("avatar")
     private String avatar;
 
+    @Length(max = 20,message = "姓名长度不能超过20个字符")
     @ApiModelProperty(value = "姓名")
     @TableField("user_name")
     private String userName;
 
+    @Pattern(regexp = "^1[3-9]\\\\d{9}$",message = "手机号格式不正确")
     @ApiModelProperty(value = "手机号")
     @TableField("user_phone")
     private String userPhone;
 
+    @Length(max = 20,message = "职位长度不能超过20个字符")
     @ApiModelProperty(value = "职位")
     @TableField("user_position")
     private String userPosition;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeVolunteer.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeVolunteer.java
index 001a3fc..0edf8e2 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeVolunteer.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeVolunteer.java
@@ -7,6 +7,7 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
+import org.hibernate.validator.constraints.Length;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
@@ -32,6 +33,7 @@
     @TableId(value = "id", type = IdType.ASSIGN_ID)
     private String id;
 
+    @Length(max = 20,message = "姓名不能超过20个字符")
     @ApiModelProperty(value = "姓名")
     @TableField("user_name")
     private String userName;
@@ -45,6 +47,7 @@
     @TableField("birth_date")
     private LocalDate birthDate;
 
+    @Length(max = 40,message = "服务区域不能超过40个字符")
     @ApiModelProperty(value = "服务区域")
     @TableField("service_area")
     private String serviceArea;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TLargeKeyGridUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TLargeKeyGridUserServiceImpl.java
index d602099..ba076d4 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TLargeKeyGridUserServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TLargeKeyGridUserServiceImpl.java
@@ -6,9 +6,11 @@
 import com.ruoyi.system.model.TLargeKeyGridUser;
 import com.ruoyi.system.query.TLargeKeyGridUserQuery;
 import com.ruoyi.system.service.TLargeKeyGridUserService;
+import com.ruoyi.system.utils.util.IDCardAgeCalculator;
 import com.ruoyi.system.vo.TCourseVO;
 import com.ruoyi.system.vo.TLargeKeyGridUserVO;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
 
 import java.util.List;
 
@@ -27,6 +29,15 @@
     public PageInfo<TLargeKeyGridUserVO> pageList(TLargeKeyGridUserQuery query) {
         PageInfo<TLargeKeyGridUserVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
         List<TLargeKeyGridUserVO> list = this.baseMapper.pageList(query,pageInfo);
+        if(CollectionUtils.isEmpty(list)){
+            return pageInfo;
+        }
+
+        for (TLargeKeyGridUserVO tLargeKeyGridUserVO : list) {
+            int age = IDCardAgeCalculator.calculateAge(tLargeKeyGridUserVO.getIdCard());
+            tLargeKeyGridUserVO.setAge(age);
+        }
+
         pageInfo.setRecords(list);
         return pageInfo;
     }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/utils/util/IDCardAgeCalculator.java b/ruoyi-system/src/main/java/com/ruoyi/system/utils/util/IDCardAgeCalculator.java
new file mode 100644
index 0000000..8b4d712
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/utils/util/IDCardAgeCalculator.java
@@ -0,0 +1,38 @@
+package com.ruoyi.system.utils.util;
+
+import java.time.LocalDate;
+import java.time.Period;
+import java.time.format.DateTimeFormatter;
+
+public class IDCardAgeCalculator {
+
+    public static int calculateAge(String idCard) {
+        // 检查身份证号码是否为18位
+        if (idCard == null || idCard.length() != 18) {
+            throw new IllegalArgumentException("身份证号码必须为18位");
+        }
+        
+        // 解析出生日期
+        String birthDateStr = idCard.substring(6, 14); // 获取出生日期部分
+        LocalDate birthDate = LocalDate.parse(birthDateStr, DateTimeFormatter.ofPattern("yyyyMMdd"));
+        
+        // 获取当前日期
+        LocalDate currentDate = LocalDate.now();
+        
+        // 计算年龄
+        Period period = Period.between(birthDate, currentDate);
+        int age = period.getYears(); // 直接获取年份差即为年龄
+        
+        return age;
+    }
+    
+    public static void main(String[] args) {
+        String idCard = "110105194912311234"; // 示例身份证号码
+        try {
+            int age = calculateAge(idCard);
+            System.out.println("年龄: " + age);
+        } catch (Exception e) {
+            System.out.println(e.getMessage());
+        }
+    }
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TLargeKeyGridUserVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TLargeKeyGridUserVO.java
index 96a527e..d2d731c 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TLargeKeyGridUserVO.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TLargeKeyGridUserVO.java
@@ -12,4 +12,7 @@
     @ApiModelProperty(value = "人员类别")
     private String typeName;
 
+    @ApiModelProperty(value = "年龄")
+    private Integer age;
+
 }

--
Gitblit v1.7.1