package com.gunshi.project.ss.service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.gunshi.project.ss.entity.so.DocOperateLogPageSo; import com.gunshi.project.ss.mapper.DocOperateLogMapper; import com.gunshi.project.ss.model.DocCenter; import com.gunshi.project.ss.model.DocOperateLog; import com.gunshi.project.ss.model.FileAssociations; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.system.mapper.SysUserMapper; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; import java.util.List; import java.util.stream.Collectors; @Service @Slf4j @Transactional(rollbackFor = Exception.class) public class DocOperateLogService extends ServiceImpl { @Autowired private SysUserMapper sysUserMapper; public Page pageInfo(DocOperateLogPageSo pageSo) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); if(pageSo.getDateTimeRangeSo() != null){ queryWrapper.ge(DocOperateLog::getCreateTime,pageSo.getDateTimeRangeSo().getStart()); queryWrapper.le(DocOperateLog::getCreateTime,pageSo.getDateTimeRangeSo().getEnd()); } if(pageSo.getOperateType() != null){ queryWrapper.eq(DocOperateLog::getOperateType,pageSo.getOperateType()); } queryWrapper.orderByDesc(DocOperateLog::getCreateTime); Page docOperateLogPage = this.baseMapper.selectPage(pageSo.getPageSo().toPage(), queryWrapper); for (DocOperateLog record : docOperateLogPage.getRecords()) { SysUser sysUser = sysUserMapper.selectUserById(record.getUserId()); if(sysUser != null){ record.setUserName(sysUser.getNickName()); } } return docOperateLogPage; } public void saveLog(DocCenter docCenter,Integer operateType){ DocOperateLog docOperateLog = new DocOperateLog(); docOperateLog.setDocName(docCenter.getDocName()); docOperateLog.setOperateType(operateType); docOperateLog.setCreateTime(LocalDateTime.now()); docOperateLog.setDocNumber(docCenter.getDocNumber()); docOperateLog.setUserId(docCenter.getUserId()); List files = docCenter.getFiles(); if(files!=null && files.size()>0){ List collect = files.stream() .map(o -> o.getFileName()) .collect(Collectors.toList()); String fileNames = String.join(",", collect); docOperateLog.setFileName(fileNames); } save(docOperateLog); } }