From cf9a5039e6db9d1d5963e3fe1a37d00169ec2ef7 Mon Sep 17 00:00:00 2001
From: whyclxw <810412026@qq.com>
Date: 星期三, 25 六月 2025 11:18:22 +0800
Subject: [PATCH] 验收报告修改

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

diff --git a/src/main/java/com/whyc/service/DocUserService.java b/src/main/java/com/whyc/service/DocUserService.java
index 95e1ded..4a6243c 100644
--- a/src/main/java/com/whyc/service/DocUserService.java
+++ b/src/main/java/com/whyc/service/DocUserService.java
@@ -1,11 +1,213 @@
 package com.whyc.service;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.whyc.dto.FileDirPath;
+import com.whyc.dto.Response;
 import com.whyc.mapper.DocUserMapper;
+import com.whyc.pojo.DocDepart;
+import com.whyc.pojo.DocRole;
+import com.whyc.pojo.DocUser;
+import com.whyc.pojo.Permit;
+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.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpServletRequest;
+import java.io.File;
+import java.io.IOException;
+import java.util.*;
+
+import static com.whyc.util.ActionUtil.createFilefolderIFNotExist;
 
 @Service
 public class DocUserService {
-    @Autowired
+    @Autowired(required = false)
     private DocUserMapper mapper;
+
+    @Autowired
+    private DocFaceService faceService;
+
+    @Autowired
+    private DocRoleService roleService;
+
+    @Autowired
+    private DocDepartService departService;
+
+    @Autowired
+    private PermitService permitService;
+
+    //鏌ヨ鎵�鏈夌敤鎴蜂俊鎭�
+    public Response getAllUser(DocUser docUser, int pageCurr, int pageSize) {
+        PageHelper.startPage(pageCurr,pageSize);
+        List<DocUser> list=mapper.getAllUser(docUser);
+        PageInfo pageInfo=new PageInfo(list);
+        return new Response().setII(1,list!=null,pageInfo,"鏁版嵁杩斿洖");
+    }
+    //缂栬緫鎵�鏈夌敤鎴蜂俊鎭�
+    public Response updateUser(MultipartFile file,DocUser docUser) {
+        int faceId=(docUser.getFaceId()==null||docUser.getFaceId().isEmpty())?0:Integer.valueOf(docUser.getFaceId());
+        //妫�娴嬫槸鍚﹀瓨鍦ㄩ噸鏂颁笂浼犵殑浜鸿劯
+        faceId=checkFaceData(file,faceId);
+        UpdateWrapper wrapper=new UpdateWrapper();
+        wrapper.set("tel",docUser.getTel());
+        wrapper.set("phone",docUser.getPhone());
+        wrapper.set("depart_id",docUser.getDepartId());
+        wrapper.set("face_id",faceId);
+        wrapper.set("role_id",docUser.getRoleId());
+        wrapper.set("mail",docUser.getMail());
+        wrapper.eq("id",docUser.getId());
+        int bl=mapper.update(null,wrapper);
+        return new Response().set(1,bl>0);
+    }
+    //鏂版坊鍔犵敤鎴蜂俊鎭�
+    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);
+    }
+
+    //妫�娴嬫槸鍚﹀瓨鍦ㄩ噸鏂颁笂浼犵殑浜鸿劯
+    public int checkFaceData(MultipartFile file,int faceId){
+        String fileDirName = FileDirPath.getFileDirName();
+        String root=fileDirName+File.separator+"face"+File.separator;
+        if(file==null){
+            return faceId;
+        }else{
+            String fileFileName = file.getOriginalFilename();
+            String filePath = root + fileFileName;
+            createFilefolderIFNotExist(filePath);
+            try {
+                file.transferTo(new File(filePath));
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+            if(faceId==0){
+                //鎻掑叆鏂板浘鐗囧悓鏃惰幏鍙栦汉鑴竔d
+                faceId=faceService.getNewFaceId();
+                //褰曞叆鏂扮殑浜鸿劯
+                faceService.setNewFace(faceId,filePath);
+            }else{
+                //淇敼鏃х殑浜鸿劯
+                faceService.updateFace(faceId,filePath);
+            }
+        }
+        return faceId;
+    }
+    //鍒犻櫎鐢ㄦ埛淇℃伅
+    public Response delUser(int id) {
+        UpdateWrapper wrapper=new UpdateWrapper();
+        wrapper.eq("id",id);
+        int bl=mapper.delete(wrapper);
+        return new Response().setII(1,bl>0,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,"瀵嗙爜閿欒");
+        }
+        //鐧诲綍鎴愬姛
+        ServletContext servletContext = request.getServletContext();
+        servletContext.setAttribute(name, request.getSession().getId());
+        //Session瀛樺偍褰撳墠鐢ㄦ埛鍙婃潈闄愮粍鍒楄〃
+        DocUser userDB = (DocUser) subject.getPrincipal();
+        userDB.setSnId(null);
+        request.getSession().setAttribute("user", userDB);
+        //鏌ヨ瑙掕壊鍜岄儴闂ㄥ垪琛ㄤ俊鎭�
+        Map<String,Object> map = new HashMap<>();
+        List<DocDepart> departList = (List<DocDepart>) ((PageInfo)departService.getAllDepart().getData2()).getList();
+        List<DocRole> roleList = (List<DocRole>)  ((PageInfo)roleService.getAllRole().getData2()).getList();
+        List<Permit> permitList = permitService.getPermitsByUname();
+        map.put("departs",departList);
+        map.put("roles",roleList);
+        map.put("permits",permitList);
+        return response.setIII(1,true, userDB,map,"鐧诲綍鎴愬姛");
+    }
+    //淇敼瀵嗙爜
+    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,"淇敼鎴愬姛");
+        }else {
+            return new Response().set(1,false,"淇敼澶辫触");
+        }
+    }
+    //鏍规嵁瑙掕壊id鏌ヨ瀵瑰簲鐨勭敤鎴�
+    public Response getUserByRoleId(int roleId) {
+        QueryWrapper wrapper=new QueryWrapper();
+        wrapper.eq("role_id",roleId);
+        wrapper.select("id","name");
+        List<DocUser> list=mapper.selectList(wrapper);
+        return new Response().setII(1,list.size()>0,list,"杩斿洖鏁版嵁");
+    }
+    //鏌ヨ鎵�鏈夌敤鎴�(鏉冮檺绠$悊鐢�)
+    public Response getAllDocUser() {
+        List<DocUser> list=mapper.getAllDocUser();
+        return new Response().setII(1,list!=null,list,"鏁版嵁杩斿洖");
+    }
+
+    public Response readUserByRoleIds(Integer[] roleIds) {
+        QueryWrapper wrapper=new QueryWrapper();
+        List<Integer> integers = Arrays.asList(roleIds);
+        wrapper.in("role_id",integers);
+        wrapper.select("id","name","role_id");
+        List<DocUser> list=mapper.selectList(wrapper);
+        return new Response().setII(1,list.size()>0,list,"杩斿洖鏁版嵁");
+    }
+
+    public boolean checkExists(String userName) {
+        QueryWrapper<DocUser> query = Wrappers.query();
+        query.eq("name",userName).last(" limit 1");
+        DocUser docUser = mapper.selectOne(query);
+        return docUser != null;
+    }
 }

--
Gitblit v1.9.1