From 511fbc6392d46828284bd72b47966ef217893275 Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Wed, 17 Mar 2021 17:37:44 +0800
Subject: [PATCH] 登陆修改
---
screen-api/src/main/resources/mapper/GroupMapper.xml | 1
screen-api/src/main/resources/mapper/UserMapper.xml | 30 +++++
/dev/null | 82 -------------
screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java | 8
screen-api/src/main/java/com/moral/api/service/UserService.java | 5
screen-api/src/main/java/com/moral/api/controller/LoginController.java | 113 ++++++++++++++++++
screen-api/src/main/java/com/moral/api/mapper/UserMapper.java | 2
screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java | 94 ++++++---------
screen-api/src/main/java/com/moral/api/controller/UserController.java | 5
screen-api/src/main/java/com/moral/api/entity/User.java | 8 +
screen-api/src/main/java/com/moral/api/mapper/GroupMapper.java | 2
screen-api/src/main/java/com/moral/api/interceptor/AuthenticationInterceptor.java | 6
12 files changed, 206 insertions(+), 150 deletions(-)
diff --git a/screen-api/src/main/java/com/moral/api/controller/LoginController.java b/screen-api/src/main/java/com/moral/api/controller/LoginController.java
new file mode 100644
index 0000000..0628f31
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/controller/LoginController.java
@@ -0,0 +1,113 @@
+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.Map;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+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.ResponseCodeEnum;
+import com.moral.constant.ResultMessage;
+import com.moral.util.AESUtils;
+import com.moral.util.MD5Utils;
+import com.moral.util.TokenUtils;
+import com.moral.util.WebUtils;
+
+@Slf4j
+@Api(tags = {"������"})
+@RestController
+public class LoginController {
+
+ @Autowired
+ private UserService userService;
+
+ @Autowired
+ private GroupService groupService;
+
+ @Value("${AES.KEY}")
+ private String AESKey;
+
+ @ApiOperation(value = "������", notes = "������")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "account", value = "������", required = false, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "password", value = "������", required = false, paramType = "query", dataType = "String")
+ })
+ @RequestMapping(value = "login", method = RequestMethod.POST)
+ public ResultMessage login(HttpServletRequest request) {
+ Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null);
+ if (!(parameters.containsKey("account") && parameters.containsKey("password"))) {
+ return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+ }
+ //������������
+ String password = parameters.get("password").toString();
+ //������������
+ password = AESUtils.decrypt(password, AESKey);
+
+ User user = userService.selectUserInfo(parameters);
+ //������������
+ if (user == null) {
+ return ResultMessage.fail(ResponseCodeEnum.ACCOUNT_NOT_EXIST.getCode(), ResponseCodeEnum.ACCOUNT_NOT_EXIST.getMsg());
+ }
+ //������������
+ if (!MD5Utils.saltMD5Verify(password, user.getPassword())) {
+ return ResultMessage.fail(ResponseCodeEnum.PASSWORD_INVALID.getCode(), ResponseCodeEnum.PASSWORD_INVALID.getMsg());
+ }
+ //������������������
+ if ("1".equals(user.getIsDelete())) {
+ return ResultMessage.fail(ResponseCodeEnum.ACCOUNT_IS_DELETE.getCode(), ResponseCodeEnum.ACCOUNT_IS_DELETE.getMsg());
+ }
+ //������������������
+ if (user.getExpireTime() != null && user.getExpireTime().getTime() < System.currentTimeMillis()) {
+ return ResultMessage.fail(ResponseCodeEnum.ACCOUNT_IS_EXPIRE.getCode(), ResponseCodeEnum.ACCOUNT_IS_EXPIRE.getMsg());
+ }
+ Map<String, Object> result = userService.login(user);
+ if (!result.containsKey("token")) {
+ return ResultMessage.fail(ResponseCodeEnum.TOKEN_CREATE_ERROR.getCode(), ResponseCodeEnum.TOKEN_CREATE_ERROR.getMsg());
+ }
+ return ResultMessage.ok();
+ }
+
+ @ApiOperation(value = "������", notes = "������")
+ @RequestMapping(value = "logout", method = RequestMethod.POST)
+ public ResultMessage logout(HttpServletRequest request) {
+ Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null);
+ if (!parameters.containsKey("uid")) {
+ return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+ }
+ String userId = request.getParameter("uid");
+ String token = request.getHeader("token");
+ TokenUtils.destoryToken(userId, token);
+ return ResultMessage.ok();
+ }
+
+ @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/controller/UserController.java b/screen-api/src/main/java/com/moral/api/controller/UserController.java
index 1f3f6a8..12b071a 100644
--- a/screen-api/src/main/java/com/moral/api/controller/UserController.java
+++ b/screen-api/src/main/java/com/moral/api/controller/UserController.java
@@ -17,6 +17,7 @@
import com.moral.api.entity.User;
import com.moral.api.service.UserService;
+import com.moral.constant.ResponseCodeEnum;
import com.moral.constant.ResultMessage;
import com.moral.util.WebUtils;
@@ -43,10 +44,12 @@
public ResultMessage addUser(User user, HttpServletRequest request) {
Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null);
if (!(parameters.containsKey("account") && parameters.containsKey("password"))) {
- return ResultMessage.fail("���������������������������������");
+ return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
}
String token = request.getHeader("token");
Map<String, Object> map = userService.addUser(user, token);
+
+
if (map.containsKey("msg")) {
return ResultMessage.fail(map.get("msg").toString());
}
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
deleted file mode 100644
index 73a11d1..0000000
--- a/screen-api/src/main/java/com/moral/api/controller/WebController.java
+++ /dev/null
@@ -1,82 +0,0 @@
-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.service.GroupService;
-import com.moral.api.service.UserService;
-import com.moral.constant.ResultMessage;
-import com.moral.util.TokenUtils;
-import com.moral.util.WebUtils;
-
-@Slf4j
-@Api(tags = {"������"})
-@RestController
-@RequestMapping("/api")
-public class WebController {
-
- @Autowired
- private UserService userService;
-
- @Autowired
- private GroupService groupService;
-
- @ApiOperation(value = "������", notes = "������")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "account", value = "������", required = false, paramType = "query", dataType = "String"),
- @ApiImplicitParam(name = "password", value = "������", required = false, paramType = "query", dataType = "String")
- })
- @RequestMapping(value = "login", method = RequestMethod.POST)
- public ResultMessage login(HttpServletRequest request) {
- Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null);
- if (!(parameters.containsKey("account") && parameters.containsKey("password"))) {
- return ResultMessage.fail("���������������������������������");
- }
- Map<String, Object> map = userService.login(parameters);
- if (map.get("token") == null) {
- return ResultMessage.fail(map.get("msg").toString());
- }
- return ResultMessage.ok(map);
- }
-
- @ApiOperation(value = "������", notes = "������")
- @RequestMapping(value = "logout", method = RequestMethod.POST)
- public ResultMessage logout(HttpServletRequest request) {
- String userId = request.getHeader("uid");
- String token = request.getHeader("token");
- TokenUtils.destoryToken(userId, token);
- return ResultMessage.ok();
- }
-
- @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/User.java b/screen-api/src/main/java/com/moral/api/entity/User.java
index e0d33e1..4d31a77 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
@@ -7,11 +7,13 @@
import java.io.Serializable;
import java.util.Date;
+import java.util.List;
import java.util.Set;
import lombok.Data;
import lombok.EqualsAndHashCode;
+import javax.persistence.Transient;
/**
@@ -94,6 +96,12 @@
*/
private String isDelete;
+ @Transient
+ private Organization organization;
+
+ @Transient
+ private List<Group> groups;
+
@Override
protected Serializable pkVal() {
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
index 38ed4bc..74e3059 100644
--- a/screen-api/src/main/java/com/moral/api/interceptor/AuthenticationInterceptor.java
+++ b/screen-api/src/main/java/com/moral/api/interceptor/AuthenticationInterceptor.java
@@ -15,10 +15,10 @@
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
- /*if (!(handler instanceof HandlerMethod)) {
+ if (!(handler instanceof HandlerMethod)) {
return true;
}
- String token = form.getHeader("token");
+ String token = request.getHeader("token");
if (token == null) {
return false;
}
@@ -29,7 +29,7 @@
TokenUtils.extendTokenTime(token);
} catch (Exception e) {
return false;
- }*/
+ }
return true;
}
}
diff --git a/screen-api/src/main/java/com/moral/api/mapper/GroupMapper.java b/screen-api/src/main/java/com/moral/api/mapper/GroupMapper.java
index 12dc29d..f5c628d 100644
--- a/screen-api/src/main/java/com/moral/api/mapper/GroupMapper.java
+++ b/screen-api/src/main/java/com/moral/api/mapper/GroupMapper.java
@@ -16,6 +16,6 @@
*/
public interface GroupMapper extends BaseMapper<Group> {
- List<Map<String, Object>> selectUserGroup(int userId);
+ List<Map<String, Object>> selectUserGroup(Map<String, Object> parameters);
}
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 d92b69a..87be9a9 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
@@ -17,4 +17,6 @@
public interface UserMapper extends BaseMapper<User> {
List<Map<String, Object>> selectUsers(Map<String, Object> parameters);
+
+ User selectUserInfo(Map<String, Object> parameters);
}
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 1e55aeb..8821b4c 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
@@ -17,7 +17,7 @@
*/
public interface UserService extends IService<User> {
- Map<String, Object> login(Map<String, Object> parameters);
+ Map<String, Object> login(User user);
Map<String, Object> addUser(User user, String token);
@@ -27,4 +27,7 @@
Map<String, Object> getUsers(Map<String, Object> parameters);
+ User selectUserInfo(Map<String, Object> parameters);
+
+
}
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 8950238..4a1b6f2 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
@@ -10,7 +10,9 @@
import java.util.stream.Collectors;
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.Organization;
import com.moral.api.entity.User;
import com.moral.api.mapper.GroupMapper;
@@ -43,65 +45,44 @@
private UserMapper userMapper;
@Autowired
- private GroupMapper groupMapper;
-
- @Autowired
private MenuMapper menuMapper;
- @Autowired
- private OrganizationMapper organizationMapper;
-
- @Value("${AES.KEY}")
- private String AESKey;
+ @Override
+ public User selectUserInfo(Map<String, Object> parameters) {
+ return userMapper.selectUserInfo(parameters);
+ }
@Override
- public Map<String, Object> login(Map<String, Object> parameters) {
+ public Map<String, Object> login(User user) {
Map<String, Object> resultMap = new LinkedHashMap<>();
- //������������
- String account = parameters.get("account").toString();
- String password = parameters.get("password").toString();
- //������
- /*account = AESUtils.decrypt(account, AESKey);
- password = AESUtils.decrypt(password, AESKey);*/
- QueryWrapper<User> queryWrapper = new QueryWrapper<>();
- //������������
- queryWrapper.eq("account", account);
- User user = userMapper.selectOne(queryWrapper);
- String msg;
- if (user == null) {
- msg = "������������������";
- } else {
- if (!MD5Utils.saltMD5Verify(password, user.getPassword())) {//������������
- msg = "������������";
- } else if ("1".equals(user.getIsDelete())) {
- msg = "������������������";
- } else if (user.getExpireTime() != null && user.getExpireTime().getTime() < System.currentTimeMillis()) {
- msg = "���������������������";
- } else {
- int userId = user.getId();
- //������������������
- Map<String, Object> orgMap = organizationMapper.selectOrganizationById(user.getOrganizationId());
- String locationCode = orgMap.get(orgMap.get("location_level").toString()).toString();
- //������������������
- Map<String, Object> userInfo = new LinkedHashMap<>();
- userInfo.put("userId", userId);
- userInfo.put("account", user.getAccount());
- userInfo.put("userName", user.getUserName());
- userInfo.put("organizationId", user.getOrganizationId());
- userInfo.put("locationCode", locationCode);
- userInfo.put("expireTime", user.getExpireTime());
- userInfo.put("isAdmin", user.getIsAdmin());
- List<Map<String, Object>> groups = groupMapper.selectUserGroup(userId);
- userInfo.put("groups", groups);
- userInfo.putAll(getMenus(userId));
- //������token������������redis
- String token = TokenUtils.getToken(user.getId().toString(), userInfo);
- resultMap.put("token", token);
- resultMap.putAll(userInfo);
- return resultMap;
- }
+ //������������������
+ Map<String, Object> userInfo = new LinkedHashMap<>();
+ List<Map<String, Object>> groups = new ArrayList<>();
+ for (Group group : user.getGroups()) {
+ HashMap<String, Object> groupMap = new HashMap<>();
+ groupMap.put("groupId", group.getId());
+ groupMap.put("groupName", group.getGroupName());
+ groups.add(groupMap);
}
- resultMap.put("msg", msg);
+ Organization organization = user.getOrganization();
+ userInfo.put("userId", user.getId());
+ userInfo.put("account", user.getAccount());
+ userInfo.put("userName", user.getUserName());
+ userInfo.put("expireTime", user.getExpireTime());
+ userInfo.put("isAdmin", user.getIsAdmin());
+ userInfo.put("organizationId", user.getOrganizationId());
+ userInfo.put("organizationName", organization.getName());
+ userInfo.put("locationLevel", organization.getLocationLevel());
+ userInfo.put("groups", groups);
+ userInfo.putAll(getMenus(user.getId()));
+ try {
+ //������token������������redis
+ String token = TokenUtils.getToken(user.getId().toString(), userInfo);
+ resultMap.put("token", token);
+ } catch (Exception e) {
+ log.error("token���������������"+e.getMessage());
+ }
+ resultMap.putAll(userInfo);
return resultMap;
}
@@ -163,13 +144,8 @@
Map<String, Object> resultMap = new HashMap<>();
Map<String, Object> currentUserInfo = (Map<String, Object>) TokenUtils.getUserInfoByToken(token);
- if (!(boolean) currentUserInfo.get("isAdmin")) {
- resultMap.put("msg", "������������");
- return resultMap;
- }
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("account", user.getAccount());
- userMapper.selectOne(queryWrapper);
if (userMapper.selectOne(queryWrapper) != null) {
resultMap.put("msg", "������������������");
return resultMap;
@@ -277,4 +253,6 @@
}
return msgs;
}
+
+
}
diff --git a/screen-api/src/main/resources/mapper/GroupMapper.xml b/screen-api/src/main/resources/mapper/GroupMapper.xml
index 356729c..1123a96 100644
--- a/screen-api/src/main/resources/mapper/GroupMapper.xml
+++ b/screen-api/src/main/resources/mapper/GroupMapper.xml
@@ -15,7 +15,6 @@
<resultMap id="GroupResultMap" type="java.util.LinkedHashMap">
<id column="id" property="id"/>
<result column="group_name" property="groupName"/>
- <result column="organization_id" property="organizationId"/>
</resultMap>
<select id="selectUserGroup" resultMap="GroupResultMap">
diff --git a/screen-api/src/main/resources/mapper/UserMapper.xml b/screen-api/src/main/resources/mapper/UserMapper.xml
index bcbc3fb..b062eb3 100644
--- a/screen-api/src/main/resources/mapper/UserMapper.xml
+++ b/screen-api/src/main/resources/mapper/UserMapper.xml
@@ -17,8 +17,38 @@
<result column="update_time" property="updateTime"/>
<result column="expire_time" property="expireTime"/>
<result column="is_delete" property="isDelete"/>
+ <!--������������-->
+ <association property="organization" javaType="com.moral.api.entity.Organization">
+ <result column="id" property="id" jdbcType="INTEGER"/>
+ <result column="name" property="name" jdbcType="VARCHAR"/>
+ <result column="location_level" property="locationLevel"/>
+ </association>
+ <!--���������-->
+ <collection property="groups" ofType="com.moral.api.entity.Group" javaType = "java.util.ArrayList">
+ <id column="groupId" property="id" jdbcType="INTEGER"/>
+ <result column="group_name" property="groupName" jdbcType="VARCHAR"/>
+ </collection>
+
</resultMap>
+
+ <select id="selectUserInfo" resultMap="BaseResultMap">
+ SELECT u.id,u.account,u.password,u.user_name,u.organization_id,u.expire_time,u.is_delete,
+ o.name,u.is_admin,o.location_level,
+ g.id groupId,g.group_name
+ FROM `user` u,
+ `organization` o,
+ `user_group` ug,
+ `group` g
+ WHERE u.account = #{account}
+ AND u.organization_id=o.id
+ AND u.id = ug.user_id
+ AND ug.group_id = g.id
+ AND g.is_delete = 0
+ AND ug.is_delete = 0
+ </select>
+
+
<select id="selectUsers" resultType="java.util.Map">
SELECT id,account,user_name userName,email,mobile,wechat FROM `user` WHERE
<if test="orgId!=null">
diff --git a/screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java b/screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java
index 1d4664d..ffef3e9 100644
--- a/screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java
+++ b/screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java
@@ -21,11 +21,13 @@
MOBILE_INVALID(-9,"���������������"),
EMAIL_INVALID(-10,"������������"),
ACCOUNT_LENGTH_INVALID(-11,"������������������"),
- PASSWORD_LENGTH_INVALID(-12,"������������������"),
+ PASSWORD_LENGTH_INVALID(-12,"������������������"),
ACCOUNT_EXIST_SPECIAL_CHAR(-13,"���������������������������"),
- PASSWORD_EXIST_SPECIAL_CHAR(-14,"������������������������")
+ PASSWORD_EXIST_SPECIAL_CHAR(-14,"������������������������"),
+ ACCOUNT_IS_EXPIRE(-15,"���������������")
- ;
+
+ ;
private final Integer code;
private final String msg;
--
Gitblit v1.8.0