From cf7f2a00eb4e5fbfe90a403f6543d67daf447ff8 Mon Sep 17 00:00:00 2001
From: whycxzp <perryhsu@163.com>
Date: 星期四, 21 七月 2022 09:51:36 +0800
Subject: [PATCH] 更新工作流

---
 src/main/java/com/whyc/service/DocUserService.java |   77 +++++++++++++++++++++++++++++++++++---
 1 files changed, 71 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/whyc/service/DocUserService.java b/src/main/java/com/whyc/service/DocUserService.java
index 42e34d8..48bb8fb 100644
--- a/src/main/java/com/whyc/service/DocUserService.java
+++ b/src/main/java/com/whyc/service/DocUserService.java
@@ -1,5 +1,6 @@
 package com.whyc.service;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
@@ -9,13 +10,21 @@
 import com.whyc.dto.Response;
 import com.whyc.mapper.DocUserMapper;
 import com.whyc.pojo.DocUser;
+import com.whyc.util.ActionUtil;
+import com.whyc.util.RSAUtil;
+import org.apache.shiro.SecurityUtils;
+import org.apache.shiro.authc.UnknownAccountException;
+import org.apache.shiro.authc.UsernamePasswordToken;
+import org.apache.shiro.subject.Subject;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.system.ApplicationHome;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 
+import javax.servlet.http.HttpServletRequest;
 import java.io.File;
 import java.io.IOException;
+import java.util.Date;
 import java.util.List;
 
 import static com.whyc.util.ActionUtil.createFilefolderIFNotExist;
@@ -29,9 +38,9 @@
     private DocFaceService faceService;
 
     //鏌ヨ鎵�鏈夌敤鎴蜂俊鎭�
-    public Response getAllUser(int pageCurr,int pageSize) {
+    public Response getAllUser(DocUser docUser, int pageCurr, int pageSize) {
         PageHelper.startPage(pageCurr,pageSize);
-        List<DocUser> list=mapper.getAllUser();
+        List<DocUser> list=mapper.getAllUser(docUser);
         PageInfo pageInfo=new PageInfo(list);
         return new Response().setII(1,list!=null?true:false,pageInfo,"鏁版嵁杩斿洖");
     }
@@ -52,10 +61,19 @@
     }
     //鏂版坊鍔犵敤鎴蜂俊鎭�
     public Response addUser(MultipartFile file,DocUser docUser) {
+        QueryWrapper wrapper=new QueryWrapper();
+        String pwd= RSAUtil.encrypt("123456", RSAUtil.getPublicKey());
+        docUser.setSnId(pwd);
+        wrapper.eq("name",docUser.getName());
+        List list=mapper.selectList(wrapper);
+        if(list!=null&&list.size()>0){
+            return new Response().setII(1,false,list,"鐢ㄦ埛鍚嶅凡瀛樺湪");
+        }
         int faceId=(docUser.getFaceId()==null||docUser.getFaceId().isEmpty())?0:Integer.valueOf(docUser.getFaceId());
         //妫�娴嬫槸鍚﹀瓨鍦ㄩ噸鏂颁笂浼犵殑浜鸿劯
         faceId=checkFaceData(file,faceId);
         docUser.setFaceId(String.valueOf(faceId));
+        docUser.setCreTime(new Date());
         int bl=mapper.insert(docUser);
         return new Response().set(1,bl>0?true:false);
     }
@@ -64,7 +82,7 @@
     public int checkFaceData(MultipartFile file,int faceId){
         String fileDirName = FileDirPath.getFileDirName();
         String root=fileDirName+File.separator+"face"+File.separator;
-        if(file.isEmpty()){
+        if(file==null){
             return faceId;
         }else{
             String fileFileName = file.getOriginalFilename();
@@ -75,15 +93,14 @@
             } catch (IOException e) {
                 e.printStackTrace();
             }
-            String relPath=File.separator+"face"+File.separator+fileFileName;
             if(faceId==0){
                 //鎻掑叆鏂板浘鐗囧悓鏃惰幏鍙栦汉鑴竔d
                 faceId=faceService.getNewFaceId();
                 //褰曞叆鏂扮殑浜鸿劯
-                faceService.setNewFace(faceId,relPath);
+                faceService.setNewFace(faceId,filePath);
             }else{
                 //淇敼鏃х殑浜鸿劯
-                faceService.updateFace(faceId,relPath);
+                faceService.updateFace(faceId,filePath);
             }
         }
         return faceId;
@@ -95,4 +112,52 @@
         int bl=mapper.delete(wrapper);
         return new Response().setII(1,bl>0?true:false,bl,"鍒犻櫎杩斿洖");
     }
+
+    public Response login(String name, String snId, HttpServletRequest request) {
+        Response response = new Response();
+        String[] dataArr = RSAUtil.decryptFrontP(snId, RSAUtil.fontSeparator);
+        //楠岀md5
+        if (!dataArr[1].equals(ActionUtil.EncryptionMD5(org.apache.commons.lang3.StringUtils.trim(dataArr[0])).toString())) {
+            return response.set(1, false, "瀵嗙爜楠岀澶辫触");
+        }
+        UsernamePasswordToken userToken = new UsernamePasswordToken(name, dataArr[0]);
+        Subject subject = SecurityUtils.getSubject();
+        try {
+            subject.login(userToken);
+        } catch (Exception e) {
+            if(e instanceof UnknownAccountException){
+                return response.set(1,false,"璐﹀彿涓嶅瓨鍦�");
+            }
+            return response.set(1,false,"瀵嗙爜閿欒");
+        }
+        //鐧诲綍鎴愬姛
+        //Session瀛樺偍褰撳墠鐢ㄦ埛鍙婃潈闄愮粍鍒楄〃
+        DocUser userDB = (DocUser) subject.getPrincipal();
+        userDB.setSnId(null);
+        request.getSession().setAttribute("user", userDB);
+        return response.setII(1,true, userDB,"鐧诲綍鎴愬姛");
+    }
+    //淇敼瀵嗙爜
+    public Response changeSnId(String name,String oldSnId, String newSnId) {
+        if(name==null||name.equals("")){
+            return new Response().set(1,false,"鎵句笉鍒扮敤鎴�");
+        }
+        //楠岃瘉鑰佸瘑鐮佹槸鍚︽纭�
+        String snIdRsa=mapper.selectSnId(name);
+        //瑙e瘑
+        String snId=RSAUtil.decrypt(snIdRsa,RSAUtil.getPrivateKey());
+        String[] decOld=RSAUtil.decryptFrontP(oldSnId,RSAUtil.fontSeparator);
+        String oldId=decOld[0];
+        String[] newOld=RSAUtil.decryptFrontP(newSnId,RSAUtil.fontSeparator);
+        String newId=newOld[0];
+        if(oldId.equals(snId)){
+            UpdateWrapper wrapper=new UpdateWrapper();
+            wrapper.set("sn_id",RSAUtil.encrypt(newId,RSAUtil.getPublicKey()));
+            wrapper.eq("name",name);
+            int bl=mapper.update(null,wrapper);
+            return  new Response().set(1,bl>0?true:false,"淇敼鎴愬姛");
+        }else {
+            return new Response().set(1,false,"淇敼澶辫触");
+        }
+    }
 }

--
Gitblit v1.9.1