From 048ac26e2f247e935e2154f2cba5d7f22055e913 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Thu, 11 Jan 2024 13:27:18 +0800 Subject: [PATCH] 'commit' --- ...和包的路径后面出现100%方法.txt | 1 + pom.xml | 1 - .../Collect/Controller/CollectController.java | 41 ++++++++++--------- .../QingLong/Collect/Model/CollectModel.java | 1 + .../QingLong/Handler/RepeatIntercetpor.java | 32 +++++++++++++++ 5 files changed, 55 insertions(+), 21 deletions(-) create mode 100644 Doc/方法与技巧/idea中的类和包的路径后面出现100%方法.txt create mode 100644 src/main/java/com/dsideal/QingLong/Handler/RepeatIntercetpor.java diff --git a/Doc/方法与技巧/idea中的类和包的路径后面出现100%方法.txt b/Doc/方法与技巧/idea中的类和包的路径后面出现100%方法.txt new file mode 100644 index 00000000..0818eb75 --- /dev/null +++ b/Doc/方法与技巧/idea中的类和包的路径后面出现100%方法.txt @@ -0,0 +1 @@ +解决方式:快捷键Ctrl+Alt+F6弹出此界面,取消勾选即可。 \ No newline at end of file diff --git a/pom.xml b/pom.xml index af6ce2e6..3f379521 100644 --- a/pom.xml +++ b/pom.xml @@ -88,7 +88,6 @@ pdfbox 3.0.1 - com.github.icecooly FastHttpClient diff --git a/src/main/java/com/dsideal/QingLong/Collect/Controller/CollectController.java b/src/main/java/com/dsideal/QingLong/Collect/Controller/CollectController.java index 999be476..243790c5 100644 --- a/src/main/java/com/dsideal/QingLong/Collect/Controller/CollectController.java +++ b/src/main/java/com/dsideal/QingLong/Collect/Controller/CollectController.java @@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.dsideal.QingLong.Base.Model.BaseModel; import com.dsideal.QingLong.Collect.Model.CollectModel; +import com.dsideal.QingLong.Handler.RepeatIntercetpor; import com.dsideal.QingLong.Interceptor.EmptyInterface; import com.dsideal.QingLong.Interceptor.IsLoginInterface; import com.dsideal.QingLong.Interceptor.IsNumericInterface; @@ -48,7 +49,7 @@ public class CollectController extends Controller { /** * EXCEL原始模板上传 */ - @Before({POST.class}) + @Before({POST.class, RepeatIntercetpor.class}) @IsLoginInterface({}) public void uoloadTemplate() throws IOException { UploadFile excelFile = getFile();//得到文件对象 @@ -172,7 +173,7 @@ public class CollectController extends Controller { /** * 功能:保存Sheet属性 */ - @Before({POST.class}) + @Before({POST.class, RepeatIntercetpor.class}) @IsNumericInterface({"job_id", "sheet_index"}) @EmptyInterface({"json", "table_name"}) @IsLoginInterface({}) @@ -270,7 +271,7 @@ public class CollectController extends Controller { * * @param job_id */ - @Before({POST.class}) + @Before({POST.class, RepeatIntercetpor.class}) @IsLoginInterface({}) @IsNumericInterface({"job_id"}) @EmptyInterface({"job_name"}) @@ -414,7 +415,7 @@ public class CollectController extends Controller { * @param job_id * @param job_name */ - @Before({POST.class}) + @Before({POST.class, RepeatIntercetpor.class}) @IsLoginInterface({}) @IsNumericInterface({"job_id"}) @EmptyInterface({"job_name"}) @@ -431,7 +432,7 @@ public class CollectController extends Controller { * * @param job_id */ - @Before({POST.class}) + @Before({POST.class, RepeatIntercetpor.class}) @IsLoginInterface({}) @IsNumericInterface({"job_id"}) public void delJob(int job_id) { @@ -469,7 +470,7 @@ public class CollectController extends Controller { /** * 功能:用户导入数据 */ - @Before({POST.class}) + @Before({POST.class, RepeatIntercetpor.class}) @IsLoginInterface({}) public void importData() throws IOException, ParseException { // 延迟解析比率 @@ -757,7 +758,7 @@ public class CollectController extends Controller { * @param target_type_id 发布的是面向单位的任务1,还是面向人员的任务2 * @param fill_type_id 填报任务类型:1:填报,2:转发,3:填报+转发 */ - @Before({POST.class}) + @Before({POST.class, RepeatIntercetpor.class}) @IsLoginInterface({}) @IsNumericInterface({"job_id", "publish_job_type_id", "xiaShuSchool", "xiaShuJiaoFu", "xiaShuJiaoYuJu", "fill_type_id"}) @EmptyInterface({"deadline_time"}) @@ -804,7 +805,7 @@ public class CollectController extends Controller { * * @param job_id */ - @Before({POST.class}) + @Before({POST.class, RepeatIntercetpor.class}) @IsLoginInterface({}) @IsNumericInterface({"job_id"}) @EmptyInterface({"deadline_time"}) @@ -822,7 +823,7 @@ public class CollectController extends Controller { * @param job_id * @param job_name */ - @Before({POST.class}) + @Before({POST.class, RepeatIntercetpor.class}) @IsLoginInterface({}) @IsNumericInterface({"job_id"}) public void cloneJob(int job_id, String job_name) { @@ -956,7 +957,7 @@ public class CollectController extends Controller { /** * 功能:Form表单上传图片或其它附件 */ - @Before({POST.class}) + @Before({POST.class, RepeatIntercetpor.class}) @IsLoginInterface({}) public void uploadFile() { UploadFile uf = getFile();//得到文件对象 @@ -1012,7 +1013,7 @@ public class CollectController extends Controller { * @param job_id * @param file_id */ - @Before({POST.class}) + @Before({POST.class, RepeatIntercetpor.class}) public void delUploadFile(int job_id, String file_id) { cm.delUploadFile(job_id, file_id); Kv kv = Kv.by("success", true); @@ -1048,7 +1049,7 @@ public class CollectController extends Controller { * * @param json */ - @Before({POST.class}) + @Before({POST.class, RepeatIntercetpor.class}) @IsLoginInterface({}) @EmptyInterface({"job_name", "json", "table_name"}) public void addFormJob(String job_name, String json, String table_name) { @@ -1104,7 +1105,7 @@ public class CollectController extends Controller { * @param job_id * @param json */ - @Before({POST.class}) + @Before({POST.class, RepeatIntercetpor.class}) @IsLoginInterface({}) @IsNumericInterface({"job_id"}) @EmptyInterface({"json", "job_name", "table_name"}) @@ -1148,7 +1149,7 @@ public class CollectController extends Controller { * @param job_id * @param json */ - @Before({POST.class}) + @Before({POST.class, RepeatIntercetpor.class}) @IsLoginInterface({}) @IsNumericInterface({"job_id"}) @EmptyInterface({"json"}) @@ -1202,7 +1203,7 @@ public class CollectController extends Controller { * @param group_name * @param bureauIds */ - @Before({POST.class}) + @Before({POST.class, RepeatIntercetpor.class}) @IsLoginInterface({}) @EmptyInterface({"group_name", "bureauIds"}) public void addGroup(String group_name, String bureauIds) { @@ -1232,7 +1233,7 @@ public class CollectController extends Controller { * @param group_name * @param bureauIds */ - @Before({POST.class}) + @Before({POST.class, RepeatIntercetpor.class}) @IsLoginInterface({}) @IsNumericInterface({"group_id"}) @EmptyInterface({"group_name", "bureauIds"}) @@ -1270,7 +1271,7 @@ public class CollectController extends Controller { * * @param group_id */ - @Before({POST.class}) + @Before({POST.class, RepeatIntercetpor.class}) @IsLoginInterface({}) @IsNumericInterface({"group_id"}) public void delGroup(int group_id) { @@ -1287,7 +1288,7 @@ public class CollectController extends Controller { * * @param group_id */ - @Before({POST.class}) + @Before({GET.class}) @IsLoginInterface({}) @IsNumericInterface({"group_id"}) public void getGroup(int group_id) { @@ -1492,7 +1493,7 @@ public class CollectController extends Controller { * @param groupIds 组列表:向哪些群组进行转发,t_collect_group中添加了一列:group_type_id,1:单位,2:人员 * @param memo 自己的要求说明文字 */ - @Before({POST.class}) + @Before({POST.class, RepeatIntercetpor.class}) @IsLoginInterface({}) @IsNumericInterface({"job_id"}) public void ForwardJob(int job_id, String deadline_time, int xiaShuSchool, int xiaShuJiaoFu, @@ -1534,7 +1535,7 @@ public class CollectController extends Controller { * * @param job_id 任务ID */ - @Before({POST.class}) + @Before({POST.class, RepeatIntercetpor.class}) @IsLoginInterface({}) @IsNumericInterface({"job_id"}) public void setForwardFinish(int job_id) { diff --git a/src/main/java/com/dsideal/QingLong/Collect/Model/CollectModel.java b/src/main/java/com/dsideal/QingLong/Collect/Model/CollectModel.java index e1fd0279..1433ff29 100644 --- a/src/main/java/com/dsideal/QingLong/Collect/Model/CollectModel.java +++ b/src/main/java/com/dsideal/QingLong/Collect/Model/CollectModel.java @@ -1092,6 +1092,7 @@ public class CollectModel { * @param limit */ public Page viewJob(int job_id, String keyword, int is_finish, int page, int limit, int fill_type_id) { + if (fill_type_id == 0) fill_type_id = 1;//填报任务类型:1:填报,2:转发,3:填报+转发 Kv kv = Kv.create(); kv.set("job_id", job_id); if (!StrKit.isBlank(keyword)) kv.set("keyword", keyword); diff --git a/src/main/java/com/dsideal/QingLong/Handler/RepeatIntercetpor.java b/src/main/java/com/dsideal/QingLong/Handler/RepeatIntercetpor.java new file mode 100644 index 00000000..b13351fd --- /dev/null +++ b/src/main/java/com/dsideal/QingLong/Handler/RepeatIntercetpor.java @@ -0,0 +1,32 @@ +package com.dsideal.QingLong.Handler; + +import com.dsideal.QingLong.Util.RedisKit; +import com.jfinal.aop.Interceptor; +import com.jfinal.aop.Invocation; +import com.jfinal.plugin.activerecord.Record; + +public class RepeatIntercetpor implements Interceptor { + + private final static long timeOut = 1000;//1之内,同一个用户,同一个接口,只能调用一次 + //https://www.cnblogs.com/chenjy1225/p/14919428.html + @Override + public void intercept(Invocation inv) { + // 从session中获取user信息 + String user = inv.getController().getSessionAttr("person_id"); + String className = inv.getController().getClass().getName(); + String methodName = inv.getMethodName(); + String key = "repeat." + user + "." + className + "." + methodName; + + // 从缓存中取出当前user调用当前方法的前次时间 + String o = RedisKit.Get(key); + long now = System.currentTimeMillis(); + + // 如果未调用过或是时间差超过timeOut 则继续执行,否则提醒用户不要重复提交 + if (o != null && now - Long.parseLong(o.toString()) <= timeOut) { + inv.getController().renderJson(new Record().set("message", "请不要重复提交")); + } else { + RedisKit.Set(key, String.valueOf(now)); + inv.invoke(); + } + } +}