update 优化重复代码和不必要的字符串转换

This commit is contained in:
JackyTang 2022-12-16 01:12:31 +08:00
parent ee99f545ae
commit 73a107068f

View File

@ -14,18 +14,17 @@ import com.ruoyi.common.utils.ip.AddressUtils;
import com.ruoyi.system.domain.SysLogininfor; import com.ruoyi.system.domain.SysLogininfor;
import com.ruoyi.system.mapper.SysLogininforMapper; import com.ruoyi.system.mapper.SysLogininforMapper;
import com.ruoyi.system.service.ISysLogininforService; import com.ruoyi.system.service.ISysLogininforService;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.context.event.EventListener; import org.springframework.context.event.EventListener;
import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;
/** /**
* 系统访问日志情况信息 服务层处理 * 系统访问日志情况信息 服务层处理
* *
@ -51,14 +50,13 @@ public class SysLogininforServiceImpl implements ISysLogininforService {
final String ip = ServletUtils.getClientIP(request); final String ip = ServletUtils.getClientIP(request);
String address = AddressUtils.getRealAddressByIP(ip); String address = AddressUtils.getRealAddressByIP(ip);
StringBuilder s = new StringBuilder(); String s = getBlock(ip)
s.append(getBlock(ip)); + address
s.append(address); + getBlock(logininforEvent.getUsername())
s.append(getBlock(logininforEvent.getUsername())); + getBlock(logininforEvent.getStatus())
s.append(getBlock(logininforEvent.getStatus())); + getBlock(logininforEvent.getMessage());
s.append(getBlock(logininforEvent.getMessage()));
// 打印信息到日志 // 打印信息到日志
log.info(s.toString(), logininforEvent.getArgs()); log.info(s, logininforEvent.getArgs());
// 获取客户端操作系统 // 获取客户端操作系统
String os = userAgent.getOs().getName(); String os = userAgent.getOs().getName();
// 获取客户端浏览器 // 获取客户端浏览器
@ -85,18 +83,12 @@ public class SysLogininforServiceImpl implements ISysLogininforService {
if (msg == null) { if (msg == null) {
msg = ""; msg = "";
} }
return "[" + msg.toString() + "]"; return "[" + msg + "]";
} }
@Override @Override
public TableDataInfo<SysLogininfor> selectPageLogininforList(SysLogininfor logininfor, PageQuery pageQuery) { public TableDataInfo<SysLogininfor> selectPageLogininforList(SysLogininfor logininfor, PageQuery pageQuery) {
Map<String, Object> params = logininfor.getParams(); LambdaQueryWrapper<SysLogininfor> lqw = buildQueryWrapper(logininfor);
LambdaQueryWrapper<SysLogininfor> lqw = new LambdaQueryWrapper<SysLogininfor>()
.like(StringUtils.isNotBlank(logininfor.getIpaddr()), SysLogininfor::getIpaddr, logininfor.getIpaddr())
.eq(StringUtils.isNotBlank(logininfor.getStatus()), SysLogininfor::getStatus, logininfor.getStatus())
.like(StringUtils.isNotBlank(logininfor.getUserName()), SysLogininfor::getUserName, logininfor.getUserName())
.between(params.get("beginTime") != null && params.get("endTime") != null,
SysLogininfor::getLoginTime, params.get("beginTime"), params.get("endTime"));
if (StringUtils.isBlank(pageQuery.getOrderByColumn())) { if (StringUtils.isBlank(pageQuery.getOrderByColumn())) {
pageQuery.setOrderByColumn("info_id"); pageQuery.setOrderByColumn("info_id");
pageQuery.setIsAsc("desc"); pageQuery.setIsAsc("desc");
@ -124,14 +116,9 @@ public class SysLogininforServiceImpl implements ISysLogininforService {
*/ */
@Override @Override
public List<SysLogininfor> selectLogininforList(SysLogininfor logininfor) { public List<SysLogininfor> selectLogininforList(SysLogininfor logininfor) {
Map<String, Object> params = logininfor.getParams(); LambdaQueryWrapper<SysLogininfor> lqw = buildQueryWrapper(logininfor);
return baseMapper.selectList(new LambdaQueryWrapper<SysLogininfor>() lqw.orderByDesc(SysLogininfor::getInfoId);
.like(StringUtils.isNotBlank(logininfor.getIpaddr()), SysLogininfor::getIpaddr, logininfor.getIpaddr()) return baseMapper.selectList(lqw);
.eq(StringUtils.isNotBlank(logininfor.getStatus()), SysLogininfor::getStatus, logininfor.getStatus())
.like(StringUtils.isNotBlank(logininfor.getUserName()), SysLogininfor::getUserName, logininfor.getUserName())
.between(params.get("beginTime") != null && params.get("endTime") != null,
SysLogininfor::getLoginTime, params.get("beginTime"), params.get("endTime"))
.orderByDesc(SysLogininfor::getInfoId));
} }
/** /**
@ -152,4 +139,18 @@ public class SysLogininforServiceImpl implements ISysLogininforService {
public void cleanLogininfor() { public void cleanLogininfor() {
baseMapper.delete(new LambdaQueryWrapper<>()); baseMapper.delete(new LambdaQueryWrapper<>());
} }
private static LambdaQueryWrapper<SysLogininfor> buildQueryWrapper(SysLogininfor logininfor) {
Map<String, Object> params = logininfor.getParams();
Object beginTime = params.get("beginTime");
Object endTime = params.get("endTime");
LambdaQueryWrapper<SysLogininfor> lqw = new LambdaQueryWrapper<>();
lqw.eq(StringUtils.isNotBlank(logininfor.getStatus()), SysLogininfor::getStatus, logininfor.getStatus());
lqw.like(StringUtils.isNotBlank(logininfor.getIpaddr()), SysLogininfor::getIpaddr, logininfor.getIpaddr());
lqw.like(StringUtils.isNotBlank(logininfor.getUserName()), SysLogininfor::getUserName, logininfor.getUserName());
lqw.between(beginTime != null && endTime != null, SysLogininfor::getLoginTime, beginTime, endTime);
return lqw;
}
} }