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 implements INcLogInfoService { @Autowired private ISysUserService userService; @Autowired private ISysDictService iSysDictService; @Override public QueryPageResponseResult findByPageList(int page, int size, NcLogInfoRequest requestParams) { if(page < 1 || size < 1) { ExceptionCast.cast(CommonCode.INVALID_PAGE); } IPage pageData = new Page<>(page, size); QueryWrapper 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 userIPage = this.page(pageData, queryWrapper); /*if (userIPage != null && userIPage.getRecords() != null && !userIPage.getRecords().isEmpty()) { for (NcLogInfo nc : userIPage.getRecords()) { User user = userService.getById(nc.getCreateBy()); 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.getCreateBy()); 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.getCreateBy()); 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 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 ncLogInfoList=this.list(queryWrapper); ncLogInfoList.forEach(item->{ //翻译用户名、操作类型 item.setOperateTypeStr(iSysDictService.queryDictTextByKey("OPERATE_TYPE",item.getOperateType().toString())); item.setCreateBy(userService.getById(item.getCreateBy()).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; } }