gunshi-project-ss/src/main/java/com/gunshi/project/ss/service/DocOperateLogService.java

71 lines
2.9 KiB
Java

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<DocOperateLogMapper, DocOperateLog> {
@Autowired
private SysUserMapper sysUserMapper;
public Page<DocOperateLog> pageInfo(DocOperateLogPageSo pageSo) {
LambdaQueryWrapper<DocOperateLog> 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<DocOperateLog> 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<FileAssociations> files = docCenter.getFiles();
if(files!=null && files.size()>0){
List<String> collect = files.stream()
.map(o -> o.getFileName())
.collect(Collectors.toList());
String fileNames = String.join(",", collect);
docOperateLog.setFileName(fileNames);
}
save(docOperateLog);
}
}