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