package org.dromara.system.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.system.domain.SysLogininfor; import org.dromara.system.domain.bo.SysLogininforBo; import org.dromara.system.domain.vo.SysLogininforVo; import org.dromara.system.mapper.SysLogininforMapper; import org.dromara.system.service.ISysLogininforService; import org.springframework.stereotype.Service; import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.Map; /** * 系统访问日志情况信息 服务层处理 * * @author Lion Li */ @RequiredArgsConstructor @Slf4j @Service public class SysLogininforServiceImpl implements ISysLogininforService { private final SysLogininforMapper baseMapper; private String getBlock(Object msg) { if (msg == null) { msg = ""; } return "[" + msg.toString() + "]"; } @Override public TableDataInfo selectPageLogininforList(SysLogininforBo logininfor, PageQuery pageQuery) { Map params = logininfor.getParams(); LambdaQueryWrapper lqw = new LambdaQueryWrapper() .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())) { pageQuery.setOrderByColumn("info_id"); pageQuery.setIsAsc("desc"); } Page page = baseMapper.selectVoPage(pageQuery.build(), lqw); return TableDataInfo.build(page); } /** * 新增系统登录日志 * * @param bo 访问日志对象 */ @Override public void insertLogininfor(SysLogininforBo bo) { SysLogininfor logininfor = MapstructUtils.convert(bo, SysLogininfor.class); logininfor.setLoginTime(new Date()); baseMapper.insert(logininfor); } /** * 查询系统登录日志集合 * * @param logininfor 访问日志对象 * @return 登录记录集合 */ @Override public List selectLogininforList(SysLogininforBo logininfor) { Map params = logininfor.getParams(); return baseMapper.selectVoList(new LambdaQueryWrapper() .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")) .orderByDesc(SysLogininfor::getInfoId)); } /** * 批量删除系统登录日志 * * @param infoIds 需要删除的登录日志ID * @return 结果 */ @Override public int deleteLogininforByIds(Long[] infoIds) { return baseMapper.deleteBatchIds(Arrays.asList(infoIds)); } /** * 清空系统登录日志 */ @Override public void cleanLogininfor() { baseMapper.delete(new LambdaQueryWrapper<>()); } }