From b1f6eded803531719005275065acc3f205b19298 Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Wed, 10 Mar 2021 17:55:07 +0800
Subject: [PATCH] 大屏web端用户增删改查初版

---
 screen-api/src/main/java/com/moral/api/entity/GroupMenu.java                       |    7 
 screen-api/src/main/java/com/moral/api/service/impl/GroupServiceImpl.java          |   37 +++
 screen-common/src/main/java/com/moral/redis/RedisUtil.java                         |   23 +
 screen-api/src/main/java/com/moral/api/service/GroupService.java                   |    4 
 screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java           |  130 +++++++++++
 screen-api/src/main/java/com/moral/api/controller/WebController.java               |  162 ++++++++++++++
 screen-api/src/main/java/com/moral/api/entity/ManageAccount.java                   |    7 
 screen-api/src/main/java/com/moral/api/interceptor/AuthenticationInterceptor.java  |   28 ++
 screen-api/pom.xml                                                                 |    5 
 screen-api/src/main/java/com/moral/api/config/Interceptor/WebAppConfiguration.java |   18 +
 screen-api/src/main/resources/application-dev.yml                                  |   35 ++
 screen-api/src/main/java/com/moral/api/service/UserService.java                    |   15 +
 screen-api/src/main/java/com/moral/api/entity/ManageLog.java                       |    5 
 screen-api/src/main/java/com/moral/api/entity/User.java                            |   21 +
 screen-api/src/main/java/com/moral/api/entity/UserGroup.java                       |    7 
 screen-api/src/main/java/com/moral/api/entity/OrganizationMenu.java                |    7 
 screen-api/src/main/resources/mapper/MenuMapper.xml                                |   24 +-
 screen-api/src/main/resources/mapper/UserMapper.xml                                |   20 +
 screen-api/src/main/java/com/moral/api/entity/ManageMenu.java                      |    7 
 screen-api/src/main/java/com/moral/api/entity/Menu.java                            |    7 
 screen-api/src/main/java/com/moral/api/entity/ManageAccountRole.java               |    7 
 screen-api/src/main/java/com/moral/api/entity/SysDictType.java                     |    7 
 screen-api/src/main/java/com/moral/api/entity/ManageRoleMenu.java                  |    7 
 screen-api/src/main/java/com/moral/api/entity/UserLog.java                         |    5 
 screen-api/src/main/java/com/moral/api/entity/ManageRole.java                      |    7 
 screen-api/src/main/java/com/moral/api/entity/Group.java                           |    7 
 screen-api/src/main/java/com/moral/api/entity/Organization.java                    |    9 
 screen-api/src/main/java/com/moral/api/mapper/UserMapper.java                      |    7 
 screen-api/src/main/java/com/moral/api/entity/SysDictData.java                     |    7 
 29 files changed, 555 insertions(+), 77 deletions(-)

diff --git a/screen-api/pom.xml b/screen-api/pom.xml
index 51edb55..7470fd8 100644
--- a/screen-api/pom.xml
+++ b/screen-api/pom.xml
@@ -16,6 +16,11 @@
             <artifactId>screen-common</artifactId>
             <version>1.0-SNAPSHOT</version>
         </dependency>
+        <dependency>
+            <groupId>javax.persistence</groupId>
+            <artifactId>persistence-api</artifactId>
+            <version>1.0</version>
+        </dependency>
     </dependencies>
 
     <build>
diff --git a/screen-api/src/main/java/com/moral/api/config/Interceptor/WebAppConfiguration.java b/screen-api/src/main/java/com/moral/api/config/Interceptor/WebAppConfiguration.java
new file mode 100644
index 0000000..99e60ac
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/config/Interceptor/WebAppConfiguration.java
@@ -0,0 +1,18 @@
+package com.moral.api.config.Interceptor;
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+import com.moral.api.interceptor.AuthenticationInterceptor;
+
+@Configuration
+public class WebAppConfiguration implements WebMvcConfigurer {
+
+    @Override
+    public void addInterceptors(InterceptorRegistry registry) {
+        registry.addInterceptor(new AuthenticationInterceptor())
+                .addPathPatterns("/**")
+                .excludePathPatterns("/**/login/**", "/**/logout/**", "/swagger-ui.html/**", "/swagger-resources/**");
+    }
+}
diff --git a/screen-api/src/main/java/com/moral/api/controller/WebController.java b/screen-api/src/main/java/com/moral/api/controller/WebController.java
new file mode 100644
index 0000000..2d7943b
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/controller/WebController.java
@@ -0,0 +1,162 @@
+package com.moral.api.controller;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+import java.util.List;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.moral.api.entity.Group;
+import com.moral.api.entity.User;
+import com.moral.api.service.GroupService;
+import com.moral.api.service.UserService;
+import com.moral.constant.ResultMessage;
+import com.moral.redis.RedisUtil;
+
+@Slf4j
+@Api(tags = {"������"})
+@RestController
+@RequestMapping("/api")
+public class WebController {
+
+    @Autowired
+    private UserService userService;
+
+    @Autowired
+    private GroupService groupService;
+
+    /**
+     * @param account  ������
+     * @param password ������
+     * @Auther jinpengyong
+     * @Description web������
+     */
+    @ApiOperation(value = "������", notes = "������")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "account", value = "������", required = true, paramType = "path", dataType = "String"),
+            @ApiImplicitParam(name = "password", value = "������", required = true, paramType = "path", dataType = "String")
+    })
+    @RequestMapping(value = "login/{account}/{password}", method = RequestMethod.GET)
+    public ResultMessage login(@PathVariable("account") String account, @PathVariable("password") String password) {
+        if (account == null || password == null) {
+            return ResultMessage.fail("���������������������������");
+        }
+        Map<String, Object> map = userService.login(account, password);
+        if (map.get("token") == null) {
+            return ResultMessage.fail(map.get("msg").toString());
+        }
+        return ResultMessage.ok(map.get("token"));
+    }
+
+    @ApiOperation(value = "������", notes = "������")
+    @RequestMapping(value = "logout", method = RequestMethod.POST)
+    public ResultMessage logout(HttpServletRequest request) {
+        String token = request.getHeader("token");
+        if (token == null) {
+            return ResultMessage.fail("���������");
+        }
+        RedisUtil.del(token);
+        return ResultMessage.ok();
+    }
+
+    @ApiOperation(value = "������������", notes = "������������")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "account", value = "������", required = true, paramType = "query", dataType = "String"),
+            @ApiImplicitParam(name = "password", value = "������", required = true, paramType = "query", dataType = "String"),
+            @ApiImplicitParam(name = "userName", value = "������������", required = false, paramType = "query", dataType = "String"),
+            @ApiImplicitParam(name = "email", value = "������", required = false, paramType = "query", dataType = "String"),
+            @ApiImplicitParam(name = "mobile", value = "���������", required = false, paramType = "query", dataType = "String"),
+            @ApiImplicitParam(name = "wechat", value = "������", required = false, paramType = "query", dataType = "String")
+    })
+    @RequestMapping(value = "addUser", method = RequestMethod.POST)
+    public ResultMessage addUser(User user, HttpServletRequest request) {
+        Integer currentUserId = Integer.parseInt(request.getHeader("uid"));
+        Map<String, Object> map = userService.addUser(user, currentUserId);
+        String msg = map.get("msg").toString();
+        boolean flag = Boolean.parseBoolean(map.get("flag").toString());
+        if (flag) {
+            return ResultMessage.ok(msg);
+        }
+        return ResultMessage.fail(msg);
+    }
+
+    @ApiOperation(value = "������������", notes = "������������")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "userId", value = "������id", required = true, paramType = "path", dataType = "String")
+    })
+    @RequestMapping(value = "deleteUser/{userId}", method = RequestMethod.GET)
+    public ResultMessage deleteUser(@PathVariable("userId") String userId, HttpServletRequest request) {
+        Integer currentUserId = Integer.parseInt(request.getHeader("uid"));
+        Map<String, Object> map = userService.deleteUser(Integer.parseInt(userId), currentUserId);
+        String msg = map.get("msg").toString();
+        boolean flag = Boolean.parseBoolean(map.get("flag").toString());
+        if (flag) {
+            return ResultMessage.ok(msg);
+        }
+        return ResultMessage.fail(msg);
+    }
+
+    @ApiOperation(value = "������������������", notes = "������������������")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "account", value = "������", required = false, paramType = "query", dataType = "String"),
+            @ApiImplicitParam(name = "password", value = "������", required = false, paramType = "query", dataType = "String"),
+            @ApiImplicitParam(name = "userName", value = "������������", required = false, paramType = "query", dataType = "String"),
+            @ApiImplicitParam(name = "email", value = "������", required = false, paramType = "query", dataType = "String"),
+            @ApiImplicitParam(name = "mobile", value = "���������", required = false, paramType = "query", dataType = "String"),
+            @ApiImplicitParam(name = "wechat", value = "������", required = false, paramType = "query", dataType = "String")
+    })
+    @RequestMapping(value = "updateUser", method = RequestMethod.POST)
+    public ResultMessage updateUser(User user, HttpServletRequest request) {
+        Integer currentUserId = Integer.parseInt(request.getHeader("uid"));
+        Map<String, Object> map = userService.updateUser(user, currentUserId);
+        String msg = map.get("msg").toString();
+        boolean flag = Boolean.parseBoolean(map.get("flag").toString());
+        if (flag) {
+            return ResultMessage.ok(msg);
+        }
+        return ResultMessage.fail(msg);
+    }
+
+    @ApiOperation(value = "������������������", notes = "������������������")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "userId", value = "������id", required = false, paramType = "path", dataType = "String")
+    })
+    @RequestMapping(value = "getUserInfo/{userId}", method = RequestMethod.GET)
+    public ResultMessage getUserInfo(@PathVariable("userId") String userId, HttpServletRequest request) {
+        Integer currentUserId = Integer.parseInt(request.getHeader("uid"));
+        if (userId == null) {
+            List<User> users = userService.getUsersByOrgId(currentUserId);
+            return ResultMessage.ok(users);
+        }
+        User user = userService.getUserById(Integer.parseInt(userId), currentUserId);
+        return ResultMessage.ok(user);
+    }
+
+    @ApiOperation(value = "���������", notes = "���������")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "groupName", value = "������", required = true, paramType = "query", dataType = "String")
+    })
+    @RequestMapping(value = "addGroup", method = RequestMethod.POST)
+    private ResultMessage addGroup(Group group, HttpServletRequest request) {
+        String currentUserId = request.getHeader("uid");
+        Map<String, Object> map = groupService.addGroup(group, currentUserId);
+        String msg = map.get("msg").toString();
+        boolean flag = Boolean.parseBoolean(map.get("flag").toString());
+        if (flag) {
+            return ResultMessage.ok(msg);
+        }
+        return ResultMessage.fail(msg);
+    }
+
+}
diff --git a/screen-api/src/main/java/com/moral/api/entity/Group.java b/screen-api/src/main/java/com/moral/api/entity/Group.java
index 445b31b..378b0e7 100644
--- a/screen-api/src/main/java/com/moral/api/entity/Group.java
+++ b/screen-api/src/main/java/com/moral/api/entity/Group.java
@@ -3,8 +3,9 @@
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import com.baomidou.mybatisplus.annotation.TableId;
-import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.util.Date;
+
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -41,12 +42,12 @@
     /**
      * ������������
      */
-    private LocalDateTime createTime;
+    private Date createTime;
 
     /**
      * ������������
      */
-    private LocalDateTime updateTime;
+    private Date updateTime;
 
     /**
      * ������������
diff --git a/screen-api/src/main/java/com/moral/api/entity/GroupMenu.java b/screen-api/src/main/java/com/moral/api/entity/GroupMenu.java
index 83bd929..7d4264d 100644
--- a/screen-api/src/main/java/com/moral/api/entity/GroupMenu.java
+++ b/screen-api/src/main/java/com/moral/api/entity/GroupMenu.java
@@ -3,8 +3,9 @@
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import com.baomidou.mybatisplus.annotation.TableId;
-import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.util.Date;
+
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -51,12 +52,12 @@
     /**
      * ������������
      */
-    private LocalDateTime createTime;
+    private Date createTime;
 
     /**
      * ������������
      */
-    private LocalDateTime updateTime;
+    private Date updateTime;
 
     /**
      * ������������
diff --git a/screen-api/src/main/java/com/moral/api/entity/ManageAccount.java b/screen-api/src/main/java/com/moral/api/entity/ManageAccount.java
index bac1a30..c796f6e 100644
--- a/screen-api/src/main/java/com/moral/api/entity/ManageAccount.java
+++ b/screen-api/src/main/java/com/moral/api/entity/ManageAccount.java
@@ -3,8 +3,9 @@
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import com.baomidou.mybatisplus.annotation.TableId;
-import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.util.Date;
+
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -61,12 +62,12 @@
     /**
      * ������������
      */
-    private LocalDateTime createTime;
+    private Date createTime;
 
     /**
      * ������������
      */
-    private LocalDateTime updateTime;
+    private Date updateTime;
 
     /**
      * ������������
diff --git a/screen-api/src/main/java/com/moral/api/entity/ManageAccountRole.java b/screen-api/src/main/java/com/moral/api/entity/ManageAccountRole.java
index 8522a8a..c3add8c 100644
--- a/screen-api/src/main/java/com/moral/api/entity/ManageAccountRole.java
+++ b/screen-api/src/main/java/com/moral/api/entity/ManageAccountRole.java
@@ -3,8 +3,9 @@
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import com.baomidou.mybatisplus.annotation.TableId;
-import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.util.Date;
+
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -41,12 +42,12 @@
     /**
      * ������������
      */
-    private LocalDateTime createTime;
+    private Date createTime;
 
     /**
      * ������������
      */
-    private LocalDateTime updateTime;
+    private Date updateTime;
 
     /**
      * ������������
diff --git a/screen-api/src/main/java/com/moral/api/entity/ManageLog.java b/screen-api/src/main/java/com/moral/api/entity/ManageLog.java
index 7b60d15..a305e3f 100644
--- a/screen-api/src/main/java/com/moral/api/entity/ManageLog.java
+++ b/screen-api/src/main/java/com/moral/api/entity/ManageLog.java
@@ -3,8 +3,9 @@
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import com.baomidou.mybatisplus.annotation.TableId;
-import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.util.Date;
+
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -51,7 +52,7 @@
     /**
      * ������������
      */
-    private LocalDateTime createTime;
+    private Date createTime;
 
 
     @Override
diff --git a/screen-api/src/main/java/com/moral/api/entity/ManageMenu.java b/screen-api/src/main/java/com/moral/api/entity/ManageMenu.java
index 68dc980..492ebaa 100644
--- a/screen-api/src/main/java/com/moral/api/entity/ManageMenu.java
+++ b/screen-api/src/main/java/com/moral/api/entity/ManageMenu.java
@@ -3,8 +3,9 @@
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import com.baomidou.mybatisplus.annotation.TableId;
-import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.util.Date;
+
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -56,12 +57,12 @@
     /**
      * ������������
      */
-    private LocalDateTime createTime;
+    private Date createTime;
 
     /**
      * ������������
      */
-    private LocalDateTime updateTime;
+    private Date updateTime;
 
     /**
      * ������������
diff --git a/screen-api/src/main/java/com/moral/api/entity/ManageRole.java b/screen-api/src/main/java/com/moral/api/entity/ManageRole.java
index c2ef650..a5a5497 100644
--- a/screen-api/src/main/java/com/moral/api/entity/ManageRole.java
+++ b/screen-api/src/main/java/com/moral/api/entity/ManageRole.java
@@ -3,8 +3,9 @@
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import com.baomidou.mybatisplus.annotation.TableId;
-import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.util.Date;
+
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -36,12 +37,12 @@
     /**
      * ������������
      */
-    private LocalDateTime createTime;
+    private Date createTime;
 
     /**
      * ������������
      */
-    private LocalDateTime updateTime;
+    private Date updateTime;
 
     /**
      * ������������
diff --git a/screen-api/src/main/java/com/moral/api/entity/ManageRoleMenu.java b/screen-api/src/main/java/com/moral/api/entity/ManageRoleMenu.java
index 122d9cb..29e6a4c 100644
--- a/screen-api/src/main/java/com/moral/api/entity/ManageRoleMenu.java
+++ b/screen-api/src/main/java/com/moral/api/entity/ManageRoleMenu.java
@@ -3,8 +3,9 @@
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import com.baomidou.mybatisplus.annotation.TableId;
-import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.util.Date;
+
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -41,12 +42,12 @@
     /**
      * ������������
      */
-    private LocalDateTime createTime;
+    private Date createTime;
 
     /**
      * ������������
      */
-    private LocalDateTime updateTime;
+    private Date updateTime;
 
     /**
      * ������������
diff --git a/screen-api/src/main/java/com/moral/api/entity/Menu.java b/screen-api/src/main/java/com/moral/api/entity/Menu.java
index 916591e..951d960 100644
--- a/screen-api/src/main/java/com/moral/api/entity/Menu.java
+++ b/screen-api/src/main/java/com/moral/api/entity/Menu.java
@@ -3,8 +3,9 @@
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import com.baomidou.mybatisplus.annotation.TableId;
-import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.util.Date;
+
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -56,12 +57,12 @@
     /**
      * ������������
      */
-    private LocalDateTime createTime;
+    private Date createTime;
 
     /**
      * ������������
      */
-    private LocalDateTime updateTime;
+    private Date updateTime;
 
     /**
      * ������������
diff --git a/screen-api/src/main/java/com/moral/api/entity/Organization.java b/screen-api/src/main/java/com/moral/api/entity/Organization.java
index 2dd7686..6121b58 100644
--- a/screen-api/src/main/java/com/moral/api/entity/Organization.java
+++ b/screen-api/src/main/java/com/moral/api/entity/Organization.java
@@ -3,8 +3,9 @@
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import com.baomidou.mybatisplus.annotation.TableId;
-import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.util.Date;
+
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -96,17 +97,17 @@
     /**
      * ������������
      */
-    private LocalDateTime createTime;
+    private Date createTime;
 
     /**
      * ������������
      */
-    private LocalDateTime updateTime;
+    private Date updateTime;
 
     /**
      * ������������
      */
-    private LocalDateTime expireTime;
+    private Date expireTime;
 
     /**
      * ������������
diff --git a/screen-api/src/main/java/com/moral/api/entity/OrganizationMenu.java b/screen-api/src/main/java/com/moral/api/entity/OrganizationMenu.java
index 4e8f5d8..435beba 100644
--- a/screen-api/src/main/java/com/moral/api/entity/OrganizationMenu.java
+++ b/screen-api/src/main/java/com/moral/api/entity/OrganizationMenu.java
@@ -3,8 +3,9 @@
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import com.baomidou.mybatisplus.annotation.TableId;
-import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.util.Date;
+
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -46,12 +47,12 @@
     /**
      * ������������
      */
-    private LocalDateTime createTime;
+    private Date createTime;
 
     /**
      * ������������
      */
-    private LocalDateTime updateTime;
+    private Date updateTime;
 
     /**
      * ������������
diff --git a/screen-api/src/main/java/com/moral/api/entity/SysDictData.java b/screen-api/src/main/java/com/moral/api/entity/SysDictData.java
index e7f9f52..11d6903 100644
--- a/screen-api/src/main/java/com/moral/api/entity/SysDictData.java
+++ b/screen-api/src/main/java/com/moral/api/entity/SysDictData.java
@@ -3,9 +3,10 @@
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import com.baomidou.mybatisplus.annotation.TableId;
-import java.time.LocalDateTime;
 import com.baomidou.mybatisplus.annotation.TableField;
 import java.io.Serializable;
+import java.util.Date;
+
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -59,12 +60,12 @@
     /**
      * ������������
      */
-    private LocalDateTime createTime;
+    private Date createTime;
 
     /**
      * ������������
      */
-    private LocalDateTime updateTime;
+    private Date updateTime;
 
     /**
      * ������������
diff --git a/screen-api/src/main/java/com/moral/api/entity/SysDictType.java b/screen-api/src/main/java/com/moral/api/entity/SysDictType.java
index caa52d7..e0636a0 100644
--- a/screen-api/src/main/java/com/moral/api/entity/SysDictType.java
+++ b/screen-api/src/main/java/com/moral/api/entity/SysDictType.java
@@ -3,8 +3,9 @@
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import com.baomidou.mybatisplus.annotation.TableId;
-import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.util.Date;
+
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -41,12 +42,12 @@
     /**
      * ������������
      */
-    private LocalDateTime createTime;
+    private Date createTime;
 
     /**
      * ������������
      */
-    private LocalDateTime updateTime;
+    private Date updateTime;
 
     /**
      * ������������
diff --git a/screen-api/src/main/java/com/moral/api/entity/User.java b/screen-api/src/main/java/com/moral/api/entity/User.java
index 9e744ab..4df8c9f 100644
--- a/screen-api/src/main/java/com/moral/api/entity/User.java
+++ b/screen-api/src/main/java/com/moral/api/entity/User.java
@@ -1,12 +1,18 @@
 package com.moral.api.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import com.baomidou.mybatisplus.annotation.TableId;
-import java.time.LocalDateTime;
+
 import java.io.Serializable;
+import java.util.Date;
+import java.util.Set;
+
 import lombok.Data;
 import lombok.EqualsAndHashCode;
+
+
 
 /**
  * <p>
@@ -71,17 +77,17 @@
     /**
      * ������������
      */
-    private LocalDateTime createTime;
+    private Date createTime;
 
     /**
      * ������������
      */
-    private LocalDateTime updateTime;
+    private Date updateTime;
 
     /**
      * ������������
      */
-    private LocalDateTime expireTime;
+    private Date expireTime;
 
     /**
      * ������������
@@ -89,6 +95,13 @@
     private String isDelete;
 
 
+    @TableField(exist = false)
+    private Set<Group> groups;
+
+    @TableField(exist = false)
+    private Set<Menu> menus;
+
+
     @Override
     protected Serializable pkVal() {
         return this.id;
diff --git a/screen-api/src/main/java/com/moral/api/entity/UserGroup.java b/screen-api/src/main/java/com/moral/api/entity/UserGroup.java
index a595662..96b99bb 100644
--- a/screen-api/src/main/java/com/moral/api/entity/UserGroup.java
+++ b/screen-api/src/main/java/com/moral/api/entity/UserGroup.java
@@ -3,8 +3,9 @@
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import com.baomidou.mybatisplus.annotation.TableId;
-import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.util.Date;
+
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -46,12 +47,12 @@
     /**
      * ������������
      */
-    private LocalDateTime createTime;
+    private Date createTime;
 
     /**
      * ������������
      */
-    private LocalDateTime updateTime;
+    private Date updateTime;
 
     /**
      * ������������
diff --git a/screen-api/src/main/java/com/moral/api/entity/UserLog.java b/screen-api/src/main/java/com/moral/api/entity/UserLog.java
index 3a34664..259a1eb 100644
--- a/screen-api/src/main/java/com/moral/api/entity/UserLog.java
+++ b/screen-api/src/main/java/com/moral/api/entity/UserLog.java
@@ -3,8 +3,9 @@
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import com.baomidou.mybatisplus.annotation.TableId;
-import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.util.Date;
+
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -51,7 +52,7 @@
     /**
      * ������������
      */
-    private LocalDateTime createTime;
+    private Date createTime;
 
 
     @Override
diff --git a/screen-api/src/main/java/com/moral/api/interceptor/AuthenticationInterceptor.java b/screen-api/src/main/java/com/moral/api/interceptor/AuthenticationInterceptor.java
new file mode 100644
index 0000000..03fae5d
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/interceptor/AuthenticationInterceptor.java
@@ -0,0 +1,28 @@
+package com.moral.api.interceptor;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.springframework.stereotype.Component;
+import org.springframework.web.method.HandlerMethod;
+import org.springframework.web.servlet.HandlerInterceptor;
+
+import com.moral.redis.RedisUtil;
+
+@Component
+public class AuthenticationInterceptor implements HandlerInterceptor {
+
+    @Override
+    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
+        request.getSession();
+        if (!(handler instanceof HandlerMethod)) {
+            return true;
+        }
+        String token = request.getHeader("token");
+        if (token != null) {
+            return RedisUtil.hasKey(token);
+        }
+        return false;
+
+    }
+}
diff --git a/screen-api/src/main/java/com/moral/api/mapper/UserMapper.java b/screen-api/src/main/java/com/moral/api/mapper/UserMapper.java
index 16631cf..db186d8 100644
--- a/screen-api/src/main/java/com/moral/api/mapper/UserMapper.java
+++ b/screen-api/src/main/java/com/moral/api/mapper/UserMapper.java
@@ -1,5 +1,9 @@
 package com.moral.api.mapper;
 
+import java.util.Set;
+
+import com.moral.api.entity.Group;
+import com.moral.api.entity.Menu;
 import com.moral.api.entity.User;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
@@ -13,4 +17,7 @@
  */
 public interface UserMapper extends BaseMapper<User> {
 
+    Set<Group> selectUserGroup(int userId);
+
+    Set<Menu> selectUserMenu(int userId);
 }
diff --git a/screen-api/src/main/java/com/moral/api/service/GroupService.java b/screen-api/src/main/java/com/moral/api/service/GroupService.java
index dd47048..56fe317 100644
--- a/screen-api/src/main/java/com/moral/api/service/GroupService.java
+++ b/screen-api/src/main/java/com/moral/api/service/GroupService.java
@@ -1,5 +1,7 @@
 package com.moral.api.service;
 
+import java.util.Map;
+
 import com.moral.api.entity.Group;
 import com.baomidou.mybatisplus.extension.service.IService;
 
@@ -13,4 +15,6 @@
  */
 public interface GroupService extends IService<Group> {
 
+    Map<String, Object> addGroup(Group group, String currentUserId);
+
 }
diff --git a/screen-api/src/main/java/com/moral/api/service/UserService.java b/screen-api/src/main/java/com/moral/api/service/UserService.java
index edcb767..242936d 100644
--- a/screen-api/src/main/java/com/moral/api/service/UserService.java
+++ b/screen-api/src/main/java/com/moral/api/service/UserService.java
@@ -1,5 +1,9 @@
 package com.moral.api.service;
 
+
+import java.util.List;
+import java.util.Map;
+
 import com.moral.api.entity.User;
 import com.baomidou.mybatisplus.extension.service.IService;
 
@@ -13,4 +17,15 @@
  */
 public interface UserService extends IService<User> {
 
+    Map<String, Object> login(String account, String password);
+
+    Map<String, Object> addUser(User user, Integer currentUserId);
+
+    Map<String, Object> deleteUser(Integer userId, Integer currentUserId);
+
+    Map<String, Object> updateUser(User user, Integer currentUserId);
+
+    List<User> getUsersByOrgId(Integer currentUserId);
+
+    User getUserById(Integer userId, Integer currentUserId);
 }
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/GroupServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/GroupServiceImpl.java
index ac9d7c7..59f014e 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/GroupServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/GroupServiceImpl.java
@@ -1,9 +1,17 @@
 package com.moral.api.service.impl;
 
+import java.util.HashMap;
+import java.util.Map;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.moral.api.entity.Group;
+import com.moral.api.entity.User;
 import com.moral.api.mapper.GroupMapper;
+import com.moral.api.mapper.UserMapper;
 import com.moral.api.service.GroupService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 /**
@@ -17,4 +25,33 @@
 @Service
 public class GroupServiceImpl extends ServiceImpl<GroupMapper, Group> implements GroupService {
 
+    @Autowired
+    private GroupMapper groupMapper;
+
+    @Autowired
+    private UserMapper userMapper;
+
+    @Override
+    public Map<String, Object> addGroup(Group group, String currentUserId) {
+        Map<String, Object> resultMap = new HashMap<>();
+        User currentUser = userMapper.selectById(currentUserId);
+        if (!currentUser.getIsAdmin()) {
+            resultMap.put("flag", false);
+            resultMap.put("msg", "���������������������������");
+            return resultMap;
+        }
+        Integer orgId = currentUser.getOrganizationId();
+        QueryWrapper<Group> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("group_name", group.getGroupName()).eq("organization_id", orgId);
+        if (groupMapper.selectOne(queryWrapper) == null) {
+            group.setOrganizationId(orgId);
+            groupMapper.insert(group);
+            resultMap.put("flag", true);
+            resultMap.put("msg", "������������");
+        } else {
+            resultMap.put("flag", false);
+            resultMap.put("msg", "���������������������������");
+        }
+        return resultMap;
+    }
 }
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java
index 24a141e..2b73e59 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java
@@ -1,9 +1,26 @@
 package com.moral.api.service.impl;
 
+import io.swagger.models.auth.In;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.moral.api.entity.Group;
+import com.moral.api.entity.Menu;
 import com.moral.api.entity.User;
+
 import com.moral.api.mapper.UserMapper;
 import com.moral.api.service.UserService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.moral.redis.RedisUtil;
+
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 /**
@@ -17,4 +34,117 @@
 @Service
 public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
 
+    @Autowired
+    private UserMapper userMapper;
+
+    @Override
+    public Map<String, Object> login(String account, String password) {
+        Map<String, Object> resultMap = new HashMap<>();
+        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("account", account).eq("password", password).eq("is_Delete", "0");
+        User user = userMapper.selectOne(queryWrapper);
+        String msg;
+        String token = null;
+        if (user == null) {
+            msg = "������������������������";
+        } else if (user.getExpireTime() != null && user.getExpireTime().getTime() < System.currentTimeMillis()) {
+            msg = "���������������������";
+        } else {
+            msg = "������������";
+            token = user.getId() + "-" + UUID.randomUUID().toString().replaceAll("-", "");
+            Set<Group> groups = userMapper.selectUserGroup(user.getId());
+            Set<Menu> menus = userMapper.selectUserMenu(user.getId());
+            user.setGroups(groups);
+            user.setMenus(menus);
+            RedisUtil.set(token, user, 1296000);
+        }
+        resultMap.put("token", token);
+        resultMap.put("msg", msg);
+        return resultMap;
+    }
+
+    @Override
+    public Map<String, Object> addUser(User user, Integer userId) {
+        Map<String, Object> resultMap = new HashMap<>();
+        User currentUser = userMapper.selectById(userId);
+        if (!currentUser.getIsAdmin()) {
+            resultMap.put("flag", false);
+            resultMap.put("msg", "���������������������������");
+            return resultMap;
+        }
+        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("account", user.getAccount());
+        userMapper.selectOne(queryWrapper);
+        if (userMapper.selectOne(queryWrapper) == null) {
+            user.setOrganizationId(currentUser.getOrganizationId());
+            user.setExpireTime(currentUser.getExpireTime());
+            userMapper.insert(user);
+            resultMap.put("flag", true);
+            resultMap.put("msg", "������������");
+        } else {
+            resultMap.put("flag", false);
+            resultMap.put("msg", "���������������������������������");
+        }
+        return resultMap;
+    }
+
+    @Override
+    public Map<String, Object> deleteUser(Integer userId, Integer currentUserId) {
+        Map<String, Object> resultMap = new HashMap<>();
+        User currentUser = userMapper.selectById(currentUserId);
+        if (!currentUser.getIsAdmin()) {
+            resultMap.put("flag", false);
+            resultMap.put("msg", "���������������������������");
+        } else {
+            User user = new User();
+            user.setId(userId);
+            user.setIsDelete("1");
+            userMapper.updateById(user);
+            resultMap.put("flag", true);
+            resultMap.put("msg", "������������");
+        }
+        return resultMap;
+    }
+
+    @Override
+    public Map<String, Object> updateUser(User user, Integer currentUserId) {
+        Map<String, Object> resultMap = new HashMap<>();
+        User currentUser = userMapper.selectById(currentUserId);
+        if (!currentUser.getIsAdmin()) {
+            resultMap.put("flag", false);
+            resultMap.put("msg", "���������������������������");
+            return resultMap;
+        }
+        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("account", user.getAccount());
+        if (userMapper.selectOne(queryWrapper) == null) {
+            userMapper.updateById(user);
+            resultMap.put("flag", true);
+            resultMap.put("msg", "������������");
+        } else {
+            resultMap.put("flag", false);
+            resultMap.put("msg", "������������������������������");
+        }
+        return resultMap;
+    }
+
+    @Override
+    public List<User> getUsersByOrgId(Integer currentUserId) {
+        User currentUser = userMapper.selectById(currentUserId);
+        if (!currentUser.getIsAdmin()) {
+            return null;
+        }
+        Map<String, Object> queryMap = new HashMap<>();
+        queryMap.put("organizationId", currentUser.getOrganizationId());
+        return userMapper.selectByMap(queryMap);
+    }
+
+    @Override
+    public User getUserById(Integer userId, Integer currentUserId) {
+        User currentUser = userMapper.selectById(currentUserId);
+        if (!currentUser.getIsAdmin()) {
+            return null;
+        }
+        return userMapper.selectById(userId);
+    }
 }
diff --git a/screen-api/src/main/resources/application-dev.yml b/screen-api/src/main/resources/application-dev.yml
index 67627c3..082c9dc 100644
--- a/screen-api/src/main/resources/application-dev.yml
+++ b/screen-api/src/main/resources/application-dev.yml
@@ -20,9 +20,9 @@
       #nodes: 47.112.126.78:7001,47.112.126.78:7002,47.112.126.132:7003,47.112.126.132:7004,47.112.132.193:7005,47.112.132.193:7006
     #password: test
     #timeout: 500
-      host: 127.0.0.1
+    host: 39.97.177.149
       port: 6379
-      password: 123456
+      password: chenkaiyu111
       timeout: 30000
       jedis:
         pool:
@@ -36,6 +36,18 @@
           max-idle: 64
           max-wait: 30000
           min-idle: 32
+  tokenRedis:
+    host: 39.97.177.149
+    port: 6379
+    password: chenkaiyu111
+    timeout: 30000
+    database: 14
+    pool:
+      max-active: 256
+      max-wait: 30000
+      max-idle: 64
+      min-idle: 32
+
   datasource:
     minIdle: 1
     time-between-eviction-runs-millis: 60000
@@ -45,8 +57,9 @@
     filters: stat
     type: com.alibaba.druid.pool.DruidDataSource
     max-wait: 60000
-    url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC
-    password: 123456
+    url: jdbc:mysql://39.97.177.149:3306/moral?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC
+    username: root
+    password: chenkaiyu111
     test-on-borrow: false
     sql-script-encoding: utf-8
     pool-prepared-statements: true
@@ -55,7 +68,6 @@
     driver-class-name: com.mysql.cj.jdbc.Driver
     max-conn-lifetime-millis: 20
     test-on-return: false
-    username: root
 
 mybatis-plus:
   mapper-locations: classpath:mapper/*.xml
@@ -84,7 +96,7 @@
         commit: false
     group:
       id: test
-    servers: 192.168.0.16:9092,192.168.0.17:9092,192.168.0.18:9092
+    servers: 192.168.0.191:9092
     session:
       timeout: 6000
     topic: test_topic
@@ -98,4 +110,13 @@
     linger: 1
     retries: 0
     servers: 192.168.0.16:9092,192.168.0.17:9092,192.168.0.18:9092
-
+mvc:
+  interceptor:
+    exclude:
+      - /account/login
+AES:
+  KEY:
+    AD42F7787B035B7580000EF93BE20BAD
+TOKEN:
+  KEY:
+    foh3wi2ooghiCh5
\ No newline at end of file
diff --git a/screen-api/src/main/resources/mapper/MenuMapper.xml b/screen-api/src/main/resources/mapper/MenuMapper.xml
index 556ddc0..93e8258 100644
--- a/screen-api/src/main/resources/mapper/MenuMapper.xml
+++ b/screen-api/src/main/resources/mapper/MenuMapper.xml
@@ -2,17 +2,17 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.moral.api.mapper.MenuMapper">
 
-        <!-- ������������������������ -->
-        <resultMap id="BaseResultMap" type="com.moral.api.entity.Menu">
-                    <id column="id" property="id" />
-                    <result column="name" property="name" />
-                    <result column="url" property="url" />
-                    <result column="icon" property="icon" />
-                    <result column="parent_id" property="parentId" />
-                    <result column="order" property="order" />
-                    <result column="create_time" property="createTime" />
-                    <result column="update_time" property="updateTime" />
-                    <result column="is_delete" property="isDelete" />
-        </resultMap>
+    <!-- ������������������������ -->
+    <resultMap id="BaseResultMap" type="com.moral.api.entity.Menu">
+        <id column="id" property="id"/>
+        <result column="name" property="name"/>
+        <result column="url" property="url"/>
+        <result column="icon" property="icon"/>
+        <result column="parent_id" property="parentId"/>
+        <result column="order" property="order"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="is_delete" property="isDelete"/>
+    </resultMap>
 
 </mapper>
\ No newline at end of file
diff --git a/screen-api/src/main/resources/mapper/UserMapper.xml b/screen-api/src/main/resources/mapper/UserMapper.xml
index 0df6370..14cd3a9 100644
--- a/screen-api/src/main/resources/mapper/UserMapper.xml
+++ b/screen-api/src/main/resources/mapper/UserMapper.xml
@@ -19,4 +19,24 @@
                     <result column="is_delete" property="isDelete" />
         </resultMap>
 
+    <select id="selectUserGroup" resultType="com.moral.api.entity.Group">
+        SELECT g.*
+        FROM `group` g,`user_group` ug
+        WHERE ug.user_id = #{userId}
+        AND ug.group_id = g.id
+        AND g.is_delete = 0
+        AND ug.is_delete = 0
+    </select>
+
+    <select id="selectUserMenu" resultType="com.moral.api.entity.Menu">
+        SELECT DISTINCT m.*
+        FROM `user_group` ug,`group_menu` gm,`menu` m
+        WHERE ug.user_id = #{userId}
+        and ug.group_id = gm.group_id
+        and gm.menu_id = m.id
+        and ug.is_delete = 0
+        and gm.is_delete = 0
+        and m.is_delete = 0
+        ORDER  by m.`order`
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/screen-common/src/main/java/com/moral/redis/RedisUtil.java b/screen-common/src/main/java/com/moral/redis/RedisUtil.java
index f39cc12..f8757c6 100644
--- a/screen-common/src/main/java/com/moral/redis/RedisUtil.java
+++ b/screen-common/src/main/java/com/moral/redis/RedisUtil.java
@@ -2,6 +2,7 @@
 
 
 import com.moral.util.SpringContextUtils;
+
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.util.CollectionUtils;
 
@@ -17,15 +18,16 @@
     private static RedisTemplate redisTemplate = SpringContextUtils.getBeanByName("redisTemplate");
 
     // =============================common============================
+
     /**
      * ������������������������key
      *
      * @param: key
      * @param: time
-     * @return:  boolean
+     * @return: boolean
      * @author: wuqp
      * @date: 2021/02/24 9:46
-    */
+     */
     public static boolean expire(String key, long time) {
         try {
             if (time > 0) {
@@ -43,7 +45,7 @@
      *
      * @param: key
      * @param: time
-     * @return:  long
+     * @return: long
      * @author: wuqp
      * @date: 2021/02/24 9:46
      */
@@ -55,11 +57,11 @@
      * ������key
      *
      * @param: key
-     * @return:  boolean
+     * @return: boolean
      * @author: wuqp
      * @date: 2021/02/24 9:46
      */
-    public boolean hasKey(String key) {
+    public static boolean hasKey(String key) {
         try {
             return redisTemplate.hasKey(key);
         } catch (Exception e) {
@@ -73,12 +75,12 @@
      *
      * @param: key
      * @param: time
-     * @return:  boolean
+     * @return: boolean
      * @author: wuqp
      * @date: 2021/02/24 9:46
      */
     @SuppressWarnings("unchecked")
-    public void del(String... key) {
+    public static void del(String... key) {
         if (key != null && key.length > 0) {
             if (key.length == 1) {
                 redisTemplate.delete(key[0]);
@@ -89,12 +91,13 @@
     }
 
     // ============================String=============================
+
     /**
      * ������string���������������
      *
      * @param: key
      * @param: time
-     * @return:  Object
+     * @return: Object
      * @author: wuqp
      * @date: 2021/02/24 9:46
      */
@@ -107,7 +110,7 @@
      *
      * @param: key
      * @param: value
-     * @return:  boolean
+     * @return: boolean
      * @author: wuqp
      * @date: 2021/02/24 9:46
      */
@@ -127,7 +130,7 @@
      * @param: key
      * @param: value
      * @param: time
-     * @return:  boolean
+     * @return: boolean
      * @author: wuqp
      * @date: 2021/02/24 9:46
      */

--
Gitblit v1.8.0