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/DocLogService.java |  216 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 215 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/whyc/service/DocLogService.java b/src/main/java/com/whyc/service/DocLogService.java
index 3933e90..b90d448 100644
--- a/src/main/java/com/whyc/service/DocLogService.java
+++ b/src/main/java/com/whyc/service/DocLogService.java
@@ -1,11 +1,225 @@
 package com.whyc.service;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.whyc.constant.UserOperation;
+import com.whyc.dto.Response;
 import com.whyc.mapper.DocLogMapper;
+import com.whyc.pojo.DocLog;
+import com.whyc.util.ActionUtil;
+import com.whyc.util.DateUtil;
+import com.whyc.util.ExcelUtil;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
 @Service
 public class DocLogService {
-    @Autowired
+    @Autowired(required = false)
     private DocLogMapper mapper;
+
+    public void recordOperationLog(Long uId,String name, Integer operationType, Date operationTime, String terminalIp, String operationMsg, String operationDetail) {
+        DocLog docLog=new DocLog();
+        docLog.setId(uId.intValue());
+        docLog.setName(name);
+        docLog.setOprateType(operationType);
+        docLog.setOprateDay(operationTime);
+        docLog.setTerminalIp(terminalIp);
+        docLog.setOprateMsg(operationMsg);
+        docLog.setOperationDetail(operationDetail);
+        mapper.insert(docLog);
+    }
+    //涓嬭浇涓撳睘鏃ュ織璁板綍
+    public void recordOperationLogDownLoad(Long uId,String name, Integer operationType, Date operationTime, String terminalIp
+            , String operationMsg, String operationDetail,String oprateReason,String oprateInfo,String oprateVersion) {
+        DocLog docLog=new DocLog();
+        docLog.setId(uId.intValue());
+        docLog.setName(name);
+        docLog.setOprateType(operationType);
+        docLog.setOprateDay(operationTime);
+        docLog.setTerminalIp(terminalIp);
+        docLog.setOprateMsg(operationMsg);
+        docLog.setOperationDetail(operationDetail);
+        docLog.setOprateReason(oprateReason);
+        docLog.setOprateInfo(oprateInfo);
+        docLog.setOprateVersion(oprateVersion);
+        mapper.insert(docLog);
+    }
+    public PageInfo<DocLog> getPage(int pageNum, int pageSize, DocLog docLog) {
+        PageHelper.startPage(pageNum,pageSize,true);
+        //杩欎釜鎺ュ彛瑕佸吋瀹规柊鑰佸璁℃棩蹇楄褰曠殑鏌ヨ
+        List<DocLog> userLogList = mapper.getList(docLog);
+        userLogList.stream().forEach(docLog1-> {
+            switch (docLog1.getOprateType()){
+                case 1: docLog1.setOperationTypeStr(UserOperation.TYPE_LOGIN.getTypeName());break;
+                case 2: docLog1.setOperationTypeStr(UserOperation.TYPE_LOGOUT.getTypeName());break;
+                case 3: docLog1.setOperationTypeStr(UserOperation.TYPE_ADD.getTypeName());break;
+                case 4: docLog1.setOperationTypeStr(UserOperation.TYPE_UPDATE.getTypeName());break;
+                case 5: docLog1.setOperationTypeStr(UserOperation.TYPE_DELETE.getTypeName());break;
+                case 20:docLog1.setOperationTypeStr(UserOperation.TYPE_UNAUTHORIZED_ACCESS.getTypeName());break;
+                case 21:docLog1.setOperationTypeStr(UserOperation.TYPE_EXCEPTION.getTypeName());break;
+                case 31:docLog1.setOperationTypeStr(UserOperation.TYPE_LOGIN_FAIL.getTypeName());break;
+                case 32:docLog1.setOperationTypeStr(UserOperation.TYPE_PARAM_CHANGE.getTypeName());break;
+                case 33:docLog1.setOperationTypeStr(UserOperation.TYPE_PASSWORD_CHANGE.getTypeName());break;
+                case 34:docLog1.setOperationTypeStr(UserOperation.TYPE_LOGIN_TIMEOUT.getTypeName());break;
+                default:docLog1.setOperationTypeStr(UserOperation.TYPE_UNRECOGNIZED.getTypeName());
+            }
+        });
+        PageInfo<DocLog> pageInfo = new PageInfo<>(userLogList);
+        return pageInfo;
+
+    }
+
+    public void exportExcel(HttpServletResponse response, String[][] value) {
+
+        String[] columnTitleArr = new String[]{"鎿嶄綔浜哄鍚�","鎿嶄綔绫诲瀷","鎿嶄綔鏃堕棿","缁堢IP","鎿嶄綔浜嬩欢","鍏蜂綋鍙傛暟"};
+        String now = DateUtil.YYYY_MM_DD_HH_MM_SS_UNION.format(new Date());
+        ExcelUtil.exportExcel("UserLog-"+now,"娴嬭瘯sheet1",columnTitleArr,value,new HSSFWorkbook(),response);
+    }
+
+    public void record(long uId,String name, int operationType, String msg) {
+        DocLog docLog = new DocLog();
+        docLog.setTerminalIp(ActionUtil.getRequest().getRemoteAddr());
+        docLog.setOprateDay(new Date());
+        docLog.setId((int)(uId));
+        docLog.setName(name);
+        docLog.setOprateType(operationType);
+        docLog.setOprateMsg(msg);
+        mapper.insert(docLog);
+    }
+
+    public void record(long uId,String name, int operationType, String msg,String msgDetail) {
+        DocLog docLog = new DocLog();
+        HttpServletRequest request = ActionUtil.getRequest();
+        String remoteAddr;
+        if(request!=null) {
+            remoteAddr = request.getRemoteAddr();
+        }else{
+            remoteAddr = "127.0.0.1";
+        }
+        docLog.setTerminalIp(remoteAddr);
+        docLog.setOprateDay(new Date());
+        docLog.setId((int)(uId));
+        docLog.setName(name);
+        docLog.setOprateType(operationType);
+        docLog.setOprateMsg(msg);
+        docLog.setOperationDetail(msgDetail);
+        mapper.insert(docLog);
+    }
+
+    public void record2(HttpServletRequest request,long uId, String name, int operationType, String msg, String msgDetail) {
+        DocLog docLog = new DocLog();
+        docLog.setTerminalIp(request.getRemoteAddr());
+        //userLog.setTerminalIp(request.getRemoteAddr());
+        docLog.setOprateDay(new Date());
+        docLog.setId((int)(uId));
+        docLog.setName(name);
+        docLog.setOprateType(operationType);
+        docLog.setOprateMsg(msg);
+        docLog.setOperationDetail(msgDetail);
+        mapper.insert(docLog);
+    }
+    //鏃ュ織鏌ヨ
+    public Response searchLog(DocLog docLog,int pageCurr, int pageSize) {
+        PageHelper.startPage(pageCurr,pageSize);
+        QueryWrapper wrapper=new QueryWrapper();
+        if(docLog!=null){
+            if(docLog.getName()!=null&&docLog.getName()!=""){
+                wrapper.like("name",docLog.getName());
+            }
+            if(docLog.getOprateType()!=null){
+                wrapper.eq("oprate_type",docLog.getOprateType());
+            }
+            if(docLog.getOprateDay()!=null){
+                wrapper.ge("oprate_day",docLog.getOprateDay());
+            }
+            if(docLog.getOprateDay2()!=null){
+                wrapper.le("oprate_day",docLog.getOprateDay2());
+            }
+        }
+        wrapper.ne("id", 0);
+        wrapper.ne("oprate_type",UserOperation.TYPE_EXCEPTION.getType());
+        wrapper.orderByDesc("oprate_day");
+        List<DocLog> list=mapper.selectList(wrapper);
+        list.stream().forEach(dlog->{
+            dlog.setOperationTypeStr(UserOperation.getNameByType(dlog.getOprateType()));
+        });
+        PageInfo pageInfo=new PageInfo(list);
+        return new Response().setII(1,list.size()>0,pageInfo,"鏁版嵁杩斿洖");
+    }
+    //鎿嶄綔瀵瑰簲鍏崇郴
+    public Response getOperate() {
+        return new Response().setII(1,true,UserOperation.values(),"鏁版嵁杩斿洖");
+    }
+    //鏌ヨ涓嬭浇鏃ュ織(DownLoadNew)
+    public Response getDownLoadNew(int type, String oprateInfo) {
+        QueryWrapper wrapper=new QueryWrapper();
+        wrapper.ne("id", 0);
+        wrapper.eq("oprate_type", type);
+        wrapper.eq("oprate_info", oprateInfo);
+        wrapper.orderByDesc("oprate_day");
+        List<DocLog> list=mapper.selectList(wrapper);
+        list.stream().forEach(dlog->{
+            dlog.setOperationTypeStr(UserOperation.getNameByType(dlog.getOprateType()));
+        });
+        return new Response().setII(1,list.size()>0,list,"鏁版嵁杩斿洖");
+    }
+
+    public List<DocLog> getListOfToday() {
+        Calendar startTime = Calendar.getInstance();
+
+        startTime.set(Calendar.HOUR_OF_DAY,0);
+        startTime.set(Calendar.MINUTE,0);
+        startTime.set(Calendar.SECOND,0);
+
+        Calendar endTime = Calendar.getInstance();
+        endTime.set(Calendar.HOUR_OF_DAY,23);
+        endTime.set(Calendar.MINUTE,59);
+        endTime.set(Calendar.SECOND,59);
+
+        QueryWrapper<DocLog> query = Wrappers.query();
+        query.ge("oprate_day",startTime.getTime());
+        query.le("oprate_day",endTime.getTime());
+        query.ne("oprate_type",10);
+        query.orderByDesc("num");
+
+        List<DocLog> logList = mapper.selectList(query);
+        logList.forEach(log->{
+            Integer operateType = log.getOprateType();
+            switch (operateType){
+                case 1: log.setOperateTypeName(UserOperation.TYPE_LOGIN.getTypeName());break;
+                case 2: log.setOperateTypeName(UserOperation.TYPE_LOGOUT.getTypeName());break;
+                case 3: log.setOperateTypeName(UserOperation.TYPE_ADD.getTypeName());break;
+                case 4: log.setOperateTypeName(UserOperation.TYPE_UPDATE.getTypeName());break;
+                case 5: log.setOperateTypeName(UserOperation.TYPE_DELETE.getTypeName());break;
+                case 7: log.setOperateTypeName(UserOperation.TYPE_CANCEL.getTypeName());break;
+                case 9: log.setOperateTypeName(UserOperation.TYPE_STOP.getTypeName());break;
+                case 11: log.setOperateTypeName(UserOperation.TYPE_DOWNLOAD.getTypeName());break;
+                case 12: log.setOperateTypeName(UserOperation.TYPE_DOWNLOAD_PRODUCT.getTypeName());break;
+                case 13: log.setOperateTypeName(UserOperation.TYPE_DOWNLOAD_MATERIAL.getTypeName());break;
+                case 14: log.setOperateTypeName(UserOperation.TYPE_DOWNLOAD_SOFWARE.getTypeName());break;
+                case -1: log.setOperateTypeName(UserOperation.TYPE_UNRECOGNIZED.getTypeName());break;
+                case 20: log.setOperateTypeName(UserOperation.TYPE_UNAUTHORIZED_ACCESS.getTypeName());break;
+                case 21: log.setOperateTypeName(UserOperation.TYPE_EXCEPTION.getTypeName());break;
+                case 31: log.setOperateTypeName(UserOperation.TYPE_LOGIN_FAIL.getTypeName());break;
+                case 32: log.setOperateTypeName(UserOperation.TYPE_PARAM_CHANGE.getTypeName());break;
+                case 33: log.setOperateTypeName(UserOperation.TYPE_PASSWORD_CHANGE.getTypeName());break;
+                case 34: log.setOperateTypeName(UserOperation.TYPE_LOGIN_TIMEOUT.getTypeName());break;
+                case 35: log.setOperateTypeName(UserOperation.TYPE_LOGIN_NO_PASS.getTypeName());break;
+                case 41: log.setOperateTypeName(UserOperation.TYPE_SEND_MAIL.getTypeName());break;
+                default: log.setOperateTypeName(UserOperation.TYPE_UNRECOGNIZED.getTypeName());break;
+            }
+        });
+
+        return logList;
+
+    }
 }

--
Gitblit v1.9.1