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();
+ }
+ }
+}