From b64946fb4c4b32592633ff1dc0b95a77cb440246 Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Thu, 18 Mar 2021 17:15:45 +0800
Subject: [PATCH] 用户增删改查修改
---
screen-api/src/main/resources/mapper/UserMapper.xml | 34 ++--
screen-api/src/main/java/com/moral/api/pojo/UserBo.java | 25 +++
screen-api/src/main/java/com/moral/api/service/UserService.java | 10
screen-api/src/main/java/com/moral/api/controller/LoginController.java | 40 ----
screen-api/src/main/java/com/moral/api/mapper/UserMapper.java | 5
screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java | 253 ++++++++++++++++++++-----------
screen-common/src/main/java/com/moral/util/TokenUtils.java | 19 +-
screen-api/src/main/java/com/moral/api/controller/UserController.java | 47 +++--
screen-api/src/main/java/com/moral/api/entity/User.java | 7
screen-common/src/main/java/com/moral/util/RegexUtils.java | 4
10 files changed, 253 insertions(+), 191 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
index a6cef12..6b1a304 100644
--- a/screen-api/src/main/java/com/moral/api/controller/LoginController.java
+++ b/screen-api/src/main/java/com/moral/api/controller/LoginController.java
@@ -1,6 +1,5 @@
package com.moral.api.controller;
-import com.moral.constant.Constants;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
@@ -12,19 +11,15 @@
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;
@@ -39,9 +34,6 @@
@Autowired
private GroupService groupService;
- @Value("${AES.KEY}")
- private String AESKey;
-
@ApiOperation(value = "������", notes = "������")
@ApiImplicitParams({
@ApiImplicitParam(name = "account", value = "������", required = false, paramType = "query", dataType = "String"),
@@ -53,33 +45,11 @@
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());
+ Map<String, Object> result = userService.login(parameters);
+ if (!result.containsKey("data")) {
+ return ResultMessage.fail(Integer.parseInt(result.get("code").toString()), result.get("msg").toString());
}
- //������������
- if (!MD5Utils.saltMD5Verify(password, user.getPassword())) {
- return ResultMessage.fail(ResponseCodeEnum.PASSWORD_INVALID.getCode(), ResponseCodeEnum.PASSWORD_INVALID.getMsg());
- }
- //������������������
- if (Constants.DELETE.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();
+ return ResultMessage.ok(result.get("data"));
}
@ApiOperation(value = "������", notes = "������")
@@ -89,7 +59,7 @@
if (!parameters.containsKey("uid")) {
return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
}
- String userId = request.getParameter("uid");
+ String userId = parameters.get("uid").toString();
String token = request.getHeader("token");
TokenUtils.destoryToken(userId, token);
return ResultMessage.ok();
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 12b071a..34e7464 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
@@ -15,6 +15,7 @@
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.moral.api.entity.User;
import com.moral.api.service.UserService;
import com.moral.constant.ResponseCodeEnum;
@@ -32,8 +33,8 @@
@ApiOperation(value = "������������", notes = "������������")
@ApiImplicitParams({
- @ApiImplicitParam(name = "account", value = "������,������6-10", required = false, paramType = "query", dataType = "String"),
- @ApiImplicitParam(name = "password", value = "������,������6-20", required = false, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "account", value = "������,������6-10", required = true, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "password", value = "������,������6-20", required = true, paramType = "query", dataType = "String"),
@ApiImplicitParam(name = "userName", value = "������������", required = false, paramType = "query", dataType = "String"),
@ApiImplicitParam(name = "email", value = "������,������123456@qq.com", required = false, paramType = "query", dataType = "String"),
@ApiImplicitParam(name = "mobile", value = "���������,1������11���������", required = false, paramType = "query", dataType = "String"),
@@ -42,16 +43,14 @@
})
@RequestMapping(value = "addUser", method = RequestMethod.POST)
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(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+ if (user.getAccount().isEmpty() || user.getPassword().isEmpty()) {
+ 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());
+ Map<String, Object> result = userService.addUser(user, token);
+ if (!result.isEmpty()) {
+ return ResultMessage.fail((int) result.get("code"), result.get("msg").toString());
}
return ResultMessage.ok();
}
@@ -62,22 +61,24 @@
@ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String")
})
@RequestMapping(value = "deleteUser", method = RequestMethod.POST)
- public ResultMessage deleteUser(String userId, HttpServletRequest request) {
+ public ResultMessage deleteUser(String userId) {
if (userId == null) {
- 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.deleteUser(Integer.parseInt(userId), token);
- if (map.containsKey("msg")) {
- return ResultMessage.fail(map.get("msg").toString());
+ QueryWrapper<User> queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("id", userId);
+ User user = userService.getOne(queryWrapper);
+ if (user == null) {
+ return ResultMessage.fail(ResponseCodeEnum.ACCOUNT_NOT_EXIST.getCode(), ResponseCodeEnum.ACCOUNT_NOT_EXIST.getMsg());
}
+ userService.deleteUser(user);
return ResultMessage.ok();
}
@ApiOperation(value = "������������������", notes = "������������������")
@ApiImplicitParams({
- @ApiImplicitParam(name = "account", value = "������,������6-10", required = false, paramType = "query", dataType = "String"),
- @ApiImplicitParam(name = "password", value = "������,������6-20", required = false, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "account", value = "������,������6-10", required = true, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "password", value = "������,������6-20", required = true, paramType = "query", dataType = "String"),
@ApiImplicitParam(name = "userName", value = "������������", required = false, paramType = "query", dataType = "String"),
@ApiImplicitParam(name = "email", value = "������,������123456@qq.com", required = false, paramType = "query", dataType = "String"),
@ApiImplicitParam(name = "mobile", value = "���������,1������11���������", required = false, paramType = "query", dataType = "String"),
@@ -86,10 +87,14 @@
})
@RequestMapping(value = "updateUser", method = RequestMethod.POST)
public ResultMessage updateUser(User user, HttpServletRequest request) {
+ if (user.getAccount().isEmpty() || user.getPassword().isEmpty()) {
+ return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
+ ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+ }
String token = request.getHeader("token");
- Map<String, Object> map = userService.updateUser(user, token);
- if (map.containsKey("msg")) {
- return ResultMessage.fail(map.get("msg").toString());
+ Map<String, Object> result = userService.addUser(user, token);
+ if (!result.isEmpty()) {
+ return ResultMessage.fail((int) result.get("code"), result.get("msg").toString());
}
return ResultMessage.ok();
}
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 4d31a77..38f7b34 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
@@ -96,13 +96,6 @@
*/
private String isDelete;
- @Transient
- private Organization organization;
-
- @Transient
- private List<Group> groups;
-
-
@Override
protected Serializable pkVal() {
return this.id;
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 87be9a9..4c42c13 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
@@ -5,6 +5,7 @@
import com.moral.api.entity.User;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.moral.api.pojo.UserBo;
/**
* <p>
@@ -18,5 +19,7 @@
List<Map<String, Object>> selectUsers(Map<String, Object> parameters);
- User selectUserInfo(Map<String, Object> parameters);
+ UserBo selectUserInfo(Map<String, Object> parameters);
+
+ User selectUser(Map<String, Object> parameters);
}
diff --git a/screen-api/src/main/java/com/moral/api/pojo/UserBo.java b/screen-api/src/main/java/com/moral/api/pojo/UserBo.java
new file mode 100644
index 0000000..5afb5e9
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/pojo/UserBo.java
@@ -0,0 +1,25 @@
+package com.moral.api.pojo;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.List;
+
+import javax.persistence.Transient;
+
+import com.moral.api.entity.Group;
+import com.moral.api.entity.Organization;
+import com.moral.api.entity.User;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class UserBo extends User {
+
+ @Transient
+ private Organization organization;
+
+ @Transient
+ private List<Group> groups;
+
+}
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 8821b4c..3616005 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,11 +1,12 @@
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;
+import com.moral.api.pojo.UserBo;
/**
* <p>
@@ -17,17 +18,16 @@
*/
public interface UserService extends IService<User> {
- Map<String, Object> login(User user);
+ Map<String, Object> login(Map<String, Object> parameters);
Map<String, Object> addUser(User user, String token);
- Map<String, Object> deleteUser(int userId, String token);
+ void deleteUser(User user);
Map<String, Object> updateUser(User user, String token);
Map<String, Object> getUsers(Map<String, Object> parameters);
- User selectUserInfo(Map<String, Object> parameters);
-
+ UserBo 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 e30cd14..fb42e30 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,18 +10,21 @@
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
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;
+import com.moral.api.entity.UserGroup;
import com.moral.api.mapper.MenuMapper;
-import com.moral.api.mapper.OrganizationMapper;
+import com.moral.api.mapper.UserGroupMapper;
import com.moral.api.mapper.UserMapper;
+import com.moral.api.pojo.UserBo;
import com.moral.api.service.UserService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.moral.constant.Constants;
+import com.moral.constant.ResponseCodeEnum;
import com.moral.util.AESUtils;
import com.moral.util.MD5Utils;
import com.moral.util.RegexUtils;
@@ -30,6 +33,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
/**
* <p>
@@ -48,43 +52,81 @@
@Autowired
private MenuMapper menuMapper;
+ @Autowired
+ private UserGroupMapper userGroupMapper;
+
+ @Value("${AES.KEY}")
+ private String AESKey;
+
@Override
- public User selectUserInfo(Map<String, Object> parameters) {
+ public UserBo selectUserInfo(Map<String, Object> parameters) {
return userMapper.selectUserInfo(parameters);
}
@Override
- public Map<String, Object> login(User user) {
- Map<String, Object> resultMap = new LinkedHashMap<>();
+ public Map<String, Object> login(Map<String, Object> parameters) {
+ UserBo userBo = selectUserInfo(parameters);
+ Map<String, Object> result = new HashMap<>();
+ //������������
+ if (userBo == null) {
+ result.put("code", ResponseCodeEnum.ACCOUNT_NOT_EXIST.getCode());
+ result.put("msg", ResponseCodeEnum.ACCOUNT_NOT_EXIST.getMsg());
+ return result;
+ }
+ //������������
+ String password = parameters.get("password").toString();
+ //������������
+ //password = AESUtils.decrypt(password, AESKey);
+ if (!MD5Utils.saltMD5Verify(password, userBo.getPassword())) {
+ result.put("code", ResponseCodeEnum.PASSWORD_INVALID.getCode());
+ result.put("msg", ResponseCodeEnum.PASSWORD_INVALID.getMsg());
+ return result;
+ }
+ //������������������
+ if (Constants.DELETE.equals(userBo.getIsDelete())) {
+ result.put("code", ResponseCodeEnum.ACCOUNT_IS_DELETE.getCode());
+ result.put("msg", ResponseCodeEnum.ACCOUNT_IS_DELETE.getMsg());
+ return result;
+ }
+ //������������������
+ if (userBo.getExpireTime() != null && userBo.getExpireTime().getTime() < System.currentTimeMillis()) {
+ result.put("code", ResponseCodeEnum.ACCOUNT_IS_EXPIRE.getCode());
+ result.put("msg", ResponseCodeEnum.ACCOUNT_IS_EXPIRE.getMsg());
+ return result;
+ }
//������������������
Map<String, Object> userInfo = new LinkedHashMap<>();
List<Map<String, Object>> groups = new ArrayList<>();
- for (Group group : user.getGroups()) {
+ for (Group group : userBo.getGroups()) {
HashMap<String, Object> groupMap = new HashMap<>();
groupMap.put("groupId", group.getId());
groupMap.put("groupName", group.getGroupName());
groups.add(groupMap);
}
- 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());
+ Organization organization = userBo.getOrganization();
+ userInfo.put("userId", userBo.getId());
+ userInfo.put("account", userBo.getAccount());
+ userInfo.put("userName", userBo.getUserName());
+ userInfo.put("expireTime", userBo.getExpireTime());
+ userInfo.put("isAdmin", userBo.getIsAdmin());
+ userInfo.put("organizationId", userBo.getOrganizationId());
userInfo.put("organizationName", organization.getName());
userInfo.put("locationLevel", organization.getLocationLevel());
userInfo.put("groups", groups);
- userInfo.putAll(getMenus(user.getId()));
+ userInfo.putAll(getMenus(userBo.getId()));
try {
//������token������������redis
- String token = TokenUtils.getToken(user.getId().toString(), userInfo);
- resultMap.put("token", token);
+ String token = TokenUtils.getToken(userBo.getId().toString(), userInfo);
+ Map<String, Object> data = new HashMap<>();
+ data.put("token", token);
+ data.put("user", userInfo);
+ result.put("data", data);
} catch (Exception e) {
- log.error("token���������������"+e.getMessage());
+ log.error("token���������������" + e.getMessage());
+ result.put("code", ResponseCodeEnum.TOKEN_CREATE_ERROR.getCode());
+ result.put("msg", ResponseCodeEnum.TOKEN_CREATE_ERROR.getMsg());
}
- resultMap.putAll(userInfo);
- return resultMap;
+ return result;
}
//������userId������������������������
@@ -117,7 +159,6 @@
List<List<Map<String, Object>>> resultList = new ArrayList();
Menu newMenu = new Menu();
newMenu.setParentId(menu.getId());
-
//������������������������������
List<Menu> nextLevelMenus = menus.stream()
.filter(o -> o.getParentId().equals(menu.getId()))
@@ -141,77 +182,133 @@
}
@Override
+ @Transactional
public Map<String, Object> addUser(User user, String token) {
- Map<String, Object> resultMap = new HashMap<>();
+ Map<String, Object> result = new HashMap<>();
Map<String, Object> currentUserInfo = (Map<String, Object>) TokenUtils.getUserInfoByToken(token);
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("account", user.getAccount());
- if (userMapper.selectOne(queryWrapper) != null) {
- resultMap.put("msg", "������������������");
- return resultMap;
+ queryWrapper.eq("account", user.getAccount()).eq("is_delete", Constants.NOT_DELETE);
+ //������������������������
+ if (user.selectOne(queryWrapper) != null) {
+ result.put("code", ResponseCodeEnum.ACCOUNT_EXIST.getCode());
+ result.put("msg", ResponseCodeEnum.ACCOUNT_EXIST.getMsg());
+ return result;
}
- //������������������������������������
- List<String> msgs = checkUserInfo(user);
- if (!msgs.isEmpty()) {
- resultMap.put("msg", msgs);
- return resultMap;
+ //������������������
+ if (!RegexUtils.checkAccount(user.getAccount())) {
+ result.put("code", ResponseCodeEnum.ACCOUNT_INVALID.getCode());
+ result.put("msg", ResponseCodeEnum.ACCOUNT_INVALID.getMsg());
+ return result;
+ }
+ //������������������
+ if (user.getEmail() != null && !RegexUtils.checkEmail(user.getEmail())) {
+ result.put("code", ResponseCodeEnum.EMAIL_INVALID.getCode());
+ result.put("msg", ResponseCodeEnum.EMAIL_INVALID.getMsg());
+ return result;
+ }
+ //������������������
+ String password = user.getPassword();
+ //������������
+ //password = AESUtils.decrypt(password, AESKey);
+ if (!RegexUtils.checkPassword(password)) {
+ result.put("code", ResponseCodeEnum.PASSWORD_INVALID.getCode());
+ result.put("msg", ResponseCodeEnum.PASSWORD_INVALID.getMsg());
+ return result;
+ }
+ //���������������������
+ if (user.getMobile() != null && !RegexUtils.checkMobile(user.getMobile())) {
+ result.put("code", ResponseCodeEnum.MOBILE_INVALID.getCode());
+ result.put("msg", ResponseCodeEnum.MOBILE_INVALID.getMsg());
+ return result;
}
//������������
- String password = MD5Utils.saltMD5(user.getPassword());
- user.setPassword(password);
- user.setIsAdmin(false);
+ user.setPassword(MD5Utils.saltMD5(password));
user.setOrganizationId(Integer.parseInt(currentUserInfo.get("organizationId").toString()));
+ user.setIsAdmin(false);
//���������������������������
Date userExpireTime = user.getExpireTime();
//���������������������������
- Date expireTime = (Date) currentUserInfo.get("expireTime");
- if (userExpireTime == null || userExpireTime.getTime() > expireTime.getTime()) {
- user.setExpireTime(expireTime);
+ Date currentUserExpireTime = (Date) currentUserInfo.get("expireTime");
+ if (userExpireTime == null || userExpireTime.getTime() > currentUserExpireTime.getTime()) {
+ user.setExpireTime(currentUserExpireTime);
}
userMapper.insert(user);
- return resultMap;
+ return result;
}
@Override
- public Map<String, Object> deleteUser(int userId, String token) {
- Map<String, Object> resultMap = new HashMap<>();
- Map<String, Object> currentUserInfo = (Map<String, Object>) TokenUtils.getUserInfoByToken(token);
- if (!(boolean) currentUserInfo.get("isAdmin")) {
- resultMap.put("msg", "������������");
- } else {
- User user = new User();
- user.setId(userId);
- user.setIsDelete(Constants.DELETE);
- userMapper.updateById(user);
- }
- return resultMap;
+ @Transactional
+ public void deleteUser(User user) {
+ //������������������
+ user.setIsDelete(Constants.DELETE);
+ //������������������������������
+ UpdateWrapper<UserGroup> updateWrapper = new UpdateWrapper<>();
+ updateWrapper.set("is_delete", Constants.DELETE).eq("user_id", user.getId());
+ userGroupMapper.update(null, updateWrapper);
}
@Override
+ @Transactional
public Map<String, Object> updateUser(User user, String token) {
- Map<String, Object> resultMap = new HashMap<>();
+ Map<String, Object> result = 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());
+ queryWrapper.eq("id", user.getId()).eq("is_delete", Constants.NOT_DELETE);
+ if (userMapper.selectOne(queryWrapper) == null) {
+ result.put("code", ResponseCodeEnum.ACCOUNT_IS_DELETE.getCode());
+ result.put("msg", ResponseCodeEnum.ACCOUNT_IS_DELETE.getMsg());
+ return result;
+ }
+ queryWrapper.clear();
+ queryWrapper.eq("account", user.getAccount()).eq("is_delete", Constants.NOT_DELETE);
+ //������������������������
if (userMapper.selectOne(queryWrapper) != null) {
- resultMap.put("msg", "���������������");
- return resultMap;
+ result.put("code", ResponseCodeEnum.ACCOUNT_EXIST.getCode());
+ result.put("msg", ResponseCodeEnum.ACCOUNT_EXIST.getMsg());
+ return result;
}
- //������������������������������������
- List<String> msgs = checkUserInfo(user);
- if (!msgs.isEmpty()) {
- resultMap.put("msg", msgs);
- return resultMap;
+ //������������������
+ if (!RegexUtils.checkAccount(user.getAccount())) {
+ result.put("code", ResponseCodeEnum.ACCOUNT_INVALID.getCode());
+ result.put("msg", ResponseCodeEnum.ACCOUNT_INVALID.getMsg());
+ return result;
}
- //������Md5������
- user.setPassword(MD5Utils.saltMD5(user.getPassword()));
+ //������������������
+ if (user.getEmail() != null && !RegexUtils.checkEmail(user.getEmail())) {
+ result.put("code", ResponseCodeEnum.EMAIL_INVALID.getCode());
+ result.put("msg", ResponseCodeEnum.EMAIL_INVALID.getMsg());
+ return result;
+ }
+ //������������������
+ String password = user.getPassword();
+ //������������
+ //password = AESUtils.decrypt(password, AESKey);
+ if (!RegexUtils.checkPassword(password)) {
+ result.put("code", ResponseCodeEnum.PASSWORD_INVALID.getCode());
+ result.put("msg", ResponseCodeEnum.PASSWORD_INVALID.getMsg());
+ return result;
+ }
+ //���������������������
+ if (user.getMobile() != null && !RegexUtils.checkMobile(user.getMobile())) {
+ result.put("code", ResponseCodeEnum.MOBILE_INVALID.getCode());
+ result.put("msg", ResponseCodeEnum.MOBILE_INVALID.getMsg());
+ return result;
+ }
+ //������������
+ user.setPassword(MD5Utils.saltMD5(password));
+ user.setOrganizationId(Integer.parseInt(currentUserInfo.get("organizationId").toString()));
+ user.setIsAdmin(false);
+ //���������������������������
+ Date userExpireTime = user.getExpireTime();
+ //���������������������������
+ Date currentUserExpireTime = (Date) currentUserInfo.get("expireTime");
+ if (userExpireTime == null || userExpireTime.getTime() > currentUserExpireTime.getTime()) {
+ user.setExpireTime(currentUserExpireTime);
+ }
userMapper.updateById(user);
- return resultMap;
+ return result;
}
@Override
@@ -229,31 +326,5 @@
resultMap.put("users", users);
return resultMap;
}
-
- private List<String> checkUserInfo(User user) {
- List<String> msgs = new ArrayList<>();
- //������������
- if (!RegexUtils.checkAccount(user.getAccount())) {
- msgs.add("���������������������");
- }
- //������������
- if (!RegexUtils.checkPassword(user.getPassword())) {
- msgs.add("���������������������");
- }
- //������������
- if (user.getEmail() != null) {
- if (!RegexUtils.checkEmail(user.getEmail())) {
- msgs.add("���������������������");
- }
- }
- //���������������
- if (user.getMobile() != null) {
- if (!RegexUtils.checkMobile(user.getMobile())) {
- msgs.add("������������������������");
- }
- }
- return msgs;
- }
-
}
diff --git a/screen-api/src/main/resources/mapper/UserMapper.xml b/screen-api/src/main/resources/mapper/UserMapper.xml
index b062eb3..c0a28ef 100644
--- a/screen-api/src/main/resources/mapper/UserMapper.xml
+++ b/screen-api/src/main/resources/mapper/UserMapper.xml
@@ -17,6 +17,9 @@
<result column="update_time" property="updateTime"/>
<result column="expire_time" property="expireTime"/>
<result column="is_delete" property="isDelete"/>
+ </resultMap>
+
+ <resultMap id="userInfoMap" type="com.moral.api.pojo.UserBo" extends="BaseResultMap">
<!--������������-->
<association property="organization" javaType="com.moral.api.entity.Organization">
<result column="id" property="id" jdbcType="INTEGER"/>
@@ -24,30 +27,25 @@
<result column="location_level" property="locationLevel"/>
</association>
<!--���������-->
- <collection property="groups" ofType="com.moral.api.entity.Group" javaType = "java.util.ArrayList">
+ <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 id="selectUserInfo" resultMap="userInfoMap">
+ SELECT u.id, u.account, u.password, u.user_name, u.organization_id, u.expire_time, u.is_delete,u.is_Admin,
+ o.name, o.location_level,
+ a.id groupId , a.group_name
+ FROM `user` u
+ LEFT JOIN
+ (SELECT ug.user_id,g.id,g.group_name FROM `user_group` ug ,`group` g WHERE ug.group_id=g.id AND g.is_delete = 0
+ AND ug.is_delete = 0) a
+ ON a.user_id=u.id
+ LEFT JOIN `organization` o ON o.id=u.organization_id
+ WHERE u.account = #{account}
</select>
-
<select id="selectUsers" resultType="java.util.Map">
SELECT id,account,user_name userName,email,mobile,wechat FROM `user` WHERE
diff --git a/screen-common/src/main/java/com/moral/util/RegexUtils.java b/screen-common/src/main/java/com/moral/util/RegexUtils.java
index 5023a3d..1112901 100644
--- a/screen-common/src/main/java/com/moral/util/RegexUtils.java
+++ b/screen-common/src/main/java/com/moral/util/RegexUtils.java
@@ -12,7 +12,7 @@
* @return ���������������true���������������������false
*/
public static boolean checkAccount(String account) {
- String regex = "[a-zA-Z]\\w{3,19}";
+ String regex = "[a-zA-Z]\\w{2,19}";
return account.matches(regex);
}
@@ -27,7 +27,7 @@
* @return ���������������true���������������������false
*/
public static boolean checkPassword(String password) {
- String regex = "[0-9a-zA-Z_]\\w{3,19}";
+ String regex = "[0-9a-zA-Z_]\\w{2,19}";
return password.matches(regex);
}
diff --git a/screen-common/src/main/java/com/moral/util/TokenUtils.java b/screen-common/src/main/java/com/moral/util/TokenUtils.java
index cafd03b..64e58d0 100644
--- a/screen-common/src/main/java/com/moral/util/TokenUtils.java
+++ b/screen-common/src/main/java/com/moral/util/TokenUtils.java
@@ -1,18 +1,16 @@
package com.moral.util;
-import com.moral.constant.Constants;
import com.moral.constant.ResponseCodeEnum;
import com.moral.exception.TokenException;
-import com.sun.org.apache.bcel.internal.classfile.ConstantString;
+
import lombok.extern.slf4j.Slf4j;
+
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
-import java.util.HashMap;
-import java.util.Map;
import java.util.concurrent.TimeUnit;
/**
@@ -25,7 +23,6 @@
@Component
@Slf4j
public class TokenUtils {
-
private static RedisTemplate redisTemplate;
@Autowired
@@ -122,12 +119,12 @@
}
/**
- * @Description: token������
- * @Param: [token]
- * @return: void
- * @Author: ���������
- * @Date: 2021/3/11
- */
+ * @Description: token������
+ * @Param: [token]
+ * @return: void
+ * @Author: ���������
+ * @Date: 2021/3/11
+ */
public static void extendTokenTime(String token) {
redisTemplate.expire(token, validity_time, TimeUnit.SECONDS);
}
--
Gitblit v1.8.0