package com.ruoyi.system.service.impl; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.Date; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ruoyi.system.domain.vo.SysOperLogVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.system.domain.SysOperLog; import com.ruoyi.system.mapper.SysOperLogMapper; import com.ruoyi.system.service.ISysOperLogService; /** * 操作日志 服务层处理 * * @author ruoyi */ @Service public class SysOperLogServiceImpl implements ISysOperLogService { @Autowired private SysOperLogMapper operLogMapper; /** * 新增操作日志 * * @param operLog 操作日志对象 */ @Override public void insertOperlog(SysOperLog operLog) { operLogMapper.insertOperlog(operLog); } /** * 查询系统操作日志集合 * * @param operLog 操作日志对象 * @return 操作日志集合 */ @Override public List selectOperLogList(SysOperLog operLog) { return operLogMapper.selectOperLogList(operLog); } /** * 批量删除系统操作日志 * * @param operIds 需要删除的操作日志ID * @return 结果 */ @Override public int deleteOperLogByIds(Long[] operIds) { return operLogMapper.deleteOperLogByIds(operIds); } /** * 查询操作日志详细 * * @param operId 操作ID * @return 操作日志对象 */ @Override public SysOperLog selectOperLogById(Long operId) { return operLogMapper.selectOperLogById(operId); } /** * 清空操作日志 */ @Override public void cleanOperLog() { operLogMapper.cleanOperLog(); } /** * 查询时间段内每天的操作日志 */ @Override public Map> queryByDate(SysOperLogVO logVO){ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); DateTimeFormatter dft = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); LocalDate startLocalDate = LocalDate.parse(logVO.getStartTime(),formatter); LocalDate endLocalDate = LocalDate.parse(logVO.getEndTime(),formatter); String title = logVO.getTitle(); Map> resMap = new LinkedHashMap<>(); while (!startLocalDate.isAfter(endLocalDate)){ LocalDateTime startOfDay = startLocalDate.atStartOfDay(); LocalDateTime endOfDay = startLocalDate.plusDays(1).atStartOfDay(); SysOperLogVO sysOperLogVO = new SysOperLogVO(); sysOperLogVO.setTitle(title); sysOperLogVO.setStartTime(startOfDay.format(dft)); sysOperLogVO.setEndTime(endOfDay.format(dft)); List dailyList = operLogMapper.queryByDate(sysOperLogVO); resMap.put(startLocalDate.format(formatter),dailyList); startLocalDate = startLocalDate.plusDays(1); } return resMap; } /** * 筛选查询操作日志 */ @Override public List queryDataByTitle(SysOperLogVO logVO){ return operLogMapper.queryData(logVO); } }