From 4ada58f55b600e2277ea32c839587c88e587face Mon Sep 17 00:00:00 2001
From: wanggeng888 <450292408@qq.com>
Date: Thu, 28 Jan 2021 12:13:15 +0800
Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E5=9F=BA=E7=A1=80=E4=BB=A3?=
=?UTF-8?q?=E7=A0=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
basic-annotation/pom.xml | 14 +
.../annotation/CheckBooleanAnnotation.java | 18 +
.../annotation/CheckEmptyAnnotation.java | 28 +
.../wgink/annotation/CheckListAnnotation.java | 22 +
.../wgink/annotation/CheckNullAnnotation.java | 23 +
.../annotation/CheckNumberAnnotation.java | 28 +
.../CheckRequestBodyAnnotation.java | 19 +
basic-app/pom.xml | 21 +-
.../java/ink/wgink/app/AppTokenManager.java | 32 +-
basic-exception/pom.xml | 5 -
basic-interface/pom.xml | 1 -
...rvice.java => IDepartmentBaseService.java} | 2 +-
.../interfaces/user/IUserBaseService.java | 54 ++
.../wgink/interfaces/user/IUserService.java | 14 -
basic-pojo/pom.xml | 13 +
.../wgink/pojo/bos/RoleGrantedAuthority.java | 26 +-
.../pojo/dtos/department/DepartmentDTO.java | 39 +
.../dtos/department/DepartmentSimpleDTO.java | 471 ++++++++++
.../pojo/dtos/{ => user}/UserAttrInfoDTO.java | 10 +-
.../ink/wgink/pojo/dtos/user/UserDTO.java | 274 ++++++
basic-util/pom.xml | 1 -
.../main/java/ink/wgink/util/AddressUtil.java | 171 ++++
.../src/main/java/ink/wgink/util/AesUtil.java | 157 ++++
.../main/java/ink/wgink/util/FolderUtil.java | 26 +
.../main/java/ink/wgink/util/HtmlHelper.java | 59 ++
.../src/main/java/ink/wgink/util/MD5Util.java | 36 +
.../main/java/ink/wgink/util/QRCodeUtil.java | 86 ++
.../main/java/ink/wgink/util/RegexUtil.java | 223 +++++
.../java/ink/wgink/util/ResourceUtil.java | 58 ++
.../main/java/ink/wgink/util/UUIDUtil.java | 20 +
.../java/ink/wgink/util/map/HashMapUtil.java | 97 +-
common/pom.xml | 26 +
.../wgink/common/advice/ResponseAdvice.java | 88 ++
.../common/config/TransactionConfig.java | 2 +-
module-file/pom.xml | 42 +
.../FileMediaAppMaxDurationProperties.java | 14 +
...FileMediaBackendMaxDurationProperties.java | 14 +
.../FileMediaBaseMaxDurationProperties.java | 44 +
.../FileMediaMaxDurationProperties.java | 55 ++
.../FileMediaWechatMaxDurationProperties.java | 14 +
.../config/properties/FileProperties.java | 112 +++
.../ink/wgink/module/file/dao/IFileDao.java | 103 +++
.../module/file/enums/UploadTypeEnum.java | 22 +
.../wgink/module/file}/pojo/dtos/FileDTO.java | 2 +-
.../module/file/pojo/dtos/FileInfoDTO.java | 76 ++
.../module/file/service/IFileService.java | 229 +++++
.../file/service/impl/FileServiceImpl.java | 853 +++++++++++++++++
pom.xml | 31 +
service-department/pom.xml | 23 +
.../controller/api/DepartmentController.java | 205 +++++
.../department/dao/IDepartmentDao.java | 167 ++++
.../listener/excel/DepartmentExcel.java | 96 ++
.../listener/excel/DepartmentExcelError.java | 108 +++
.../excel/DepartmentExcelListener.java | 42 +
.../department/pojo/vos/DepartmentVO.java | 270 ++++++
.../pojo/vos/MergeDepartmentInfoVO.java | 40 +
.../pojo/vos/MergeNewDepartmentInfoVO.java | 40 +
.../pojo/vos/SplitDepartmentInfoVO.java | 38 +
.../pojo/vos/SplitDepartmentVO.java | 43 +
.../service/IDepartmentService.java | 223 +++++
.../service/impl/DepartmentServiceImpl.java | 451 +++++++++
.../mybatis/mapper/department-mapper.xml | 865 ++++++++++++++++++
service-role/pom.xml | 24 +
.../role/controller/api/RoleController.java | 22 +
service-user/pom.xml | 3 +-
.../user/controller/api/UserController.java | 94 +-
.../ink/wgink/service/user/dao/IUserDao.java | 86 ++
.../wgink/service/user/pojo/pos/UserPO.java | 194 ++++
.../wgink/service/user/pojo/vos/UserVO.java | 126 +++
.../service/user/service/IUserService.java | 57 ++
.../service/user/service/UserServiceImpl.java | 22 -
.../user/service/impl/UserServiceImpl.java | 120 +++
.../resources/mybatis/mapper/user-mapper.xml | 366 ++++++++
73 files changed, 7380 insertions(+), 120 deletions(-)
create mode 100644 basic-annotation/pom.xml
create mode 100644 basic-annotation/src/main/java/ink/wgink/annotation/CheckBooleanAnnotation.java
create mode 100644 basic-annotation/src/main/java/ink/wgink/annotation/CheckEmptyAnnotation.java
create mode 100644 basic-annotation/src/main/java/ink/wgink/annotation/CheckListAnnotation.java
create mode 100644 basic-annotation/src/main/java/ink/wgink/annotation/CheckNullAnnotation.java
create mode 100644 basic-annotation/src/main/java/ink/wgink/annotation/CheckNumberAnnotation.java
create mode 100644 basic-annotation/src/main/java/ink/wgink/annotation/CheckRequestBodyAnnotation.java
rename basic-interface/src/main/java/ink/wgink/interfaces/department/{IDepartmentService.java => IDepartmentBaseService.java} (87%)
create mode 100644 basic-interface/src/main/java/ink/wgink/interfaces/user/IUserBaseService.java
delete mode 100644 basic-interface/src/main/java/ink/wgink/interfaces/user/IUserService.java
create mode 100644 basic-pojo/src/main/java/ink/wgink/pojo/dtos/department/DepartmentDTO.java
create mode 100644 basic-pojo/src/main/java/ink/wgink/pojo/dtos/department/DepartmentSimpleDTO.java
rename basic-pojo/src/main/java/ink/wgink/pojo/dtos/{ => user}/UserAttrInfoDTO.java (93%)
create mode 100644 basic-pojo/src/main/java/ink/wgink/pojo/dtos/user/UserDTO.java
create mode 100644 basic-util/src/main/java/ink/wgink/util/AddressUtil.java
create mode 100644 basic-util/src/main/java/ink/wgink/util/AesUtil.java
create mode 100644 basic-util/src/main/java/ink/wgink/util/FolderUtil.java
create mode 100644 basic-util/src/main/java/ink/wgink/util/HtmlHelper.java
create mode 100644 basic-util/src/main/java/ink/wgink/util/MD5Util.java
create mode 100644 basic-util/src/main/java/ink/wgink/util/QRCodeUtil.java
create mode 100644 basic-util/src/main/java/ink/wgink/util/RegexUtil.java
create mode 100644 basic-util/src/main/java/ink/wgink/util/ResourceUtil.java
create mode 100644 basic-util/src/main/java/ink/wgink/util/UUIDUtil.java
create mode 100644 common/src/main/java/ink/wgink/common/advice/ResponseAdvice.java
create mode 100644 module-file/pom.xml
create mode 100644 module-file/src/main/java/ink/wgink/module/file/config/properties/FileMediaAppMaxDurationProperties.java
create mode 100644 module-file/src/main/java/ink/wgink/module/file/config/properties/FileMediaBackendMaxDurationProperties.java
create mode 100644 module-file/src/main/java/ink/wgink/module/file/config/properties/FileMediaBaseMaxDurationProperties.java
create mode 100644 module-file/src/main/java/ink/wgink/module/file/config/properties/FileMediaMaxDurationProperties.java
create mode 100644 module-file/src/main/java/ink/wgink/module/file/config/properties/FileMediaWechatMaxDurationProperties.java
create mode 100644 module-file/src/main/java/ink/wgink/module/file/config/properties/FileProperties.java
create mode 100644 module-file/src/main/java/ink/wgink/module/file/dao/IFileDao.java
create mode 100644 module-file/src/main/java/ink/wgink/module/file/enums/UploadTypeEnum.java
rename {basic-pojo/src/main/java/ink/wgink => module-file/src/main/java/ink/wgink/module/file}/pojo/dtos/FileDTO.java (98%)
create mode 100644 module-file/src/main/java/ink/wgink/module/file/pojo/dtos/FileInfoDTO.java
create mode 100644 module-file/src/main/java/ink/wgink/module/file/service/IFileService.java
create mode 100644 module-file/src/main/java/ink/wgink/module/file/service/impl/FileServiceImpl.java
create mode 100644 service-department/pom.xml
create mode 100644 service-department/src/main/java/ink/wgink/service/department/controller/api/DepartmentController.java
create mode 100644 service-department/src/main/java/ink/wgink/service/department/dao/IDepartmentDao.java
create mode 100644 service-department/src/main/java/ink/wgink/service/department/listener/excel/DepartmentExcel.java
create mode 100644 service-department/src/main/java/ink/wgink/service/department/listener/excel/DepartmentExcelError.java
create mode 100644 service-department/src/main/java/ink/wgink/service/department/listener/excel/DepartmentExcelListener.java
create mode 100644 service-department/src/main/java/ink/wgink/service/department/pojo/vos/DepartmentVO.java
create mode 100644 service-department/src/main/java/ink/wgink/service/department/pojo/vos/MergeDepartmentInfoVO.java
create mode 100644 service-department/src/main/java/ink/wgink/service/department/pojo/vos/MergeNewDepartmentInfoVO.java
create mode 100644 service-department/src/main/java/ink/wgink/service/department/pojo/vos/SplitDepartmentInfoVO.java
create mode 100644 service-department/src/main/java/ink/wgink/service/department/pojo/vos/SplitDepartmentVO.java
create mode 100644 service-department/src/main/java/ink/wgink/service/department/service/IDepartmentService.java
create mode 100644 service-department/src/main/java/ink/wgink/service/department/service/impl/DepartmentServiceImpl.java
create mode 100644 service-department/src/main/resources/mybatis/mapper/department-mapper.xml
create mode 100644 service-role/pom.xml
create mode 100644 service-role/src/main/java/ink/wgink/service/role/controller/api/RoleController.java
create mode 100644 service-user/src/main/java/ink/wgink/service/user/pojo/pos/UserPO.java
create mode 100644 service-user/src/main/java/ink/wgink/service/user/pojo/vos/UserVO.java
create mode 100644 service-user/src/main/java/ink/wgink/service/user/service/IUserService.java
delete mode 100644 service-user/src/main/java/ink/wgink/service/user/service/UserServiceImpl.java
create mode 100644 service-user/src/main/java/ink/wgink/service/user/service/impl/UserServiceImpl.java
create mode 100644 service-user/src/main/resources/mybatis/mapper/user-mapper.xml
diff --git a/basic-annotation/pom.xml b/basic-annotation/pom.xml
new file mode 100644
index 00000000..bbc2cbf9
--- /dev/null
+++ b/basic-annotation/pom.xml
@@ -0,0 +1,14 @@
+
+
+
+ wg-basic
+ ink.wgink
+ 1.0-SNAPSHOT
+
+ 4.0.0
+
+ basic-annotation
+
+
\ No newline at end of file
diff --git a/basic-annotation/src/main/java/ink/wgink/annotation/CheckBooleanAnnotation.java b/basic-annotation/src/main/java/ink/wgink/annotation/CheckBooleanAnnotation.java
new file mode 100644
index 00000000..0aca9fcd
--- /dev/null
+++ b/basic-annotation/src/main/java/ink/wgink/annotation/CheckBooleanAnnotation.java
@@ -0,0 +1,18 @@
+package ink.wgink.annotation;
+
+/**
+ * When you feel like quitting. Think about why you started
+ * 当你想要放弃的时候,想想当初你为何开始
+ *
+ * @ClassName: CheckBooleanAnnotation
+ * @Description: TODO
+ * @Author: WangGeng
+ * @Date: 2019/11/14 14:50
+ * @Version: 1.0
+ **/
+public @interface CheckBooleanAnnotation {
+
+ String name();
+
+ String[] types() default {};
+}
diff --git a/basic-annotation/src/main/java/ink/wgink/annotation/CheckEmptyAnnotation.java b/basic-annotation/src/main/java/ink/wgink/annotation/CheckEmptyAnnotation.java
new file mode 100644
index 00000000..cb2f3531
--- /dev/null
+++ b/basic-annotation/src/main/java/ink/wgink/annotation/CheckEmptyAnnotation.java
@@ -0,0 +1,28 @@
+package ink.wgink.annotation;
+
+import java.lang.annotation.*;
+
+/**
+ * When you feel like quitting. Think about why you started
+ * 当你想要放弃的时候,想想当初你为何开始
+ *
+ * @ClassName: CheckEmptyAnnotation
+ * @Description: 校验空
+ * @Author: WangGeng
+ * @Date: 2019/11/14 14:05
+ * @Version: 1.0
+ **/
+@Documented
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ElementType.FIELD})
+public @interface CheckEmptyAnnotation {
+
+ String name();
+
+ String[] types() default {};
+
+ String verifyType() default "";
+
+ String regex() default "";
+
+}
diff --git a/basic-annotation/src/main/java/ink/wgink/annotation/CheckListAnnotation.java b/basic-annotation/src/main/java/ink/wgink/annotation/CheckListAnnotation.java
new file mode 100644
index 00000000..dbbc96a8
--- /dev/null
+++ b/basic-annotation/src/main/java/ink/wgink/annotation/CheckListAnnotation.java
@@ -0,0 +1,22 @@
+package ink.wgink.annotation;
+
+import java.lang.annotation.*;
+
+/**
+ * When you feel like quitting. Think about why you started
+ * 当你想要放弃的时候,想想当初你为何开始
+ *
+ * @ClassName: CheckListAnnotation
+ * @Description: 校验List
+ * @Author: WangGeng
+ * @Date: 2019/11/15 14:39
+ * @Version: 1.0
+ **/
+@Documented
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ElementType.FIELD})
+public @interface CheckListAnnotation {
+
+ String name();
+
+}
diff --git a/basic-annotation/src/main/java/ink/wgink/annotation/CheckNullAnnotation.java b/basic-annotation/src/main/java/ink/wgink/annotation/CheckNullAnnotation.java
new file mode 100644
index 00000000..dc89cb3b
--- /dev/null
+++ b/basic-annotation/src/main/java/ink/wgink/annotation/CheckNullAnnotation.java
@@ -0,0 +1,23 @@
+package ink.wgink.annotation;
+
+import java.lang.annotation.*;
+
+/**
+ * When you feel like quitting. Think about why you started
+ * 当你想要放弃的时候,想想当初你为何开始
+ *
+ * @ClassName: CheckNullAnno
+ * @Description: 字段为空校验
+ * @Author: WangGeng
+ * @Date: 2019/11/14 11:31
+ * @Version: 1.0
+ **/
+@Documented
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ElementType.FIELD})
+public @interface CheckNullAnnotation {
+
+ String name();
+
+ String[] types() default {};
+}
diff --git a/basic-annotation/src/main/java/ink/wgink/annotation/CheckNumberAnnotation.java b/basic-annotation/src/main/java/ink/wgink/annotation/CheckNumberAnnotation.java
new file mode 100644
index 00000000..d7b4ff78
--- /dev/null
+++ b/basic-annotation/src/main/java/ink/wgink/annotation/CheckNumberAnnotation.java
@@ -0,0 +1,28 @@
+package ink.wgink.annotation;
+
+import java.lang.annotation.*;
+
+/**
+ * When you feel like quitting. Think about why you started
+ * 当你想要放弃的时候,想想当初你为何开始
+ *
+ * @ClassName: CheckNumberAnnotation
+ * @Description: 字段为数字校验
+ * @Author: WangGeng
+ * @Date: 2019/11/14 11:31
+ * @Version: 1.0
+ **/
+@Documented
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ElementType.FIELD})
+public @interface CheckNumberAnnotation {
+
+ String name();
+
+ String[] types() default {};
+
+ double max() default Integer.MAX_VALUE;
+
+ double min() default Integer.MIN_VALUE;
+
+}
diff --git a/basic-annotation/src/main/java/ink/wgink/annotation/CheckRequestBodyAnnotation.java b/basic-annotation/src/main/java/ink/wgink/annotation/CheckRequestBodyAnnotation.java
new file mode 100644
index 00000000..5f96ac57
--- /dev/null
+++ b/basic-annotation/src/main/java/ink/wgink/annotation/CheckRequestBodyAnnotation.java
@@ -0,0 +1,19 @@
+package ink.wgink.annotation;
+
+import java.lang.annotation.*;
+
+/**
+ * When you feel like quitting. Think about why you started
+ * 当你想要放弃的时候,想想当初你为何开始
+ *
+ * @ClassName: CheckRequestBodyAnnotation
+ * @Description: 校验请求主体
+ * @Author: WangGeng
+ * @Date: 2019/11/14 16:02
+ * @Version: 1.0
+ **/
+@Documented
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ElementType.METHOD})
+public @interface CheckRequestBodyAnnotation {
+}
diff --git a/basic-app/pom.xml b/basic-app/pom.xml
index 678ae39d..b895e779 100644
--- a/basic-app/pom.xml
+++ b/basic-app/pom.xml
@@ -11,9 +11,22 @@
basic-app
-
- 8
- 8
-
+
+
+ ink.wgink
+ basic-exception
+ 1.0-SNAPSHOT
+
+
+ ink.wgink
+ basic-interface
+ 1.0-SNAPSHOT
+
+
+ ink.wgink
+ basic-util
+ 1.0-SNAPSHOT
+
+
\ No newline at end of file
diff --git a/basic-app/src/main/java/ink/wgink/app/AppTokenManager.java b/basic-app/src/main/java/ink/wgink/app/AppTokenManager.java
index baab82a0..4afd5087 100644
--- a/basic-app/src/main/java/ink/wgink/app/AppTokenManager.java
+++ b/basic-app/src/main/java/ink/wgink/app/AppTokenManager.java
@@ -1,16 +1,16 @@
package ink.wgink.app;
import com.alibaba.fastjson.JSONObject;
-import com.cm.common.constants.ISystemConstant;
-import com.cm.common.enums.AppTokenTypeEnum;
-import com.cm.common.exception.TokenException;
-import com.cm.common.token.app.entity.AppToken;
-import com.cm.common.token.app.entity.AppTokenUser;
-import com.cm.common.utils.AesUtil;
+import ink.wgink.app.entity.AppToken;
+import ink.wgink.app.entity.AppTokenUser;
+import ink.wgink.app.enums.AppTokenTypeEnum;
+import ink.wgink.exceptions.TokenException;
+import ink.wgink.interfaces.consts.ISystemConstant;
+import ink.wgink.util.AesUtil;
+import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+
import java.util.ArrayList;
import java.util.Date;
@@ -28,9 +28,9 @@ import java.util.concurrent.ConcurrentHashMap;
* @Date: 2019-08-02 11:08
* @Version: 1.0
**/
+@Slf4j
public class AppTokenManager {
- private static final Logger LOG = LoggerFactory.getLogger(AppTokenManager.class);
private static AppTokenManager appTokenManager = AppTokenManagerBuilder.appTokenManager;
private static final Map tokens = new ConcurrentHashMap();
@@ -59,7 +59,7 @@ public class AppTokenManager {
* 添加token
*
* @param token
- * @param type
+ * @param appTokenTypeEnum
* @param appTokenUser
*/
public synchronized void addToken(String token, AppTokenTypeEnum appTokenTypeEnum, AppTokenUser appTokenUser) {
@@ -83,7 +83,7 @@ public class AppTokenManager {
try {
userInfo = AesUtil.aesCommonDecoder(ISystemConstant.APP_TOKEN_AES_KEY, new String(Base64.decodeBase64(token), "UTF-8"));
} catch (Exception e) {
- LOG.error(e.getMessage(), e);
+ log.error(e.getMessage(), e);
throw new TokenException("Token解码异常");
}
JSONObject userInfoObj = JSONObject.parseObject(userInfo);
@@ -92,23 +92,23 @@ public class AppTokenManager {
}
String appTokenSign = userInfoObj.getString(ISystemConstant.APP_TOKEN_SIGN);
if (StringUtils.isBlank(appTokenSign)) {
- LOG.debug("Token标识为空");
+ log.debug("Token标识为空");
throw new TokenException("Token非法");
}
if (!StringUtils.startsWith(appTokenSign, ISystemConstant.APP_TOKEN_VERIFY)) {
- LOG.debug("Token标识开头错误");
+ log.debug("Token标识开头错误");
throw new TokenException("Token非法");
}
String[] appTokenSignArray = appTokenSign.split("_");
if (appTokenSignArray.length != 3) {
- LOG.debug("Token标识格式长度异常,应为3,这里为:{}", appTokenSignArray.length);
+ log.debug("Token标识格式长度异常,应为3,这里为:{}", appTokenSignArray.length);
throw new TokenException("Token非法");
}
try {
new Date(Long.parseLong(appTokenSignArray[2]));
} catch (NumberFormatException e) {
e.printStackTrace();
- LOG.debug("Token时间戳异常");
+ log.debug("Token时间戳异常");
throw new TokenException("Token非法");
}
return JSONObject.toJavaObject(userInfoObj, AppTokenUser.class);
@@ -144,7 +144,7 @@ public class AppTokenManager {
for (String tokenKey : clearTokenKeys) {
tokens.remove(tokenKey);
}
- LOG.debug("本次共清理超时Token:{}个", clearTokenKeys.size());
+ log.debug("本次共清理超时Token:{}个", clearTokenKeys.size());
}
private static class AppTokenManagerBuilder {
diff --git a/basic-exception/pom.xml b/basic-exception/pom.xml
index 8baa1f9d..72fee03a 100644
--- a/basic-exception/pom.xml
+++ b/basic-exception/pom.xml
@@ -11,9 +11,4 @@
basic-exception
-
- 8
- 8
-
-
\ No newline at end of file
diff --git a/basic-interface/pom.xml b/basic-interface/pom.xml
index 70a74a35..f90abb08 100644
--- a/basic-interface/pom.xml
+++ b/basic-interface/pom.xml
@@ -18,7 +18,6 @@
1.0-SNAPSHOT
-
\ No newline at end of file
diff --git a/basic-interface/src/main/java/ink/wgink/interfaces/department/IDepartmentService.java b/basic-interface/src/main/java/ink/wgink/interfaces/department/IDepartmentBaseService.java
similarity index 87%
rename from basic-interface/src/main/java/ink/wgink/interfaces/department/IDepartmentService.java
rename to basic-interface/src/main/java/ink/wgink/interfaces/department/IDepartmentBaseService.java
index 066119f1..f561c6ba 100644
--- a/basic-interface/src/main/java/ink/wgink/interfaces/department/IDepartmentService.java
+++ b/basic-interface/src/main/java/ink/wgink/interfaces/department/IDepartmentBaseService.java
@@ -10,5 +10,5 @@ package ink.wgink.interfaces.department;
* @Date: 2021/1/24 12:53
* @Version: 1.0
**/
-public interface IDepartmentService {
+public interface IDepartmentBaseService {
}
diff --git a/basic-interface/src/main/java/ink/wgink/interfaces/user/IUserBaseService.java b/basic-interface/src/main/java/ink/wgink/interfaces/user/IUserBaseService.java
new file mode 100644
index 00000000..37667b85
--- /dev/null
+++ b/basic-interface/src/main/java/ink/wgink/interfaces/user/IUserBaseService.java
@@ -0,0 +1,54 @@
+package ink.wgink.interfaces.user;
+
+import ink.wgink.pojo.ListPage;
+import ink.wgink.pojo.dtos.user.UserDTO;
+import ink.wgink.pojo.result.SuccessResultList;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * When you feel like quitting. Think about why you started
+ * 当你想要放弃的时候,想想当初你为何开始
+ *
+ * @ClassName: IUserService
+ * @Description: 用户
+ * @Author: WangGeng
+ * @Date: 2021/1/24 12:52
+ * @Version: 1.0
+ **/
+public interface IUserBaseService {
+
+ /**
+ * 用户详情
+ *
+ * @param userId 用户ID
+ * @return
+ */
+ UserDTO get(String userId);
+
+ /**
+ * 用户详情
+ *
+ * @param username 用户名
+ * @return
+ */
+ UserDTO getByUsername(String username);
+
+ /**
+ * 用户列表
+ *
+ * @param params
+ * @return
+ */
+ List list(Map params);
+
+ /**
+ * 用户分页列表
+ *
+ * @param page
+ * @return
+ */
+ SuccessResultList> listPage(ListPage page);
+
+}
diff --git a/basic-interface/src/main/java/ink/wgink/interfaces/user/IUserService.java b/basic-interface/src/main/java/ink/wgink/interfaces/user/IUserService.java
deleted file mode 100644
index 6531757e..00000000
--- a/basic-interface/src/main/java/ink/wgink/interfaces/user/IUserService.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package ink.wgink.interfaces.user;
-
-/**
- * When you feel like quitting. Think about why you started
- * 当你想要放弃的时候,想想当初你为何开始
- *
- * @ClassName: IUserService
- * @Description: 用户
- * @Author: WangGeng
- * @Date: 2021/1/24 12:52
- * @Version: 1.0
- **/
-public interface IUserService {
-}
diff --git a/basic-pojo/pom.xml b/basic-pojo/pom.xml
index f9264f55..d1109b1f 100644
--- a/basic-pojo/pom.xml
+++ b/basic-pojo/pom.xml
@@ -12,6 +12,19 @@
basic-pojo
+
+
+ org.apache.tomcat.embed
+ tomcat-embed-core
+ compile
+
+
+
+
+ org.projectlombok
+ lombok
+
+
org.springframework.security
diff --git a/basic-pojo/src/main/java/ink/wgink/pojo/bos/RoleGrantedAuthority.java b/basic-pojo/src/main/java/ink/wgink/pojo/bos/RoleGrantedAuthority.java
index 522a0abb..b707f8c2 100644
--- a/basic-pojo/src/main/java/ink/wgink/pojo/bos/RoleGrantedAuthority.java
+++ b/basic-pojo/src/main/java/ink/wgink/pojo/bos/RoleGrantedAuthority.java
@@ -28,16 +28,16 @@ public class RoleGrantedAuthority implements GrantedAuthority {
private List routeSaveMenu;
private List routeUpdateMenu;
private List routeQueryMenu;
- private List permissionInsert;
- private List permissionDelete;
- private List permissionUpdate;
- private List permissionQuery;
+ private List permissionInsert;
+ private List permissionDelete;
+ private List permissionUpdate;
+ private List permissionQuery;
public RoleGrantedAuthority(String role) {
this.role = role;
}
- public RoleGrantedAuthority(String role, com.cm.common.pojo.bos.RoleBO roleBO) {
+ public RoleGrantedAuthority(String role, RoleBO roleBO) {
this.role = role;
this.roleId = roleBO.getRoleId();
this.roleName = roleBO.getRoleName();
@@ -181,35 +181,35 @@ public class RoleGrantedAuthority implements GrantedAuthority {
this.routeQueryMenu = routeQueryMenu;
}
- public List getPermissionInsert() {
+ public List getPermissionInsert() {
return permissionInsert;
}
- public void setPermissionInsert(List permissionInsert) {
+ public void setPermissionInsert(List permissionInsert) {
this.permissionInsert = permissionInsert;
}
- public List getPermissionDelete() {
+ public List getPermissionDelete() {
return permissionDelete;
}
- public void setPermissionDelete(List permissionDelete) {
+ public void setPermissionDelete(List permissionDelete) {
this.permissionDelete = permissionDelete;
}
- public List getPermissionUpdate() {
+ public List getPermissionUpdate() {
return permissionUpdate;
}
- public void setPermissionUpdate(List permissionUpdate) {
+ public void setPermissionUpdate(List permissionUpdate) {
this.permissionUpdate = permissionUpdate;
}
- public List getPermissionQuery() {
+ public List getPermissionQuery() {
return permissionQuery;
}
- public void setPermissionQuery(List permissionQuery) {
+ public void setPermissionQuery(List permissionQuery) {
this.permissionQuery = permissionQuery;
}
diff --git a/basic-pojo/src/main/java/ink/wgink/pojo/dtos/department/DepartmentDTO.java b/basic-pojo/src/main/java/ink/wgink/pojo/dtos/department/DepartmentDTO.java
new file mode 100644
index 00000000..4a453eba
--- /dev/null
+++ b/basic-pojo/src/main/java/ink/wgink/pojo/dtos/department/DepartmentDTO.java
@@ -0,0 +1,39 @@
+package ink.wgink.pojo.dtos.department;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @ClassName: DepartmentDTO
+ * @Description: 组织部门
+ * @Author: wenc
+ * @Date: 2019/1/8 7:43 PM
+ * @Version: 1.0
+ **/
+@ApiModel
+public class DepartmentDTO extends DepartmentSimpleDTO {
+
+ private static final long serialVersionUID = -6682276871851732246L;
+ @ApiModelProperty(name = "subDepartments", value = "组织部门子列表")
+ private List subDepartments;
+
+ public List getSubDepartments() {
+ return subDepartments == null ? new ArrayList<>() : subDepartments;
+ }
+
+ public void setSubDepartments(List subDepartments) {
+ this.subDepartments = subDepartments;
+ }
+
+ @Override
+ public String toString() {
+ final StringBuilder sb = new StringBuilder("{");
+ sb.append("\"subDepartments\":")
+ .append(subDepartments);
+ sb.append('}');
+ return sb.toString();
+ }
+}
diff --git a/basic-pojo/src/main/java/ink/wgink/pojo/dtos/department/DepartmentSimpleDTO.java b/basic-pojo/src/main/java/ink/wgink/pojo/dtos/department/DepartmentSimpleDTO.java
new file mode 100644
index 00000000..610d2d21
--- /dev/null
+++ b/basic-pojo/src/main/java/ink/wgink/pojo/dtos/department/DepartmentSimpleDTO.java
@@ -0,0 +1,471 @@
+package ink.wgink.pojo.dtos.department;
+
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+/**
+ * When you feel like quitting. Think about why you started
+ * 当你想要放弃的时候,想想当初你为何开始
+ *
+ * @ClassName: DepartmentSimpleDTO
+ * @Description: 组织机构(简单)
+ * @Author: WangGeng
+ * @Date: 2020/4/28 12:11
+ * @Version: 1.0
+ **/
+public class DepartmentSimpleDTO implements Serializable {
+
+ private static final long serialVersionUID = 595737776232939256L;
+ @ApiModelProperty(name = "departmentIntId", value = "组织部门ID")
+ private Long departmentIntId;
+ @ApiModelProperty(name = "departmentId", value = "组织部门ID")
+ private String departmentId;
+ @ApiModelProperty(name = "departmentParentId", value = "组织部门上级ID")
+ private String departmentParentId;
+ @ApiModelProperty(name = "departmentParentName", value = "组织部门上级名称")
+ private String departmentParentName;
+ @ApiModelProperty(name = "departmentName", value = "组织部门名称")
+ private String departmentName;
+ @ApiModelProperty(name = "departmentNameEn", value = "组织部门名称(英文)")
+ private String departmentNameEn;
+ @ApiModelProperty(name = "departmentNameOther", value = "组织部门名称(其他类型)")
+ private String departmentNameOther;
+ @ApiModelProperty(name = "departmentCode", value = "组织部门编码")
+ private String departmentCode;
+ @ApiModelProperty(name = "departmentSummary", value = "组织部门说明")
+ private String departmentSummary;
+ @ApiModelProperty(name = "departmentLogo", value = "组织部门图标ID")
+ private Long departmentLogo;
+ @ApiModelProperty(name = "departmentLogoHover", value = "组织部门图标ID(选中)")
+ private Long departmentLogoHover;
+ @ApiModelProperty(name = "departmentType", value = "组织部门类别,1:机构,2:部门")
+ private Integer departmentType;
+ @ApiModelProperty(name = "departmentState", value = "组织部门状态,0:正常,1:锁定:2:冻结")
+ private Integer departmentState;
+ @ApiModelProperty(name = "departmentFax", value = "组织部门传真")
+ private String departmentFax;
+ @ApiModelProperty(name = "departmentTel", value = "组织部门电话")
+ private String departmentTel;
+ @ApiModelProperty(name = "departmentAddress", value = "组织部门地址")
+ private String departmentAddress;
+ @ApiModelProperty(name = "departmentMaster", value = "组织部门负责人")
+ private String departmentMaster;
+ @ApiModelProperty(name = "departmentMasterName", value = "组织部门负责人名称")
+ private String departmentMasterName;
+ @ApiModelProperty(name = "departmentDuty", value = "组织部门职责")
+ private String departmentDuty;
+ @ApiModelProperty(name = "departmentArea1Id", value = "1级区域ID")
+ private String departmentArea1Id;
+ @ApiModelProperty(name = "departmentArea1Code", value = "1级区域编码")
+ private String departmentArea1Code;
+ @ApiModelProperty(name = "departmentArea1Name", value = "1级区域名称")
+ private String departmentArea1Name;
+ @ApiModelProperty(name = "departmentArea2Id", value = "2级区域ID")
+ private String departmentArea2Id;
+ @ApiModelProperty(name = "departmentArea2Code", value = "2级区域编码")
+ private String departmentArea2Code;
+ @ApiModelProperty(name = "departmentArea2Name", value = "2级区域名称")
+ private String departmentArea2Name;
+ @ApiModelProperty(name = "departmentArea3Id", value = "3级区域ID")
+ private String departmentArea3Id;
+ @ApiModelProperty(name = "departmentArea3Code", value = "3级区域编码")
+ private String departmentArea3Code;
+ @ApiModelProperty(name = "departmentArea3Name", value = "3级区域名称")
+ private String departmentArea3Name;
+ @ApiModelProperty(name = "departmentArea4Id", value = "4级区域ID")
+ private String departmentArea4Id;
+ @ApiModelProperty(name = "departmentArea4Code", value = "4级区域编码")
+ private String departmentArea4Code;
+ @ApiModelProperty(name = "departmentArea4Name", value = "4级区域名称")
+ private String departmentArea4Name;
+ @ApiModelProperty(name = "departmentArea5Id", value = "5级区域ID")
+ private String departmentArea5Id;
+ @ApiModelProperty(name = "departmentArea5Code", value = "5级区域编码")
+ private String departmentArea5Code;
+ @ApiModelProperty(name = "departmentArea5Name", value = "5级区域名称")
+ private String departmentArea5Name;
+ @ApiModelProperty(name = "departmentLongitude", value = "组织部门经度")
+ private String departmentLongitude;
+ @ApiModelProperty(name = "departmentLatitude", value = "组织部门纬度")
+ private String departmentLatitude;
+ @ApiModelProperty(name = "departmentOrder", value = "组织部门排序,默认0")
+ private String departmentOrder;
+
+ public Long getDepartmentIntId() {
+ return departmentIntId;
+ }
+
+ public void setDepartmentIntId(Long departmentIntId) {
+ this.departmentIntId = departmentIntId;
+ }
+
+ public String getDepartmentId() {
+ return departmentId == null ? "" : departmentId;
+ }
+
+ public void setDepartmentId(String departmentId) {
+ this.departmentId = departmentId;
+ }
+
+ public String getDepartmentParentId() {
+ return departmentParentId == null ? "" : departmentParentId;
+ }
+
+ public void setDepartmentParentId(String departmentParentId) {
+ this.departmentParentId = departmentParentId;
+ }
+
+ public String getDepartmentParentName() {
+ return departmentParentName == null ? "" : departmentParentName;
+ }
+
+ public void setDepartmentParentName(String departmentParentName) {
+ this.departmentParentName = departmentParentName;
+ }
+
+ public String getDepartmentName() {
+ return departmentName == null ? "" : departmentName;
+ }
+
+ public void setDepartmentName(String departmentName) {
+ this.departmentName = departmentName;
+ }
+
+ public String getDepartmentNameEn() {
+ return departmentNameEn == null ? "" : departmentNameEn;
+ }
+
+ public void setDepartmentNameEn(String departmentNameEn) {
+ this.departmentNameEn = departmentNameEn;
+ }
+
+ public String getDepartmentNameOther() {
+ return departmentNameOther == null ? "" : departmentNameOther;
+ }
+
+ public void setDepartmentNameOther(String departmentNameOther) {
+ this.departmentNameOther = departmentNameOther;
+ }
+
+ public String getDepartmentCode() {
+ return departmentCode == null ? "" : departmentCode;
+ }
+
+ public void setDepartmentCode(String departmentCode) {
+ this.departmentCode = departmentCode;
+ }
+
+ public String getDepartmentSummary() {
+ return departmentSummary == null ? "" : departmentSummary;
+ }
+
+ public void setDepartmentSummary(String departmentSummary) {
+ this.departmentSummary = departmentSummary;
+ }
+
+ public Long getDepartmentLogo() {
+ return departmentLogo;
+ }
+
+ public void setDepartmentLogo(Long departmentLogo) {
+ this.departmentLogo = departmentLogo;
+ }
+
+ public Long getDepartmentLogoHover() {
+ return departmentLogoHover;
+ }
+
+ public void setDepartmentLogoHover(Long departmentLogoHover) {
+ this.departmentLogoHover = departmentLogoHover;
+ }
+
+ public Integer getDepartmentType() {
+ return departmentType;
+ }
+
+ public void setDepartmentType(Integer departmentType) {
+ this.departmentType = departmentType;
+ }
+
+ public Integer getDepartmentState() {
+ return departmentState;
+ }
+
+ public void setDepartmentState(Integer departmentState) {
+ this.departmentState = departmentState;
+ }
+
+ public String getDepartmentFax() {
+ return departmentFax == null ? "" : departmentFax;
+ }
+
+ public void setDepartmentFax(String departmentFax) {
+ this.departmentFax = departmentFax;
+ }
+
+ public String getDepartmentTel() {
+ return departmentTel == null ? "" : departmentTel;
+ }
+
+ public void setDepartmentTel(String departmentTel) {
+ this.departmentTel = departmentTel;
+ }
+
+ public String getDepartmentAddress() {
+ return departmentAddress == null ? "" : departmentAddress;
+ }
+
+ public void setDepartmentAddress(String departmentAddress) {
+ this.departmentAddress = departmentAddress;
+ }
+
+ public String getDepartmentMaster() {
+ return departmentMaster == null ? "" : departmentMaster;
+ }
+
+ public void setDepartmentMaster(String departmentMaster) {
+ this.departmentMaster = departmentMaster;
+ }
+
+ public String getDepartmentMasterName() {
+ return departmentMasterName == null ? "" : departmentMasterName;
+ }
+
+ public void setDepartmentMasterName(String departmentMasterName) {
+ this.departmentMasterName = departmentMasterName;
+ }
+
+ public String getDepartmentDuty() {
+ return departmentDuty == null ? "" : departmentDuty;
+ }
+
+ public void setDepartmentDuty(String departmentDuty) {
+ this.departmentDuty = departmentDuty;
+ }
+
+ public String getDepartmentArea1Id() {
+ return departmentArea1Id == null ? "" : departmentArea1Id;
+ }
+
+ public void setDepartmentArea1Id(String departmentArea1Id) {
+ this.departmentArea1Id = departmentArea1Id;
+ }
+
+ public String getDepartmentArea1Code() {
+ return departmentArea1Code == null ? "" : departmentArea1Code;
+ }
+
+ public void setDepartmentArea1Code(String departmentArea1Code) {
+ this.departmentArea1Code = departmentArea1Code;
+ }
+
+ public String getDepartmentArea1Name() {
+ return departmentArea1Name == null ? "" : departmentArea1Name;
+ }
+
+ public void setDepartmentArea1Name(String departmentArea1Name) {
+ this.departmentArea1Name = departmentArea1Name;
+ }
+
+ public String getDepartmentArea2Id() {
+ return departmentArea2Id == null ? "" : departmentArea2Id;
+ }
+
+ public void setDepartmentArea2Id(String departmentArea2Id) {
+ this.departmentArea2Id = departmentArea2Id;
+ }
+
+ public String getDepartmentArea2Code() {
+ return departmentArea2Code == null ? "" : departmentArea2Code;
+ }
+
+ public void setDepartmentArea2Code(String departmentArea2Code) {
+ this.departmentArea2Code = departmentArea2Code;
+ }
+
+ public String getDepartmentArea2Name() {
+ return departmentArea2Name == null ? "" : departmentArea2Name;
+ }
+
+ public void setDepartmentArea2Name(String departmentArea2Name) {
+ this.departmentArea2Name = departmentArea2Name;
+ }
+
+ public String getDepartmentArea3Id() {
+ return departmentArea3Id == null ? "" : departmentArea3Id;
+ }
+
+ public void setDepartmentArea3Id(String departmentArea3Id) {
+ this.departmentArea3Id = departmentArea3Id;
+ }
+
+ public String getDepartmentArea3Code() {
+ return departmentArea3Code == null ? "" : departmentArea3Code;
+ }
+
+ public void setDepartmentArea3Code(String departmentArea3Code) {
+ this.departmentArea3Code = departmentArea3Code;
+ }
+
+ public String getDepartmentArea3Name() {
+ return departmentArea3Name == null ? "" : departmentArea3Name;
+ }
+
+ public void setDepartmentArea3Name(String departmentArea3Name) {
+ this.departmentArea3Name = departmentArea3Name;
+ }
+
+ public String getDepartmentArea4Id() {
+ return departmentArea4Id == null ? "" : departmentArea4Id;
+ }
+
+ public void setDepartmentArea4Id(String departmentArea4Id) {
+ this.departmentArea4Id = departmentArea4Id;
+ }
+
+ public String getDepartmentArea4Code() {
+ return departmentArea4Code == null ? "" : departmentArea4Code;
+ }
+
+ public void setDepartmentArea4Code(String departmentArea4Code) {
+ this.departmentArea4Code = departmentArea4Code;
+ }
+
+ public String getDepartmentArea4Name() {
+ return departmentArea4Name == null ? "" : departmentArea4Name;
+ }
+
+ public void setDepartmentArea4Name(String departmentArea4Name) {
+ this.departmentArea4Name = departmentArea4Name;
+ }
+
+ public String getDepartmentArea5Id() {
+ return departmentArea5Id == null ? "" : departmentArea5Id;
+ }
+
+ public void setDepartmentArea5Id(String departmentArea5Id) {
+ this.departmentArea5Id = departmentArea5Id;
+ }
+
+ public String getDepartmentArea5Code() {
+ return departmentArea5Code == null ? "" : departmentArea5Code;
+ }
+
+ public void setDepartmentArea5Code(String departmentArea5Code) {
+ this.departmentArea5Code = departmentArea5Code;
+ }
+
+ public String getDepartmentArea5Name() {
+ return departmentArea5Name == null ? "" : departmentArea5Name;
+ }
+
+ public void setDepartmentArea5Name(String departmentArea5Name) {
+ this.departmentArea5Name = departmentArea5Name;
+ }
+
+ public String getDepartmentLongitude() {
+ return departmentLongitude == null ? "" : departmentLongitude;
+ }
+
+ public void setDepartmentLongitude(String departmentLongitude) {
+ this.departmentLongitude = departmentLongitude;
+ }
+
+ public String getDepartmentLatitude() {
+ return departmentLatitude == null ? "" : departmentLatitude;
+ }
+
+ public void setDepartmentLatitude(String departmentLatitude) {
+ this.departmentLatitude = departmentLatitude;
+ }
+
+ public String getDepartmentOrder() {
+ return departmentOrder == null ? "" : departmentOrder;
+ }
+
+ public void setDepartmentOrder(String departmentOrder) {
+ this.departmentOrder = departmentOrder;
+ }
+
+ @Override
+ public String toString() {
+ final StringBuilder sb = new StringBuilder("{");
+ sb.append("\"departmentIntId\":")
+ .append(departmentIntId);
+ sb.append(",\"departmentId\":\"")
+ .append(departmentId).append('\"');
+ sb.append(",\"departmentParentId\":\"")
+ .append(departmentParentId).append('\"');
+ sb.append(",\"departmentParentName\":\"")
+ .append(departmentParentName).append('\"');
+ sb.append(",\"departmentName\":\"")
+ .append(departmentName).append('\"');
+ sb.append(",\"departmentNameEn\":\"")
+ .append(departmentNameEn).append('\"');
+ sb.append(",\"departmentNameOther\":\"")
+ .append(departmentNameOther).append('\"');
+ sb.append(",\"departmentCode\":\"")
+ .append(departmentCode).append('\"');
+ sb.append(",\"departmentSummary\":\"")
+ .append(departmentSummary).append('\"');
+ sb.append(",\"departmentLogo\":")
+ .append(departmentLogo);
+ sb.append(",\"departmentLogoHover\":")
+ .append(departmentLogoHover);
+ sb.append(",\"departmentType\":")
+ .append(departmentType);
+ sb.append(",\"departmentState\":")
+ .append(departmentState);
+ sb.append(",\"departmentFax\":\"")
+ .append(departmentFax).append('\"');
+ sb.append(",\"departmentTel\":\"")
+ .append(departmentTel).append('\"');
+ sb.append(",\"departmentAddress\":\"")
+ .append(departmentAddress).append('\"');
+ sb.append(",\"departmentMaster\":\"")
+ .append(departmentMaster).append('\"');
+ sb.append(",\"departmentMasterName\":\"")
+ .append(departmentMasterName).append('\"');
+ sb.append(",\"departmentDuty\":\"")
+ .append(departmentDuty).append('\"');
+ sb.append(",\"departmentArea1Id\":\"")
+ .append(departmentArea1Id).append('\"');
+ sb.append(",\"departmentArea1Code\":\"")
+ .append(departmentArea1Code).append('\"');
+ sb.append(",\"departmentArea1Name\":\"")
+ .append(departmentArea1Name).append('\"');
+ sb.append(",\"departmentArea2Id\":\"")
+ .append(departmentArea2Id).append('\"');
+ sb.append(",\"departmentArea2Code\":\"")
+ .append(departmentArea2Code).append('\"');
+ sb.append(",\"departmentArea2Name\":\"")
+ .append(departmentArea2Name).append('\"');
+ sb.append(",\"departmentArea3Id\":\"")
+ .append(departmentArea3Id).append('\"');
+ sb.append(",\"departmentArea3Code\":\"")
+ .append(departmentArea3Code).append('\"');
+ sb.append(",\"departmentArea3Name\":\"")
+ .append(departmentArea3Name).append('\"');
+ sb.append(",\"departmentArea4Id\":\"")
+ .append(departmentArea4Id).append('\"');
+ sb.append(",\"departmentArea4Code\":\"")
+ .append(departmentArea4Code).append('\"');
+ sb.append(",\"departmentArea4Name\":\"")
+ .append(departmentArea4Name).append('\"');
+ sb.append(",\"departmentArea5Id\":\"")
+ .append(departmentArea5Id).append('\"');
+ sb.append(",\"departmentArea5Code\":\"")
+ .append(departmentArea5Code).append('\"');
+ sb.append(",\"departmentArea5Name\":\"")
+ .append(departmentArea5Name).append('\"');
+ sb.append(",\"departmentLongitude\":\"")
+ .append(departmentLongitude).append('\"');
+ sb.append(",\"departmentLatitude\":\"")
+ .append(departmentLatitude).append('\"');
+ sb.append(",\"departmentOrder\":\"")
+ .append(departmentOrder).append('\"');
+ sb.append('}');
+ return sb.toString();
+ }
+}
diff --git a/basic-pojo/src/main/java/ink/wgink/pojo/dtos/UserAttrInfoDTO.java b/basic-pojo/src/main/java/ink/wgink/pojo/dtos/user/UserAttrInfoDTO.java
similarity index 93%
rename from basic-pojo/src/main/java/ink/wgink/pojo/dtos/UserAttrInfoDTO.java
rename to basic-pojo/src/main/java/ink/wgink/pojo/dtos/user/UserAttrInfoDTO.java
index bee82704..849cfb26 100644
--- a/basic-pojo/src/main/java/ink/wgink/pojo/dtos/UserAttrInfoDTO.java
+++ b/basic-pojo/src/main/java/ink/wgink/pojo/dtos/user/UserAttrInfoDTO.java
@@ -1,9 +1,9 @@
-package ink.wgink.pojo.dtos;
+package ink.wgink.pojo.dtos.user;
-import com.cm.common.pojo.bos.DepartmentBO;
-import com.cm.common.pojo.bos.GroupBO;
-import com.cm.common.pojo.bos.PositionBO;
-import com.cm.common.pojo.bos.RoleBO;
+import ink.wgink.pojo.bos.DepartmentBO;
+import ink.wgink.pojo.bos.GroupBO;
+import ink.wgink.pojo.bos.PositionBO;
+import ink.wgink.pojo.bos.RoleBO;
import java.util.List;
diff --git a/basic-pojo/src/main/java/ink/wgink/pojo/dtos/user/UserDTO.java b/basic-pojo/src/main/java/ink/wgink/pojo/dtos/user/UserDTO.java
new file mode 100644
index 00000000..9e0554a4
--- /dev/null
+++ b/basic-pojo/src/main/java/ink/wgink/pojo/dtos/user/UserDTO.java
@@ -0,0 +1,274 @@
+package ink.wgink.pojo.dtos.user;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+/**
+ * @author WangGeng
+ */
+@ApiModel
+public class UserDTO implements Serializable {
+
+ private static final long serialVersionUID = -4381097524161926625L;
+ @ApiModelProperty(name = "userId", value = "用户ID")
+ private String userId;
+ @ApiModelProperty(name = "userUsername", value = "用户名")
+ private String userUsername;
+ @ApiModelProperty(name = "userName", value = "用户昵称")
+ private String userName;
+ @ApiModelProperty(name = "userPhone", value = "用户电话")
+ private String userPhone;
+ @ApiModelProperty(name = "userEmail", value = "用户邮件")
+ private String userEmail;
+ @ApiModelProperty(name = "userUKey", value = "UKey")
+ private String userUKey;
+ @ApiModelProperty(name = "userType", value = "用户类型,1:系统用户,2:普通用户")
+ private Integer userType;
+ @ApiModelProperty(name = "userState", value = "用户状态,0:正常,1:冻结")
+ private Integer userState;
+ @ApiModelProperty(name = "userAvatar", value = "用户头像ID")
+ private String userAvatar;
+ @ApiModelProperty(name = "lastLoginAddress", value = "最后登录IP")
+ private String lastLoginAddress;
+ @ApiModelProperty(name = "lastLoginTime", value = "最后登录时间")
+ private String lastLoginTime;
+ @ApiModelProperty(name = "userLongitude", value = "用户经度")
+ private String userLongitude;
+ @ApiModelProperty(name = "userLatitude", value = "用户纬度")
+ private String userLatitude;
+ @ApiModelProperty(name = "departmentIds", value = "组织部门ID")
+ private String departmentIds;
+ @ApiModelProperty(name = "departmentNames", value = "组织部门名称")
+ private String departmentNames;
+ @ApiModelProperty(name = "roleIds", value = "角色ID")
+ private String roleIds;
+ @ApiModelProperty(name = "roleNames", value = "角色名称")
+ private String roleNames;
+ @ApiModelProperty(name = "positionIds", value = "职位ID")
+ private String positionIds;
+ @ApiModelProperty(name = "positionNames", value = "职位名称")
+ private String positionNames;
+ @ApiModelProperty(name = "loginType", value = "登录类型")
+ private Integer loginType;
+ @ApiModelProperty(name = "gmtCreate", value = "创建时间")
+ private String gmtCreate;
+
+ public String getUserId() {
+ return userId == null ? "" : userId.trim();
+ }
+
+ public void setUserId(String userId) {
+ this.userId = userId;
+ }
+
+ public String getUserUsername() {
+ return userUsername == null ? "" : userUsername.trim();
+ }
+
+ public void setUserUsername(String userUsername) {
+ this.userUsername = userUsername;
+ }
+
+ public String getUserName() {
+ return userName == null ? "" : userName.trim();
+ }
+
+ public void setUserName(String userName) {
+ this.userName = userName;
+ }
+
+ public String getUserPhone() {
+ return userPhone == null ? "" : userPhone.trim();
+ }
+
+ public void setUserPhone(String userPhone) {
+ this.userPhone = userPhone;
+ }
+
+ public String getUserEmail() {
+ return userEmail == null ? "" : userEmail.trim();
+ }
+
+ public void setUserEmail(String userEmail) {
+ this.userEmail = userEmail;
+ }
+
+ public String getUserUKey() {
+ return userUKey == null ? "" : userUKey;
+ }
+
+ public void setUserUKey(String userUKey) {
+ this.userUKey = userUKey;
+ }
+
+ public Integer getUserType() {
+ return userType;
+ }
+
+ public void setUserType(Integer userType) {
+ this.userType = userType;
+ }
+
+ public Integer getUserState() {
+ return userState;
+ }
+
+ public void setUserState(Integer userState) {
+ this.userState = userState;
+ }
+
+ public String getUserAvatar() {
+ return userAvatar == null ? "" : userAvatar.trim();
+ }
+
+ public void setUserAvatar(String userAvatar) {
+ this.userAvatar = userAvatar;
+ }
+
+ public String getLastLoginAddress() {
+ return lastLoginAddress == null ? "" : lastLoginAddress.trim();
+ }
+
+ public void setLastLoginAddress(String lastLoginAddress) {
+ this.lastLoginAddress = lastLoginAddress;
+ }
+
+ public String getLastLoginTime() {
+ return lastLoginTime == null ? "" : lastLoginTime.trim();
+ }
+
+ public void setLastLoginTime(String lastLoginTime) {
+ this.lastLoginTime = lastLoginTime;
+ }
+
+ public String getUserLongitude() {
+ return userLongitude == null ? "" : userLongitude.trim();
+ }
+
+ public void setUserLongitude(String userLongitude) {
+ this.userLongitude = userLongitude;
+ }
+
+ public String getUserLatitude() {
+ return userLatitude == null ? "" : userLatitude.trim();
+ }
+
+ public void setUserLatitude(String userLatitude) {
+ this.userLatitude = userLatitude;
+ }
+
+ public String getDepartmentIds() {
+ return departmentIds == null ? "" : departmentIds.trim();
+ }
+
+ public void setDepartmentIds(String departmentIds) {
+ this.departmentIds = departmentIds;
+ }
+
+ public String getDepartmentNames() {
+ return departmentNames == null ? "" : departmentNames.trim();
+ }
+
+ public void setDepartmentNames(String departmentNames) {
+ this.departmentNames = departmentNames;
+ }
+
+ public String getRoleIds() {
+ return roleIds == null ? "" : roleIds.trim();
+ }
+
+ public void setRoleIds(String roleIds) {
+ this.roleIds = roleIds;
+ }
+
+ public String getRoleNames() {
+ return roleNames == null ? "" : roleNames.trim();
+ }
+
+ public void setRoleNames(String roleNames) {
+ this.roleNames = roleNames;
+ }
+
+ public String getPositionIds() {
+ return positionIds == null ? "" : positionIds.trim();
+ }
+
+ public void setPositionIds(String positionIds) {
+ this.positionIds = positionIds;
+ }
+
+ public String getPositionNames() {
+ return positionNames == null ? "" : positionNames.trim();
+ }
+
+ public void setPositionNames(String positionNames) {
+ this.positionNames = positionNames;
+ }
+
+ public Integer getLoginType() {
+ return loginType;
+ }
+
+ public void setLoginType(Integer loginType) {
+ this.loginType = loginType;
+ }
+
+ public String getGmtCreate() {
+ return gmtCreate == null ? "" : gmtCreate.trim();
+ }
+
+ public void setGmtCreate(String gmtCreate) {
+ this.gmtCreate = gmtCreate;
+ }
+
+ @Override
+ public String toString() {
+ final StringBuilder sb = new StringBuilder("{");
+ sb.append("\"userId\":")
+ .append("\"").append(userId).append("\"");
+ sb.append(",\"userUsername\":")
+ .append("\"").append(userUsername).append("\"");
+ sb.append(",\"userName\":")
+ .append("\"").append(userName).append("\"");
+ sb.append(",\"userPhone\":")
+ .append("\"").append(userPhone).append("\"");
+ sb.append(",\"userEmail\":")
+ .append("\"").append(userEmail).append("\"");
+ sb.append(",\"userUKey\":")
+ .append("\"").append(userUKey).append("\"");
+ sb.append(",\"userType\":")
+ .append(userType);
+ sb.append(",\"userState\":")
+ .append(userState);
+ sb.append(",\"userAvatar\":")
+ .append("\"").append(userAvatar).append("\"");
+ sb.append(",\"lastLoginAddress\":")
+ .append("\"").append(lastLoginAddress).append("\"");
+ sb.append(",\"lastLoginTime\":")
+ .append("\"").append(lastLoginTime).append("\"");
+ sb.append(",\"userLongitude\":")
+ .append("\"").append(userLongitude).append("\"");
+ sb.append(",\"userLatitude\":")
+ .append("\"").append(userLatitude).append("\"");
+ sb.append(",\"departmentIds\":")
+ .append("\"").append(departmentIds).append("\"");
+ sb.append(",\"departmentNames\":")
+ .append("\"").append(departmentNames).append("\"");
+ sb.append(",\"roleIds\":")
+ .append("\"").append(roleIds).append("\"");
+ sb.append(",\"roleNames\":")
+ .append("\"").append(roleNames).append("\"");
+ sb.append(",\"positionIds\":")
+ .append("\"").append(positionIds).append("\"");
+ sb.append(",\"positionNames\":")
+ .append("\"").append(positionNames).append("\"");
+ sb.append(",\"loginType\":")
+ .append(loginType);
+ sb.append(",\"gmtCreate\":")
+ .append("\"").append(gmtCreate).append("\"");
+ sb.append('}');
+ return sb.toString();
+ }
+}
diff --git a/basic-util/pom.xml b/basic-util/pom.xml
index 8a7de1c1..c7bd64a4 100644
--- a/basic-util/pom.xml
+++ b/basic-util/pom.xml
@@ -106,7 +106,6 @@
com.alibaba
fastjson
- ${fastjson.version}
diff --git a/basic-util/src/main/java/ink/wgink/util/AddressUtil.java b/basic-util/src/main/java/ink/wgink/util/AddressUtil.java
new file mode 100644
index 00000000..268b08e2
--- /dev/null
+++ b/basic-util/src/main/java/ink/wgink/util/AddressUtil.java
@@ -0,0 +1,171 @@
+package ink.wgink.util;
+
+import java.net.InetAddress;
+import java.net.NetworkInterface;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.List;
+
+/**
+ * IP和MAC地址工具类
+ */
+public class AddressUtil {
+
+ /**
+ * 获取MAC地址,可能会为空
+ *
+ * @return
+ * @throws Exception
+ */
+ @Deprecated
+ public static final String getMacAddress() throws Exception {
+ InetAddress inetAddress = InetAddress.getLocalHost();
+ byte[] mac = NetworkInterface.getByInetAddress(inetAddress).getHardwareAddress();
+ StringBuilder macAddress = new StringBuilder();
+ for (byte macByte : mac) {
+ if (macAddress.length() > 0) {
+ macAddress.append("-");
+ }
+ int macInt = macByte & 0xff;
+ String str = Integer.toHexString(macInt);
+ macAddress.append(str.length() == 1 ? 0 + str : str);
+ }
+ return macAddress.toString().toUpperCase();
+ }
+
+ /**
+ * 此方法描述的是:获得服务器的IP地址
+ */
+ public static String getLocalIP() throws Exception {
+ String sIP = "";
+ InetAddress ip = null;
+ boolean bFindIP = false;
+ Enumeration netInterfaces = (Enumeration) NetworkInterface
+ .getNetworkInterfaces();
+ while (netInterfaces.hasMoreElements()) {
+ if (bFindIP) {
+ break;
+ }
+ NetworkInterface ni = (NetworkInterface) netInterfaces
+ .nextElement();
+
+ Enumeration ips = ni.getInetAddresses();
+ while (ips.hasMoreElements()) {
+ ip = (InetAddress) ips.nextElement();
+ if (!ip.isLoopbackAddress()
+ && ip.getHostAddress().matches(
+ "(\\d{1,3}\\.){3}\\d{1,3}")) {
+ bFindIP = true;
+ break;
+ }
+ }
+ }
+ if (null != ip) {
+ sIP = ip.getHostAddress();
+ }
+ return sIP;
+ }
+
+ /**
+ * 此方法描述的是:获得服务器的IP地址(多网卡)
+ */
+ public static List getLocalIPS() throws Exception {
+ InetAddress ip = null;
+ List ipList = new ArrayList();
+ Enumeration netInterfaces = (Enumeration) NetworkInterface
+ .getNetworkInterfaces();
+ while (netInterfaces.hasMoreElements()) {
+ NetworkInterface ni = (NetworkInterface) netInterfaces
+ .nextElement();
+ Enumeration ips = ni.getInetAddresses();
+ while (ips.hasMoreElements()) {
+ ip = (InetAddress) ips.nextElement();
+ if (!ip.isLoopbackAddress()
+ && ip.getHostAddress().matches(
+ "(\\d{1,3}\\.){3}\\d{1,3}")) {
+ ipList.add(ip.getHostAddress());
+ }
+ }
+ }
+ return ipList;
+ }
+
+ /**
+ * 获得服务器的MAC地址
+ */
+ public static String getMacId() throws Exception {
+ String macId = "";
+ InetAddress ip = null;
+ NetworkInterface ni = null;
+ boolean bFindIP = false;
+ Enumeration netInterfaces = (Enumeration) NetworkInterface
+ .getNetworkInterfaces();
+ while (netInterfaces.hasMoreElements()) {
+ if (bFindIP) {
+ break;
+ }
+ ni = (NetworkInterface) netInterfaces
+ .nextElement();
+ Enumeration ips = ni.getInetAddresses();
+ while (ips.hasMoreElements()) {
+ ip = (InetAddress) ips.nextElement();
+ // 非127.0.0.1
+ if (!ip.isLoopbackAddress()
+ && ip.getHostAddress().matches(
+ "(\\d{1,3}\\.){3}\\d{1,3}")) {
+ bFindIP = true;
+ break;
+ }
+ }
+ }
+ if (null != ip) {
+ macId = getMacFromBytes(ni.getHardwareAddress());
+ }
+ return macId;
+ }
+
+ /**
+ * 获得服务器的MAC地址(多网卡)
+ */
+ public static List getMacIds() throws Exception {
+ InetAddress ip = null;
+ NetworkInterface ni = null;
+ List macList = new ArrayList();
+ Enumeration netInterfaces = (Enumeration) NetworkInterface
+ .getNetworkInterfaces();
+ while (netInterfaces.hasMoreElements()) {
+ ni = (NetworkInterface) netInterfaces
+ .nextElement();
+ // ----------特定情况,可以考虑用ni.getName判断
+ // 遍历所有ip
+ Enumeration ips = ni.getInetAddresses();
+ while (ips.hasMoreElements()) {
+ ip = (InetAddress) ips.nextElement();
+ if (!ip.isLoopbackAddress() // 非127.0.0.1
+ && ip.getHostAddress().matches(
+ "(\\d{1,3}\\.){3}\\d{1,3}")) {
+ macList.add(getMacFromBytes(ni.getHardwareAddress()));
+ }
+ }
+ }
+ return macList;
+ }
+
+ private static String getMacFromBytes(byte[] bytes) {
+ StringBuffer mac = new StringBuffer();
+ byte currentByte;
+ boolean first = false;
+ for (byte b : bytes) {
+ if (first) {
+ mac.append("-");
+ }
+ currentByte = (byte) ((b & 240) >> 4);
+ mac.append(Integer.toHexString(currentByte));
+ currentByte = (byte) (b & 15);
+ mac.append(Integer.toHexString(currentByte));
+ first = true;
+ }
+ return mac.toString().toUpperCase();
+ }
+
+}
diff --git a/basic-util/src/main/java/ink/wgink/util/AesUtil.java b/basic-util/src/main/java/ink/wgink/util/AesUtil.java
new file mode 100644
index 00000000..199d5671
--- /dev/null
+++ b/basic-util/src/main/java/ink/wgink/util/AesUtil.java
@@ -0,0 +1,157 @@
+package ink.wgink.util;
+
+import org.apache.commons.codec.binary.Base64;
+import org.apache.commons.codec.binary.StringUtils;
+
+import javax.crypto.Cipher;
+import javax.crypto.KeyGenerator;
+import javax.crypto.SecretKey;
+import javax.crypto.spec.IvParameterSpec;
+import javax.crypto.spec.SecretKeySpec;
+import java.security.SecureRandom;
+import java.security.Security;
+
+public class AesUtil {
+
+ private static final String IV_STRING = "16-Bytes--String";
+ /**
+ * PKCS#7
+ */
+ public static final String PKCS_7 = "PKCS7Padding";
+ /**
+ * PKCS#5
+ */
+ public static final String PKCS_5 = "PKCS5Padding";
+
+ /**
+ * AES加密
+ *
+ * @param encodeRule
+ * @param content
+ * @return
+ * @throws Exception
+ */
+ public static String aesEncoder(String encodeRule, String content) throws Exception {
+ // 1.构造秘钥生成器
+ KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
+ // 2.根据编码规则构建秘钥生成器
+ SecureRandom random = SecureRandom.getInstance("SHA1PRNG");
+ random.setSeed(encodeRule.getBytes());
+ keyGenerator.init(128, random);
+ // 3.产生堆成秘钥
+ SecretKey secretKey = keyGenerator.generateKey();
+ // 4.对称秘钥原始数组
+ byte[] secretKeyByte = secretKey.getEncoded();
+ // 5.生成AES秘钥
+ SecretKey key = new SecretKeySpec(secretKeyByte, "AES");
+ // 6.初始化密码器
+ Cipher cipher = Cipher.getInstance("AES");
+ cipher.init(Cipher.ENCRYPT_MODE, key);
+ // 8.获取加密内容字节数组
+ byte[] contentByte = content.getBytes("UTF-8");
+ // 9.加密
+ return new String(Base64.encodeBase64(cipher.doFinal(contentByte)));
+ }
+
+ /**
+ * AES解密
+ *
+ * @param encodeRule
+ * @param content
+ * @return
+ * @throws Exception
+ */
+ public static String aesDecoder(String encodeRule, String content) throws Exception {
+ // 1.构建秘钥生成器
+ KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
+ // 2.根据编码规则构建秘钥生成器
+ SecureRandom random = SecureRandom.getInstance("SHA1PRNG");
+ random.setSeed(encodeRule.getBytes());
+ keyGenerator.init(128, random);
+ // 3.生成对称解密秘钥
+ SecretKey secretKey = keyGenerator.generateKey();
+ // 4.对称秘钥原始数组
+ byte[] secretKeyByte = secretKey.getEncoded();
+ // 5.生成AES秘钥
+ SecretKey key = new SecretKeySpec(secretKeyByte, "AES");
+ // 6.初始化密码器
+ Cipher cipher = Cipher.getInstance("AES");
+ cipher.init(Cipher.DECRYPT_MODE, key);
+ // 7.要解密内容的字节数组
+ byte[] contentByte = Base64.decodeBase64(content);
+ // 8.解密
+ return new String(cipher.doFinal(contentByte), "UTF-8");
+ }
+
+ /**
+ * 通用aes加密,兼容IOS
+ *
+ * @param key
+ * @param content
+ * @return
+ * @throws Exception
+ */
+ public static String aesCommonEncoder(String key, String content) throws Exception {
+ byte[] encryptedBytes = aesCommonEncodeDetail(key, content, IV_STRING.getBytes(), PKCS_5);
+ return new String(Base64.encodeBase64(encryptedBytes), "UTF-8");
+ }
+
+ /**
+ * 通用aes加密,兼容IOS
+ *
+ * @param key
+ * @param content
+ * @param paddingType
+ * @return
+ * @throws Exception
+ */
+ public static byte[] aesCommonEncodeDetail(String key, String content, byte[] ivBytes, String paddingType) throws Exception {
+ byte[] byteContent = content.getBytes("UTF-8");
+ byte[] enCodeFormat = key.getBytes();
+ SecretKeySpec secretKeySpec = new SecretKeySpec(enCodeFormat, "AES");
+ IvParameterSpec ivParameterSpec = new IvParameterSpec(ivBytes);
+ if (StringUtils.equals(paddingType, PKCS_7)) {
+ Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
+ }
+ Cipher cipher = Cipher.getInstance("AES/CBC/" + paddingType);
+ cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec, ivParameterSpec);
+ return cipher.doFinal(byteContent);
+ }
+
+ /**
+ * aes通用解密,兼容IOS
+ *
+ * @param key
+ * @param content
+ * @return
+ * @throws Exception
+ */
+ public static String aesCommonDecoder(String key, String content) throws Exception {
+ byte[] encryptedBytes = Base64.decodeBase64(content);
+ byte[] keyBytes = key.getBytes();
+ byte[] result = aesCommonDecoderDetail(keyBytes, encryptedBytes, IV_STRING.getBytes(), PKCS_5);
+ return new String(result, "UTF-8");
+ }
+
+ /**
+ * aes cbc 通用解密
+ *
+ * @param keyBytes 秘钥字节数组
+ * @param encryptedBytes 密文字节数组
+ * @param ivBytes 向量字节数组
+ * @param paddingType 填充类型
+ * @return
+ * @throws Exception
+ */
+ public static byte[] aesCommonDecoderDetail(byte[] keyBytes, byte[] encryptedBytes, byte[] ivBytes, String paddingType) throws Exception {
+ SecretKeySpec secretKey = new SecretKeySpec(keyBytes, "AES");
+ IvParameterSpec ivParameterSpec = new IvParameterSpec(ivBytes);
+ Cipher cipher;
+ if (StringUtils.equals(paddingType, PKCS_7)) {
+ Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
+ }
+ cipher = Cipher.getInstance("AES/CBC/" + paddingType);
+ cipher.init(Cipher.DECRYPT_MODE, secretKey, ivParameterSpec);
+ return cipher.doFinal(encryptedBytes);
+ }
+}
diff --git a/basic-util/src/main/java/ink/wgink/util/FolderUtil.java b/basic-util/src/main/java/ink/wgink/util/FolderUtil.java
new file mode 100644
index 00000000..689fc378
--- /dev/null
+++ b/basic-util/src/main/java/ink/wgink/util/FolderUtil.java
@@ -0,0 +1,26 @@
+package ink.wgink.util;
+
+import java.io.File;
+
+/**
+ * @ClassName: FolderUtil
+ * @Description: 文件夹工具
+ * @Author: WangGeng
+ * @Date: 2019-05-28 13:46
+ * @Version: 1.0
+ **/
+public class FolderUtil {
+
+ /**
+ * 创建文件夹
+ *
+ * @param folderPath
+ */
+ public static void createFolder(String folderPath) {
+ File folder = new File(folderPath);
+ if (folder.exists()) {
+ return;
+ }
+ folder.mkdirs();
+ }
+}
diff --git a/basic-util/src/main/java/ink/wgink/util/HtmlHelper.java b/basic-util/src/main/java/ink/wgink/util/HtmlHelper.java
new file mode 100644
index 00000000..699bf9f2
--- /dev/null
+++ b/basic-util/src/main/java/ink/wgink/util/HtmlHelper.java
@@ -0,0 +1,59 @@
+package ink.wgink.util;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+public class HtmlHelper {
+
+ /**
+ * 去除script
+ */
+ private static final Pattern P_SCRIPT = Pattern.compile("