From 8b8d600b047762b152b51531e5378d2fba7ddb3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Fri, 21 Apr 2023 11:25:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=98=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FengHuang/Yp/Controller/YpController.java | 23 ++++++++- .../dsideal/FengHuang/Yp/Model/YpModel.java | 49 +++++++++++++++---- 2 files changed, 61 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/dsideal/FengHuang/Yp/Controller/YpController.java b/src/main/java/com/dsideal/FengHuang/Yp/Controller/YpController.java index c3e1641..844250b 100644 --- a/src/main/java/com/dsideal/FengHuang/Yp/Controller/YpController.java +++ b/src/main/java/com/dsideal/FengHuang/Yp/Controller/YpController.java @@ -94,7 +94,7 @@ public class YpController extends Controller { /** - 功能:启动任务 + * 功能:启动任务 */ @Before(POST.class) @IsNumericInterface({"task_id"}) @@ -104,4 +104,25 @@ public class YpController extends Controller { kv.set("message", "保存成功!"); renderJson(kv); } + + /** + * 功能:根据身份证号计算班型 + * 身份证号生成器:http://www.chineseidcard.com/?region=110101&birthday=20210307&sex=1&num=5&r=28 + * http://10.10.21.20:9000/FengHuang/yp/evalBx?sfzh=222301197710110018 不在规定范围内的身份证号 -2 + * http://10.10.21.20:9000/FengHuang/yp/evalBx?sfzh=222301202210110018 无效身份证号 -1 + * http://10.10.21.20:9000/FengHuang/yp/evalBx?sfzh=110101201903072653 正确返回3 中班 + * http://10.10.21.20:9000/FengHuang/yp/evalBx?sfzh=110101202003079950 正确返回2 小班 + * http://10.10.21.20:9000/FengHuang/yp/evalBx?sfzh=11010120210307417X 正确返回1 托班 + * + * @param sfzh + */ + @Before(GET.class) + @EmptyInterface({"sfzh"}) + public void evalBx(String sfzh) { + int bx_id = model.evalBx(sfzh); + Kv kv = Kv.by("success", true); + kv.set("message", "获取成功!"); + kv.set("bx_id", bx_id); + renderJson(kv); + } } \ No newline at end of file diff --git a/src/main/java/com/dsideal/FengHuang/Yp/Model/YpModel.java b/src/main/java/com/dsideal/FengHuang/Yp/Model/YpModel.java index 8a80099..81eb431 100644 --- a/src/main/java/com/dsideal/FengHuang/Yp/Model/YpModel.java +++ b/src/main/java/com/dsideal/FengHuang/Yp/Model/YpModel.java @@ -1,18 +1,12 @@ package com.dsideal.FengHuang.Yp.Model; import cn.hutool.core.date.DateTime; -import com.dsideal.FengHuang.Interceptor.EmptyInterface; -import com.dsideal.FengHuang.Interceptor.IsNumericInterface; -import com.dsideal.FengHuang.LoginPerson.Model.LoginPersonModel; -import com.dsideal.FengHuang.Util.CommonUtil; -import com.dsideal.FengHuang.Util.IpUtil; -import com.jfinal.aop.Before; -import com.jfinal.ext.interceptor.POST; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdcardUtil; import com.jfinal.plugin.activerecord.Db; -import com.jfinal.plugin.activerecord.Page; import com.jfinal.plugin.activerecord.Record; -import com.jfinal.plugin.activerecord.SqlPara; +import java.util.Calendar; import java.util.List; public class YpModel { @@ -77,13 +71,48 @@ public class YpModel { String sql = "update t_yp_task set b_use=0 where task_id=?"; Db.update(sql, task_id); } + /** * 功能:启动任务 * * @param task_id */ - public void startTask(int task_id){ + public void startTask(int task_id) { String sql = "update t_yp_task set b_use=1,is_run=1 where task_id=?"; Db.update(sql, task_id); } + + /** + * 功能:根据身份证号计算班型 + * + * @param sfzh + */ + public int evalBx(String sfzh) { + if (!IdcardUtil.isValidCard(sfzh)) return -1;//-1代表身份证不合法 + //解析出出生日期 + String birth = IdcardUtil.getBirthByIdCard(sfzh); + + String sql = "select * from t_yp_bx where b_use=1"; + List list = Db.find(sql); + + //当前年份 + Calendar calendar = Calendar.getInstance(); + int year = calendar.get(Calendar.YEAR); + int result = -2; + for (Record record : list) { + int bx_id = record.getInt("bx_id"); + int start_year_num = record.getInt("start_year_num"); + int end_year_num = record.getInt("end_year_num"); + String start_month_day = record.getStr("start_month_day"); + String end_month_day = record.getStr("end_month_day"); + + String st = year - start_year_num + start_month_day; + String ed = year - end_year_num + end_month_day; + if (birth.compareTo(st) >= 0 && birth.compareTo(ed) <= 0) { + result = bx_id; + break; + } + } + return result;//如果result=-2表示不在指定的时间段内 + } } \ No newline at end of file