package org.jeecg.modules.dnc.service.impl;
|
|
import cn.hutool.core.util.StrUtil;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import org.apache.shiro.SecurityUtils;
|
import org.jeecg.common.system.vo.LoginUser;
|
import org.jeecg.common.util.IpUtils;
|
import org.jeecg.common.util.SpringContextUtils;
|
import org.jeecg.modules.dnc.entity.NcLogInfo;
|
import org.jeecg.modules.dnc.exception.ExceptionCast;
|
import org.jeecg.modules.dnc.mapper.NcLogInfoMapper;
|
import org.jeecg.modules.dnc.response.CommonCode;
|
import org.jeecg.modules.dnc.response.QueryPageResponseResult;
|
import org.jeecg.modules.system.entity.SysUser;
|
import org.jeecg.modules.system.service.ISysDictService;
|
import org.jeecg.modules.system.service.ISysUserService;
|
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
|
import org.jeecgframework.poi.excel.entity.ExportParams;
|
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
|
import org.jeecg.modules.dnc.request.NcLogInfoRequest;
|
import org.jeecg.modules.dnc.service.INcLogInfoService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.web.servlet.ModelAndView;
|
|
import javax.servlet.http.HttpServletRequest;
|
import java.util.List;
|
|
/**
|
* @author clown
|
* * @date 2023/12/4
|
*/
|
@Service
|
public class NcLogInfoServiceImpl extends ServiceImpl<NcLogInfoMapper, NcLogInfo> implements INcLogInfoService {
|
|
@Autowired
|
private ISysUserService userService;
|
|
@Autowired
|
private ISysDictService iSysDictService;
|
|
@Override
|
public QueryPageResponseResult<NcLogInfo> findByPageList(int page, int size, NcLogInfoRequest requestParams) {
|
if(page < 1 || size < 1) {
|
ExceptionCast.cast(CommonCode.INVALID_PAGE);
|
}
|
IPage<NcLogInfo> pageData = new Page<>(page, size);
|
QueryWrapper<NcLogInfo> queryWrapper=new QueryWrapper<>();
|
if(requestParams != null) {
|
queryWrapper.eq(StrUtil.isNotEmpty(requestParams.getUsername()),"user_mame",requestParams.getOperateType());
|
if(requestParams.getOperateType() != null) {
|
queryWrapper.eq("operate_type", requestParams.getOperateType());
|
}
|
queryWrapper.like(StrUtil.isNotEmpty(requestParams.getLogContent()),"log_content",requestParams.getLogContent());
|
queryWrapper.ge(StrUtil.isNotEmpty(requestParams.getStartTime()),"create_time",requestParams.getStartTime());
|
queryWrapper.le(StrUtil.isNotEmpty(requestParams.getEndTime()),"create_time",requestParams.getEndTime());
|
}
|
queryWrapper.orderByDesc("create_time");
|
IPage<NcLogInfo> userIPage = this.page(pageData, queryWrapper);
|
/*if (userIPage != null && userIPage.getRecords() != null && !userIPage.getRecords().isEmpty()) {
|
for (NcLogInfo nc : userIPage.getRecords()) {
|
User user = userService.getById(nc.getCreateUser());
|
if (user != null) {
|
nc.setNickname(user.getNickname());
|
nc.setUsername(user.getUsername());
|
}
|
}
|
}*/
|
return new QueryPageResponseResult<>(CommonCode.SUCCESS, userIPage);
|
}
|
|
@Override
|
@Transactional(rollbackFor = {Exception.class})
|
public boolean saveLogNcInfos(NcLogInfo logInfo) {
|
HttpServletRequest request = SpringContextUtils.getHttpServletRequest();
|
//设置IP地址
|
logInfo.setIp(IpUtils.getIpAddr(request));
|
super.save(logInfo);
|
SysUser user = userService.getById(logInfo.getCreateUser());
|
if (user != null) {
|
logInfo.setNickName(user.getRealname());
|
logInfo.setUserName(user.getUsername());
|
}
|
super.saveOrUpdate(logInfo);
|
return true;
|
}
|
|
@Override
|
@Transactional(rollbackFor = {Exception.class})
|
public boolean saveLogInfo(String moduleInfo, Integer operateType, String logContent) {
|
HttpServletRequest request = SpringContextUtils.getHttpServletRequest();
|
NcLogInfo logInfo = new NcLogInfo();
|
logInfo.setModuleInfo(moduleInfo);
|
logInfo.setOperateType(operateType);
|
logInfo.setLogContent(logContent);
|
//设置IP地址
|
logInfo.setIp(IpUtils.getIpAddr(request));
|
super.save(logInfo);
|
SysUser user = userService.getById(logInfo.getCreateUser());
|
if (user != null) {
|
logInfo.setNickName(user.getRealname());
|
logInfo.setUserName(user.getUsername());
|
}
|
super.saveOrUpdate(logInfo);
|
return true;
|
}
|
|
/**
|
* 导出查询List
|
* @param requestParams
|
* @return
|
*/
|
@Override
|
@Transactional
|
public ModelAndView exportLogList(NcLogInfoRequest requestParams){
|
QueryWrapper<NcLogInfo> queryWrapper=new QueryWrapper<>();
|
if(requestParams != null) {
|
queryWrapper.eq(StrUtil.isNotEmpty(requestParams.getUsername()),"user_mame",requestParams.getOperateType());
|
if(requestParams.getOperateType() != null) {
|
queryWrapper.eq("operate_type", requestParams.getOperateType());
|
}
|
queryWrapper.like(StrUtil.isNotEmpty(requestParams.getLogContent()),"log_content",requestParams.getLogContent());
|
queryWrapper.ge(StrUtil.isNotEmpty(requestParams.getStartTime()),"create_time",requestParams.getStartTime());
|
queryWrapper.le(StrUtil.isNotEmpty(requestParams.getEndTime()),"create_time",requestParams.getEndTime());
|
}
|
queryWrapper.orderByDesc("create_time");
|
List<NcLogInfo> ncLogInfoList=this.list(queryWrapper);
|
ncLogInfoList.forEach(item->{
|
//翻译用户名、操作类型
|
item.setOperateTypeStr(iSysDictService.queryDictTextByKey("OPERATE_TYPE",item.getOperateType().toString()));
|
item.setCreateUser(userService.getById(item.getCreateUser()).getRealname());
|
});
|
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
String userId = user.getId();
|
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
|
mv.addObject(NormalExcelConstants.FILE_NAME, "DNC日志管理");
|
mv.addObject(NormalExcelConstants.CLASS, NcLogInfo.class);
|
ExportParams exportParams = new ExportParams("DNC日志管理" + "报表", "导出人:" + userService.getById(userId).getRealname(), "DNC日志管理");
|
mv.addObject(NormalExcelConstants.PARAMS, exportParams);
|
mv.addObject(NormalExcelConstants.DATA_LIST, ncLogInfoList);
|
return mv;
|
}
|
|
}
|