Commit a6d77922 authored by libin's avatar libin

真实ip获取

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