package com.farriver.bwf.service.system; import com.farriver.bwf.common.model.ApiPageData; import com.farriver.bwf.common.utilities.DateTimeUtils; import com.farriver.bwf.common.utilities.FileUtil; import com.farriver.bwf.common.utilities.ListUtils; import com.farriver.bwf.data.transferobject.queryobject.system.SystemLogQueryObject; import com.farriver.bwf.data.transferobject.viewmodel.system.SystemLogViewModel; import com.farriver.bwf.service.ServiceBase; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.io.File; import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; @Service public class SystemLogService extends ServiceBase { private static final Logger logger = LoggerFactory.getLogger(SystemLogService.class); @Value("${log.path}") public String logPath; @Value("${log.alias}") public String logAlias; public ApiPageData GetViewPageList(SystemLogQueryObject queryObject) { String folder = logPath; List logfiles = FileUtil.getFiles(folder); List viewModels = new ArrayList<>(); String[] modules = folder.split("/"); String module = modules[modules.length - 1]; for (File file : logfiles) { SystemLogViewModel sytemLog = new SystemLogViewModel(); sytemLog.setId(UUID.randomUUID().toString()); sytemLog.setModule(module); sytemLog.setSource("../../" + module + "/" + file.getName()); Date datetime = DateTimeUtils.parseDate(file.getName(), new SimpleDateFormat("yyyy-MM-dd-HH-mm")); if (datetime != null) sytemLog.setActiontime(datetime); viewModels.add(sytemLog); } //查询条件 if (queryObject.getStartDateTime() != null && queryObject.getEndDateTime() != null) { viewModels = viewModels.stream().filter(e -> e.getActiontime().after(queryObject.getStartDateTime()) && e.getActiontime().before(queryObject.getEndDateTime())).collect(Collectors.toList()); } Collections.sort(viewModels, (SystemLogViewModel o1, SystemLogViewModel o2) -> o2.getActiontime().compareTo(o1.getActiontime())); //分页-内存 List pagelist = ListUtils.pagination(viewModels, queryObject.getPageIndex(), queryObject.getPageSize()); ApiPageData bean = ApiPageData.build(); bean.setData(pagelist); bean.setTotal(viewModels.size()); return bean; } }