diff --git a/ruoyi-bussiness/pom.xml b/ruoyi-bussiness/pom.xml
index 469fda5..fb4b41d 100644
--- a/ruoyi-bussiness/pom.xml
+++ b/ruoyi-bussiness/pom.xml
@@ -111,6 +111,11 @@
org.springframework.boot
spring-boot-starter-websocket
+
+
+ com.fasterxml.jackson.datatype
+ jackson-datatype-jsr310
+
\ No newline at end of file
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/CmsAppUserController.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/CmsAppUserController.java
index a08424c..77775bc 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/CmsAppUserController.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/CmsAppUserController.java
@@ -4,6 +4,7 @@ import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.ruoyi.cms.domain.vo.AppUserLky;
+import com.ruoyi.cms.util.DateValidateUtil;
import com.ruoyi.cms.util.RoleUtils;
import com.ruoyi.common.annotation.BussinessLog;
import com.ruoyi.common.core.domain.entity.AppUserShow;
@@ -194,6 +195,16 @@ public class CmsAppUserController extends BaseController
@GetMapping("/userApplyList")
public TableDataInfo userApplyList(AppUser appUser)
{
+ String birthDateError = DateValidateUtil.validateBirthDate(appUser.getBirthDate());
+
+ if (birthDateError != null) {
+ TableDataInfo errorResult = new TableDataInfo();
+ errorResult.setCode(400);
+ errorResult.setMsg(birthDateError);
+ errorResult.setRows(null);
+ errorResult.setTotal(0);
+ return errorResult;
+ }
startPage();
List list = appUserService.selectUserApplyList(appUser);
return getDataTable(list);
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/util/DateValidateUtil.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/util/DateValidateUtil.java
new file mode 100644
index 0000000..6d9e03d
--- /dev/null
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/util/DateValidateUtil.java
@@ -0,0 +1,39 @@
+package com.ruoyi.cms.util;
+
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.time.format.DateTimeParseException;
+
+/**
+ * 日期校验工具类
+ */
+public class DateValidateUtil {
+
+ // 私有构造器:禁止实例化工具类
+ private DateValidateUtil() {}
+
+ // 生日格式:yyyy-MM-dd(静态常量,统一维护)
+ private static final DateTimeFormatter BIRTH_DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+ private static final String BIRTH_DATE_ERROR_MSG = "生日格式错误!不为空时必须填写 yyyy-MM-dd 格式(如 2000-01-01)";
+
+ /**
+ * 静态方法:校验生日格式(可为空,非空时需符合 yyyy-MM-dd)
+ * @param birthDate 待校验的生日(LocalDate 类型)
+ * @return 校验通过返回 null;失败返回错误提示信息
+ */
+ public static String validateBirthDate(LocalDate birthDate) {
+ // 空值直接放行,返回 null 表示校验通过
+ if (birthDate == null) {
+ return null;
+ }
+
+ try {
+ // 非空时校验格式:LocalDate 格式化需符合 yyyy-MM-dd
+ BIRTH_DATE_FORMATTER.format(birthDate);
+ return null; // 格式正确,返回 null 表示校验通过
+ } catch (DateTimeParseException e) {
+ // 格式错误,返回具体提示信息
+ return BIRTH_DATE_ERROR_MSG;
+ }
+ }
+}
\ No newline at end of file
diff --git a/ruoyi-bussiness/src/main/resources/mapper/app/AppUserMapper.xml b/ruoyi-bussiness/src/main/resources/mapper/app/AppUserMapper.xml
index ab83a19..7a514bb 100644
--- a/ruoyi-bussiness/src/main/resources/mapper/app/AppUserMapper.xml
+++ b/ruoyi-bussiness/src/main/resources/mapper/app/AppUserMapper.xml
@@ -133,7 +133,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
INNER join company e on c.company_id=e.company_id and e.del_flag='0'
and a.name like concat('%', cast(#{name, jdbcType=VARCHAR} as varchar), '%')
- and a.birth_date = #{birthDate}
+ and get_birth_date_from_id_card(a.id_card) = #{birthDate}
and a.education = #{education}
and a.political_affiliation = #{politicalAffiliation}
and a.phone = #{phone}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/AppUser.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/AppUser.java
index 4e6e532..f54d5d8 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/AppUser.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/AppUser.java
@@ -14,6 +14,8 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.BaseEntity;
+import org.springframework.format.annotation.DateTimeFormat;
+
/**
* APP用户对象 app_user
* @author lishundong
@@ -43,6 +45,7 @@ public class AppUser extends BaseEntity
@ApiModelProperty("用户性别(0男 1女)对应字典sex")
private String sex;
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "生日", width = 30, dateFormat = "yyyy-MM-dd")
@ApiModelProperty("生日")