From 5097d13418e9a0bf605f5272f1b9e60fc62c80cb Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Wed, 10 Mar 2021 17:26:01 +0800
Subject: [PATCH] common模块:     增加  AESUtils  MD5Utils ObjectUtils TokenUtils manage模块:     完整用户登陆功能

---
 screen-manage/src/main/java/com/moral/api/service/impl/ManageAccountServiceImpl.java |   90 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 90 insertions(+), 0 deletions(-)

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 6dba8fb..48d1b78 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
@@ -1,10 +1,23 @@
 package com.moral.api.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.moral.api.entity.ManageAccount;
+import com.moral.api.entity.ManageMenu;
+import com.moral.api.entity.ManageRole;
 import com.moral.api.mapper.ManageAccountMapper;
+import com.moral.api.mapper.ManageMenuMapper;
+import com.moral.api.mapper.ManageRoleMapper;
 import com.moral.api.service.ManageAccountService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.moral.util.AESUtils;
+import com.moral.util.MD5Utils;
+import com.moral.util.TokenUtils;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
+
+import javax.annotation.Resource;
+import java.util.*;
 
 /**
  * <p>
@@ -17,4 +30,81 @@
 @Service
 public class ManageAccountServiceImpl extends ServiceImpl<ManageAccountMapper, ManageAccount> implements ManageAccountService {
 
+    @Value("${AES.KEY}")
+    private String AESKey;
+    @Resource
+    ManageAccountMapper accountMapper;
+    @Resource
+    ManageRoleMapper roleMapper;
+    @Resource
+    ManageMenuMapper manageMenuMapper;
+
+
+    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");
+        //������
+        String account = AESUtils.decrypt(cyrpAccount, AESKey);
+        String password = AESUtils.decrypt(cyrpPassword, 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;
+        }
+        //������������������������
+        if(manageAccount.getIsDelete().equals("1")){
+            result.put("accountId",-1);
+            result.put("msg","������������������");
+            return result;
+        }
+        //������������
+        if(!MD5Utils.saltMD5Verify(password,manageAccount.getPassword())){
+            result.put("accountId",-1);
+            result.put("msg","���������������������");
+            return result;
+        }
+        //������������
+        List<ManageRole> roles = roleMapper.getManageRoleByAccountId(manageAccount.getId());
+        if(ObjectUtils.isEmpty(roles)){
+            result.put("accountId",-1);
+            result.put("msg","������������������������");
+            return result;
+        }
+        //������������
+        List<ManageMenu> menus = manageMenuMapper.getParentChildrenMenusByRoles(roles);
+        if(ObjectUtils.isEmpty(menus)){
+            result.put("accountId",-1);
+            result.put("msg","������������������������");
+            return result;
+        }
+
+        //������������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);//������������
+        Map<String, Object> tokenResult = TokenUtils.getToken(String.valueOf(manageAccount.getId()), userInfo);
+        if(tokenResult.get("code").equals(TokenUtils.error)){
+            result.put("accountId",-1);
+            result.put("msg","������token������");
+            return result;
+        }
+
+        //������������������
+        result.put("accountId",manageAccount.getId());//������Id
+        result.put("userName",manageAccount.getUserName());//������������
+        result.put("roles",roles);//������������
+        result.put("menus",menus);//������������
+        result.put("token",tokenResult.get("token"));
+        return result;
+    }
+
+
 }

--
Gitblit v1.8.0