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<NcLogInfoMapper, NcLogInfo> implements INcLogInfoService {
|
|
@Autowired
|
private IUserService userService;
|
|
@Autowired
|
private IMultilevelDictionaryService iMultilevelDictionaryService;
|
|
@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);
|
LambdaQueryChainWrapper<NcLogInfo> 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<NcLogInfo>) pageData).setDesc("create_time");
|
IPage<NcLogInfo> 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<NcLogInfo> 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<NcLogInfo> 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());
|
}
|
|
}
|