Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/dev' into dev
Browse files Browse the repository at this point in the history
  • Loading branch information
XiaJunjie2020 committed Nov 7, 2022
2 parents ed23659 + 542da44 commit 6cfec39
Show file tree
Hide file tree
Showing 3 changed files with 81 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,13 @@ public class SysLogController {
@ApiOperation("查询日志")
@PostMapping("/logGrid/{goPage}/{pageSize}")
@ApiImplicitParams({
@ApiImplicitParam(paramType = "path", name = "goPage", value = "页码", required = true, dataType = "Integer"),
@ApiImplicitParam(paramType = "path", name = "pageSize", value = "页容量", required = true, dataType = "Integer"),
@ApiImplicitParam(name = "request", value = "查询条件", required = true)
@ApiImplicitParam(paramType = "path", name = "goPage", value = "页码", required = true, dataType = "Integer"),
@ApiImplicitParam(paramType = "path", name = "pageSize", value = "页容量", required = true, dataType = "Integer"),
@ApiImplicitParam(name = "request", value = "查询条件", required = true)
})
public Pager<List<SysLogGridDTO>> logGrid(@PathVariable int goPage, @PathVariable int pageSize,
@RequestBody KeyGridRequest request) {
request = logService.logRetentionProxy(request);
Page<Object> page = PageHelper.startPage(goPage, pageSize, true);
return PageUtils.setPageInfo(page, logService.query(request));
}
Expand All @@ -51,7 +52,7 @@ public List<FolderItem> types() {
@ApiOperation("导出操作日志")
@PostMapping("/export")
@ApiImplicitParam(name = "request", value = "查询条件", required = true)
public void export(@RequestBody KeyGridRequest request) throws Exception{
public void export(@RequestBody KeyGridRequest request) throws Exception {
logService.exportExcel(request);
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package io.dataease.service;

import io.dataease.ext.CleaningRebotMapper;
import io.dataease.service.sys.log.LogService;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

Expand All @@ -16,6 +17,9 @@ public class CleaningRebotService {
@Resource
private CleaningRebotMapper cleaningRebotMapper;

@Resource
private LogService logService;

public void execute() {
int floatDept = 0;
do {
Expand All @@ -33,5 +37,6 @@ public void execute() {
cleaningRebotMapper.delFloatingCreatorLink();
cleaningRebotMapper.delFloatingCreatorLinkMapping();
}
logService.cleanDisusedLog();
}
}
76 changes: 71 additions & 5 deletions backend/src/main/java/io/dataease/service/sys/log/LogService.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

import com.google.gson.Gson;
import io.dataease.auth.api.dto.CurrentUserDto;
import io.dataease.commons.constants.ParamConstants;
import io.dataease.commons.constants.SysLogConstants;
import io.dataease.commons.utils.AuthUtils;
import io.dataease.commons.utils.BeanUtils;
Expand All @@ -18,8 +19,10 @@
import io.dataease.ext.ExtSysLogMapper;
import io.dataease.ext.query.GridExample;
import io.dataease.i18n.Translator;
import io.dataease.plugins.common.base.domain.SysLogExample;
import io.dataease.plugins.common.base.domain.SysLogWithBLOBs;
import io.dataease.plugins.common.base.mapper.SysLogMapper;
import io.dataease.service.system.SystemParameterService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
Expand All @@ -31,14 +34,13 @@
import javax.servlet.http.HttpServletResponse;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;

@Service
public class LogService {

private static final String LOG_RETENTION = "30";
private Gson gson = new Gson();

// 仪表板的额外操作 分享以及公共链接
Expand Down Expand Up @@ -68,6 +70,69 @@ public class LogService {
@Resource
private LogManager logManager;

@Resource
private SystemParameterService systemParameterService;

public void cleanDisusedLog() {
String value = systemParameterService.getValue(ParamConstants.BASIC.LOG_TIME_OUT.getValue());
value = StringUtils.isBlank(value) ? LOG_RETENTION : value;
int logRetention = Integer.parseInt(value);
Calendar instance = Calendar.getInstance();

Calendar startInstance = (Calendar) instance.clone();
startInstance.add(Calendar.DATE, -logRetention);
startInstance.set(Calendar.HOUR_OF_DAY, 0);
startInstance.set(Calendar.MINUTE, 0);
startInstance.set(Calendar.SECOND, 0);
startInstance.set(Calendar.MILLISECOND, -1);
long timeInMillis = startInstance.getTimeInMillis();
SysLogExample example = new SysLogExample();
example.createCriteria().andTimeLessThan(timeInMillis);
sysLogMapper.deleteByExample(example);
}


public KeyGridRequest logRetentionProxy(KeyGridRequest request) {
String value = systemParameterService.getValue(ParamConstants.BASIC.LOG_TIME_OUT.getValue());
value = StringUtils.isBlank(value) ? LOG_RETENTION : value;
int logRetention = Integer.parseInt(value);
Calendar instance = Calendar.getInstance();

Calendar startInstance = (Calendar) instance.clone();
startInstance.add(Calendar.DATE, -logRetention);
startInstance.set(Calendar.HOUR_OF_DAY, 0);
startInstance.set(Calendar.MINUTE, 0);
startInstance.set(Calendar.SECOND, 0);
long startTime = startInstance.getTimeInMillis();

Calendar endInstance = (Calendar) instance.clone();
endInstance.add(Calendar.DATE, 1);
endInstance.set(Calendar.HOUR_OF_DAY, 0);
endInstance.set(Calendar.MINUTE, 0);
endInstance.set(Calendar.SECOND, 0);
long endTime = endInstance.getTimeInMillis();


List<ConditionEntity> conditions = request.getConditions();
if (CollectionUtils.isNotEmpty(conditions) && conditions.stream().anyMatch(condition -> StringUtils.equals("time", condition.getField()))) {
conditions.forEach(condition -> {
if (StringUtils.equals("time", condition.getField()) && startTime > ((List<Long>) condition.getValue()).get(0)) {
((List<Long>) condition.getValue()).set(0, startTime);
}
});
} else {
ConditionEntity conditionEntity = new ConditionEntity();
conditionEntity.setField("time");
conditionEntity.setOperator("between");
List<Long> times = new ArrayList<>();
times.add(startTime);
times.add(endTime);
conditionEntity.setValue(times);
conditions.add(conditionEntity);
}
return request;
}


public List<SysLogGridDTO> query(KeyGridRequest request) {

Expand Down Expand Up @@ -223,7 +288,8 @@ private List<FolderItem> typesByArr(Integer[] opTypes, Integer[] sourceTypes) {
}
return results;
}
private List<FolderItem> viewPanelTypes () {

private List<FolderItem> viewPanelTypes() {
Integer[] opTypes = new Integer[]{13, 14};
Integer[] sourceTypes = new Integer[]{3};
return typesByArr(opTypes, sourceTypes);
Expand Down Expand Up @@ -340,7 +406,7 @@ public void exportExcel(KeyGridRequest request) throws Exception {
//文件名称
String fileName = "DataEase操作日志";
String encodeFileName = URLEncoder.encode(fileName, "UTF-8");
response.setHeader("Content-disposition", "attachment;filename="+encodeFileName+".xls");
response.setHeader("Content-disposition", "attachment;filename=" + encodeFileName + ".xls");
wb.write(outputStream);
outputStream.flush();
outputStream.close();
Expand Down

0 comments on commit 6cfec39

Please sign in to comment.