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<PageInfo> loginList(Integer userId, int pageNum, int pageSize) {
|
PageHelper.startPage(pageNum, pageSize);
|
List<SiteLoginLog> 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("删除失败");
|
}
|
}
|