feat: 记录ip逻辑修复

This commit is contained in:
landaiqing
2024-07-22 22:22:46 +08:00
parent 590ea4663d
commit fb173be47f
8 changed files with 81 additions and 29 deletions

View File

@@ -149,11 +149,21 @@ public class SchisandraAuthUserController {
schisandraAuthAddressBO.setAgent(userAgent.toString());
schisandraAuthAddressBO.setUserId(result.getId());
schisandraAuthAddressBO.setIp(ip);
schisandraAuthAddressBO.setBrowser(userAgent.getBrowser().toString());
schisandraAuthAddressBO.setBrowserVersion(userAgent.getBrowserVersion().getVersion());
if(userAgent.getBrowser() != null) {
schisandraAuthAddressBO.setBrowser(userAgent.getBrowser().toString());
}
if(userAgent.getBrowserVersion() != null){
schisandraAuthAddressBO.setBrowserVersion(userAgent.getBrowserVersion().toString());
}
schisandraAuthAddressBO.setLocation(ip2region);
Boolean add = schisandraAuthAddressDomainService.add(schisandraAuthAddressBO);
assert add;
SchisandraAuthAddressBO authAddressBO = schisandraAuthAddressDomainService.queryByUserId(result.getId());
if(ObjectUtils.isNotEmpty(authAddressBO)){
schisandraAuthAddressBO.setId(authAddressBO.getId());
schisandraAuthAddressDomainService.update(schisandraAuthAddressBO);
}else{
Boolean add = schisandraAuthAddressDomainService.add(schisandraAuthAddressBO);
assert add;
}
map.put("user", result);
if (login != null) {
if (StpUtil.isLogin(result.getId())) {
@@ -211,12 +221,21 @@ public class SchisandraAuthUserController {
schisandraAuthAddressBO.setAgent(userAgent.toString());
schisandraAuthAddressBO.setUserId(result.getId());
schisandraAuthAddressBO.setIp(ip);
schisandraAuthAddressBO.setBrowser(userAgent.getBrowser().toString());
schisandraAuthAddressBO.setBrowserVersion(userAgent.getBrowserVersion().getVersion());
if(userAgent.getBrowser() != null) {
schisandraAuthAddressBO.setBrowser(userAgent.getBrowser().toString());
}
if(userAgent.getBrowserVersion() != null){
schisandraAuthAddressBO.setBrowserVersion(userAgent.getBrowserVersion().toString());
}
schisandraAuthAddressBO.setLocation(ip2region);
Boolean add = schisandraAuthAddressDomainService.add(schisandraAuthAddressBO);
assert add;
SchisandraAuthAddressBO authAddressBO = schisandraAuthAddressDomainService.queryByUserId(result.getId());
if(ObjectUtils.isNotEmpty(authAddressBO)){
schisandraAuthAddressBO.setId(authAddressBO.getId());
schisandraAuthAddressDomainService.update(schisandraAuthAddressBO);
}else{
Boolean add = schisandraAuthAddressDomainService.add(schisandraAuthAddressBO);
assert add;
}
map.put("user", result);
if (loginByPhone != null) {
if (StpUtil.isLogin(result.getId())) {

View File

@@ -49,7 +49,7 @@ public interface SchisandraAuthUserDomainService {
* @author: landaiqing
* @date: 2024/5/26 17:28
*/
SchisandraAuthUserBO login(SchisandraAuthUserBO schisandraAuthUserBO);
SchisandraAuthUserBO login(SchisandraAuthUserBO schisandraAuthUserB);
/**
* @description: 通过手机号登录

View File

@@ -235,10 +235,14 @@ public class SchisandraAuthUserDomainServiceImpl implements SchisandraAuthUserDo
*/
@Override
public Boolean wechatRegister(String appId, String openId,String clientId, HttpServletRequest httpServletRequest) {
SchisandraSocialUser socialUser = schisandraSocialUserService.selectByOpenId(openId);
SchisandraSocialUser socialUser = schisandraSocialUserService.selectByOpenId(appId,openId);
if (ObjectUtils.isNotEmpty(socialUser)) {
String userId = socialUser.getId();
String SocialUserId = socialUser.getId();
SchisandraSocialUserAuth schisandraSocialUserAuth= schisandraSocialUserAuthService.queryBySocialUserId(SocialUserId);
if(ObjectUtils.isEmpty(schisandraSocialUserAuth)){
return false;
}
String userId = schisandraSocialUserAuth.getUserId();
// 加入登录IP地址
String ip = IPUtil.getIp(httpServletRequest);
@@ -250,8 +254,12 @@ public class SchisandraAuthUserDomainServiceImpl implements SchisandraAuthUserDo
schisandraAuthAddressBO.setAgent(userAgent.toString());
schisandraAuthAddressBO.setUserId(userId);
schisandraAuthAddressBO.setIp(ip);
schisandraAuthAddressBO.setBrowser(userAgent.getBrowser().toString());
schisandraAuthAddressBO.setBrowserVersion(userAgent.getBrowserVersion().getVersion());
if(userAgent.getBrowser() != null) {
schisandraAuthAddressBO.setBrowser(userAgent.getBrowser().toString());
}
if(userAgent.getBrowserVersion() != null){
schisandraAuthAddressBO.setBrowserVersion(userAgent.getBrowserVersion().toString());
}
schisandraAuthAddressBO.setLocation(ip2region);
SchisandraAuthAddress schisandraAuthAddress = SchisandraAuthAddressBOConverter.INSTANCE.convertBOToEntity(schisandraAuthAddressBO);
int insert = schisandraAuthAddressService.update(schisandraAuthAddress);
@@ -268,6 +276,7 @@ public class SchisandraAuthUserDomainServiceImpl implements SchisandraAuthUserDo
}else{
// 插入社会用户信息表
SchisandraSocialUserBO socialUserBO = new SchisandraSocialUserBO();
socialUserBO.setUuid(appId);
socialUserBO.setOpenId(openId);
SchisandraSocialUser schisandraSocialUser = SchisandraSocialUserBOConverter.INSTANCE.convertBOToEntity(socialUserBO);
int result = schisandraSocialUserService.insertSocialUser(schisandraSocialUser);
@@ -299,8 +308,12 @@ public class SchisandraAuthUserDomainServiceImpl implements SchisandraAuthUserDo
schisandraAuthAddressBO.setAgent(userAgent.toString());
schisandraAuthAddressBO.setUserId(authUserId);
schisandraAuthAddressBO.setIp(ip);
schisandraAuthAddressBO.setBrowser(userAgent.getBrowser().toString());
schisandraAuthAddressBO.setBrowserVersion(userAgent.getBrowserVersion().getVersion());
if(userAgent.getBrowser() != null) {
schisandraAuthAddressBO.setBrowser(userAgent.getBrowser().toString());
}
if(userAgent.getBrowserVersion() != null){
schisandraAuthAddressBO.setBrowserVersion(userAgent.getBrowserVersion().toString());
}
schisandraAuthAddressBO.setLocation(ip2region);
SchisandraAuthAddress schisandraAuthAddress = SchisandraAuthAddressBOConverter.INSTANCE.convertBOToEntity(schisandraAuthAddressBO);
int insertIp = schisandraAuthAddressService.insert(schisandraAuthAddress);
@@ -359,6 +372,12 @@ public class SchisandraAuthUserDomainServiceImpl implements SchisandraAuthUserDo
AuthToken token = data.getToken();
SchisandraSocialUser socialUser = schisandraSocialUserService.selectByUuidAndType(uuid, type);
if (ObjectUtils.isNotEmpty(socialUser)) {
SchisandraSocialUserAuth schisandraSocialUserAuth= schisandraSocialUserAuthService.queryBySocialUserId(socialUser.getId());
if(ObjectUtils.isEmpty(schisandraSocialUserAuth)){
return Result.fail();
}
String userId = schisandraSocialUserAuth.getUserId();
// 更新用户信息
SchisandraSocialUserBO socialUserBO = new SchisandraSocialUserBO();
socialUserBO.setAccessToken(token.getAccessToken());
@@ -383,7 +402,6 @@ public class SchisandraAuthUserDomainServiceImpl implements SchisandraAuthUserDo
}
return Result.fail("Social User update fail");
}
String userId = socialUser.getId();
// 加入登录IP地址
String ip = IPUtil.getIp(httpServletRequest);
@@ -395,8 +413,12 @@ public class SchisandraAuthUserDomainServiceImpl implements SchisandraAuthUserDo
schisandraAuthAddressBO.setAgent(userAgent.toString());
schisandraAuthAddressBO.setUserId(userId);
schisandraAuthAddressBO.setIp(ip);
schisandraAuthAddressBO.setBrowser(userAgent.getBrowser().toString());
schisandraAuthAddressBO.setBrowserVersion(userAgent.getBrowserVersion().getVersion());
if(userAgent.getBrowser() != null) {
schisandraAuthAddressBO.setBrowser(userAgent.getBrowser().toString());
}
if(userAgent.getBrowserVersion() != null){
schisandraAuthAddressBO.setBrowserVersion(userAgent.getBrowserVersion().toString());
}
schisandraAuthAddressBO.setLocation(ip2region);
SchisandraAuthAddress schisandraAuthAddress = SchisandraAuthAddressBOConverter.INSTANCE.convertBOToEntity(schisandraAuthAddressBO);
int insert = schisandraAuthAddressService.update(schisandraAuthAddress);
@@ -463,8 +485,12 @@ public class SchisandraAuthUserDomainServiceImpl implements SchisandraAuthUserDo
schisandraAuthAddressBO.setAgent(userAgent.toString());
schisandraAuthAddressBO.setUserId(authUserId);
schisandraAuthAddressBO.setIp(ip);
schisandraAuthAddressBO.setBrowser(userAgent.getBrowser().toString());
schisandraAuthAddressBO.setBrowserVersion(userAgent.getBrowserVersion().getVersion());
if(userAgent.getBrowser() != null) {
schisandraAuthAddressBO.setBrowser(userAgent.getBrowser().toString());
}
if(userAgent.getBrowserVersion() != null){
schisandraAuthAddressBO.setBrowserVersion(userAgent.getBrowserVersion().toString());
}
schisandraAuthAddressBO.setLocation(ip2region);
SchisandraAuthAddress schisandraAuthAddress = SchisandraAuthAddressBOConverter.INSTANCE.convertBOToEntity(schisandraAuthAddressBO);
int insertIp = schisandraAuthAddressService.insert(schisandraAuthAddress);

View File

@@ -43,4 +43,5 @@ public interface SchisandraSocialUserAuthService {
boolean deleteById(String id);
SchisandraSocialUserAuth queryBySocialUserId(String socialUserId);
}

View File

@@ -53,5 +53,5 @@ public interface SchisandraSocialUserService {
int insertSocialUser(SchisandraSocialUser schisandraSocialUser);
SchisandraSocialUser selectByOpenId(String openId);
SchisandraSocialUser selectByOpenId(String appId,String openId);
}

View File

@@ -1,14 +1,15 @@
package com.schisandra.auth.infra.basic.service.impl;
import com.schisandra.auth.infra.basic.entity.SchisandraSocialUserAuth;
import com.schisandra.auth.infra.basic.dao.SchisandraSocialUserAuthDao;
import com.schisandra.auth.infra.basic.entity.SchisandraSocialUserAuth;
import com.schisandra.auth.infra.basic.entity.table.SchisandraSocialUserAuthTableDef;
import com.schisandra.auth.infra.basic.service.SchisandraSocialUserAuthService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
* 表服务实现类
* 表服务实现类
*
* @author landaiqing
* @since 2024-06-24 11:10:08
@@ -49,7 +50,7 @@ public class SchisandraSocialUserAuthServiceImpl implements SchisandraSocialUser
*/
@Override
public int update(SchisandraSocialUserAuth schisandraSocialUserAuth) {
return this.schisandraSocialUserAuthDao.update(schisandraSocialUserAuth,true);
return this.schisandraSocialUserAuthDao.update(schisandraSocialUserAuth, true);
}
/**
@@ -63,5 +64,10 @@ public class SchisandraSocialUserAuthServiceImpl implements SchisandraSocialUser
return this.schisandraSocialUserAuthDao.deleteById(id) > 0;
}
@Override
public SchisandraSocialUserAuth queryBySocialUserId(String socialUserId) {
return this.schisandraSocialUserAuthDao.selectOneByCondition(SchisandraSocialUserAuthTableDef.SCHISANDRA_SOCIAL_USER_AUTH.SOCIAL_USER_ID.eq(socialUserId));
}
}

View File

@@ -115,8 +115,8 @@ public class SchisandraSocialUserServiceImpl implements SchisandraSocialUserServ
* @date: 2024/6/27 下午3:05
*/
@Override
public SchisandraSocialUser selectByOpenId(String openId) {
return schisandraSocialUserDao.selectOneByCondition(SchisandraSocialUserTableDef.SCHISANDRA_SOCIAL_USER.OPEN_ID.eq(openId));
public SchisandraSocialUser selectByOpenId(String appId,String openId) {
return schisandraSocialUserDao.selectOneByCondition(SchisandraSocialUserTableDef.SCHISANDRA_SOCIAL_USER.OPEN_ID.eq(openId).and(SchisandraSocialUserTableDef.SCHISANDRA_SOCIAL_USER.UUID.eq(appId)));
}

View File

@@ -1,5 +1,5 @@
server:
port: 80
port: 3010
spring:
# redis配置
redis: