From 9ec895d7754fdfd4918fab69cc220c0d814c41f7 Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Tue, 23 Mar 2021 17:36:23 +0800
Subject: [PATCH] 删除,修改用户更新redis
---
screen-api/src/main/java/com/moral/api/config/Interceptor/WebAppConfiguration.java | 2
screen-api/src/main/java/com/moral/api/controller/LoginController.java | 41 ++++++++++++--------
screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java | 43 ++++++++++++---------
screen-common/src/main/java/com/moral/util/TokenUtils.java | 9 ++++
screen-api/src/main/java/com/moral/api/controller/UserController.java | 22 ++--------
pom.xml | 2
6 files changed, 65 insertions(+), 54 deletions(-)
diff --git a/pom.xml b/pom.xml
index fd7b9a2..be47e13 100644
--- a/pom.xml
+++ b/pom.xml
@@ -108,7 +108,7 @@
<scope>test</scope>
</dependency>
<dependency>
- <groupId>com.github.penggle</groupId>
+ <groupId>com.google.code.kaptcha</groupId>
<artifactId>kaptcha</artifactId>
<version>2.3.2</version>
</dependency>
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
index 99e60ac..836ef67 100644
--- 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
@@ -13,6 +13,6 @@
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new AuthenticationInterceptor())
.addPathPatterns("/**")
- .excludePathPatterns("/**/login/**", "/**/logout/**", "/swagger-ui.html/**", "/swagger-resources/**");
+ .excludePathPatterns("/**/login/**", "/**/logout/**", "/swagger-ui.html/**", "/swagger-resources/**","/**/verificationCode/**","/**/user/**");
}
}
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 faf1d3b..cb1862a 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
@@ -10,21 +10,25 @@
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ObjectUtils;
+import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
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.SysConfig;
import com.moral.api.service.SysConfigService;
import com.moral.api.service.UserService;
+import com.moral.constant.Constants;
import com.moral.constant.ResponseCodeEnum;
import com.moral.constant.ResultMessage;
import com.moral.pojo.VerificationCode;
import com.moral.util.KaptchaUtils;
import com.moral.util.TokenUtils;
-import com.moral.util.WebUtils;
@Slf4j
@Api(tags = {"������"})
@@ -38,13 +42,8 @@
private SysConfigService sysConfigService;
@ApiOperation(value = "������", notes = "������")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "account", value = "������", required = true, paramType = "query", dataType = "String"),
- @ApiImplicitParam(name = "password", value = "������", required = true, paramType = "query", dataType = "String")
- })
@RequestMapping(value = "login", method = RequestMethod.POST)
- public ResultMessage login(HttpServletRequest request) {
- Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null);
+ public ResultMessage login(@RequestBody Map<String, Object> parameters) {
if (!(parameters.containsKey("account") && parameters.containsKey("password"))) {
return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
}
@@ -55,20 +54,18 @@
return ResultMessage.ok(result.get("data"));
}
- @ApiOperation(value = "������", notes = "������")
+ @ApiOperation(value = "������", notes = "������")
@RequestMapping(value = "logout", method = RequestMethod.POST)
@ApiImplicitParams({
- @ApiImplicitParam(name = "uid", value = "������", required = false, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "uid", value = "������id", required = true, paramType = "query", dataType = "String"),
@ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String")
})
- public ResultMessage logout(HttpServletRequest request) {
- Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null);
- if (!parameters.containsKey("uid")) {
+ public ResultMessage logout(String uid, HttpServletRequest request) {
+ if (uid == null) {
return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
}
- String userId = parameters.get("uid").toString();
String token = request.getHeader("token");
- TokenUtils.destoryToken(userId, token);
+ TokenUtils.destoryToken(uid, token);
return ResultMessage.ok();
}
@@ -81,9 +78,19 @@
*/
@ApiOperation(value = "���������������������������", notes = "���������������������������")
- @RequestMapping(value = "verificationCodeConfig", method = RequestMethod.GET)
- public ResultMessage verifyConfig() {
- return null;
+ @RequestMapping(value = "verificationCode/config", method = RequestMethod.GET)
+ public void verifyConfig(HttpServletResponse response) {
+ QueryWrapper<SysConfig> queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("type", Constants.VERIFICATION_TYPE);
+ SysConfig sysConfig = sysConfigService.getOne(queryWrapper);
+ String code = sysConfig.getCode();
+ if (Constants.VERIFICATION_OPEN_CODE.equals(code)) {
+ try {
+ response.sendRedirect("/verificationCode/get");
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
}
@ApiOperation(value = "���������������", notes = "���������������")
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 6044b15..41e3d80 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
@@ -11,6 +11,7 @@
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@@ -35,16 +36,10 @@
@ApiOperation(value = "������������", notes = "������������")
@ApiImplicitParams({
- @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"),
- @ApiImplicitParam(name = "wechat", value = "������", required = false, paramType = "query", dataType = "String"),
@ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String")
})
@RequestMapping(value = "addUser", method = RequestMethod.POST)
- public ResultMessage addUser(User user, HttpServletRequest request) {
+ public ResultMessage addUser(@RequestBody User user, HttpServletRequest request) {
if (user.getAccount().isEmpty() || user.getPassword().isEmpty()) {
return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
@@ -59,8 +54,7 @@
@ApiOperation(value = "������������", notes = "������������")
@ApiImplicitParams({
- @ApiImplicitParam(name = "userId", value = "������id", required = true, paramType = "query", dataType = "String"),
- @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String")
+ @ApiImplicitParam(name = "userId", value = "������id", required = true, paramType = "query", dataType = "String")
})
@RequestMapping(value = "deleteUser", method = RequestMethod.POST)
public ResultMessage deleteUser(String userId) {
@@ -79,17 +73,11 @@
@ApiOperation(value = "������������������", notes = "������������������")
@ApiImplicitParams({
- @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"),
- @ApiImplicitParam(name = "wechat", value = "������", required = false, paramType = "query", dataType = "String"),
@ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String")
})
@RequestMapping(value = "updateUser", method = RequestMethod.POST)
- public ResultMessage updateUser(User user, HttpServletRequest request) {
- if (user.getAccount().isEmpty() || user.getPassword().isEmpty()) {
+ public ResultMessage updateUser(@RequestBody User user, HttpServletRequest request) {
+ if (user.getId() == null) {
return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
}
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 2ee483f..8263599 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
@@ -115,7 +115,7 @@
userInfo.put("locationLevel", organization.getLocationLevel());
userInfo.put("groups", groups);
Map<String, Object> map = new HashMap<>();
- map.put("userId",userBo.getId());
+ map.put("userId", userBo.getId());
userInfo.putAll(getMenus(map));
try {
//������token������������redis
@@ -247,12 +247,18 @@
@Override
@Transactional
public void deleteUser(User user) {
+ String userId = user.getId().toString();
//������������user
user.setIsDelete(Constants.DELETE);
userMapper.updateById(user);
//������������user_group
UpdateWrapper<UserGroup> deleteWrapper = new UpdateWrapper<>();
- deleteWrapper.set("is_delete", Constants.DELETE).eq("user_id", user.getId());
+ deleteWrapper.set("is_delete", Constants.DELETE).eq("user_id", userId);
+ //������redis
+ if (TokenUtils.hHasKey(userId)) {
+ String token = TokenUtils.hget(userId).toString();
+ TokenUtils.destoryToken(userId, token);
+ }
userGroupMapper.update(null, deleteWrapper);
}
@@ -265,7 +271,7 @@
queryWrapper.ne("id", user.getId())
.eq("account", user.getAccount())
.eq("is_delete", Constants.NOT_DELETE);
- //������������������������
+ //���������������������������
if (userMapper.selectOne(queryWrapper) != null) {
result.put("code", ResponseCodeEnum.ACCOUNT_EXIST.getCode());
result.put("msg", ResponseCodeEnum.ACCOUNT_EXIST.getMsg());
@@ -285,12 +291,14 @@
}
//������������������
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 (password != null) {
+ //������������
+ //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())) {
@@ -298,16 +306,22 @@
result.put("msg", ResponseCodeEnum.MOBILE_INVALID.getMsg());
return result;
}
- //������������
+ //������MD5������
user.setPassword(MD5Utils.saltMD5(password));
user.setOrganizationId((int) currentUserInfo.get("organizationId"));
user.setIsAdmin(false);
- //���������������������������
+ //������������������������������
Date userExpireTime = user.getExpireTime();
//���������������������������
Date currentUserExpireTime = (Date) currentUserInfo.get("expireTime");
if (userExpireTime == null || userExpireTime.getTime() > currentUserExpireTime.getTime()) {
user.setExpireTime(currentUserExpireTime);
+ }
+ //������redis
+ String userId = user.getId().toString();
+ if (TokenUtils.hHasKey(userId)) {
+ String deleterToken = TokenUtils.hget(userId).toString();
+ TokenUtils.destoryToken(userId, deleterToken);
}
userMapper.updateById(user);
return result;
@@ -341,13 +355,6 @@
}
if (wechat != null) {
queryWrapper.like("wechat", wechat);
- }
- //������������
- if (!parameters.containsKey("page")) {
- parameters.put("page", 0);
- }
- if (!parameters.containsKey("size")) {
- parameters.put("size", 10);
}
int page = Integer.parseInt(parameters.get("page").toString());
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 64e58d0..d1aa0aa 100644
--- a/screen-common/src/main/java/com/moral/util/TokenUtils.java
+++ b/screen-common/src/main/java/com/moral/util/TokenUtils.java
@@ -34,6 +34,15 @@
//token��������� ������������
private static final int validity_time = 60*30;
+ //������user_token���������������������token
+ public static boolean hHasKey(String uid){
+ return redisTemplate.opsForHash().hasKey("user_token",uid);
+ }
+
+ //������������id������token
+ public static Object hget(String uid){
+ return redisTemplate.opsForHash().get("user_token",uid);
+ }
/**
* @Description: ������token,���������������������������������
* @Param: [uid] type��� ���������������manage ���������������api
--
Gitblit v1.8.0