Commit a6d77922 authored by libin's avatar libin

真实ip获取

parent 8e8de443
...@@ -32,5 +32,26 @@ public class AppUserDetail { ...@@ -32,5 +32,26 @@ public class AppUserDetail {
private Long updatetime; private Long updatetime;
private Integer isdel; private Integer isdel;
private Integer channel; private Integer channel;
/**
* 省份编号
*/
@Column(name = "province_code")
private Integer provinceCode;
/**
* 市编号
*/
@Column(name = "city_code")
private Integer cityCode;
/**
* 创建ip
*/
@Column(name = "crt_host")
private String crtHost;
/**
* 更新ip
*/
@Column(name = "upd_host")
private String updHost;
} }
...@@ -35,39 +35,15 @@ public class AppUserLogin { ...@@ -35,39 +35,15 @@ public class AppUserLogin {
private String idNumber; private String idNumber;
@Column(name = "certification_status") @Column(name = "certification_status")
private Integer certificationStatus; private Integer certificationStatus;
/**
* 创建ip
*/
@Column(name = "crt_host")
private String crtHost;
/**
* 更新ip
*/
@Column(name = "upd_host")
private String updHost;
/** /**
* 最后登录ip * 最后登录ip
*/ */
@Column(name = "last_host") @Column(name = "last_host")
private String lastHost; private String lastHost;
/** /**
* 最后登录时间 * 最后登录时间
*/ */
@Column(name = "last_time") @Column(name = "last_time")
private Long lastTime; private Long lastTime;
/**
* 省份编号
*/
@Column(name = "province_code")
private Integer provinceCode;
/**
* 市编号
*/
@Column(name = "city_code")
private Integer cityCode;
} }
...@@ -4,12 +4,15 @@ import com.ace.cache.annotation.Cache; ...@@ -4,12 +4,15 @@ import com.ace.cache.annotation.Cache;
import com.ace.cache.annotation.CacheClear; import com.ace.cache.annotation.CacheClear;
import com.github.wxiaoqi.security.admin.entity.AppUserDetail; import com.github.wxiaoqi.security.admin.entity.AppUserDetail;
import com.github.wxiaoqi.security.admin.mapper.AppUserDetailMapper; import com.github.wxiaoqi.security.admin.mapper.AppUserDetailMapper;
import com.github.wxiaoqi.security.admin.rpc.service.AppPermissionService;
import com.github.wxiaoqi.security.admin.vo.AppUserVo; import com.github.wxiaoqi.security.admin.vo.AppUserVo;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.beanutils.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example; import tk.mybatis.mapper.entity.Example;
import java.time.Instant;
import java.util.List; import java.util.List;
/** /**
...@@ -64,6 +67,8 @@ public class AppUserDetailBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail ...@@ -64,6 +67,8 @@ public class AppUserDetailBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail
try { try {
BeanUtils.copyProperties(entity,userVo); BeanUtils.copyProperties(entity,userVo);
if(entity!=null){ if(entity!=null){
entity.setUpdHost(AppPermissionService.getIp());
entity.setUpdatetime(Instant.now().toEpochMilli());
super.updateSelectiveById(entity); super.updateSelectiveById(entity);
} }
} catch (Exception e) { } catch (Exception e) {
......
...@@ -142,8 +142,9 @@ public class AppPermissionService { ...@@ -142,8 +142,9 @@ public class AppPermissionService {
JSONObject result = new JSONObject(); JSONObject result = new JSONObject();
if (type == 0) { if (type == 0) {
AppUserLogin rsUserLogin = appUserLoginBiz.checkeUserLogin(phone); AppUserLogin rsUserLogin = appUserLoginBiz.checkeUserLogin(phone);
if (rsUserLogin != null) if (rsUserLogin != null) {
return JsonResultUtil.createFailedResult(ResultCode.EXIST_CODE, "用户已存在"); return JsonResultUtil.createFailedResult(ResultCode.EXIST_CODE, "用户已存在");
}
} else if (type == 1) { } else if (type == 1) {
AppUserLogin rsUserLogin = appUserLoginBiz.checkeUserLogin(phone); AppUserLogin rsUserLogin = appUserLoginBiz.checkeUserLogin(phone);
...@@ -170,8 +171,9 @@ public class AppPermissionService { ...@@ -170,8 +171,9 @@ public class AppPermissionService {
} }
log.info("调用短信发送接口返回值为:{}", mobilecode); log.info("调用短信发送接口返回值为:{}", mobilecode);
// 判断返回值是否为空,并且是否可以转换成JSONObject // 判断返回值是否为空,并且是否可以转换成JSONObject
if (StringUtils.isBlank(mobilecode)) if (StringUtils.isBlank(mobilecode)) {
return JsonResultUtil.createDefaultFail(); return JsonResultUtil.createDefaultFail();
}
try { try {
result.put("mobilecode", mobilecode); result.put("mobilecode", mobilecode);
String redisLockKey = RedisKey.CONSTANT_CODE_PREFIX + phone + mobilecode; String redisLockKey = RedisKey.CONSTANT_CODE_PREFIX + phone + mobilecode;
...@@ -217,9 +219,6 @@ public class AppPermissionService { ...@@ -217,9 +219,6 @@ public class AppPermissionService {
try { try {
Long now = System.currentTimeMillis() / 1000; Long now = System.currentTimeMillis() / 1000;
AppUserLogin appUserLogin = new AppUserLogin(); AppUserLogin appUserLogin = new AppUserLogin();
//主要是ip地址
EntityUtils.setCreatAndUpdatInfo(appUserLogin);
setCreateIPInfo(appUserLogin);
appUserLogin.setUsername(username); appUserLogin.setUsername(username);
appUserLogin.setPassword(password); appUserLogin.setPassword(password);
...@@ -249,6 +248,8 @@ public class AppPermissionService { ...@@ -249,6 +248,8 @@ public class AppPermissionService {
rsUserDetail.setCreatetime(now); rsUserDetail.setCreatetime(now);
rsUserDetail.setUpdatetime(now); rsUserDetail.setUpdatetime(now);
rsUserDetail.setIsdel(0); rsUserDetail.setIsdel(0);
rsUserDetail.setCrtHost(getIp());
setCreateIPInfo(rsUserDetail);
appUserDetailBiz.insertSelective(rsUserDetail); appUserDetailBiz.insertSelective(rsUserDetail);
log.error("注册:新增用户详情: " + userid); log.error("注册:新增用户详情: " + userid);
//自动登录获取优惠卷 //自动登录获取优惠卷
...@@ -311,15 +312,7 @@ public class AppPermissionService { ...@@ -311,15 +312,7 @@ public class AppPermissionService {
data.put("userId", userid); data.put("userId", userid);
data.put("imUserId", userVo.getImUserid()); data.put("imUserId", userVo.getImUserid());
//更新登录时间 和 ip //更新登录时间 和 ip
// AppUserLogin userLoign= new AppUserLogin(); String clientIp = getIp();
// EntityUtils.setCreateInfo(userLoign);
ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
String clientIp = requestAttributes.getRequest().getHeader("userHost");
if(log.isDebugEnabled()){
log.debug("*******************************************");
log.debug("当前EntityUtils获取访问的IP地址【{}】",clientIp);
log.debug("*******************************************");
}
appUserLoginBiz.updateLoginInfo(userid,clientIp); appUserLoginBiz.updateLoginInfo(userid,clientIp);
} }
...@@ -327,6 +320,11 @@ public class AppPermissionService { ...@@ -327,6 +320,11 @@ public class AppPermissionService {
return data; return data;
} }
public static String getIp() {
ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
return requestAttributes.getRequest().getHeader("userHost");
}
/** /**
* 微信绑定/注册 * 微信绑定/注册
* *
...@@ -399,6 +397,8 @@ public class AppPermissionService { ...@@ -399,6 +397,8 @@ public class AppPermissionService {
userDetail.setCreatetime(now); userDetail.setCreatetime(now);
userDetail.setUpdatetime(now); userDetail.setUpdatetime(now);
userDetail.setIsdel(0); userDetail.setIsdel(0);
userDetail.setCrtHost(getIp());
setCreateIPInfo(userDetail);
appUserDetailBiz.insertSelective(userDetail); appUserDetailBiz.insertSelective(userDetail);
} /*else { } /*else {
userDetail.setId(userVo.getId()); userDetail.setId(userVo.getId());
...@@ -739,9 +739,6 @@ public class AppPermissionService { ...@@ -739,9 +739,6 @@ public class AppPermissionService {
try { try {
Long now = System.currentTimeMillis() / 1000; Long now = System.currentTimeMillis() / 1000;
AppUserLogin appUserLogin = new AppUserLogin(); AppUserLogin appUserLogin = new AppUserLogin();
//主要是ip地址
EntityUtils.setCreatAndUpdatInfo(appUserLogin);
setCreateIPInfo(appUserLogin);
appUserLogin.setUsername(username); appUserLogin.setUsername(username);
appUserLogin.setPassword(password); appUserLogin.setPassword(password);
appUserLogin.setIsdel(0); appUserLogin.setIsdel(0);
...@@ -761,6 +758,8 @@ public class AppPermissionService { ...@@ -761,6 +758,8 @@ public class AppPermissionService {
rsUserDetail.setIsdel(0); rsUserDetail.setIsdel(0);
//设置来源 //设置来源
rsUserDetail.setChannel(UserSourceEnum.APPLET.getCode()); rsUserDetail.setChannel(UserSourceEnum.APPLET.getCode());
rsUserDetail.setCrtHost(getIp());
setCreateIPInfo(rsUserDetail);
appUserDetailBiz.insertSelective(rsUserDetail); appUserDetailBiz.insertSelective(rsUserDetail);
log.error("注册:新增用户详情: " + userid); log.error("注册:新增用户详情: " + userid);
//上线绑定 //上线绑定
...@@ -830,10 +829,10 @@ public class AppPermissionService { ...@@ -830,10 +829,10 @@ public class AppPermissionService {
/** /**
* ip地址 信息解析 * ip地址 信息解析
* @param appUserLogin * @param appUserDetail
*/ */
public void setCreateIPInfo(AppUserLogin appUserLogin){ public void setCreateIPInfo(AppUserDetail appUserDetail){
String crtHost = appUserLogin.getCrtHost(); String crtHost = appUserDetail.getCrtHost();
String ipAddress = restTemplate.getForObject(String.format("%s%s", IPAddress.BASE_IP_PARSING_URL, crtHost), String.class); String ipAddress = restTemplate.getForObject(String.format("%s%s", IPAddress.BASE_IP_PARSING_URL, crtHost), String.class);
String data = JSONObject.parseObject(ipAddress).getString(IPAddress.BASE_DATA); String data = JSONObject.parseObject(ipAddress).getString(IPAddress.BASE_DATA);
JSONObject ipJsonObject = JSONObject.parseObject(data); JSONObject ipJsonObject = JSONObject.parseObject(data);
...@@ -844,8 +843,8 @@ public class AppPermissionService { ...@@ -844,8 +843,8 @@ public class AppPermissionService {
String cityName = ipJsonObject.getString(IPAddress.CITY_NAME); String cityName = ipJsonObject.getString(IPAddress.CITY_NAME);
RegionDTO regionDTO = regionFeign.getRegionByCityName(cityName); RegionDTO regionDTO = regionFeign.getRegionByCityName(cityName);
if (null!=regionDTO){ if (null!=regionDTO){
appUserLogin.setProvinceCode(Integer.valueOf(String.valueOf(regionDTO.getParentId()))); appUserDetail.setProvinceCode(Integer.valueOf(String.valueOf(regionDTO.getParentId())));
appUserLogin.setCityCode(Integer.valueOf(String.valueOf(regionDTO.getId()))); appUserDetail.setCityCode(Integer.valueOf(String.valueOf(regionDTO.getId())));
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment