package com.nq.service.impl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.nq.common.ServerResponse; import com.nq.dao.SiteLoginLogMapper; import com.nq.pojo.SiteLoginLog; import com.nq.pojo.User; import com.nq.service.ISiteLoginLogService; import com.nq.utils.ip.IpUtils; import com.nq.utils.ip.JuheIpApi; import java.util.Date; import java.util.List; import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service("iSiteLoginLogService") public class SiteLoginLogServiceImpl implements ISiteLoginLogService { private static final Logger log = LoggerFactory.getLogger(SiteLoginLogServiceImpl.class); @Autowired SiteLoginLogMapper siteLoginLogMapper; public ServerResponse saveLog(User user, HttpServletRequest request) { try { SiteLoginLog siteLoginLog = new SiteLoginLog(); siteLoginLog.setUserId(user.getId()); String userName = user.getRealName(); if (StringUtils.isBlank(userName)) { userName = user.getPhone(); } if (StringUtils.isBlank(userName)) { userName = String.valueOf(user.getId()); } siteLoginLog.setUserName(userName); String ips = IpUtils.getIp(request); if (StringUtils.isBlank(ips)) { ips = "--"; } siteLoginLog.setLoginIp(ips); String ipAddress = "未知"; if (!"--".equals(ips)) { try { ipAddress = JuheIpApi.ip2Add(ips); if (StringUtils.isBlank(ipAddress)) { ipAddress = "未知"; } } catch (Exception e) { log.warn("登录IP地址解析失败 ip={}", ips, e); } } siteLoginLog.setLoginAddress(ipAddress); siteLoginLog.setAddTime(new Date()); this.siteLoginLogMapper.insert(siteLoginLog); log.info("登录日志记录成功 userId={} ip={} address={}", user.getId(), ips, ipAddress); } catch (Exception e) { log.error("登录日志记录失败 userId={}", user.getId(), e); } return ServerResponse.createBySuccess(); } public ServerResponse loginList(Integer userId, int pageNum, int pageSize) { PageHelper.startPage(pageNum, pageSize); List siteLoginLogs = this.siteLoginLogMapper.loginList(userId); PageInfo pageInfo = new PageInfo(siteLoginLogs); return ServerResponse.createBySuccess(pageInfo); } public int deleteByUserId(Integer userId) { return this.siteLoginLogMapper.deleteByUserId(userId); } public ServerResponse del(Integer id, HttpServletRequest request) { if (id == null) { return ServerResponse.createByErrorMsg("id不能为空"); } int updateCount = this.siteLoginLogMapper.deleteByPrimaryKey(id); if (updateCount > 0) { return ServerResponse.createBySuccessMsg("删除成功"); } return ServerResponse.createByErrorMsg("删除失败"); } }