diff --git a/.gitignore b/.gitignore
index 549e00a2a96fa9d7c5dbc9859664a78d980158c2..9af17df96a04b863006b067d81d46cd62fe7d5e6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -31,3 +31,6 @@ build/
### VS Code ###
.vscode/
+/out/
+/myLogs/
+/myLogs/
diff --git a/pom.xml b/pom.xml
index 05555ad83efa4fd9f349b2f50e7e09d4840c5563..292b3143bc29e1c09feac3c22d8187cf729fd8fc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -9,8 +9,8 @@
com.cetc32
- dh
- 0.0.1-SNAPSHOT
+ dh-authCenter
+ 1.1
jar
dhManage
Demo project for Spring Boot
@@ -20,7 +20,6 @@
UTF-8
UTF-8
1.3.1
-
@@ -28,6 +27,11 @@
org.springframework.boot
spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-thymeleaf
+
@@ -72,11 +85,7 @@
42.2.18
-
- com.cetc32
- web-util
- 1.0
-
+
tk.mybatis
@@ -101,11 +110,11 @@
mybatis-generator-core
1.3.7
-->
-
+
com.github.pagehelper
@@ -283,41 +292,8 @@
-->
-
-
-
- dev
-
- dev
-
-
-
-
- true
-
-
-
-
-
-
-
- src/main/resources
- false
-
- application-*.yml
-
-
-
- src/main/resources
- true
-
- application-{profiles.active}.yml
-
-
-
-
org.springframework.boot
diff --git a/src/main/java/META-INF/MANIFEST.MF b/src/main/java/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000000000000000000000000000000000..561be43d4e33b5a6259c7b7b2521643b7c471dc3
--- /dev/null
+++ b/src/main/java/META-INF/MANIFEST.MF
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Main-Class: com.cetc32.dh.DhApplication
+
diff --git a/src/main/java/com/cetc32/dh/DhApplication.java b/src/main/java/com/cetc32/dh/DhApplication.java
index c30e26d8afd964104651226216892eae229070d9..4d71944b14b1d8416923d0fd2bfee67596ceb5dd 100644
--- a/src/main/java/com/cetc32/dh/DhApplication.java
+++ b/src/main/java/com/cetc32/dh/DhApplication.java
@@ -18,7 +18,7 @@ import tk.mybatis.spring.annotation.MapperScan;
* @version: 1.0
* @date: 2020/10/13 11:19
*/
-@SpringBootApplication
+@SpringBootApplication(scanBasePackages = {"com.cetc32.dh","com.cetc32.webutil.client"})
@MapperScan(basePackages = "com.cetc32.dh.mybatis")
public class DhApplication {
diff --git a/src/main/java/com/cetc32/dh/beans/DataCollected.java b/src/main/java/com/cetc32/dh/beans/DataCollected.java
deleted file mode 100644
index 5c0d68766e8a80505a57c16745fb5b17c96844eb..0000000000000000000000000000000000000000
--- a/src/main/java/com/cetc32/dh/beans/DataCollected.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package com.cetc32.dh.beans;
-
-import java.util.Date;
-
-public class DataCollected {
- private Integer userid;
- private String eventtype;
- private String points;
- private String cityname;
- private Date uploadtime;
- private String describe;
- private byte[] photo;
- private String submitor;
-
-
-
- public Integer getUserid() {
- return userid;
- }
-
- public void setUserid(Integer userid) {
- this.userid = userid;
- }
-
- public String getEventtype() {
- return eventtype;
- }
-
- public void setEventtype(String eventtype) {
- if(eventtype!=null)
- {
- eventtype=eventtype.toLowerCase();
- }
- this.eventtype = eventtype;
- }
-
- public String getPoints() {
- return points;
- }
-
- public void setPoints(String points) {
- this.points = points;
- }
-
- public String getCityname() {
- return cityname;
- }
-
- public void setCityname(String cityname) {
- this.cityname = cityname;
- }
-
- public Date getUploadtime() {
- return uploadtime;
- }
-
- public void setUploadtime(Date uploadtime) {
- this.uploadtime = uploadtime;
- }
-
- public String getDescribe() {
- return describe;
- }
-
- public void setDescribe(String describe) {
- this.describe = describe;
- }
-
- public byte[] getPhoto() {
- return photo;
- }
-
- public void setPhoto(byte[] photo) {
- this.photo = photo;
- }
-
- public String getSubmitor() {
- return submitor;
- }
-
- public void setSubmitor(String submitor) {
- this.submitor = submitor;
- }
-}
diff --git a/src/main/java/com/cetc32/dh/beans/FormSysInfo.java b/src/main/java/com/cetc32/dh/beans/FormSysInfo.java
new file mode 100644
index 0000000000000000000000000000000000000000..4628e81edf1c6a5e9eeb98b0e5274fb456d821d4
--- /dev/null
+++ b/src/main/java/com/cetc32/dh/beans/FormSysInfo.java
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright(C) CETC-32
+ * @Description:
+ * @Author :徐文远
+ * @version:1.0
+ * @date : 2021/5/7 上午10:48
+ ******************************************************************************/
+package com.cetc32.dh.beans;
+
+import com.cetc32.dh.entity.SysInfo;
+
+public class FormSysInfo {
+ private String permission;
+ private String sysurl;
+ private String sysname;
+
+ public String getPermission() {
+ return permission;
+ }
+
+ public void setPermission(String permission) {
+ this.permission = permission;
+ }
+
+ public String getSysurl() {
+ return sysurl;
+ }
+
+ public void setSysurl(String sysurl) {
+ this.sysurl = sysurl;
+ }
+
+ public String getSysname() {
+ return sysname;
+ }
+
+ public void setSysname(String sysname) {
+ this.sysname = sysname;
+ }
+}
diff --git a/src/main/java/com/cetc32/dh/beans/FormUser.java b/src/main/java/com/cetc32/dh/beans/FormUser.java
new file mode 100644
index 0000000000000000000000000000000000000000..4ec8bccd6c3df5a669e630037ceb4c4a5993f062
--- /dev/null
+++ b/src/main/java/com/cetc32/dh/beans/FormUser.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright(C) CETC-32
+ * @Description:
+ * @Author :徐文远
+ * @version:1.0
+ * @date : 2021/7/22 下午3:36
+ ******************************************************************************/
+package com.cetc32.dh.beans;
+
+public class FormUser {
+ String username;
+ String password;
+ String passwordN;
+
+ public String getUsername() {
+ return username;
+ }
+
+ public void setUsername(String username) {
+ this.username = username;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ public String getPasswordN() {
+ return passwordN;
+ }
+
+ public void setPasswordN(String passwordN) {
+ this.passwordN = passwordN;
+ }
+}
diff --git a/src/main/java/com/cetc32/dh/beans/ReqSubmit.java b/src/main/java/com/cetc32/dh/beans/ReqSubmit.java
deleted file mode 100644
index 9ff7e1a2c1fb62bce4749de6c12a315bd6ec3802..0000000000000000000000000000000000000000
--- a/src/main/java/com/cetc32/dh/beans/ReqSubmit.java
+++ /dev/null
@@ -1,102 +0,0 @@
-package com.cetc32.dh.beans;
-
-import org.springframework.web.multipart.MultipartFile;
-
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-public class ReqSubmit {
- private String project;
- private String name;
- private String duedate;
- private String area;
- private String description;
- private String username;
- private Integer department;
- private MultipartFile file;
-
- public String getProject() {
- return project;
- }
-
- public void setProject(String project) {
- this.project = project;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public Date getDuedate() {
- SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd" );
- try {
- return sdf.parse(duedate);
- } catch (ParseException e) {
- return null;
-// e.printStackTrace();
- }
- }
-
- public void setDuedate(String duedate) {
- this.duedate = duedate;
- }
-
- public String getArea() {
- return area;
- }
-
- public void setArea(String area) {
- this.area = area;
- }
-
- public String getDescription() {
- return description;
- }
-
- public void setDescription(String description) {
- this.description = description;
- }
-
- public String getUsername() {
- return username;
- }
-
- public void setUsername(String username) {
- this.username = username;
- }
-
- public Integer getDepartment() {
- return department;
- }
-
- public void setDepartment(Integer department) {
- this.department = department;
- }
-
- public MultipartFile getFile() {
- return file;
- }
-
- public void setFile(MultipartFile file) {
- this.file = file;
- }
-
- @Override
- public String toString() {
- return "ReqSubmit{" +
- "project='" + project + '\'' +
- ", name='" + name + '\'' +
- ", duedate='" + duedate + '\'' +
- ", area='" + area + '\'' +
- ", description='" + description + '\'' +
- ", username='" + username + '\'' +
- ", department=" + department +
- ", file=" + file.getName() +
- '}';
- }
-}
diff --git a/src/main/java/com/cetc32/dh/beans/ResultDataCollected.java b/src/main/java/com/cetc32/dh/beans/ResultDataCollected.java
deleted file mode 100644
index 2c0692d9770d790da162ba7c1c22f9c454ff09ff..0000000000000000000000000000000000000000
--- a/src/main/java/com/cetc32/dh/beans/ResultDataCollected.java
+++ /dev/null
@@ -1,76 +0,0 @@
-package com.cetc32.dh.beans;
-
-
-import com.alibaba.fastjson.annotation.JSONField;
-
-import java.util.Date;
-
-public class ResultDataCollected {
- private Integer userid;
- private String eventtype;
- private String points;
- private String cityname;
- private Date uploadtime;
- private String describe;
- private String photopath;
-
-
-
- public String getPhotopath() {
- return photopath;
- }
-
- public void setPhotopath(String photopath) {
- this.photopath = photopath;
- }
-
-
- public Integer getUserid() {
- return userid;
- }
-
- public void setUserid(Integer userid) {
- this.userid = userid;
- }
-
- public String getEventtype() {
- return eventtype;
- }
-
- public void setEventtype(String eventtype) {
- this.eventtype = eventtype;
- }
-
- public String getPoints() {
- return points;
- }
-
- public void setPoints(String points) {
- this.points = points;
- }
-
- public String getCityname() {
- return cityname;
- }
-
- public void setCityname(String cityname) {
- this.cityname = cityname;
- }
-
- public Date getUploadtime() {
- return uploadtime;
- }
-
- public void setUploadtime(Date uploadtime) {
- this.uploadtime = uploadtime;
- }
-
- public String getDescribe() {
- return describe;
- }
-
- public void setDescribe(String describe) {
- this.describe = describe;
- }
-
-}
diff --git a/src/main/java/com/cetc32/dh/beans/ResultUserInfo.java b/src/main/java/com/cetc32/dh/beans/ResultUserInfo.java
index 0a7f47815131d66602dc6750c5aeb36e788182e7..67d7104b93fe72c827644500430e85a997b65979 100644
--- a/src/main/java/com/cetc32/dh/beans/ResultUserInfo.java
+++ b/src/main/java/com/cetc32/dh/beans/ResultUserInfo.java
@@ -2,7 +2,10 @@ package com.cetc32.dh.beans;
import com.cetc32.dh.entity.NumberS;
+import javax.persistence.Column;
import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -18,9 +21,124 @@ public class ResultUserInfo extends NumberS {
private Integer security;
private List department;
private List areacode;
+ private List permissions;
+ /**
+ * 用户状态
+ * */
private Integer userStatus;
+ /**
+ * 登记时间
+ */
+ private Date regTime;
+ /**
+ * 失败次数
+ * **/
+ private Integer loginFailed;
+
+ /**
+ * 网页登陆时间
+ * **/
+ private Date webLoginDate;
+
+ /**
+ * 网页登陆状态
+ * **/
+ private Integer webLoginStatus;
+
+ /**
+ * 网页登陆次数
+ * **/
+ private Integer webLoginCount;
+
+ /**
+ * app登陆时间
+ * **/
+ private Date appLoginDate;
+
+ /**
+ * app登陆状态
+ * **/
+ private Integer appLoginStatus;
+
+ /**
+ * app登陆次数
+ * **/
+ private Integer appLoginCount;
+ /**
+ * app登陆次数
+ * **/
+ private String userPhone;
+ /**
+ * app登陆次数
+ * **/
+ private String realName;
+
+ public Date getRegTime() {
+ return regTime;
+ }
+
+ public void setRegTime(Date regTime) {
+ this.regTime = regTime;
+ }
+
+ public Integer getLoginFailed() {
+ return loginFailed;
+ }
+
+ public void setLoginFailed(Integer loginFailed) {
+ this.loginFailed = loginFailed;
+ }
+
+ public Date getWebLoginDate() {
+ return webLoginDate;
+ }
+
+ public void setWebLoginDate(Date webLoginDate) {
+ this.webLoginDate = webLoginDate;
+ }
+
+ public Integer getWebLoginStatus() {
+ return webLoginStatus;
+ }
+
+ public void setWebLoginStatus(Integer webLoginStatus) {
+ this.webLoginStatus = webLoginStatus;
+ }
+
+ public Integer getWebLoginCount() {
+ return webLoginCount;
+ }
+
+ public void setWebLoginCount(Integer webLoginCount) {
+ this.webLoginCount = webLoginCount;
+ }
+
+ public Date getAppLoginDate() {
+ return appLoginDate;
+ }
+
+ public void setAppLoginDate(Date appLoginDate) {
+ this.appLoginDate = appLoginDate;
+ }
+
+ public Integer getAppLoginStatus() {
+ return appLoginStatus;
+ }
+
+ public void setAppLoginStatus(Integer appLoginStatus) {
+ this.appLoginStatus = appLoginStatus;
+ }
+
+ public Integer getAppLoginCount() {
+ return appLoginCount;
+ }
+
+ public void setAppLoginCount(Integer appLoginCount) {
+ this.appLoginCount = appLoginCount;
+ }
+
public Integer getUserStatus() {
return userStatus;
}
@@ -48,16 +166,42 @@ public class ResultUserInfo extends NumberS {
public List getDepartment() {
return department;
}
- public void setDepartment(String department)
+
+// public void setDepartment(List department) {
+// this.department = department;
+// }
+
+ public void setDepartment(Object department)
{
- this.department=str2intList(department);
+ if(department ==null)
+ {
+ this.department = new ArrayList<>();
+ return;
+ }
+ if(department instanceof String)
+ {
+ if(((String)department).isEmpty())
+ {
+ this.department = new ArrayList<>();
+ return;
+ }
+ // String s=trimBothEndsChars((String) department,",");
+ this.department=str2intList((String) department);
+ }
+ if(department instanceof List || department instanceof ArrayList)
+ {
+ this.department=(List) department;
+ }
}
public List getAreacode() {
return areacode;
}
- public void setAreacode(String areacode)
+// public void setAreacode(Listareacode){
+// this.areacode=areacode;
+// }
+ public void setAreacode(Object areacode)
{
if(areacode ==null)
{
@@ -66,16 +210,90 @@ public class ResultUserInfo extends NumberS {
}
if(areacode instanceof String)
{
- if(areacode.isEmpty())
+ if(((String)areacode).isEmpty())
{
this.areacode = new ArrayList<>();
return;
}
- String s=trimBothEndsChars(areacode,",");
+ String s=trimBothEndsChars((String) areacode,",");
this.areacode=Stream.of(s.split(",")).collect(Collectors.toList());
}
+ if(areacode instanceof List || areacode instanceof ArrayList)
+ {
+ this.areacode=(List) areacode;
+ }
}
+ public void addPermissions(List permissions){
+ if(permissions ==null){
+ return;
+ }
+ if(permissions instanceof List){
+ if(permissions.isEmpty()){
+ return;
+ }
+ if(this.permissions==null )
+ this.permissions=new ArrayList<>();
+ this.permissions.addAll(permissions);
+ }
+ }
+ public void setPermissions(String[] permissions){
+ if(permissions ==null)
+ {
+ this.permissions = new ArrayList<>();
+ return;
+ }
+ if(permissions instanceof String[])
+ {
+ if(permissions.length==0)
+ {
+ return;
+ }
+ if(this.permissions==null )
+ this.permissions=new ArrayList<>();
+ this.permissions.clear();
+ this.permissions.addAll(Arrays.asList(permissions));
+ }
+ }
+ public void setPermissions(List permissions){
+ if(permissions ==null)
+ {
+ this.permissions = new ArrayList<>();
+ return;
+ }
+ if(permissions instanceof List)
+ {
+ if(permissions.isEmpty())
+ {
+ //this.permissions = new ArrayList<>();
+ return;
+ }
+ if(this.permissions==null )
+ this.permissions=new ArrayList<>();
+ this.permissions.clear();
+ this.permissions.addAll(permissions);
+ }
+ }
+ public void setPermissions(String permissions){
+ if(permissions ==null)
+ {
+ this.permissions = new ArrayList<>();
+ return;
+ }
+ if(permissions instanceof String)
+ {
+ if(permissions.isEmpty())
+ {
+ //this.permissions = new ArrayList<>();
+ return ;
+ }
+ String s=trimBothEndsChars(permissions,",");
+ this.permissions=Stream.of(s.split(",")).collect(Collectors.toList());
+ }
+ }
+ public List getPermissions() {
+ return permissions;
+ }
public String getUsername() {
return username;
@@ -93,4 +311,21 @@ public class ResultUserInfo extends NumberS {
this.security = security;
}
+
+
+ public String getRealName() {
+ return realName;
+ }
+
+ public void setRealName(String realName) {
+ this.realName = realName;
+ }
+
+ public String getUserPhone() {
+ return userPhone;
+ }
+
+ public void setUserPhone(String userPhone) {
+ this.userPhone = userPhone;
+ }
}
diff --git a/src/main/java/com/cetc32/dh/beans/ResultUserInfoDe.java b/src/main/java/com/cetc32/dh/beans/ResultUserInfoDe.java
index 446083a1242fe2f2f7d09641296a0ccdd9f2aa9e..dd6d2c24a77a208104ffd5ba9cb2c905116b5192 100644
--- a/src/main/java/com/cetc32/dh/beans/ResultUserInfoDe.java
+++ b/src/main/java/com/cetc32/dh/beans/ResultUserInfoDe.java
@@ -1,5 +1,6 @@
package com.cetc32.dh.beans;
+import java.util.Date;
import java.util.List;
public class ResultUserInfoDe extends ResultUserInfo {
@@ -8,6 +9,8 @@ public class ResultUserInfoDe extends ResultUserInfo {
private List areaCodeName;
private List departmentName;
+
+
public List getAreaCodeName() {
return areaCodeName;
}
diff --git a/src/main/java/com/cetc32/dh/beans/ResultUserRole.java b/src/main/java/com/cetc32/dh/beans/ResultUserRole.java
index df167a7d1c007143a3883c772b13649965a73cd7..da107cb059a5a82a60d14badfeab00dec8737423 100644
--- a/src/main/java/com/cetc32/dh/beans/ResultUserRole.java
+++ b/src/main/java/com/cetc32/dh/beans/ResultUserRole.java
@@ -19,6 +19,23 @@ public class ResultUserRole extends NumberS {
private Integer id;
+ /**
+ * 角色名称
+ */
+ @Column(name = "role_name")
+ private String roleName;
+ /**
+ * 权限列表
+ * */
+ private List systemMenu;
+ /**
+ * 权限描述
+ * */
+ private String description;
+ /**
+ * 是否默认
+ * */
+ private Integer isDefault;
public List getSystemMenu() {
return systemMenu;
@@ -34,21 +51,13 @@ public class ResultUserRole extends NumberS {
String s= Tools.trimBothEndsChars((String) systemMenu,",");
this.systemMenu= Stream.of(s.split(",")).collect(Collectors.toList());
}
- else
+ else if(systemMenu instanceof List)
{
this.systemMenu = (List) systemMenu;
}
}
- private List systemMenu;
- private String description;
- private Integer isDefault;
- /**
- * 角色名称
- */
- @Column(name = "role_name")
- private String roleName;
public Integer getId() {
return id;
diff --git a/src/main/java/com/cetc32/dh/beans/StatisticBean.java b/src/main/java/com/cetc32/dh/beans/StatisticBean.java
new file mode 100644
index 0000000000000000000000000000000000000000..381683057630891c62f2a5eac39cbdcf407c0d64
--- /dev/null
+++ b/src/main/java/com/cetc32/dh/beans/StatisticBean.java
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * Copyright(C) CETC-32
+ * @Description:
+ * @Author :徐文远
+ * @version:1.0
+ * @date : 2021/5/25 上午11:04
+ ******************************************************************************/
+package com.cetc32.dh.beans;
+/***
+ * 数量统计专用类
+ *
+ * **/
+public class StatisticBean {
+ /**
+ * 统计类型的唯一标示
+ * */
+ Integer id;
+ /**
+ * 统计类型的展示名称
+ * */
+ String name;
+ /**
+ * 统计类型的总计数
+ * **/
+ Integer value;
+
+ public StatisticBean(){
+
+ }
+ /**
+ * 构造函数
+ * @param id
+ * @param name
+ * @param value
+ * */
+ public StatisticBean(Integer id,String name,Integer value){
+ this.id = id;
+ this.value= value;
+ this.name = name;
+ }
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public Integer getValue() {
+ return value;
+ }
+
+ public void setValue(Integer value) {
+ this.value = value;
+ }
+}
diff --git a/src/main/java/com/cetc32/dh/beans/TraceUpload.java b/src/main/java/com/cetc32/dh/beans/TraceUpload.java
deleted file mode 100644
index 5578bbeffbb57c600ee2e646ffe8e4a5bacf19aa..0000000000000000000000000000000000000000
--- a/src/main/java/com/cetc32/dh/beans/TraceUpload.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package com.cetc32.dh.beans;
-
-import java.util.Date;
-
-public class TraceUpload {
-
- private String path;
- private String title;
- private String category;
- private String starttime;
- private String endtime;
- private String size;
-
-
- public String getPath() {
- return path;
- }
-
- public void setPath(String path) {
- this.path = path;
- }
-
- public String getTitle() {
- return title;
- }
-
- public void setTitle(String title) {
- this.title = title;
- }
-
- public String getCategory() {
- return category;
- }
-
- public void setCategory(String category) {
- this.category = category;
- }
-
- public String getStarttime() {
- return starttime;
- }
-
- public void setStarttime(String starttime) {
- this.starttime = starttime;
- }
-
- public String getEndtime() {
- return endtime;
- }
-
- public void setEndtime(String endtime) {
- this.endtime = endtime;
- }
-
- public String getSize() {
- return size;
- }
-
- public void setSize(String size) {
- this.size = size;
- }
-
-
-}
diff --git a/src/main/java/com/cetc32/dh/beans/UserInfo.java b/src/main/java/com/cetc32/dh/beans/UserInfo.java
new file mode 100644
index 0000000000000000000000000000000000000000..e1acd57b427287827ef44a455035afbe1b873aa6
--- /dev/null
+++ b/src/main/java/com/cetc32/dh/beans/UserInfo.java
@@ -0,0 +1,86 @@
+package com.cetc32.dh.beans;
+
+import com.cetc32.dh.entity.NumberS;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+public class UserInfo extends NumberS {
+ private String username;
+ private String password;
+ private List role;
+ private Integer security;
+ private List department;
+ private List areacode;
+
+
+ public String getUsername() {
+ return username;
+ }
+
+ public void setUsername(String username) {
+ this.username = username;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ public List getRole() {
+ return role;
+ }
+
+ public void setRole(List role) {
+ this.role = role;
+ }
+ public void setSingleRole(String singleRole) {
+ if(isNumber(singleRole))
+ {
+ this.role = new ArrayList<>();
+ this.role.add(Integer.parseInt(singleRole));
+ }
+ }
+
+ public Integer getSecurity() {
+ return security;
+ }
+
+ public void setSecurity(Integer security) {
+ this.security = security;
+ }
+
+ public List getDepartment() {
+ return department;
+ }
+
+ public void setDepartment(List department) {
+ this.department = department;
+ }
+
+ public List getAreacode() {
+ return areacode;
+ }
+
+ public void setAreacode(List areacode) {
+ this.areacode = areacode;
+ }
+
+
+ private boolean isNumber(String num)
+ {
+ if(num==null || num.isEmpty())
+ {
+ return false;
+ }
+ Pattern pattern = Pattern.compile("[0-9]*");
+ return pattern.matcher(num).matches();
+ }
+
+}
diff --git a/src/main/java/com/cetc32/dh/common/filter/FormFilter.java b/src/main/java/com/cetc32/dh/common/filter/FormFilter.java
deleted file mode 100644
index 162c938c9628071467fc7a96a7c3201205a23e28..0000000000000000000000000000000000000000
--- a/src/main/java/com/cetc32/dh/common/filter/FormFilter.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/**
- * Copyright(C): CETC-32
- * 文件描述:过滤认证格式类
- * @author: youqing
- * @version: 1.0
- * @date: 2020/9/11 10:55
- * 更改描述:
- */
-package com.cetc32.dh.common.filter;
-
-
-import com.cetc32.dh.entity.BaseAdminUser;
-import org.apache.shiro.session.Session;
-import org.apache.shiro.subject.Subject;
-import org.apache.shiro.web.filter.authc.FormAuthenticationFilter;
-
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-
-/**
- * @Title: FormFilter
- * @Description: 过滤认证格式类
- * @author: youqing
- * @version: 1.0
- * @date: 2020/9/11 10:55
- * 更改描述:2020/9/13加上 subject.isRemembered(),让它同时也兼容remember这种情况。
- */
-public class FormFilter extends FormAuthenticationFilter {
-
- /**
- * 指定缓存失效时间
- * @param request servlet请求
- * @param response servlet响应
- * @param mappedValue 之前传输数据使用的对象,现在废弃了
- * @return 返回布尔值true,说明登陆用户为已登陆的且使用记住我功能登陆的用户,反之亦然。
- * 修改信息:
- */
- @Override
- protected boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object mappedValue) {
- Subject subject = getSubject(request, response);
-
- // 如果 isAuthenticated 为 false 证明不是登录过的,同时 isRememberd 为true
- // 证明是没登陆直接通过记住我功能进来的
- if (!subject.isAuthenticated() && subject.isRemembered()) {
-
- // 获取session看看是不是空的
- Session session = subject.getSession(true);
-
- // 查看session属性当前是否是空的
- if (session.getAttribute("userName") == null) {
- // 如果是空的才初始化
- BaseAdminUser user = (BaseAdminUser)subject.getPrincipal();
- //存入用户数据
- session.setAttribute("userName", user.getSysUserName());
- }
- }
-
- // 这个方法本来只返回 subject.isAuthenticated() 现在我们加上 subject.isRemembered()
- // 让它同时也兼容remember这种情况
- return subject.isAuthenticated() || subject.isRemembered();
-// return true;
- }
-
-}
diff --git a/src/main/java/com/cetc32/dh/common/filter/JWTFilter.java b/src/main/java/com/cetc32/dh/common/filter/JWTFilter.java
deleted file mode 100644
index da983d8aaff581babff423adfc2743455bcdf823..0000000000000000000000000000000000000000
--- a/src/main/java/com/cetc32/dh/common/filter/JWTFilter.java
+++ /dev/null
@@ -1,201 +0,0 @@
-/**
- * 文件描述: Token检查类
- * @author: youqing
- * @version: 1.0
- * @date: 2020/9/11 10:55
- * 更改描述:
- */
-package com.cetc32.dh.common.filter;
-
-import com.auth0.jwt.exceptions.TokenExpiredException;
-import com.cetc32.dh.common.utils.JWTUtil;
-import com.cetc32.dh.config.JWTToken;
-import com.cetc32.dh.config.RedisUtil;
-import org.apache.shiro.web.filter.authc.BasicHttpAuthenticationFilter;
-import org.springframework.http.HttpStatus;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.context.WebApplicationContext;
-import org.springframework.web.context.support.WebApplicationContextUtils;
-
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.net.URLEncoder;
-
-/**
- * Token检查类
- * @Title: FormFilter
- * @version: 1.0
- * @date: 2020/9/11 10:55
- */
-public class JWTFilter extends BasicHttpAuthenticationFilter {
- /**
- * 指定缓存失效时间
- * @param request servlet请求
- * @param response servlet响应
- * @param mappedValue 之前传输数据使用的对象,现在废弃了
- * @return 返回布尔值true或false,true说明toker校验通过
- * 修改信息:
- */
- //是否允许访问,如果带有 token,则对 token 进行检查,否则直接通过
- @Override
- protected boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object mappedValue) {
- //判断请求的请求头是否带上 "Token"
- System.out.println("isAccessAllowed");
- if (isLoginAttempt(request, response)){
- //如果存在,则进入 executeLogin 方法执行登入,检查 token 是否正确
- try {
- executeLogin(request, response);
- return true;
-
- }catch (Exception e){
- /*
- * 注意这里捕获的异常其实是在Realm抛出的,但是由于executeLogin()方法抛出的异常是从login()来的,
- * login抛出的异常类型是AuthenticationException,所以要去获取它的子类异常才能获取到我们在Realm抛出的异常类型。
- */
- System.out.println("刷新token");
- String msg=e.getMessage();
- Throwable cause = e.getCause();
- if (cause!=null&&cause instanceof TokenExpiredException){
- //AccessToken过期,尝试去刷新token
- String result=refreshToken(request, response);
- if (result.equals("success")){
- System.out.println("request.equals(\"success\")");
- return true;
- }
- msg=result;
- }
- responseError(response,msg);
- }
- }
- //如果请求头不存在 Token,则可能是执行登陆操作或者是游客状态访问,无需检查 token,直接返回 true
- return true;
- }
- /**
- * 指定缓存失效时间
- * @param key 键
- * @param time 时间(秒)
- * @return
- * 修改信息:
- */
- @Override
- protected boolean isLoginAttempt(ServletRequest request, ServletResponse response) {
- HttpServletRequest req= (HttpServletRequest) request;
- String token=req.getHeader("Authorization");
- return token !=null;
- }
- /**
- * executeLogin实际上就是先调用createToken来获取token,这里我们重写了这个方法,就不会自动去调用createToken来获取token
- * 然后调用getSubject方法来获取当前用户再调用login方法来实现登录
- * 这也解释了我们为什么要自定义jwtToken,因为我们不再使用Shiro默认的UsernamePasswordToken了。
- * */
- @Override
- protected boolean executeLogin(ServletRequest request, ServletResponse response) throws Exception {
- System.out.println("executeLogin");
- HttpServletRequest req= (HttpServletRequest) request;
- String token=req.getHeader("Authorization");
- JWTToken jwt=new JWTToken(token);
- //交给自定义的realm对象去登录,如果错误他会抛出异常并被捕获
- getSubject(request, response).login(jwt);
- return true;
- }
- /**
- * 指定缓存失效时间
- * @param key 键
- * @param time 时间(秒)
- * @return
- * 修改信息:
- */
- @Override
- protected boolean preHandle(ServletRequest request, ServletResponse response) throws Exception {
- System.out.println("preHandle");
- HttpServletRequest req= (HttpServletRequest) request;
- HttpServletResponse res= (HttpServletResponse) response;
- res.setHeader("Access-control-Allow-Origin",req.getHeader("Origin"));
- res.setHeader("Access-control-Allow-Methods","GET,POST,OPTIONS,PUT,DELETE");
- res.setHeader("Access-control-Allow-Headers",req.getHeader("Access-Control-Request-Headers"));
- // 跨域时会首先发送一个option请求,这里我们给option请求直接返回正常状态
- if (req.getMethod().equals(RequestMethod.OPTIONS.name())) {
- res.setStatus(HttpStatus.OK.value());
- return false;
- }
- return super.preHandle(request, response);
- }
-
- /**
- * 将非法请求跳转到 /unauthorized/**
- */
- private void responseError(ServletResponse response, String message) {
- System.out.println("responseError");
-
- try {
- HttpServletResponse httpServletResponse = (HttpServletResponse) response;
- //设置编码,否则中文字符在重定向时会变为空字符串
- message = URLEncoder.encode(message, "UTF-8");
- httpServletResponse.sendRedirect("/unauthorized/" + message);
- } catch (IOException e) {
- System.out.println(e.getMessage());
- }
- }
-
-
- /**
- * 这里的getBean是因为使用@Autowired无法把RedisUtil注入进来
- * 这样自动去注入当使用的时候是未NULL,是注入不进去了。通俗的来讲是因为拦截器在spring扫描bean之前加载所以注入不进去。
- * 解决的方法:
- * 可以通过已经初始化之后applicationContext容器中去获取需要的bean.
- * */
- public T getBean(Class clazz,HttpServletRequest request){
- WebApplicationContext applicationContext = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getServletContext());
- return applicationContext.getBean(clazz);
- }
-
- //刷新token
- /**
- * 指定缓存失效时间
- * @param key 键
- * @param time 时间(秒)
- * @return
- * 修改信息:
- */
- private String refreshToken(ServletRequest request,ServletResponse response) {
- System.out.println("refreshToken");
-
- HttpServletRequest req= (HttpServletRequest) request;
- RedisUtil redisUtil=getBean(RedisUtil.class,req);
- //获取传递过来的accessToken
- String accessToken=req.getHeader("Authorization");
- //获取token里面的用户名
- String username= JWTUtil.getUsername(accessToken);
- System.out.println("username"+username);
- //判断refreshToken是否过期了,过期了那么所含的username的键不存在
- System.out.println("redisUtil.hasKey(username)"+redisUtil.hasKey(username));
- if (redisUtil.hasKey(username)){
- //判断refresh的时间节点和传递过来的accessToken的时间节点是否一致,不一致校验失败
- long current= (long) redisUtil.get(username);
- if (current== JWTUtil.getExpire(accessToken)){
- //获取当前时间节点
- long currentTimeMillis = System.currentTimeMillis();
- //生成刷新的token
- String token=JWTUtil.createToken(username,currentTimeMillis);
- //刷新redis里面的refreshToken,过期时间是30min
- redisUtil.set(username,currentTimeMillis,30*60);
- //再次交给shiro进行认证
- JWTToken jwtToken=new JWTToken(token);
- try {
- getSubject(request, response).login(jwtToken);
- // 最后将刷新的AccessToken存放在Response的Header中的Authorization字段返回
- HttpServletResponse httpServletResponse = (HttpServletResponse) response;
- httpServletResponse.setHeader("Authorization", token);
- httpServletResponse.setHeader("Access-Control-Expose-Headers", "Authorization");
- return "success";
- }catch (Exception e){
- return e.getMessage();
- }
- }
- }
- return "token认证失效,token过期,重新登陆";
- }
-}
diff --git a/src/main/java/com/cetc32/dh/common/filter/KickoutSessionFilter.java b/src/main/java/com/cetc32/dh/common/filter/KickoutSessionFilter.java
deleted file mode 100644
index 5b9122ca4ee98d3fc9c5a8c910f63a36d3ab0d45..0000000000000000000000000000000000000000
--- a/src/main/java/com/cetc32/dh/common/filter/KickoutSessionFilter.java
+++ /dev/null
@@ -1,239 +0,0 @@
-/**
- * @Title: KickouSessionFilter
- * @Description: 进行用户访问控制
- * @author: youqing
- * @version: 1.0
- * @date: 2020/9/11 10:55
- * 更改描述:
- */
-package com.cetc32.dh.common.filter;
-
-import com.cetc32.dh.common.IStatusMessage;
-import com.cetc32.dh.common.response.ResponseResult;
-import com.cetc32.dh.common.utils.ShiroFilterUtils;
-import com.cetc32.dh.entity.BaseAdminUser;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import org.apache.shiro.cache.Cache;
-import org.apache.shiro.cache.CacheManager;
-import org.apache.shiro.session.Session;
-import org.apache.shiro.session.mgt.DefaultSessionKey;
-import org.apache.shiro.session.mgt.SessionManager;
-import org.apache.shiro.subject.Subject;
-import org.apache.shiro.web.filter.AccessControlFilter;
-import org.apache.shiro.web.util.WebUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.io.Serializable;
-import java.util.ArrayDeque;
-import java.util.Deque;
-
-/**
- * Token检查类
- * @Title: FormFilter
- * @version: 1.0
- * @date: 2020/9/11 10:55
- */
-public class KickoutSessionFilter extends AccessControlFilter {
-
- private static final Logger logger = LoggerFactory.getLogger(KickoutSessionFilter.class);
-
- private final static ObjectMapper objectMapper = new ObjectMapper();
-
- private String kickoutUrl; // 踢出后到的地址
- private boolean kickoutAfter = false; // 踢出之前登录的/之后登录的用户 默认false踢出之前登录的用户
- private int maxSession = 1; // 同一个帐号最大会话数 默认1
- private SessionManager sessionManager;
- private Cache> cache;
-
- public void setKickoutUrl(String kickoutUrl) {
- this.kickoutUrl = kickoutUrl;
- }
-
- public void setKickoutAfter(boolean kickoutAfter) {
- this.kickoutAfter = kickoutAfter;
- }
-
- public void setMaxSession(int maxSession) {
- this.maxSession = maxSession;
- }
-
- public void setSessionManager(SessionManager sessionManager) {
- this.sessionManager = sessionManager;
- }
-
- // 设置Cache的key的前缀
- public void setCacheManager(CacheManager cacheManager) {
- //必须和ehcache缓存配置中的缓存name一致
- this.cache = cacheManager.getCache("shiro-activeSessionCache");
- }
-
-
- /**
- * 指定缓存失效时间
- * @param key 键
- * @param time 时间(秒)
- * @return
- * 修改信息:
- */
- @Override
- protected boolean isAccessAllowed(ServletRequest servletRequest, ServletResponse servletResponse, Object o) throws Exception {
-// return false;
- return true;
- }
-
- /**
- * 指定缓存失效时间
- * @param key 键
- * @param time 时间(秒)
- * @return
- * 修改信息:
- */
- @Override
- protected boolean onAccessDenied(ServletRequest request, ServletResponse response)throws Exception {
- Subject subject = getSubject(request,response);
- // 没有登录授权 且没有记住我
- if(!subject.isAuthenticated() && !subject.isRemembered()){
- // 如果没有登录,直接进行之后的流程
- return true;
- }
- // 获得用户请求的URI
- HttpServletRequest req=(HttpServletRequest) request;
- String path = req.getRequestURI();
- logger.info("===当前请求的uri:" + path);
-
- if(path.equals("/login")){
- return true;
- }
- Session session = subject.getSession();
- logger.info("session时间设置:" + String.valueOf(session.getTimeout()));
-
-
- try{
- // 当前用户
- BaseAdminUser user = (BaseAdminUser) subject.getPrincipal();
- String username = user.getSysUserName();
- logger.info("===当前用户username:" + username);
- Serializable sessionId = session.getId();
- logger.info("===当前用户sessionId:" + sessionId);
- // 读取缓存用户 没有就存入
- Deque deque = cache.get(username);
- logger.debug("===当前deque:" + deque);
- if (deque == null) {
- // 初始化队列
- deque = new ArrayDeque();
- }
- // 如果队列里没有此sessionId,且用户没有被踢出;放入队列
- if (!deque.contains(sessionId) && session.getAttribute("kickout") == null) {
- // 将sessionId存入队列
- deque.push(sessionId);
- // 将用户的sessionId队列缓存
- cache.put(username, deque);
- }
- // 如果队列里的sessionId数超出最大会话数,开始踢人
- while (deque.size() > maxSession) {
- logger.debug("===deque队列长度:" + deque.size());
- Serializable kickoutSessionId = null;
- // 是否踢出后来登录的,默认是false;即后者登录的用户踢出前者登录的用户;
- if (kickoutAfter) { // 如果踢出后者
- kickoutSessionId = deque.removeFirst();
- } else { // 否则踢出前者
- kickoutSessionId = deque.removeLast();
- }
- // 踢出后再更新下缓存队列
- cache.put(username, deque);
- try{
- // 获取被踢出的sessionId的session对象
- Session kickoutSession = sessionManager
- .getSession(new DefaultSessionKey(kickoutSessionId));
- if (kickoutSession != null) {
- // 设置会话的kickout属性表示踢出了
- kickoutSession.setAttribute("kickout", true);
- }
- }catch (Exception e){
-
- }
- }
-
- // 如果被踢出了,(前者或后者)直接退出,重定向到踢出后的地址
- if ((Boolean) session.getAttribute("kickout") != null
- && (Boolean) session.getAttribute("kickout") == true){
- // 会话被踢出了
- try {
- // 退出登录
- subject.logout();
- } catch (Exception e) { // ignore
- }
- saveRequest(request);
- logger.debug("===踢出后用户重定向的路径kickoutUrl:" + kickoutUrl);
- return isAjaxResponse(request,response);
- }
- return true;
- }catch (Exception e){
- logger.error("控制用户在线数量【KickoutSessionFilter.onAccessDenied】异常!", e);
- return isAjaxResponse(request,response);
- }
- }
-
- /**
- * 指定缓存失效时间
- * @param key 键
- * @param time 时间(秒)
- * @return
- * 修改信息:
- */
- public static void out(ServletResponse response, ResponseResult result){
- PrintWriter out = null;
- try {
- response.setCharacterEncoding("UTF-8");//设置编码
- response.setContentType("application/json");//设置返回类型
- out = response.getWriter();
- out.println(objectMapper.writeValueAsString(result));//输出
- logger.info("用户在线数量限制【KickoutSessionFilter.out】响应json信息成功");
- } catch (Exception e) {
- logger.error("用户在线数量限制【KickoutSessionFilter.out】响应json信息出错", e);
- }finally{
- if(null != out){
- out.flush();
- out.close();
- }
- }
- }
-
- /**
- * 指定缓存失效时间
- * @param key 键
- * @param time 时间(秒)
- * @return
- * 修改信息:
- */
- private boolean isAjaxResponse(ServletRequest request,
- ServletResponse response) throws IOException {
- // ajax请求
- /**
- * 判断是否已经踢出
- * 1.如果是Ajax 访问,那么给予json返回值提示。
- * 2.如果是普通请求,直接跳转到登录页
- */
- //判断是不是Ajax请求
- ResponseResult responseResult = new ResponseResult();
- if (ShiroFilterUtils.isAjax(request) ) {
- logger.info(getClass().getName()+ "当前用户已经在其他地方登录,并且是Ajax请求!");
- responseResult.setCode(IStatusMessage.SystemStatus.MANY_LOGINS.getCode());
- responseResult.setMessage("您已在别处登录,请您修改密码或重新登录");
- out(response, responseResult);
- }else{
- // 重定向
- WebUtils.issueRedirect(request, response, kickoutUrl);
- }
- return false;
-// return true;
- }
-
-
-}
diff --git a/src/main/java/com/cetc32/dh/common/response/GlobalExceptionHandler.java b/src/main/java/com/cetc32/dh/common/response/GlobalExceptionHandler.java
index 66618eb444a3591e2cb1553103237908da8b1897..92573a74a41d3a0438308e9dc1c324517d4968ec 100644
--- a/src/main/java/com/cetc32/dh/common/response/GlobalExceptionHandler.java
+++ b/src/main/java/com/cetc32/dh/common/response/GlobalExceptionHandler.java
@@ -12,6 +12,7 @@ import com.auth0.jwt.exceptions.TokenExpiredException;
import org.apache.shiro.ShiroException;
import org.apache.shiro.authz.UnauthenticatedException;
import org.apache.shiro.authz.UnauthorizedException;
+import org.locationtech.jts.triangulate.ConstraintEnforcementException;
import org.springframework.http.HttpStatus;
import org.springframework.validation.BindingResult;
import org.springframework.validation.ObjectError;
@@ -37,101 +38,84 @@ public class GlobalExceptionHandler {
// 捕捉shiro的异常
@ResponseStatus(HttpStatus.UNAUTHORIZED)
@ExceptionHandler(ShiroException.class)
- public ResponseResult handle401(ShiroException e) {
- return ResponseResult.fail(401, e.getMessage(), null);
+ public ResponseData handle401(ShiroException e) {
+ return ResponseData.fail(401, e.getMessage(), null);
}
// 捕捉未登录的异常
@ResponseStatus(HttpStatus.UNAUTHORIZED)
@ExceptionHandler(UnauthenticatedException.class)
- public ResponseResult handle401(UnauthenticatedException e) {
+ public ResponseData handle401(UnauthenticatedException e) {
System.out.println(e.getMessage());
- return ResponseResult.fail(401, "你还没有登录", null);
+ return ResponseData.fail(401, "你还没有登录", null);
}
// 捕捉没有相应的权限或者角色的异常
@ResponseStatus(HttpStatus.UNAUTHORIZED)
@ExceptionHandler(UnauthorizedException.class)
- public ResponseResult handle401(UnauthorizedException e) {
+ public ResponseData handle401(UnauthorizedException e) {
System.out.println(e.getMessage());
- return ResponseResult.fail(401, "你没有权限访问"+e.getMessage(), null);
+ return ResponseData.fail(401, "你没有权限访问"+e.getMessage(), null);
}
-
- /**
- * @Validated 校验错误异常处理
- */
/**
* 指定缓存失效时间
- * @param key 键
- * @param time 时间(秒)
* @return
* 修改信息:
*/
@ResponseStatus(HttpStatus.BAD_REQUEST)
@ExceptionHandler(value = MethodArgumentNotValidException.class)
- public ResponseResult handler(MethodArgumentNotValidException e) throws IOException {
+ public ResponseData handler(MethodArgumentNotValidException e) throws IOException {
// log.error("运行时异常:-------------->",e);
BindingResult bindingResult = e.getBindingResult();
//这一步是把异常的信息最简化
ObjectError objectError = bindingResult.getAllErrors().stream().findFirst().get();
- return ResponseResult.fail(HttpStatus.BAD_REQUEST.value(),objectError.getDefaultMessage(),null);
+ return ResponseData.fail(HttpStatus.BAD_REQUEST.value(),objectError.getDefaultMessage(),null);
}
- /**
- * 处理Assert的异常
- */
/**
* 指定缓存失效时间
- * @param key 键
- * @param time 时间(秒)
* @return
* 修改信息:
*/
@ResponseStatus(HttpStatus.BAD_REQUEST)
@ExceptionHandler(value = IllegalArgumentException.class)
- public ResponseResult handler(IllegalArgumentException e) throws IOException {
+ public ResponseData handler(IllegalArgumentException e) throws IOException {
// log.error("Assert异常:-------------->{}",e.getMessage());
- return ResponseResult.fail(400,e.getMessage(),null);
+ return ResponseData.fail(400,e.getMessage(),null);
}
//运行时错误处理
/**
* 指定缓存失效时间
- * @param key 键
- * @param time 时间(秒)
* @return
* 修改信息:
*/
@ResponseStatus(HttpStatus.BAD_REQUEST)
@ExceptionHandler(value = RuntimeException.class)
- public ResponseResult handle(RuntimeException e){
- return ResponseResult.fail(HttpStatus.BAD_REQUEST.value(),e.getMessage(),null);
+ public ResponseData handle(RuntimeException e){
+ return ResponseData.fail(HttpStatus.BAD_REQUEST.value(),e.getMessage(),null);
}
/**
* 指定缓存失效时间
- * @param key 键
- * @param time 时间(秒)
* @return
* 修改信息:
*/
@ResponseStatus(HttpStatus.BAD_REQUEST)
@ExceptionHandler(value = TokenExpiredException.class)
- public ResponseResult handler(TokenExpiredException e) throws IOException {
- return ResponseResult.fail(HttpStatus.BAD_REQUEST.value(),"token已经过期,请重新登录",null);
+ public ResponseData handler(TokenExpiredException e) throws IOException {
+ return ResponseData.fail(HttpStatus.BAD_REQUEST.value(),"token已经过期,请重新登录",null);
}
/**
* 指定缓存失效时间
- * @param key 键
- * @param time 时间(秒)
* @return
* 修改信息:
*/
@ResponseStatus(HttpStatus.METHOD_NOT_ALLOWED)
@ExceptionHandler(value= HttpRequestMethodNotSupportedException.class)
- public ResponseResult handler405(HttpRequestMethodNotSupportedException e){
- return ResponseResult.fail(HttpStatus.METHOD_NOT_ALLOWED.value(),"方法不支持的請求方式",null);
+ public ResponseData handler405(HttpRequestMethodNotSupportedException e){
+ return ResponseData.fail(HttpStatus.METHOD_NOT_ALLOWED.value(),"方法不支持的請求方式",null);
}
}
diff --git a/src/main/java/com/cetc32/dh/common/response/PageDataResult.java b/src/main/java/com/cetc32/dh/common/response/PageDataResult.java
index 0b4fcad2ee2a214c76ac413f8837eb41bca3d741..ae9354903e2a5751c9e36b35c7795f9a09e86fca 100644
--- a/src/main/java/com/cetc32/dh/common/response/PageDataResult.java
+++ b/src/main/java/com/cetc32/dh/common/response/PageDataResult.java
@@ -10,6 +10,7 @@
package com.cetc32.dh.common.response;
import com.cetc32.dh.entity.NumberS;
+import com.cetc32.dh.entity.SysInfo;
import java.util.List;
@@ -19,15 +20,16 @@ import java.util.List;
* @version: 1.0
* @date: 2020/9/11 10:55
*/
-public class PageDataResult {
+public class PageDataResult extends ResponseMessage{
- private Integer code=200;
+ //private Integer code=200;
//总记录数量
private Integer totals;
private List extends NumberS> list;
+
public List> getList_new() {
return list_new;
}
@@ -63,13 +65,13 @@ public class PageDataResult {
}
- public Integer getCode() {
+ /*public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
- }
+ }*/
public Integer getTotals() {
return totals;
diff --git a/src/main/java/com/cetc32/dh/common/response/ResponseData.java b/src/main/java/com/cetc32/dh/common/response/ResponseData.java
index 142ff025c86b7908c3d9d55dde1f58bbc7a6d7a7..f7bbd912a30679c97935ce9bf22071fae89fddc5 100644
--- a/src/main/java/com/cetc32/dh/common/response/ResponseData.java
+++ b/src/main/java/com/cetc32/dh/common/response/ResponseData.java
@@ -2,43 +2,40 @@ package com.cetc32.dh.common.response;
import com.cetc32.dh.common.IStatusMessage;
-public class ResponseData {
+public class ResponseData extends ResponseMessage{
- private String code;
- private String message;
+ //private String code;
+ //private String message;
private Object data;
public ResponseData() {
- this.code = IStatusMessage.SystemStatus.SUCCESS.getCode();
+ this.code = Integer.valueOf(IStatusMessage.SystemStatus.SUCCESS.getCode());
this.message = IStatusMessage.SystemStatus.SUCCESS.getMessage();
}
public ResponseData(IStatusMessage statusMessage){
- this.code = statusMessage.getCode();
+ this.code = Integer.valueOf(statusMessage.getCode());
this.message = statusMessage.getMessage();
}
public ResponseData(String mg){
- this.code="200";
- this.message=mg;
+ this(mg,null);
}
public ResponseData(String mg,Object obj){
- this.code="200";
- this.data=obj;
- this.message=mg;
+ this("200",mg,obj);
}
public ResponseData(String code ,String mg,Object obj){
- this.code=code;
+ this.code=Integer.valueOf(code);
this.data=obj;
this.message=mg;
}
- public String getCode() {
+ /*public String getCode() {
return code;
- }
+ }*/
- public void setCode(String code) {
+ /*public void setCode(String code) {
this.code = code;
- }
+ }*/
public String getMessage() {
return message;
@@ -84,21 +81,20 @@ public class ResponseData {
}
/**
- * 指定缓存失效时间
- * @param key 键
- * @param time 时间(秒)
+ * 构造函数重载指定缓存失效时间
+ * @param code 状态码
+ * @param msg 描述消息
+ * @param data 反馈的数据
* @return
* 修改信息:
*/
public static ResponseData fail(int code, String msg, Object data) {
- ResponseData r = new ResponseData();
- r.setCode(code+"");
- r.setMessage(msg);
- r.setData(data);
- return r;
+ return new ResponseData(code+"",msg,data);
}
-
+ /**
+ * 重写toString()方法
+ * **/
@Override
public String toString() {
return "ResponseData{" + "code='" + code + '\'' + ", message='"
diff --git a/src/main/java/com/cetc32/dh/common/response/ResponseMessage.java b/src/main/java/com/cetc32/dh/common/response/ResponseMessage.java
new file mode 100644
index 0000000000000000000000000000000000000000..ef184a75a31908c54f026190262f9fb76ff56d6b
--- /dev/null
+++ b/src/main/java/com/cetc32/dh/common/response/ResponseMessage.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright(C) CETC-32
+ * @Description:抽象响应消息
+ * @Author :徐文远
+ * @version:1.0
+ * @date : 2021/1/30 下午1:43
+ ******************************************************************************/
+package com.cetc32.dh.common.response;
+
+public abstract class ResponseMessage {
+ protected int code;
+ protected String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+}
diff --git a/src/main/java/com/cetc32/dh/common/response/ResponseResult.java b/src/main/java/com/cetc32/dh/common/response/ResponseResult.java
index b4e57fd3bc192a8ac28a42a2c5932e3304b32c76..f4bfa9b8b456dd4c3b1e68ade3bb2ce558dfa71b 100644
--- a/src/main/java/com/cetc32/dh/common/response/ResponseResult.java
+++ b/src/main/java/com/cetc32/dh/common/response/ResponseResult.java
@@ -18,44 +18,42 @@ import java.io.Serializable;
* @version: 1.0
* @date: 2020/9/11 10:55
**/
-public class ResponseResult implements Serializable{
+@Deprecated
+public class ResponseResult extends ResponseMessage implements Serializable{
- private String code;
- private String message;
+ /* private String code;
+ private String message;*/
private Object obj;
public ResponseResult() {
- this.code = IStatusMessage.SystemStatus.SUCCESS.getCode();
+ this.code = Integer.valueOf(IStatusMessage.SystemStatus.SUCCESS.getCode());
this.message = IStatusMessage.SystemStatus.SUCCESS.getMessage();
}
public ResponseResult(IStatusMessage statusMessage){
- this.code = statusMessage.getCode();
+ this.code = Integer.valueOf(statusMessage.getCode());
this.message = statusMessage.getMessage();
}
public ResponseResult(String mg){
- this.code="200";
- this.message=mg;
+ this(mg,null);
}
public ResponseResult(String mg,Object obj){
- this.code="200";
- this.obj=obj;
- this.message=mg;
+ this("200",mg,obj);
}
public ResponseResult(String code ,String mg,Object obj){
- this.code=code;
+ this.code=Integer.valueOf(code);
this.obj=obj;
this.message=mg;
}
- public String getCode() {
+ /* public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
-
+*/
public String getMessage() {
return message;
}
@@ -101,23 +99,16 @@ public class ResponseResult implements Serializable{
/**
* 指定缓存失效时间
- * @param key 键
- * @param time 时间(秒)
+ * @param code 键
+ * @param msg 时间(秒)
* @return
* 修改信息:
*/
public static ResponseResult fail(int code, String msg, Object data) {
- ResponseResult r = new ResponseResult();
- r.setCode(code+"");
- r.setMessage(msg);
- r.setObj(data);
- return r;
+ return new ResponseResult(code+"",msg,data);
}
/**
- * 指定缓存失效时间
- * @param key 键
- * @param time 时间(秒)
* @return
* 修改信息:
*/
diff --git a/src/main/java/com/cetc32/dh/common/shiro/CenterAuthRealm.java b/src/main/java/com/cetc32/dh/common/shiro/CenterAuthRealm.java
deleted file mode 100644
index 0ea702d41a794cea5f6f4b741292dadf7357a989..0000000000000000000000000000000000000000
--- a/src/main/java/com/cetc32/dh/common/shiro/CenterAuthRealm.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/**
- * @Title: CenterAuthRealm
- * @Description: 根据token判断此Authenticator是否使用该realm
- * @author: youqing
- * @version: 1.0
- * @date: 2020/9/11 10:55
- * 更改描述:
- */
-
-package com.cetc32.dh.common.shiro;
-
-import com.auth0.jwt.exceptions.TokenExpiredException;
-import com.cetc32.dh.common.utils.JWTUtil;
-import com.cetc32.dh.config.JWTToken;
-import com.cetc32.dh.config.RedisUtil;
-import org.apache.shiro.authc.AuthenticationException;
-import org.apache.shiro.authc.AuthenticationInfo;
-import org.apache.shiro.authc.AuthenticationToken;
-import org.apache.shiro.authc.SimpleAuthenticationInfo;
-import org.apache.shiro.authz.AuthorizationInfo;
-import org.apache.shiro.authz.SimpleAuthorizationInfo;
-import org.apache.shiro.realm.AuthorizingRealm;
-import org.apache.shiro.subject.PrincipalCollection;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-/**
- * Token检查类
- * @Title: FormFilter
- * @version: 1.0
- * @date: 2020/9/11 10:55
- */
-@Component
-public class CenterAuthRealm extends AuthorizingRealm {
- /* @Autowired
- private UserService userService;*/
- @Autowired
- private RedisUtil redisUtil;
-
- //根据token判断此Authenticator是否使用该realm
- //必须重写不然shiro会报错
- /**
- * 指定缓存失效时间
- * @param key 键
- * @param time 时间(秒)
- * @return
- * 修改信息:
- */
- @Override
- public boolean supports(AuthenticationToken token) {
- return token instanceof JWTToken;
- }
-
- /**
- * 只有当需要检测用户权限的时候才会调用此方法,例如@RequiresRoles,@RequiresPermissions之类的
- */
- /**
- * 指定缓存失效时间
- * @param key 键
- * @param time 时间(秒)
- * @return
- * 修改信息:
- */
- @Override
- protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
- System.out.println("授权~~~~~");
- String token=principals.toString();
- String username= JWTUtil.getUsername(token);
- /*User user=userService.getUser(username);*/
- SimpleAuthorizationInfo info=new SimpleAuthorizationInfo();
- //查询数据库来获取用户的角色
- /*info.addRole(user.getRoles());
- //查询数据库来获取用户的权限
- info.addStringPermission(user.getPermission());*/
- return info;
- }
-
-
- /**
- * 默认使用此方法进行用户名正确与否验证,错误抛出异常即可,在需要用户认证和鉴权的时候才会调用
- */
- /**
- * 指定缓存失效时间
- * @param key 键
- * @param time 时间(秒)
- * @return
- * 修改信息:
- */
- @Override
- protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {
- System.out.println("认证~~~~~~~");
- String jwt= (String) token.getCredentials();
- String username= null;
- try {
- username= JWTUtil.getUsername(jwt);
- }catch (Exception e){
- throw new AuthenticationException("token非法,不是规范的token,可能被篡改了,或者过期了");
- }
- if (username==null){
- throw new AuthenticationException("token中无用户名");
- }
- /*User user=userService.getUser(username);*/
- /*if (user==null){
- throw new AuthenticationException("该用户不存在");
- }*/
- //开始认证,只要AccessToken没有过期,或者refreshToken的时间节点和AccessToken一致即可
- if (redisUtil.hasKey(username)){
- //判断AccessToken有无过期
- if (!JWTUtil.verify(jwt)){
- throw new TokenExpiredException("token认证失效,token过期,重新登陆");
- }else {
- //判断AccessToken和refreshToken的时间节点是否一致
- long current= (long) redisUtil.get(username);
- if (current==JWTUtil.getExpire(jwt)){
- return new SimpleAuthenticationInfo(jwt,jwt,"MyRealm");
- }else{
- throw new AuthenticationException("token已经失效,请重新登录!");
- }
- }
- }else{
- throw new AuthenticationException("token过期或者Token错误!!");
- }
- }
-}
\ No newline at end of file
diff --git a/src/main/java/com/cetc32/dh/common/shiro/CenterAuthShiroConfig.java b/src/main/java/com/cetc32/dh/common/shiro/CenterAuthShiroConfig.java
deleted file mode 100644
index d06c8ae12fcfdbbeab0aa760852bd47a5f4dd401..0000000000000000000000000000000000000000
--- a/src/main/java/com/cetc32/dh/common/shiro/CenterAuthShiroConfig.java
+++ /dev/null
@@ -1,251 +0,0 @@
-/**
- * @Title: CenterAuthShiroConfig
- * @Description: Shiro安全认证
- * @author: youqing
- * @version: 1.0
- * @date: 2020/9/11 10:55
- * 更改描述:
- */
-
-package com.cetc32.dh.common.shiro;
-
-import com.cetc32.dh.common.filter.JWTFilter;
-import org.apache.shiro.cas.CasFilter;
-import org.apache.shiro.mgt.DefaultSessionStorageEvaluator;
-import org.apache.shiro.mgt.DefaultSubjectDAO;
-import org.apache.shiro.spring.LifecycleBeanPostProcessor;
-import org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor;
-import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
-import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
-import org.jasig.cas.client.session.SingleSignOutFilter;
-import org.jasig.cas.client.session.SingleSignOutHttpSessionListener;
-import org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.web.servlet.FilterRegistrationBean;
-import org.springframework.boot.web.servlet.ServletListenerRegistrationBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.DependsOn;
-import org.springframework.core.Ordered;
-import org.springframework.core.annotation.Order;
-import org.springframework.web.filter.DelegatingFilterProxy;
-
-import javax.servlet.Filter;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-/**
- * Token检查类
- * @Title: FormFilter
- * @version: 1.0
- * @date: 2020/9/11 10:55
- */
-@Configuration
-public class CenterAuthShiroConfig {
-
-// //cas server地址
-// public static final String casServerUrlPrefix="http://www.cetc.daohang.com:9100/cas";
-//
-// //cas登录页面地址
-// public static final String casLoginUrl = casServerUrlPrefix + "/login";
-//
-// //cas登出页面地址
-// public static final String casLogoutUrl = casServerUrlPrefix + "/logout";
-//
-// //当前工程对外提供的服务地址
-// public static final String shiroServerUrlPrefix = "http://localhost:9100";
-//
-// //casFilter UrlPattern
-// public static final String casFilterUrlPattern = "/cas";
-//
-// //登录地址
-// public static final String loginUrl = casLoginUrl + "?service=" + shiroServerUrlPrefix + casFilterUrlPattern;
-//
-// // 登出地址(casserver启用service跳转功能,需在webapps\cas\WEB-INF\cas.properties文件中启用cas.logout.followServiceRedirects=true)
-// public static final String logoutUrl = casLogoutUrl + "?service=" + shiroServerUrlPrefix;
-//
-// //登录成功地址
-// public static final String loginSuccessUrl = "/user";
-//
-// //限认证失败跳转地址
-// public static final String unauthorizedUrl = "/403.html";
-//
-// @Value("${jedis.pool.host}")
-// private String host;
-//
-// @Value("${jedis.pool.port}")
-// private int port;
-
-
- /**
- * 指定缓存失效时间
- * @param key 键
- * @param time 时间(秒)
- * @return
- * 修改信息:
- */
- @Bean(name = "securityManager")
- public DefaultWebSecurityManager securityManager(CenterAuthRealm centerAuthRealm){
- DefaultWebSecurityManager securityManager=new DefaultWebSecurityManager();
- // 设置自定义 realm.
- securityManager.setRealm(centerAuthRealm);
-
- //关闭session
- DefaultSubjectDAO subjectDAO=new DefaultSubjectDAO();
- DefaultSessionStorageEvaluator sessionStorageEvaluator=new DefaultSessionStorageEvaluator();
- sessionStorageEvaluator.setSessionStorageEnabled(false);
- subjectDAO.setSessionStorageEvaluator(sessionStorageEvaluator);
- securityManager.setSubjectDAO(subjectDAO);
- return securityManager;
- }
-
-// /**
-// * 注册单点登出listener
-// *
-// * @return
-// */
-// @Bean
-// @Order(Ordered.HIGHEST_PRECEDENCE)
-// public ServletListenerRegistrationBean singleSignOutHttpSessionListener() {
-// ServletListenerRegistrationBean bean = new ServletListenerRegistrationBean();
-// bean.setListener(new SingleSignOutHttpSessionListener());
-// bean.setEnabled(true);
-// return bean;
-// }
-//
-// /**
-// * 注册单点登出filter
-// *
-// * @return
-// */
-// @Bean
-// public FilterRegistrationBean singleSignOutFilter() {
-// FilterRegistrationBean bean = new FilterRegistrationBean();
-// bean.setName("singleSignOutFilter");
-// bean.setFilter(new SingleSignOutFilter());
-// bean.addUrlPatterns("/*");
-// bean.setEnabled(true);
-// return bean;
-// }
-//
-// /**
-// * 注册DelegatingFilterProxy(Shiro)
-// *
-// * @return
-// */
-// @Bean
-// public FilterRegistrationBean delegatingFilterProxy() {
-// FilterRegistrationBean filterRegistration = new FilterRegistrationBean();
-// filterRegistration.setFilter(new DelegatingFilterProxy("shiroFilter"));
-// // 该值缺省为false,表示生命周期由SpringApplicationContext管理,设置为true则表示由ServletContainer管理
-// filterRegistration.addInitParameter("targetFilterLifecycle", "true");
-// filterRegistration.setEnabled(true);
-// filterRegistration.addUrlPatterns("/*");
-// return filterRegistration;
-// }
-
-// /**
-// * CAS过滤器
-// *
-// * @return
-// */
-// @Bean(name = "casFilter")
-// public CasFilter getCasFilter() {
-// CasFilter casFilter = new CasFilter();
-// casFilter.setName("casFilter");
-// casFilter.setEnabled(true);
-// // 登录失败后跳转的URL,也就是 Shiro 执行 CasRealm 的 doGetAuthenticationInfo 方法向CasServer验证tiket
-// casFilter.setFailureUrl(loginUrl);// 我们选择认证失败后再打开登录页面
-// casFilter.setSuccessUrl(loginSuccessUrl);
-// return casFilter;
-// }
-
-
-
- /**
- * 先走 filter ,然后 filter 如果检测到请求头存在 token,则用 token 去 login,走 Realm 去验证
- */
- /**
- * 指定缓存失效时间
- * @param key 键
- * @param time 时间(秒)
- * @return
- * 修改信息:
- */
- @Bean
- public ShiroFilterFactoryBean factory(@Qualifier("securityManager")DefaultWebSecurityManager securityManager){
- ShiroFilterFactoryBean factoryBean=new ShiroFilterFactoryBean();
- factoryBean.setSecurityManager(securityManager);
- // 添加自己的过滤器并且取名为jwt
- Map filterMap=new LinkedHashMap<>();
- //设置我们自定义的JWT过滤器
- filterMap.put("jwt",new JWTFilter());
- factoryBean.setFilters(filterMap);
-
- // 设置无权限时跳转的 url;
- factoryBean.setUnauthorizedUrl("/unauthorized/无权限");
- Map filterRuleMap=new HashMap<>();
- // 所有请求通过我们自己的JWT Filter
- filterRuleMap.put("/**","jwt");
- // 访问 /unauthorized/** 不通过JWTFilter
- filterRuleMap.put("/unauthorized/**","anon");
- filterRuleMap.put("/open/**","anon");
- //filterRuleMap.put("/rest/**","anon");
- factoryBean.setFilterChainDefinitionMap(filterRuleMap);
- return factoryBean;
- }
-
-
- /**
- * 指定缓存失效时间
- * @param key 键
- * @param time 时间(秒)
- * @return
- * 修改信息:
- */
- @Bean
- public LifecycleBeanPostProcessor lifecycleBeanPostProcessor() {
- return new LifecycleBeanPostProcessor();
- }
-
-
-
- /**
- * 添加注解支持,如果不加的话很有可能注解失效
- */
- /**
- * 指定缓存失效时间
- * @param key 键
- * @param time 时间(秒)
- * @return
- * 修改信息:
- */
- @Bean
- // @DependsOn({"lifecycleBeanPostProcessor"})
- public DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator(){
-
- DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator=new DefaultAdvisorAutoProxyCreator();
- defaultAdvisorAutoProxyCreator.setProxyTargetClass(true);
- return defaultAdvisorAutoProxyCreator;
- }
-
- /**
- * 指定缓存失效时间
- * @param key 键
- * @param time 时间(秒)
- * @return
- * 修改信息:
- */
- @Bean
- public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(@Qualifier("securityManager") DefaultWebSecurityManager securityManager){
-
- AuthorizationAttributeSourceAdvisor advisor=new AuthorizationAttributeSourceAdvisor();
- advisor.setSecurityManager(securityManager);
- return advisor;
- }
-
-
-
-}
\ No newline at end of file
diff --git a/src/main/java/com/cetc32/dh/common/shiro/CustomRealm.java b/src/main/java/com/cetc32/dh/common/shiro/CustomRealm.java
deleted file mode 100644
index 4ba5fad142d014cfb769f14d1613662a041d3b0a..0000000000000000000000000000000000000000
--- a/src/main/java/com/cetc32/dh/common/shiro/CustomRealm.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/**
- * @Title: CenterAuthShiroConfig
- * @Description: 自定义Realm
- * @author: youqing
- * @version: 1.0
- * @date: 2020/9/11 10:55
- * 更改描述:
- */
-
-package com.cetc32.dh.common.shiro;
-
-import com.cetc32.dh.beans.ResultUserRole;
-import com.cetc32.dh.entity.BaseAdminRole;
-import com.cetc32.dh.dto.PermissionDTO;
-import com.cetc32.dh.entity.BaseAdminPermission;
-import com.cetc32.dh.entity.BaseAdminUser;
-import com.cetc32.dh.mybatis.BaseAdminPermissionMapper;
-import com.cetc32.dh.mybatis.BaseAdminRoleMapper;
-import com.cetc32.dh.service.AdminRoleService;
-import com.cetc32.dh.service.AdminUserService;
-import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
-import org.apache.shiro.authc.*;
-import org.apache.shiro.authz.AuthorizationInfo;
-import org.apache.shiro.authz.SimpleAuthorizationInfo;
-import org.apache.shiro.cas.CasRealm;
-import org.apache.shiro.subject.PrincipalCollection;
-import org.apache.shiro.util.ByteSource;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-
-import java.util.*;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
-/**
- * Token检查类
- * @Title: FormFilter
- * @version: 1.0
- * @date: 2020/9/11 10:55
- */
-public class CustomRealm extends CasRealm {
-
- private Logger log = LoggerFactory.getLogger(this.getClass());
-
- @Autowired
- private AdminUserService userService;
- @Autowired
- private BaseAdminUser baseAdminUser;
- @Autowired
- private AdminRoleService roleService;
- @Autowired
- private BaseAdminPermissionMapper permissionMapper;
- @Autowired
- private BaseAdminRoleMapper roleMapper;
- //模拟数据库的数据
- Map map=new HashMap();
- {
- map.put("jarWorker","123");
- super.setName("customRealm");
- }
- /**
- * 授权使用
- * @param principals
- * @return
- */
- @Override
- protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
- BaseAdminUser userName=(BaseAdminUser) principals.getPrimaryPrincipal();
- Set roles=getRolesByUserName(userName.getSysUserName());
- Set permissions=getPermissionsByUserName(userName.getSysUserName());
- SimpleAuthorizationInfo simpleAuthorizationInfo=new SimpleAuthorizationInfo();
- log.info("开始授权");
- simpleAuthorizationInfo.setRoles(roles);
- simpleAuthorizationInfo.setStringPermissions(permissions);
- return simpleAuthorizationInfo;
- }
-
-
- /**
- * 认证使用
- * @param
- * @return
- */
- protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException {
-// //从主体传过来的认证信息中获取用户名
-// String userName=(String) token.getPrincipal();//获取用户名
-// String passWord=getPassword(userName);
-// if(passWord==null){
-// return null;
-// }
-// SimpleAuthenticationInfo simpleAuthenticationInfo=new SimpleAuthenticationInfo("",passWord,"customRealm");
-// return simpleAuthenticationInfo;
- //UsernamePasswordToken用于存放提交的登录信息
- UsernamePasswordToken token = (UsernamePasswordToken) authenticationToken;
- log.info("用户登录认证:验证当前Subject时获取到token为:" + ReflectionToStringBuilder
- .toString(token, ToStringStyle.MULTI_LINE_STYLE));
- String username = token.getUsername();
- // 调用数据层
- BaseAdminUser sysUser = userService.findByUserName(username);
- log.debug("用户登录认证!用户信息user:" + sysUser);
- if (sysUser == null) {
- // 用户不存在
- return null;
- }
- // 返回密码
- return new SimpleAuthenticationInfo(sysUser, sysUser.getSysUserPwd(), ByteSource.Util.bytes(username), getName());
-
- }
-
- /**
- * 数据库信息获取用户密码
- * @param userName
- * @return
- */
- private String getPassword(String userName) {
- if(null==userName){
- return null;
- }
- BaseAdminUser adminUser = new BaseAdminUser();
- adminUser = userService.findByUserName(userName);
- String pwd = adminUser.getSysUserPwd();
- return pwd;
- }
-
- /**
- * 数据库获取用户角色
- * @param userName
- * @return
- */
- private Set getRolesByUserName(String userName) {
-// Set roles=new HashSet();
-// roles.add("admin");
-// roles.add("tourist");
-// return roles;
-
- Set roles = new HashSet();
-
- BaseAdminUser user = userService.findByUserName(userName);
- List roleId = Stream.of(user.getRoleId().split(",")).map(Integer::parseInt).collect(Collectors.toList());
- for(Integer rid:roleId)
- {
- BaseAdminRole baseAdminRole = roleMapper.selectByPrimaryKey(rid);
- roles.add(baseAdminRole.getRoleName());
- }
- return roles;
-
- }
-
- /**
- * 模拟数据库获取用户权限
- * @param userName
- * @return
- */
- private Set getPermissionsByUserName(String userName) {
- /*Set permissions=new HashSet();
- permissions.add("user:update");
- permissions.add("user:query");
- return permissions;*/
- Set per = new HashSet();
- BaseAdminUser user = userService.findByUserName(userName);
- List roleId = Stream.of(user.getRoleId().split(",")).map(Integer::parseInt).collect(Collectors.toList());
- List rids=new ArrayList<>();
- for(Integer rid:roleId)
- {
- ResultUserRole baseAdminRole = roleService.findRoleById(rid);
-// String permissions = role.getPermissions();
-// rids.addAll(Arrays.asList(permissions.split(",")));
- }
- rids=rids.stream().distinct().collect(Collectors.toList());
- if (rids.size()>0) {
- List permissionList = new ArrayList <>();
- for (String id : rids) {
- // 角色对应的权限数据
- BaseAdminPermission perm = permissionMapper.selectByPrimaryKey(id);
- if (null != perm ) {
- // 授权角色下所有权限
- PermissionDTO permissionDTO = new PermissionDTO();
- BeanUtils.copyProperties(perm,permissionDTO);
- //获取子权限
- List childrens = permissionMapper.getPermissionListByPId(perm.getId());
- permissionDTO.setChildrens(childrens);
-
- permissionList.add(permissionDTO);
- }
- }
-
- for(PermissionDTO permissionDTO:permissionList){
- per.add(permissionDTO.getName());
- }
-
-
- }
- return per;
-
- }
-}
diff --git a/src/main/java/com/cetc32/dh/common/utils/DateUtils.java b/src/main/java/com/cetc32/dh/common/utils/DateUtils.java
index 3801a7ba0293027f3e1f3a7c19f9ec30e143d500..c73762c935265454ab49bf68e6a7862bcb2f303f 100644
--- a/src/main/java/com/cetc32/dh/common/utils/DateUtils.java
+++ b/src/main/java/com/cetc32/dh/common/utils/DateUtils.java
@@ -17,9 +17,9 @@ import java.util.Date;
/**
* @Title: DateUtils
* @Description:
- * @author: youqing
+ * @author: Xuwenyuan
* @version: 1.0
- * @date: 2018/5/26 9:58
+ * @date: 2021.4.15
*/
public class DateUtils {
@@ -29,42 +29,20 @@ public class DateUtils {
*
* @param: 获取当前系统时间 yyyy-MM-dd HH:mm:ss
* @return:
- * @auther: youqing
- * @date: 2018/5/26 9:59
+ * @auther:
*/
- public static String getCurrentDate(){
+ public static String currentDateTime(){
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date = df.format(System.currentTimeMillis());
return date;
}
-
- /**
- *
- * 功能描述:
- * @param: date类 获取当前系统时间 yyyy-MM-dd HH:mm:ss
- * @return:
- * @auther: youqing
- * @date: 2018/5/26 10:39
- */
- public static Date getCurrentDateToDate () {
- DateFormat df = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" );
- String date = df.format(System.currentTimeMillis());
- Date d = null;
- try {
- d = df.parse( date.toString( ) );
- } catch ( ParseException e ) {
- e.printStackTrace( );
- }
- return d;
- }
-
/**
- * 增加时间单位:天
+ * 增加时间单位:天 ,显示时间格式样例:2021-04-15 12:33:59
* @param day
* @return
*/
- public static String getCurrentAddDay(int day) {
+ public static String addDay2Str(int day) {
SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss");
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
@@ -89,7 +67,7 @@ public class DateUtils {
* 获取当前时间
* @return
*/
- public static String getNowDateString ( ) {
+ public static String nowDate ( ) {
Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd");
return sdf.format( d );
@@ -101,7 +79,7 @@ public class DateUtils {
* @param format
* @return
*/
- public static String getFormatTime(Date date, String format) {
+ public static String formatDate(Date date, String format) {
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.format(date);
}
@@ -141,7 +119,58 @@ public class DateUtils {
return addDay(date, -day);
}
+ /**
+ * 加多少小时
+ * @parm date 时间
+ * @parm hour 增加小时数
+ * **/
+ public static Date addHour(Date date,int hour){
+ Calendar cal = Calendar.getInstance();
+ cal.setTime(date);
+ cal.add(Calendar.HOUR, hour);
+ return cal.getTime();
+ }
+ /**
+ * 减少多少小时
+ * @parm date 时间
+ * @parm hour 增加小时数
+ * **/
+ public static Date minusHour(Date date,int hour){
+ return addHour(date, -1*hour);
+ }
+ /**
+ * 日期向下取整数
+ * @param date
+ * @return 返回向下取整的日期
+ * **/
+ public static Date floorDay(Date date){
+ return new Date( date.getTime() - date.getTime()%(24*1000*60*60L));
+ }
+ /**
+ * 日期向上取整数
+ * @param date
+ * @return 返回向上取整的日期
+ * **/
+ public static Date ceilDay(Date date){
+ return addDay(floorDay(date),1);
+ }
+ /**
+ * 小时向下取整数
+ * @param date
+ * @return 返回向下取整的日期
+ * **/
+ public static Date floorHour(Date date){
+ return new Date( date.getTime() - date.getTime()%(1000*60*60L));
+ }
+ /**
+ * 小时向上取整数
+ * @param date
+ * @return 返回向上取整的日期
+ * **/
+ public static Date ceilHour(Date date){
+ return addHour(floorHour(date),1);
+ }
public static void main(String[] args) {
- System.out.println(getCurrentAddDay(2));
+ System.out.println(addDay2Str(2));
}
}
diff --git a/src/main/java/com/cetc32/dh/common/utils/DigestUtils.java b/src/main/java/com/cetc32/dh/common/utils/DigestUtils.java
index f749969352d4ba2425fffcf1d3207efe14e7c025..4ab5ded48d90c5349e113cb6c4623ba594deabcd 100644
--- a/src/main/java/com/cetc32/dh/common/utils/DigestUtils.java
+++ b/src/main/java/com/cetc32/dh/common/utils/DigestUtils.java
@@ -23,11 +23,9 @@ public class DigestUtils {
/**
*
* 功能描述: MD5加密账号密码
- *
- * @param:
- * @return:
- * @auther: youqing
- * @date: 2018/9/11 15:11
+ * @param userName 用户名
+ * @param password 密码
+ * @return 返回md5hash
*/
public static String Md5(String userName,String password){
Md5Hash hash = new Md5Hash(password, ByteSource.Util.bytes(userName), 2);
diff --git a/src/main/java/com/cetc32/dh/common/utils/JWTUtil.java b/src/main/java/com/cetc32/dh/common/utils/JWTUtil.java
deleted file mode 100644
index 9ab25776d1640b36f5777dce23b1423788dee3fd..0000000000000000000000000000000000000000
--- a/src/main/java/com/cetc32/dh/common/utils/JWTUtil.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/**
- * @Title: CenterAuthShiroConfig
- * @Description: 自定义Realm
- * @author: youqing
- * @version: 1.0
- * @date: 2020/9/11 10:55
- * 更改描述:
- */
-package com.cetc32.dh.common.utils;
-
-import com.auth0.jwt.JWT;
-import com.auth0.jwt.JWTVerifier;
-import com.auth0.jwt.algorithms.Algorithm;
-import com.auth0.jwt.exceptions.JWTDecodeException;
-import com.auth0.jwt.interfaces.DecodedJWT;
-
-import java.io.UnsupportedEncodingException;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
-/**
- * 响应状态信息接口
- * @author: youqing
- * @version: 1.0
- * @date: 2020/9/11 10:55
- * 更改描述:
- */
-public class JWTUtil {
- //token有效时长
- private static final long EXPIRE=2*60*60*1000;
- //token的密钥
- private static final String SECRET="jwt+shiro+32s";
-
- /**
- * 指定缓存失效时间
- * @param key 键
- * @param time 时间(秒)
- * @return
- * 修改信息:
- */
- public static String createToken(String username,long current){
- Date date= new Date(current+EXPIRE);
- //JWT的header部分
- Map map =new HashMap<>();
- map.put("alg","HS256");
- map.put("typ","JWT");
-
- //使用JWT生成 token
- String token=null;
- try{
- token= JWT.create()
- .withHeader(map)
- .withClaim("username",username)
- .withClaim("current",current)
- .withIssuedAt(new Date())
- .withExpiresAt(date)
- .sign(Algorithm.HMAC256(SECRET));
- }catch (UnsupportedEncodingException e){
- e.printStackTrace();
- }
- return token;
- }
-
- ////校验token的有效性,1、token的header和payload是否没改过;2、没有过期
- /**
- * 指定缓存失效时间
- * @param key 键
- * @param time 时间(秒)
- * @return
- * 修改信息:
- */
- public static boolean verify(String token){
- try{
- JWTVerifier verifier=JWT.require(Algorithm.HMAC256(SECRET)).build();
- verifier.verify(token);
- return true;
- }catch ( Exception e){
-
- }
- return false;
- }
- //无需解密也可以获取token的信息
- /**
- * 指定缓存失效时间
- * @param key 键
- * @param time 时间(秒)
- * @return
- * 修改信息:
- */
- public static String getUsername(String token){
- try {
- DecodedJWT jwt = JWT.decode(token);
- return jwt.getClaim("username").asString();
- } catch (JWTDecodeException e) {
- return null;
- }
- }
-
- //获取过期时间
- /**
- * 指定缓存失效时间
- * @param key 键
- * @param time 时间(秒)
- * @return
- * 修改信息:
- */
- public static long getExpire(String token){
- try {
- DecodedJWT jwt = JWT.decode(token);
- return jwt.getClaim("exp").asLong();
- }catch (Exception e){
- return System.currentTimeMillis()/1000;
- }
- }
-}
diff --git a/src/main/java/com/cetc32/dh/common/utils/ShiroFilterUtils.java b/src/main/java/com/cetc32/dh/common/utils/ShiroFilterUtils.java
deleted file mode 100644
index 25344e3448a5c81c2b19e1b1deb1b6e3bc7504cf..0000000000000000000000000000000000000000
--- a/src/main/java/com/cetc32/dh/common/utils/ShiroFilterUtils.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/**
- * @Title: CenterAuthShiroConfig
- * @Description: 自定义Realm
- * @author: youqing
- * @version: 1.0
- * @date: 2020/9/11 10:55
- * 更改描述:
- */
-package com.cetc32.dh.common.utils;
-
-import com.cetc32.dh.common.response.ResponseResult;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.servlet.ServletRequest;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.PrintWriter;
-
-/**
- * @Title: ShiroFilterUtils
- * @Description: shiro工具类
- * @author: youqing
- * @version: 1.0
- * @date: 2018/11/23 9:54
- */
-public class ShiroFilterUtils {
-
- private static final Logger logger = LoggerFactory.getLogger(ShiroFilterUtils.class);
-
- private final static ObjectMapper objectMapper = new ObjectMapper();
-
- /**
- *
- * 功能描述: 判断请求是否是ajax
- *
- * @param:
- * @return:
- * @auther: youqing
- * @date: 2018/11/23 9:57
- */
- public static boolean isAjax(ServletRequest request){
- String header = ((HttpServletRequest) request).getHeader("X-Requested-With");
- if("XMLHttpRequest".equalsIgnoreCase(header)){
- logger.info("shiro工具类【ShiroFilterUtils.isAjax】当前请求,为Ajax请求");
- return Boolean.TRUE;
- }
- logger.debug("shiro工具类【ShiroFilterUtils.isAjax】当前请求,非Ajax请求");
- return Boolean.FALSE;
- }
-
- /**
- *
- * 功能描述: response输出json
- *
- * @param:
- * @return:
- * @auther: youqing
- * @date: 2018/11/23 9:58
- */
- public static void out(HttpServletResponse response, ResponseResult result){
- PrintWriter out = null;
- try {
- response.setCharacterEncoding("UTF-8");//设置编码
- response.setContentType("application/json");//设置返回类型
- out = response.getWriter();
- out.println(objectMapper.writeValueAsString(result));//输出
- logger.info("用户在线数量限制【ShiroFilterUtils.out】响应json信息成功");
- } catch (Exception e) {
- logger.error("用户在线数量限制【ShiroFilterUtils.out】响应json信息出错", e);
- }finally{
- if(null != out){
- out.flush();
- out.close();
- }
- }
- }
-}
diff --git a/src/main/java/com/cetc32/dh/common/utils/Tools.java b/src/main/java/com/cetc32/dh/common/utils/Tools.java
index df7801957a9c339d481d728617198c3a65de484c..feb4974a6b482a93138364196323637f9480507e 100644
--- a/src/main/java/com/cetc32/dh/common/utils/Tools.java
+++ b/src/main/java/com/cetc32/dh/common/utils/Tools.java
@@ -1,5 +1,7 @@
package com.cetc32.dh.common.utils;
+import org.apache.commons.lang3.StringUtils;
+
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -163,16 +165,21 @@ public class Tools {
*/
public static Integer getMapValueInt(Map map, String mapName)
{
- Object obj= map.getOrDefault(mapName,null);
- if(obj==null)
- {
+ Object obj= map.get(mapName);
+ if(obj==null){
return null;
}
- if(obj.getClass()==String.class)
+ if(obj instanceof String)
{
- return Integer.parseInt((String) obj);
+ if(StringUtils.isNotBlank((String)obj))
+ return Integer.parseInt((String) obj);
+ return null;
}
- return (Integer) obj;
+ if(obj instanceof Integer)
+ return (Integer)obj;
+ if(obj instanceof Long)
+ return (Integer) obj;
+ return null;
}
/**
@@ -188,11 +195,11 @@ public class Tools {
{
return null;
}
- if(obj.getClass()==Integer.class)
+ /*if(obj.getClass()==Integer.class)
{
return String.valueOf(obj);
- }
- return (String) obj;
+ }*/
+ return obj.toString();
}
/**
diff --git a/src/main/java/com/cetc32/dh/controller/rest/AreaCommonController.java b/src/main/java/com/cetc32/dh/controller/rest/AreaCommonController.java
index d833bf0cd9e8e08c94e6144c7e11a383b3bb048b..efd0888818a3e04a06ff16d5ece29a6662830185 100644
--- a/src/main/java/com/cetc32/dh/controller/rest/AreaCommonController.java
+++ b/src/main/java/com/cetc32/dh/controller/rest/AreaCommonController.java
@@ -6,9 +6,11 @@
******************************************************************************/
package com.cetc32.dh.controller.rest;
+import com.cetc32.dh.common.response.ResponseData;
import com.cetc32.dh.common.response.ResponseResult;
import com.cetc32.dh.entity.AreaCommon;
import com.cetc32.dh.service.AreaCommonService;
+import com.cetc32.webutil.common.annotations.LoginSkipped;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
@@ -18,6 +20,9 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.*;
+
import java.util.Arrays;
import java.util.List;
@@ -42,6 +47,7 @@ public class AreaCommonController {
@ApiImplicitParam(name = "id", value = "查询ID(key值)下的范围树,非必填,默认查询全国", dataType = "String"),
})
@RequestMapping(value = "/all", method = RequestMethod.GET)
+ //@LoginSkipped
public ResponseResult areaCommonTree(String id) {
if (id == null) {
id = "100000";
@@ -74,5 +80,10 @@ public class AreaCommonController {
}
return ResponseResult.success(areaCommon);
}
+ @GetMapping("/0")
+ @LoginSkipped
+ public ResponseData allArea(){
+ return ResponseData.success( areaCommonService.selectAll());
+ }
}
diff --git a/src/main/java/com/cetc32/dh/controller/rest/AuthController.java b/src/main/java/com/cetc32/dh/controller/rest/AuthController.java
index 890d93adb72fe70eb548b5f9b1197be917eda8ca..c172be30705cbabdf3b8bfb6a5c4e7fef7dc44b3 100644
--- a/src/main/java/com/cetc32/dh/controller/rest/AuthController.java
+++ b/src/main/java/com/cetc32/dh/controller/rest/AuthController.java
@@ -8,52 +8,41 @@
package com.cetc32.dh.controller.rest;
-import com.cetc32.dh.beans.LoginParameter;
-import com.cetc32.dh.beans.LoginResult;
-import com.cetc32.dh.beans.ResultUserInfo;
-import com.cetc32.dh.common.response.PageDataResult;
+import com.alibaba.fastjson.JSONObject;
import com.cetc32.dh.beans.*;
import com.cetc32.dh.common.response.PageDataResult;
import com.cetc32.dh.common.response.ResponseData;
-import com.cetc32.dh.common.response.ResponseResult;
-import com.cetc32.dh.common.utils.JWTUtil;
import com.cetc32.dh.config.RedisUtil;
import com.cetc32.dh.entity.AreaCommon;
import com.cetc32.dh.entity.BaseAdminUser;
-import com.cetc32.dh.entity.NumberS;
-import com.cetc32.dh.mybatis.AreaCommonMapper;
-import com.cetc32.dh.mybatis.BaseAdminUserMapper;
+import com.cetc32.dh.listener.ContainerStartedListener;
+import com.cetc32.dh.service.AdminRoleService;
import com.cetc32.dh.service.AdminUserService;
import com.cetc32.dh.service.AreaCommonService;
-import com.cetc32.dh.service.impl.AdminRoleServiceImpl;
-import com.cetc32.dh.service.impl.AdminUserServiceImpl;
-import com.cetc32.dh.service.impl.AreaCommonServiceImpl;
-import com.google.inject.internal.util.$FinalizableWeakReference;
-import com.google.inject.internal.util.$ObjectArrays;
-import com.google.inject.internal.util.$ToStringBuilder;
+import com.cetc32.webutil.common.annotations.LoginRequired;
+import com.cetc32.webutil.common.annotations.LoginSkipped;
+import com.cetc32.webutil.common.util.CookieUtil;
+import com.cetc32.webutil.common.util.JWTUtil;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
-
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
-import javax.crypto.interfaces.PBEKey;
import javax.servlet.http.HttpServletRequest;
-import java.awt.*;
import java.io.UnsupportedEncodingException;
-import java.lang.reflect.Type;
-import java.util.ArrayList;
-import java.util.HashMap;
+import java.util.*;
import java.util.List;
-import java.util.Map;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
import java.util.stream.Collectors;
import com.cetc32.dh.common.utils.DigestUtils;
+import javax.servlet.http.HttpServletResponse;
+
+import static com.cetc32.dh.common.utils.Tools.isContainChinese;
import static com.cetc32.dh.common.utils.Tools.*;
/**
@@ -66,19 +55,26 @@ import static com.cetc32.dh.common.utils.Tools.*;
*/
@RestController
@RequestMapping("/rest/auth/")
+@LoginRequired(loginSuccess = true)
public class AuthController {
@Autowired
RedisUtil redisUtil;
@Autowired
- AdminUserServiceImpl userService;
+ AdminUserService userService;
@Autowired
- AreaCommonMapper areaCommonMapper;
+ AreaCommonService areaCommonMapper;
+
+ @Autowired
+ AdminRoleService adminRoleService;
/**
- * 用户登陆
+ * web用户登陆
+ * @Description 用户登陆接口,登陆过程中需要更新用户的登陆时间,loginFailed次数等
+ * loginFailed每次登陆都要更新,且登陆失败或成功都要进行更新,且登陆失败
+ * 也需要更新登陆时间,且登陆登出时间保持为一致,为了统计在线人数
* @param loginParameter "包含username和password的json字符串"
* @return ResponseData
* 备注:无
@@ -89,39 +85,167 @@ public class AuthController {
@ApiImplicitParam(name = "password", value = "密码", paramType = "String")
})
@PostMapping("/login")
- public ResponseData login2(@RequestBody LoginParameter loginParameter){
+ @LoginSkipped
+ public ResponseData weblogin2(@RequestBody LoginParameter loginParameter, HttpServletRequest request, HttpServletResponse response){
String username=loginParameter.getUsername();
String password=loginParameter.getPassword();
- if(username==null || password==null || password.length()==0)
- {
- return ResponseData.error("用户名和密码不能为空!");
- }
BaseAdminUser user= userService.findByUserName(username);
- if(user==null || !user.getSysUserPwd().equals(DigestUtils.Md5(username,password)))
- {
- return ResponseData.error("账户信息有误或未审核!");
- }
+ ResponseData x = verifyUserLoginEnable(username,password,user);
+ if(x != null) return x;
+ user.setLoginFailed(0);
+ user.setWebLoginDate(new Date());
+ user.setWebLoginStatus(1);
+ int webCount=user.getWebLoginCount()+1;
+ user.setWebLoginCount(webCount);
+ return createTokenAndSaveCookies(request, response, username, user);
+ }
+
+ /**
+ * web用户登陆
+ * @Description 用户登陆接口,登陆过程中需要更新用户的登陆时间,loginFailed次数等
+ * loginFailed每次登陆都要更新,且登陆失败或成功都要进行更新,且登陆失败
+ * 也需要更新登陆时间,且登陆登出时间保持为一致,为了统计在线人数
+ * @param loginParameter "包含username和password的json字符串"
+ * @return ResponseData
+ * 备注:无
+ */
+ @ApiOperation(value = "用户登录验证,并返回用户相应角色", notes = "")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "username", value = "用户名", paramType = "String"),
+ @ApiImplicitParam(name = "password", value = "密码", paramType = "String")
+ })
+ @PostMapping("/applogin")
+ @LoginSkipped
+ public ResponseData applogin2(@RequestBody LoginParameter loginParameter, HttpServletRequest request, HttpServletResponse response){
+ String username=loginParameter.getUsername();
+ String password=loginParameter.getPassword();
+ BaseAdminUser user= userService.findByUserName(username);
+ ResponseData x = verifyUserLoginEnable(username, password, user);
+ if (x != null) return x;
+ user.setLoginFailed(0);
+ user.setAppLoginDate(new Date());
+ user.setAppLoginStatus(1);
+ int appCount=user.getAppLoginCount()+1;
+ user.setAppLoginCount(appCount);
+ return createTokenAndSaveCookies(request, response, username, user);
+ }
+
+ @NotNull
+ private ResponseData createTokenAndSaveCookies(HttpServletRequest request, HttpServletResponse response, String username, BaseAdminUser user) {
+ userService.updateLogin(user);
long currentTimeMillis = System.currentTimeMillis();
- String token= JWTUtil.createToken(username,currentTimeMillis);
- redisUtil.set(username,currentTimeMillis,60*30);
- LoginResult data=new LoginResult(token,
+ String jwtToken = JWTUtil.createToken(username, currentTimeMillis);
+ LoginResult data = new LoginResult(jwtToken,
user.getDepartment(),
username,
user.getId(),
user.getRoleId(),
user.getSecurity(),
user.getAreacode(),
- JWTUtil.getExpire(token));
- return ResponseData.success(200,"success",data);
+ JWTUtil.getExpire(jwtToken));
+ CookieUtil.setCookie(request, response, "token", jwtToken, 60 * 60 * 2, true);
+ return ResponseData.success(200, "success", data);
}
+ @Nullable
+ private ResponseData verifyUserLoginEnable(String username, String password, BaseAdminUser user) {
+ if(user.getUserStatus() == -1){
+ return ResponseData.error("未激活用户请先联系管理员审核账号。");
+ }else if( user.getUserStatus()<1){
+ return ResponseData.error("账号已经注销。");
+ }
+ int failed=user.getLoginFailed();
+ if(failed>3){
+ return ResponseData.error("失败次数超过三次!");
+ }
+ if(StringUtils.isBlank(username) || StringUtils.isBlank(password))
+ {
+ // loginFailed每次登陆都要更新,且登陆失败或成功都要进行更新,且登陆失败
+ // 也需要更新登陆时间,且登陆登出时间保持为一致,为了统计在线人数
+ failed=++failed;
+ user.setLoginFailed(failed);
+ userService.updateLogin(user);
+ return ResponseData.error("用户名和密码不能为空!");
+ }
+
+ if(user==null || !user.getSysUserPwd().equals(DigestUtils.Md5(username,password)))
+ {
+ // loginFailed每次登陆都要更新,且登陆失败或成功都要进行更新,且登陆失败
+ // 也需要更新登陆时间,且登陆登出时间保持为一致,为了统计在线人数
+ failed=++failed;
+ user.setLoginFailed(failed);
+ userService.updateLogin(user);
+ return ResponseData.error("账户信息有误或未审核!");
+ }
+ if(user.getAppLoginStatus()==1){
+ return ResponseData.error("用户已在线,不能重复登录!");
+ }
+ return null;
+ }
+ /**
+ * 监测用户名是否存在
+ * @param username
+ * **/
+ @LoginSkipped
+ @GetMapping("/user/exist")
+ public ResponseData findUserByName(String username){
+ System.out.println("username"+username);
+ BaseAdminUser user =userService.findByUserName(username);
+ if(user == null){
+ return ResponseData.success( true);
+ }else{
+ return ResponseData.success( false);
+ }
+ }
+
+ /***
+ * WEB端用户注册,默认
+ * @param userInfo 请求用户信息
+ * @return 返回用户是否添加成功
+ * **/
+ @LoginSkipped
+ @PostMapping("/apply")
+ public ResponseData apply(@RequestBody UserInfo userInfo){
+ BaseAdminUser user =new BaseAdminUser();
+ System.out.println(JSONObject.toJSONString(userInfo).toString());
+
+ String username =userInfo.getUsername();
+ if(StringUtils.isBlank(username))
+ {
+ return ResponseData.error("用户名不能为空!");
+ }
+ if(userService.findByUserNameAll(username)!=null)
+ {
+ return ResponseData.error("用户名已存在!");
+ }
+ if(StringUtils.isBlank(userInfo.getPassword())){
+ return ResponseData.error("密码不能为空!");
+ }
+ user.setSysUserPwd(DigestUtils.Md5(userInfo.getUsername(),userInfo.getPassword()));
+ user.setUserStatus(-1);
+ user.setSysUserName(userInfo.getUsername());
+ user.setSecurity(userInfo.getSecurity());
+ user.setAreacode(userInfo.getAreacode());
+ if(userService.insertUser(user)>0)
+ {
+ return ResponseData.success("添加成功");
+ }
+ else {
+ return ResponseData.error("添加失败");
+ }
+ }
+ /**
+ *
+ *
+ ***/
@ApiOperation(value = "移动终端用户注册(固定角色、固定为非M权限)", notes = "")
@ApiImplicitParams({
@ApiImplicitParam(name = "username", value = "用户名", paramType = "String"),
@ApiImplicitParam(name = "password", value = "密码", paramType = "String")
})
@PostMapping(value="/register",produces = "application/json;charset=UTF-8")
+ @LoginSkipped
public ResponseData register(@RequestBody Map loginParameter){
Map reg=new HashMap<>();
reg.put("username",loginParameter.getOrDefault("username",null));
@@ -141,7 +265,7 @@ public class AuthController {
}
//默认用户有效
userInfo.setUserStatus(-1);
- userInfo.setRegTime(String.valueOf(System.currentTimeMillis()));
+ userInfo.setRegTime(new Date());
// TODO 默认安全等级
if(userInfo.getSecurity()==null)
{
@@ -161,7 +285,7 @@ public class AuthController {
@ApiImplicitParam(name = "username", value = "用户名", paramType = "String"),
@ApiImplicitParam(name = "password", value = "密码", paramType = "String"),
@ApiImplicitParam(name = "role", value = "角色id列表", paramType = "List"),
- @ApiImplicitParam(name = "security", value = "密级(1:JM,2:MM,3:FM)", paramType = "Integer"),
+ @ApiImplicitParam(name = "security", value = "密级(1:JUEM,2:JIM,3:MM,4:FM)", paramType = "Integer"),
@ApiImplicitParam(name = "department", value = "部门id列表", paramType = "List"),
@ApiImplicitParam(name = "areacode", value = "区域id列表", paramType = "List")
})
@@ -177,17 +301,18 @@ public class AuthController {
{
return ResponseData.error("用户名已存在!");
}
- if(StringUtils.isBlank(userInfo.getSysUserPwd())){
+ if(userInfo.getSysUserPwd()==null || userInfo.getSysUserPwd().trim().isEmpty()){
userInfo.setSysUserPwd(DigestUtils.Md5(username,"123456"));
}
//默认用户有效
- userInfo.setUserStatus(1);
- long currentTimeMillis = System.currentTimeMillis();
- userInfo.setRegTime(String.valueOf(currentTimeMillis));
+ userInfo.setUserStatus(-1);
+// long currentTimeMillis = System.currentTimeMillis();
+ Date date = new Date();
+ userInfo.setRegTime(date);
// TODO 默认安全等级
if(userInfo.getSecurity()==null)
{
- userInfo.setSecurity(3);
+ userInfo.setSecurity(4);
}
if(userService.insertUser(userInfo)>0)
{
@@ -205,7 +330,7 @@ public class AuthController {
@PostMapping(value = "/deleteUser")
public ResponseData deleteUser(@RequestBody Map did){
Integer id=did.getOrDefault("id",0);
- if(userService.delUser(id,0)>0)
+ if(userService.deleteInfo(id)>0)
{
return ResponseData.success("删除成功!");
}
@@ -214,12 +339,27 @@ public class AuthController {
return ResponseData.error("删除失败!");
}
}
-
- @ApiOperation(value = "用户删除(从数据库中删除不可恢复)", notes = "")
+ @ApiOperation(value = "用户删除(仅标记不从数据库删除)", notes = "")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "id", value = "用户id", paramType = "Integer"),
+ })
+ @PostMapping(value = "/rejectUser")
+ public ResponseData reject(@RequestBody Map did){
+ Integer id=did.getOrDefault("id",0);
+ if(userService.delUser(id,0)>0)
+ {
+ return ResponseData.success("操作成功!");
+ }
+ else
+ {
+ return ResponseData.error("操作失败!");
+ }
+ }
+ /* @ApiOperation(value = "用户删除(从数据库中删除不可恢复)", notes = "")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "用户id", paramType = "Integer"),
})
- @PostMapping(value = "/deleteInfo")
+ @PostMapping(value = "/deleteInfo")*/
public ResponseData deleteUser1(@RequestBody Map did){
Integer id=did.getOrDefault("id",0);
if(userService.deleteInfo(id)>0)
@@ -247,11 +387,27 @@ public class AuthController {
// public PageDataResult getUserList(@RequestBody UserInfo user_info){
public PageDataResult getUserList(@RequestBody Map userInfo){
BaseAdminUser user_info=CreateUser(userInfo);
+ // user_info.setUserStatus(1);
return new PageDataResult(userService.countUserByCondition(user_info),
userService.findUserByCondition(user_info),
user_info.getOffset());
}
-
+ /**
+ * @param formUser 用户表单信息
+ * **/
+ @LoginSkipped
+ @PostMapping("/resetpwd")
+ public ResponseData resetPwd(@RequestBody FormUser formUser){
+ BaseAdminUser us = userService.findByUserName(formUser.getUsername());
+ if(us !=null){
+ if(us.getSysUserPwd().equals(DigestUtils.Md5(formUser.getUsername(),formUser.getPassword()))){
+ userService.updatePwd(formUser.getUsername(),formUser.getPasswordN());
+ return ResponseData.success();
+ }
+ return ResponseData.error("mimabui");
+ }
+ return ResponseData.error("用户账户信息有误。");
+ }
@ApiOperation(value = "注册用户激活及信息修改", notes = "")
@ApiImplicitParams({
@@ -323,7 +479,8 @@ public class AuthController {
user_info.setAreacode(areaCodeName);
if(isContainChinese(user_info.getAreacode()))
{
- List areaCommons = areaCommonMapper.selectAll();
+ //List areaCommons = areaCommonMapper.selectAll();
+ List areaCommons = ContainerStartedListener.getAreas();
List areaCode=new ArrayList<>();
Map areaCommonsMap =
areaCommons.stream().collect(Collectors.toMap(AreaCommon::getName, AreaCommon::getId));
@@ -341,7 +498,7 @@ public class AuthController {
// 用户名需要在密码之前赋值
// 用户名去除两端空格
user_info.setSysUserName(StringUtils.trim(getMapValueStr(userInfo,"username")));
- String password=getMapValueStr(userInfo,"password");
+ String password=(String)userInfo.get("password");//getMapValueStr(userInfo,"password");
if(password!=null && user_info.getSysUserName()!=null && password.trim().length()>0)
{
user_info.setSysUserPwd(DigestUtils.Md5(user_info.getSysUserName(),password));
@@ -356,14 +513,17 @@ public class AuthController {
user_info.setPage(getMapValueInt(userInfo,"page"));
user_info.setResults(getMapValueInt(userInfo,"results"));
user_info.setUserStatus(getMapValueInt(userInfo,"userStatus"));
+ user_info.setLoginFailed(getMapValueInt(userInfo,"loginFailed"));
+ user_info.setSortField(StringUtils.trim(getMapValueStr(userInfo,"sortField")));
+ user_info.setSortOrder(StringUtils.trim(getMapValueStr(userInfo,"sortOrder")));
+
}
return user_info;
}
/**
- * 注销
- * @param token
+ * 注销登陆,只需要清除cookies即可
* @return ResponseData
* 备注:无
*/
@@ -372,27 +532,25 @@ public class AuthController {
@ApiImplicitParam(name = "token", value = "登陆成功返回的token", paramType = "String"),
})
@PostMapping("/logout")
- public ResponseData logout(String token){
- if(token!=null)
- {
- String username=JWTUtil.getUsername(token);
- redisUtil.del(username);
- }
+ public ResponseData logout(HttpServletRequest req,HttpServletResponse rep){
+ CookieUtil.setCookie(req,rep,"token","",0,false);
return ResponseData.success();
}
/**
- * 注销
+ * 根据token获取用户信息
* @param token
* @return ResponseData
* 备注:无
*/
- @ApiOperation(value = "token校验", notes = "")
+ @ApiOperation(value = "token获取用户信息", notes = "")
@ApiImplicitParams({
@ApiImplicitParam(name = "token", value = "登陆成功返回的token", paramType = "String"),
})
- @RequestMapping("/token")
+ @GetMapping("/verify")
+ @PostMapping("/token")
+ @LoginSkipped
public ResponseData token(String token){
if(token!=null )
{
@@ -404,15 +562,39 @@ public class AuthController {
{
long currentTimeMillis = System.currentTimeMillis()/1000;
long exp=JWTUtil.getExpire(token);
+ List resultUserRole=null;
+ try{
+ String[] roleIds =user.getRoleId().split(",");
+ for(String role:roleIds){
+ if(StringUtils.isBlank(role)){
+ continue;
+ }
+ if(resultUserRole ==null)
+ resultUserRole =new ArrayList<>();
+ if(StringUtils.isBlank(role)){
+ continue;
+ }
+ ResultUserRole r = adminRoleService.findRoleById(Integer.valueOf(role));
+ if(r!=null)
+ resultUserRole.add(r);
+ }
+ }catch (Exception e){
+ e.printStackTrace();
+ }
if(exp>currentTimeMillis)
{
ResultUserInfo data=new ResultUserInfo();
+ data.setId(user.getId());
data.setSecurity(user.getSecurity());
data.setAreacode(user.getAreacode());
data.setDepartment(user.getDepartment());
data.setRole(user.getRoleId());
data.setUsername(username);
- return ResponseData.success(200,"success",data);
+ if(resultUserRole!=null){
+ for(ResultUserRole r :resultUserRole)
+ data.addPermissions(r.getSystemMenu());
+ }
+ return ResponseData.success(data);
}
else
{
@@ -432,7 +614,8 @@ public class AuthController {
* 备注:无
*/
@PostMapping(path = "/unauthorized/{message}")
- public ResponseResult unauthorized(@PathVariable String message) throws UnsupportedEncodingException {
- return ResponseResult.fail(message);
+ @LoginSkipped
+ public ResponseData unauthorized(@PathVariable String message) throws UnsupportedEncodingException {
+ return ResponseData.error(message);
}
}
diff --git a/src/main/java/com/cetc32/dh/controller/rest/AuthRoleController.java b/src/main/java/com/cetc32/dh/controller/rest/AuthRoleController.java
index 19b7107db479997a9a7f3aa9288144bf44c31b67..880c83907461adf5b5f5cc8cfa588c1a4b33af56 100644
--- a/src/main/java/com/cetc32/dh/controller/rest/AuthRoleController.java
+++ b/src/main/java/com/cetc32/dh/controller/rest/AuthRoleController.java
@@ -10,6 +10,8 @@ import com.cetc32.dh.entity.BaseAdminUser;
import com.cetc32.dh.entity.NumberS;
import com.cetc32.dh.service.impl.AdminRoleServiceImpl;
import com.cetc32.dh.service.impl.AdminUserServiceImpl;
+import com.cetc32.webutil.common.annotations.AccessPermission;
+import com.cetc32.webutil.common.annotations.LoginRequired;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
@@ -20,6 +22,7 @@ import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.Map;
+@LoginRequired
@RestController
@RequestMapping("/rest/role/")
public class AuthRoleController {
diff --git a/src/main/java/com/cetc32/dh/controller/rest/BaseController.java b/src/main/java/com/cetc32/dh/controller/rest/BaseController.java
deleted file mode 100644
index 36cfb4a957dd5c5e10796897597a7c0aacfb5c88..0000000000000000000000000000000000000000
--- a/src/main/java/com/cetc32/dh/controller/rest/BaseController.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * @Description:基本controller 提供获取用户id的方法
- * @Author :徐文远
- * @version:1.0
- * @date : 2021/1/12 下午1:38
- ******************************************************************************/
-
-package com.cetc32.dh.controller.rest;
-
-import com.cetc32.dh.entity.BaseAdminUser;
-import com.cetc32.dh.service.AdminUserService;
-import org.apache.shiro.SecurityUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-@RestController
-public class BaseController {
- @Autowired
- AdminUserService adminUserService;
- public BaseAdminUser getCurrentUserId(){
- BaseAdminUser baseAdminUser= (BaseAdminUser)SecurityUtils.getSubject().getPrincipal();//.getSession().getAttribute("currentUserId");
- return baseAdminUser;//adminUserService.getUserById(id.intValue());
- }
- @RequestMapping("/test/user")
- public String testUser(){
- return getCurrentUserId().getSysUserName();
- }
-
-}
diff --git a/src/main/java/com/cetc32/dh/controller/rest/CityController.java b/src/main/java/com/cetc32/dh/controller/rest/CityController.java
deleted file mode 100644
index d3608bb3cc916cecd929e1ea4bcf9a37b2ffde1f..0000000000000000000000000000000000000000
--- a/src/main/java/com/cetc32/dh/controller/rest/CityController.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * @Description:
- * @Author :肖小霞
- * @version:1.0
- * @date : 2021/1/21 下午4:45
- ******************************************************************************/
-package com.cetc32.dh.controller.rest;
-
-import com.cetc32.dh.common.response.ResponseResult;
-import com.cetc32.dh.entity.AreaCommon;
-import com.cetc32.dh.entity.City;
-import com.cetc32.dh.service.AreaCommonService;
-import com.cetc32.dh.service.CityService;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import java.util.*;
-
-/**
- * 数据管理地理信息接口操作类
- * @author: 肖小霞
- * @version: 1.0
- * @date: 2020/10/14
- * 备注:无
- */
-@RestController
-@RequestMapping("/rest/city/")
-public class CityController {
- @Autowired
- CityService cityService;
- @Autowired
- AreaCommonService areaCommonService;
-
- /**
- * 计算根据点集得出各城市的地理区域
- * @return 返回区域面结果
- * 备注:无
- */
- @ApiOperation(value = "北京城市的点")
- @PostMapping("/polygon")
- public ResponseResult polygon() {
- int count = 0;
- List areaCommonList = areaCommonService.selectAll();
- for (AreaCommon areaCommon : areaCommonList) {
- String result = "";
- String geom = "";
- List stringList = new ArrayList<>();
- if (cityService.selectByCityCode(areaCommon.getId()).size() > 0) {
- //搜集所有该城市数据
- List cityList = cityService.selectByCityCode(areaCommon.getId());
- Collections.sort(cityList, new Comparator() {
- public int compare(City c1, City c2) {
- return Integer.parseInt(c1.getFid()) - Integer.parseInt(c2.getFid());
- }
- });
- String start_end = null;
- for (int i = 0; i < cityList.size(); i++) {
- String s = cityList.get(i).getPointX();
- s = s + " ";
- s = s + cityList.get(i).getPointY();
- if (i == 0) {
- start_end = s;
- }
- stringList.add(s);
- }
- stringList.add(start_end);
- result = stringList.toString();
- //result ="(117.293890872000006 30.427812941999999, 117.293890872000006 30.427812941999999, 117.293890872000006 30.427812941999999, 117.293890872000006 30.427812941999999,118.293890872000006 33.427812941999999,110.293890872000006 36.427812941999999,117.293890872000006 30.427812941999999)";
- result = result.replace("[", "(");
- result = result.replace("]", ")");
- System.out.println(result);
- result = "POLYGON(" + result + ")";
- System.out.println(result);
-// geom = cityService.judge(result);
- }
- if (result != "") {
- areaCommon.setGeom(result);
- }
-
- if (areaCommonService.updateByCity(areaCommon) > 0) {
- count++;
- }
- }
- if (count > 0) {
- return ResponseResult.success("更新成功");
- } else {
- return ResponseResult.error("更新失败");
- }
-
-
- }
-
- /**
- * 判断某个点是否在一个面中
- * @return 返回判断结果
- * 备注:无
- */
- @ApiOperation(value = "判断点point是否在多边形polygon中")
- @PostMapping("/pointpolygon")
- public ResponseResult pointContain(@RequestBody Map map) {
- String point = (String) map.get("point");
- String polygon = (String) map.get("polygon");
-// String polygon ="POLYGON((1 1,1 6,6 6,6 1,1 1))";
-// String point ="POINT(2 2)";
- //经测试边界线上的点不包含在面中
- Boolean judge = cityService.judgePointContain(point, polygon);
- if (judge == true) {
- return ResponseResult.success("判断结果为:点point包含面polygon");
- } else {
- return ResponseResult.success("判断结果为:点point不包含面polygon");
- }
-
- }
-
- /**
- * 判断多边形polygon2是否在多边形polygon1中
- * @return 返回判断结果
- * 备注:无
- */
- @ApiOperation(value = "判断多边形polygon2是否在多边形polygon1中")
- @PostMapping("/jugpolygon")
- public ResponseResult polygonContain(@RequestBody Map map) {
- String area_big = (String) map.get("areaBig");
- String area_small = (String) map.get("areaSmall");
- String polygon1 = "POLYGON((1 1,1 6,6 6,6 1,1 1))";
- String polygon2 = "POLYGON((2 2,2 5,5 5,5 2,2 2))";
- //经测验多边形包含其本身
- Boolean judge = cityService.judgePolygonContain(area_big, area_small);
- if (judge == true) {
- return ResponseResult.success("判断结果为:面polygon1包含面polygon2");
- } else {
- return ResponseResult.success("判断结果为:面polygon1不包含面polygon2");
- }
-
- }
-
- // @ApiOperation(value = "当前用户名提交的数据")
-// @PostMapping("/jug")
-// public ResponseResult Judge() {
-//// String pointss ="POLYGON((98.31768 46.16992,127.59814 45.80590,108.78794 34.13706,93.2099 35.04692,98.31768 46.16992,98.31768 46.16992))";
-// String pointss ="POLYGON((116.67521 41.40101, 116.67611 41.04001, 116.68291 41.04291,98.31768 46.16992,98.31768 46.16992,116.67521 41.40101))";
-// String judge = cityService.judge(pointss);
-//
-// return ResponseResult.success("判断结果为:"+judge);
-// }
-
-
-}
diff --git a/src/main/java/com/cetc32/dh/controller/rest/DataCommonController.java b/src/main/java/com/cetc32/dh/controller/rest/DataCommonController.java
deleted file mode 100644
index 4c24b5a55dae5d3e54a817770c67bfb6e390ad21..0000000000000000000000000000000000000000
--- a/src/main/java/com/cetc32/dh/controller/rest/DataCommonController.java
+++ /dev/null
@@ -1,266 +0,0 @@
-/*******************************************************************************
- * @Description:
- * @Author :肖小霞
- * @version:1.0
- * @date : 2021/1/21 下午4:45
- ******************************************************************************/
-package com.cetc32.dh.controller.rest;
-
-import com.cetc32.dh.common.response.PageDataResult;
-import com.cetc32.dh.common.response.ResponseResult;
-import com.cetc32.dh.entity.DataFile;
-import com.cetc32.dh.entity.DataPlp;
-import com.cetc32.dh.entity.DataTrace;
-import com.cetc32.dh.service.DataFileService;
-import com.cetc32.dh.service.DataMenuService;
-import com.cetc32.dh.service.DataPlpService;
-import com.cetc32.dh.service.DataTraceService;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.time.LocalTime;
-import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * 数据管理公共接口
- * @author: xiao
- * @version: 1.0
- * @date: 2020/10/14
- * 备注:无
- */
-@Slf4j
-@RestController
-@RequestMapping("/rest/datamanage/common")
-public class DataCommonController {
- @Autowired
- private DataFileService dataFileService;
- @Autowired
- private DataPlpService dataPlpService;
- @Autowired
- private DataTraceService dataTraceService;
- @Autowired
- private DataMenuService dataMenuService;
-
-
- /**
- * 统计今日提交或审批数管个数
- *
- * @param map status审核
- * @return 返回查询个数结果
- * 备注:无
- */
- @PostMapping(value = "/todaydataCount")
- public ResponseResult countTodayData(@RequestBody Map map) {
- DataFile dataFile = new DataFile();
- DataTrace dataTrace = new DataTrace();
- DataPlp dataPlp = new DataPlp();
- int count_all;
- int count;
- String status = (String) map.get("status");
- LocalDateTime today_start = LocalDateTime.of(LocalDate.now(), LocalTime.MIN);//当天零点
- String td_start = today_start.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
- LocalDateTime today_end = LocalDateTime.of(LocalDate.now(), LocalTime.MAX);//当天最晚点
- String td_end = today_end.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
- dataFile.setTd_start(td_start);
- dataFile.setTd_end(td_end);
- dataPlp.setTd_start(td_start);
- dataPlp.setTd_end(td_end);
- dataTrace.setTd_start(td_start);
- dataTrace.setTd_end(td_end);
- dataFile.setStatus(null);
- dataPlp.setStatus(null);
- dataTrace.setStatus(null);
- count_all = dataFileService.countFilesByObj(dataFile);
- count_all += dataPlpService.countFilesByObj(dataPlp);
- count_all += dataTraceService.countFilesByObj(dataTrace);
- if (status == null || status.contains("全部审批") || StringUtils.isBlank(status)) {
- return ResponseResult.success(count_all);
- } else {
- status = "未审批";
- dataFile.setStatus(status);
- dataPlp.setStatus(status);
- dataTrace.setStatus(status);
- count = dataFileService.countFilesByObj(dataFile);
- count += dataPlpService.countFilesByObj(dataPlp);
- count += dataTraceService.countFilesByObj(dataTrace);
- count_all = count_all - count;
- return ResponseResult.success(count_all);
- }
- }
-
- /**
- * 统计今日提交或审批数管个数
- *
- * @param map status审核
- * @return 返回查询个数结果
- * 备注:无
- */
- @PostMapping(value = "/todaydataShow")
- public PageDataResult showTodayData(@RequestBody Map map) {
- DataFile dataFile = new DataFile();
- DataTrace dataTrace = new DataTrace();
- DataPlp dataPlp = new DataPlp();
- int total;
- List