whyclxw
4 天以前 bfa320956f20988fe671b0c4d25aa82fe766a98d
src/main/java/com/whyc/service/DocLogService.java
@@ -1,8 +1,11 @@
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;
@@ -14,6 +17,7 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
@@ -22,14 +26,31 @@
    @Autowired(required = false)
    private DocLogMapper mapper;
    public void recordOperationLog(Long uId, Integer operationType, Date operationTime, String terminalIp, String operationMsg, String operationDetail) {
    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) {
@@ -64,36 +85,141 @@
        ExcelUtil.exportExcel("UserLog-"+now,"测试sheet1",columnTitleArr,value,new HSSFWorkbook(),response);
    }
    public void record(long uId, int operationType, String msg) {
    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, int operationType, String msg,String msgDetail) {
    public void record(long uId,String name, int operationType, String msg,String msgDetail) {
        DocLog docLog = new DocLog();
        docLog.setTerminalIp(ActionUtil.getRequest().getRemoteAddr());
        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, int operationType, String msg, String msgDetail) {
    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;
    }
}