From 4a062bbdbdd5e1870bdecddc90a0a3af8192b95f Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Fri, 12 Mar 2021 17:16:49 +0800
Subject: [PATCH] manage模块: 登陆功能完善,增加了过滤前端不需要参数的功能。 注销功能完成
---
screen-manage/src/main/java/com/moral/api/entity/Menu.java | 6
screen-common/src/main/java/com/moral/util/ObjectUtils.java | 4
screen-manage/src/main/java/com/moral/api/service/ManageAccountService.java | 25 ++--
screen-manage/src/main/java/com/moral/api/entity/ManageMenu.java | 2
screen-common/src/main/java/com/moral/util/TokenUtils.java | 14 +-
screen-manage/src/main/java/com/moral/api/entity/ManageRole.java | 1
screen-manage/src/main/java/com/moral/api/pojo/dto/LoginDTO.java | 61 ++++++++++++
screen-common/src/main/java/com/moral/constant/Constants.java | 10 ++
screen-manage/src/main/java/com/moral/api/controller/AccountController.java | 28 +++-
screen-manage/src/main/java/com/moral/api/pojo/dto/AccountInfoDTO.java | 40 ++++++++
screen-manage/src/main/java/com/moral/api/service/impl/ManageAccountServiceImpl.java | 101 +++++++++++--------
11 files changed, 217 insertions(+), 75 deletions(-)
diff --git a/screen-common/src/main/java/com/moral/constant/Constants.java b/screen-common/src/main/java/com/moral/constant/Constants.java
index 945ef27..5c17ba4 100644
--- a/screen-common/src/main/java/com/moral/constant/Constants.java
+++ b/screen-common/src/main/java/com/moral/constant/Constants.java
@@ -25,6 +25,11 @@
* */
public static final String MSG_TOKEN_CREATE_ERROR = "token���������������������������������";
+ /*
+ * ���������������������������
+ * */
+ public static final String MSG_PARAMETER_IS_MISSING = "������������";
+
/**
* ������������code
*/
@@ -34,6 +39,11 @@
*/
public static final int CODE_OPERATION_FAILED = -1;
+ /*
+ * ���������������������������
+ * */
+ public static final int CODE_PARAMETER_IS_MISSING = -2;
+
/**
* token������������
*/
diff --git a/screen-common/src/main/java/com/moral/util/ObjectUtils.java b/screen-common/src/main/java/com/moral/util/ObjectUtils.java
index 2808e7f..d7043aa 100644
--- a/screen-common/src/main/java/com/moral/util/ObjectUtils.java
+++ b/screen-common/src/main/java/com/moral/util/ObjectUtils.java
@@ -11,13 +11,13 @@
**/
public class ObjectUtils {
/**
- * @Description: ������map������map������Key������������
+ * @Description: ������map������map������Key���������������������������������false���������������true���
* @Param: [map, keys]
* @return: boolean
* @Author: ���������
* @Date: 2021/3/10
*/
- public static boolean checkParamAndMap(Map<String,Object> map,String ... keys){
+ public static boolean isNotAllEmpty(Map<String,Object> map,String ... keys){
if(null==map)
return false;
for (String key : keys) {
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 7900fa2..5c668f2 100644
--- a/screen-common/src/main/java/com/moral/util/TokenUtils.java
+++ b/screen-common/src/main/java/com/moral/util/TokenUtils.java
@@ -37,13 +37,13 @@
private static final int validity_time = 60*30;
/**
- * @Description: ������token
- * @Param: [type, uid] type��� ���������������manage ���������������api
+ * @Description: ������token,���������������������������������
+ * @Param: [uid] type��� ���������������manage ���������������api
* @return: java.lang.String
* @Author: ���������
* @Date: 2021/3/10
*/
- public static String getToken(String uid, Map<String, Object> userInfo) {
+ public static String getToken(String uid, Object userInfo) {
//������������token
try {
//������token
@@ -62,8 +62,8 @@
log.error("token���������������"+e.getMessage());
throw new TokenException(Constants.CODE_TOKEN_CREATE_ERROR,Constants.MSG_TOKEN_CREATE_ERROR);
}
-
}
+
/**
* @Description: ������token
@@ -90,14 +90,14 @@
}
/**
- * @Description: ������token������������������
+ * @Description: ������token������������������ ������������
* @Param: [token]
* @return: java.util.Map<java.lang.String , java.lang.Object>
* @Author: ���������
* @Date: 2021/3/11
*/
- public static Map<String, Object> getUserInfoByToken(String token) {
- Map<String, Object> userInfo = (Map<String, Object>) redisTemplate.opsForValue().get(token);
+ public static Object getUserInfoByToken(String token) {
+ Object userInfo = redisTemplate.opsForValue().get(token);
if(userInfo==null)
throw new TokenException(Constants.CODE_TOKEN_ERROR,Constants.MSG_TOKEN_ERROR);
return userInfo;
diff --git a/screen-manage/src/main/java/com/moral/api/controller/AccountController.java b/screen-manage/src/main/java/com/moral/api/controller/AccountController.java
index 779cea6..600db90 100644
--- a/screen-manage/src/main/java/com/moral/api/controller/AccountController.java
+++ b/screen-manage/src/main/java/com/moral/api/controller/AccountController.java
@@ -1,6 +1,8 @@
package com.moral.api.controller;
+import com.moral.api.pojo.dto.LoginDTO;
import com.moral.api.service.ManageAccountService;
+import com.moral.constant.Constants;
import com.moral.constant.ResultMessage;
import com.moral.util.ObjectUtils;
import io.swagger.annotations.*;
@@ -27,22 +29,30 @@
@PostMapping("login")
- public ResultMessage login(@RequestBody Map<String, Object> paramters) {
- if (!ObjectUtils.checkParamAndMap(paramters, "account", "password"))
- return ResultMessage.fail("���������������");
+ public ResultMessage login(@RequestBody Map<String, Object> parameters) {
+ if (!ObjectUtils.isNotAllEmpty(parameters, "account", "password"))
+ return ResultMessage.fail(Constants.CODE_PARAMETER_IS_MISSING,Constants.MSG_PARAMETER_IS_MISSING);
+ String AESAccount = (String) parameters.get("account");
+ String AESPassword = (String) parameters.get("password");
- Map<String, Object> result = accountService.login(paramters);
+ LoginDTO loginDTO = accountService.login(AESAccount,AESPassword);
- if ((int) result.get("accountId") < 0)
- return ResultMessage.fail(result);
- return ResultMessage.ok(result);
+ if(loginDTO.getCode().equals(LoginDTO.SUCCESS))
+ return ResultMessage.ok(loginDTO);
+ return ResultMessage.fail(loginDTO);
}
@PostMapping("logout")
- public ResultMessage logout(@RequestBody Map<String, Object> paramters, HttpServletRequest request) {
+ public ResultMessage logout(@RequestBody Map<String, Object> parameters, HttpServletRequest request) {
+ if(!ObjectUtils.isNotAllEmpty(parameters,"accountId"))
+ return ResultMessage.fail(Constants.CODE_PARAMETER_IS_MISSING,Constants.MSG_PARAMETER_IS_MISSING);
+ String token = request.getHeader("token");
- return null;
+ if(accountService.logout(String.valueOf(parameters.get("accountId")),token))
+ return ResultMessage.ok("������������");
+ return ResultMessage.fail("������������");
+
}
diff --git a/screen-manage/src/main/java/com/moral/api/entity/ManageMenu.java b/screen-manage/src/main/java/com/moral/api/entity/ManageMenu.java
index 0f89b6f..697d6e1 100644
--- a/screen-manage/src/main/java/com/moral/api/entity/ManageMenu.java
+++ b/screen-manage/src/main/java/com/moral/api/entity/ManageMenu.java
@@ -8,6 +8,7 @@
import java.util.Date;
import java.util.List;
+import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -21,6 +22,7 @@
*/
@Data
@EqualsAndHashCode(callSuper = false)
+@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class ManageMenu extends Model<ManageMenu> {
private static final long serialVersionUID = 1L;
diff --git a/screen-manage/src/main/java/com/moral/api/entity/ManageRole.java b/screen-manage/src/main/java/com/moral/api/entity/ManageRole.java
index e51d7ef..40d5bcf 100644
--- a/screen-manage/src/main/java/com/moral/api/entity/ManageRole.java
+++ b/screen-manage/src/main/java/com/moral/api/entity/ManageRole.java
@@ -7,6 +7,7 @@
import java.io.Serializable;
import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import lombok.EqualsAndHashCode;
diff --git a/screen-manage/src/main/java/com/moral/api/entity/Menu.java b/screen-manage/src/main/java/com/moral/api/entity/Menu.java
index 916591e..5c90fda 100644
--- a/screen-manage/src/main/java/com/moral/api/entity/Menu.java
+++ b/screen-manage/src/main/java/com/moral/api/entity/Menu.java
@@ -5,6 +5,8 @@
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 +58,12 @@
/**
* ������������
*/
- private LocalDateTime createTime;
+ private Date createTime;
/**
* ������������
*/
- private LocalDateTime updateTime;
+ private Date updateTime;
/**
* ������������
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/dto/AccountInfoDTO.java b/screen-manage/src/main/java/com/moral/api/pojo/dto/AccountInfoDTO.java
new file mode 100644
index 0000000..6b686bc
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/pojo/dto/AccountInfoDTO.java
@@ -0,0 +1,40 @@
+package com.moral.api.pojo.dto;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.moral.api.entity.ManageMenu;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @ClassName AccountInfoDto
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/3/12 13:51
+ * @Version TODO
+ **/
+@Data
+@JsonInclude(JsonInclude.Include.NON_EMPTY)
+public class AccountInfoDTO {
+ /*
+ * ������Id
+ * */
+ private String accountId;
+
+ /*
+ * ������������
+ * */
+ private String accountName;
+
+
+ /*
+ * ������������
+ * */
+ private List<String> roles;
+
+ /*
+ * ������������
+ * */
+ private List<ManageMenu> menus;
+
+}
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/dto/LoginDTO.java b/screen-manage/src/main/java/com/moral/api/pojo/dto/LoginDTO.java
new file mode 100644
index 0000000..cdc2dab
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/pojo/dto/LoginDTO.java
@@ -0,0 +1,61 @@
+package com.moral.api.pojo.dto;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import lombok.Data;
+
+/**
+ * @ClassName LoginDTO
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/3/12 14:49
+ * @Version TODO
+ **/
+@Data
+@JsonInclude(JsonInclude.Include.NON_EMPTY)
+public class LoginDTO {
+
+ /*
+ * ������������
+ * */
+ public static final String SUCCESS = "0";
+
+ /*
+ * ���������������
+ * */
+ public static final String NOT_EXIST = "-1";
+
+ /*
+ * ������������������
+ * */
+ public static final String IS_DELETE = "-2";
+
+ /*
+ * ������������
+ * */
+ public static final String PASSWORD_ERROR = "-3";
+
+ /*
+ * ������������������
+ * */
+ public static final String ROLE_EMPTY = "-4";
+
+ /*
+ * ������������������
+ * */
+ public static final String MENU_EMPTY = "-5";
+
+ /*
+ * ���������
+ * */
+ private String code;
+
+ /*
+ *������token
+ * */
+ private String token;
+
+ /*
+ * ������������������
+ * */
+ private AccountInfoDTO accountInfo;
+}
diff --git a/screen-manage/src/main/java/com/moral/api/service/ManageAccountService.java b/screen-manage/src/main/java/com/moral/api/service/ManageAccountService.java
index 875edd7..c65e13c 100644
--- a/screen-manage/src/main/java/com/moral/api/service/ManageAccountService.java
+++ b/screen-manage/src/main/java/com/moral/api/service/ManageAccountService.java
@@ -2,6 +2,7 @@
import com.moral.api.entity.ManageAccount;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.moral.api.pojo.dto.LoginDTO;
import java.util.Map;
@@ -15,20 +16,20 @@
*/
public interface ManageAccountService extends IService<ManageAccount> {
/**
- * @Description: ������������
- * @Param: [paramters]
+ * @Description: ������
+ * @Param: [AESAccount, AESPassword]
* @return: java.util.Map<java.lang.String,java.lang.Object>
* @Author: ���������
- * @Date: 2021/3/11
+ * @Date: 2021/3/12
*/
- Map<String, Object> login(Map<String, Object> paramters);
+ LoginDTO login(String AESAccount, String AESPassword);
- /**
- * @Description: ������������
- * @Param: [paramters]
- * @return: java.util.Map<java.lang.String,java.lang.Object>
- * @Author: ���������
- * @Date: 2021/3/11
- */
- Map<String, Object> logout(Map<String, Object> paramters);
+ /**
+ * @Description: ������
+ * @Param: [accountId, token]
+ * @return: java.util.Map<java.lang.String,java.lang.Object>
+ * @Author: ���������
+ * @Date: 2021/3/12
+ */
+ boolean logout(String accountId,String token);
}
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/ManageAccountServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/ManageAccountServiceImpl.java
index 53aee77..07f3022 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/ManageAccountServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/ManageAccountServiceImpl.java
@@ -7,6 +7,8 @@
import com.moral.api.mapper.ManageAccountMapper;
import com.moral.api.mapper.ManageMenuMapper;
import com.moral.api.mapper.ManageRoleMapper;
+import com.moral.api.pojo.dto.AccountInfoDTO;
+import com.moral.api.pojo.dto.LoginDTO;
import com.moral.api.service.ManageAccountService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.moral.util.AESUtils;
@@ -41,86 +43,99 @@
/**
* @Description: ������
- * @Param: [paramters]
+ * @Param: [parameters]
* @return: java.util.Map<java.lang.String , java.lang.Object>
* @Author: ���������
* @Date: 2021/3/11
*/
@Override
- public Map<String, Object> login(Map<String, Object> paramters) {
- Map<String, Object> result = new HashMap<>();
- //������������
- String cyrpAccount = (String) paramters.get("account");
- String cyrpPassword = (String) paramters.get("password");
+ public LoginDTO login(String AESAccount,String AESPassword) {
+ LoginDTO loginDTO = new LoginDTO();
//������
- String account = AESUtils.decrypt(cyrpAccount, AESKey);
- String password = AESUtils.decrypt(cyrpPassword, AESKey);
+ String account = AESUtils.decrypt(AESAccount, AESKey);
+ String password = AESUtils.decrypt(AESPassword, AESKey);
//������������������
QueryWrapper<ManageAccount> wrapper = new QueryWrapper<>();
wrapper.eq("account", account);
ManageAccount manageAccount = accountMapper.selectOne(wrapper);
if (ObjectUtils.isEmpty(manageAccount)) {
- result.put("accountId", -1);
- result.put("msg", "���������������");
- return result;
+ loginDTO.setCode(LoginDTO.NOT_EXIST);
+ return loginDTO;
}
//������������������������
if (manageAccount.getIsDelete().equals("1")) {
- result.put("accountId", -2);
- result.put("msg", "������������������");
- return result;
+ loginDTO.setCode(LoginDTO.IS_DELETE);
+ return loginDTO;
}
//������������
if (!MD5Utils.saltMD5Verify(password, manageAccount.getPassword())) {
- result.put("accountId", -3);
- result.put("msg", "���������������������");
- return result;
+ loginDTO.setCode(LoginDTO.PASSWORD_ERROR);
+ return loginDTO;
}
+
//������������
List<ManageRole> roles = roleMapper.getManageRoleByAccountId(manageAccount.getId());
- if (ObjectUtils.isEmpty(roles)) {
- result.put("accountId", -4);
- result.put("msg", "������������������������");
- return result;
+ if (ObjectUtils.isEmpty(roles)) {//������������������������������
+ loginDTO.setCode(LoginDTO.ROLE_EMPTY);
+ return loginDTO;
}
//������������
List<ManageMenu> menus = manageMenuMapper.getParentChildrenMenusByRoles(roles);
- if (ObjectUtils.isEmpty(menus)) {
- result.put("accountId", -5);
- result.put("msg", "������������������������");
- return result;
+ if (ObjectUtils.isEmpty(menus)) {//������������������������������
+ loginDTO.setCode(LoginDTO.MENU_EMPTY);
+ return loginDTO;
}
- //������������token,���������������������������������
- Map<String, Object> userInfo = new HashMap<>();//���������������������������������������
- userInfo.put("accountId", manageAccount.getId());//������Id
- userInfo.put("userName", manageAccount.getUserName());//������������
- userInfo.put("roles", roles);//������������
- userInfo.put("menus", menus);//������������
- String token = TokenUtils.getToken(String.valueOf(manageAccount.getId()), userInfo);
+
+ //������������������
+ AccountInfoDTO accountInfoDTO = new AccountInfoDTO();
+ /*������������������������*/
+ ArrayList<String> roleNames = new ArrayList<>();
+ roles.forEach(role->roleNames.add(role.getName()));
+ /*������menu������������*/
+ for (ManageMenu menu : menus) {
+ menu.setCreateTime(null);
+ menu.setIsDelete(null);
+ menu.setUpdateTime(null);
+ menu.setParentId(null);
+ List<ManageMenu> children = menu.getChildren();
+ for (ManageMenu child : children) {
+ child.setCreateTime(null);
+ child.setIsDelete(null);
+ child.setUpdateTime(null);
+ child.setParentId(null);
+ }
+ }
+ accountInfoDTO.setAccountId(String.valueOf(manageAccount.getId()));
+ accountInfoDTO.setAccountName(manageAccount.getUserName());
+ accountInfoDTO.setMenus(menus);
+ accountInfoDTO.setRoles(roleNames);
- //������������������
- result.put("accountId", manageAccount.getId());//������Id
- result.put("userName", manageAccount.getUserName());//������������
- result.put("roles", roles);//������������
- result.put("menus", menus);//������������
- result.put("token", token);
- return result;
+ //������token ������������������
+ String token = TokenUtils.getToken(String.valueOf(manageAccount.getId()), accountInfoDTO);
+
+ //������������������
+ loginDTO.setCode(LoginDTO.SUCCESS);
+ loginDTO.setAccountInfo(accountInfoDTO);
+ loginDTO.setToken(token);
+
+ return loginDTO;
}
/**
* @Description: ������
- * @Param: [paramters]
+ * @Param: [parameters]
* @return: java.util.Map<java.lang.String , java.lang.Object>
* @Author: ���������
* @Date: 2021/3/11
*/
@Override
- public Map<String, Object> logout(Map<String, Object> paramters) {
-
- return null;
+ public boolean logout(String accountId,String token) {
+ TokenUtils.destoryToken(accountId,token);
+ return true;
}
+
}
--
Gitblit v1.8.0