package com.lxzn.nc.service.impl; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.additional.query.impl.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.lxzn.auth.JwtUtil; import com.lxzn.base.service.IMultilevelDictionaryService; import com.lxzn.framework.domain.base.request.NcLogInfoRequest; import com.lxzn.framework.domain.nc.NcLogInfo; import com.lxzn.framework.domain.ucenter.User; import com.lxzn.framework.exception.ExceptionCast; import com.lxzn.framework.model.response.CommonCode; import com.lxzn.framework.model.response.QueryPageResponseResult; import com.lxzn.framework.utils.ExcelUtils; import com.lxzn.framework.utils.IpUtils; import com.lxzn.framework.utils.SpringContextUtils; import com.lxzn.framework.utils.ValidateUtil; import com.lxzn.nc.dao.NcLogInfoMapper; import com.lxzn.nc.service.INcLogInfoService; import com.lxzn.ucenter.service.IUserService; 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 IUserService userService; @Autowired private IMultilevelDictionaryService iMultilevelDictionaryService; @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); LambdaQueryChainWrapper lambdaQuery = super.lambdaQuery(); if(requestParams != null) { if(ValidateUtil.validateString(requestParams.getUsername())) { lambdaQuery.eq(NcLogInfo::getUserName, requestParams.getUsername()); } if(requestParams.getOperateType() != null) { lambdaQuery.eq(NcLogInfo::getOperateType, requestParams.getOperateType()); } if(ValidateUtil.validateString(requestParams.getLogContent())) { lambdaQuery.like(NcLogInfo::getLogContent, requestParams.getLogContent()); } lambdaQuery.ge(StrUtil.isNotEmpty(requestParams.getStartTime()),NcLogInfo::getCreateTime,requestParams.getStartTime()); lambdaQuery.le(StrUtil.isNotEmpty(requestParams.getEndTime()),NcLogInfo::getCreateTime,requestParams.getEndTime()); } ((Page) pageData).setDesc("create_time"); IPage userIPage = lambdaQuery.page(pageData); 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); User user = userService.getById(logInfo.getCreateUser()); if (user != null) { logInfo.setNickName(user.getNickname()); 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); User user = userService.getById(logInfo.getCreateUser()); if (user != null) { logInfo.setNickName(user.getNickname()); logInfo.setUserName(user.getUsername()); } super.saveOrUpdate(logInfo); return true; } /** * 导出查询List * @param requestParams * @return */ @Override @Transactional public ModelAndView exportLogList(NcLogInfoRequest requestParams){ LambdaQueryChainWrapper lambdaQuery = super.lambdaQuery(); if(requestParams != null) { if(ValidateUtil.validateString(requestParams.getUsername())) { lambdaQuery.eq(NcLogInfo::getUserName, requestParams.getUsername()); } if(requestParams.getOperateType() != null) { lambdaQuery.eq(NcLogInfo::getOperateType, requestParams.getOperateType()); } if(ValidateUtil.validateString(requestParams.getLogContent())) { lambdaQuery.like(NcLogInfo::getLogContent, requestParams.getLogContent()); } lambdaQuery.ge(StrUtil.isNotEmpty(requestParams.getStartTime()),NcLogInfo::getCreateTime,requestParams.getStartTime()); lambdaQuery.le(StrUtil.isNotEmpty(requestParams.getEndTime()),NcLogInfo::getCreateTime,requestParams.getEndTime()); } lambdaQuery.orderByDesc(NcLogInfo::getCreateTime); List ncLogInfoList=lambdaQuery.list(); ncLogInfoList.forEach(item->{ //翻译用户名、操作类型 item.setOperateTypeStr(iMultilevelDictionaryService.queryDictTextByKey("OPERATE_TYPE",item.getOperateType().toString())); item.setCreateUser(userService.getById(item.getCreateUser()).getNickname()); }); String userId = JwtUtil.getUserId(); return ExcelUtils.export("DNC日志管理", NcLogInfo.class, ncLogInfoList,userService.getById(userId).getNickname()); } }