@ -1,19 +1,24 @@
package com.baiye.modules.system.service.impl ;
package com.baiye.modules.system.service.impl ;
import cn.hutool.core.date.DateUtil ;
import cn.hutool.core.text.CharSequenceUtil ;
import cn.hutool.core.text.CharSequenceUtil ;
import cn.hutool.core.text.StrPool ;
import cn.hutool.core.text.StrPool ;
import cn.hutool.core.util.ObjectUtil ;
import cn.hutool.core.util.ObjectUtil ;
import cn.hutool.core.util.StrUtil ;
import cn.hutool.http.HttpUtil ;
import cn.hutool.http.HttpUtil ;
import cn.hutool.json.JSONUtil ;
import cn.hutool.json.JSONUtil ;
import com.alibaba.druid.sql.visitor.functions.If ;
import com.baiye.config.properties.OceanEngineConfig ;
import com.baiye.config.properties.OceanEngineConfig ;
import com.baiye.constant.AdPlatFormConstants ;
import com.baiye.constant.AdPlatFormConstants ;
import com.baiye.constant.DefaultNumberConstants ;
import com.baiye.constant.DefaultNumberConstants ;
import com.baiye.constant.UrlConstants ;
import com.baiye.constant.UrlConstants ;
import com.baiye.exception.BadRequestException ;
import com.baiye.modules.auth.AccessTokenRequest ;
import com.baiye.modules.auth.AccessTokenRequest ;
import com.baiye.modules.auth.AccessTokenResponse ;
import com.baiye.modules.auth.AccessTokenResponse ;
import com.baiye.modules.auth.RefreshTokenRequest ;
import com.baiye.modules.auth.RefreshTokenRequest ;
import com.baiye.modules.auth.RefreshTokenResponse ;
import com.baiye.modules.auth.RefreshTokenResponse ;
import com.baiye.modules.system.domain.OceanEngineToken ;
import com.baiye.modules.system.domain.OceanEngineToken ;
import com.baiye.modules.system.domain.OceanEngineTokenDto ;
import com.baiye.modules.system.repository.OceanEngineRepository ;
import com.baiye.modules.system.repository.OceanEngineRepository ;
import com.baiye.modules.system.service.CompanyService ;
import com.baiye.modules.system.service.CompanyService ;
import com.baiye.modules.system.service.OceanEngineService ;
import com.baiye.modules.system.service.OceanEngineService ;
@ -48,13 +53,11 @@ public class OceanEngineServiceImpl implements OceanEngineService {
private final CompanyService companyService ;
private final CompanyService companyService ;
private final OceanEngineConfig oceanEngineConfig ;
private final OceanEngineMapper oceanEngineMapper ;
private final OceanEngineMapper oceanEngineMapper ;
private final OceanEngine Repository oceanEngineRepository ;
private final OceanEngineConfig oceanEngineConfig ;
private final OceanEngineRepository oceanEngineRepository ;
@Override
@Override
@ -62,8 +65,7 @@ public class OceanEngineServiceImpl implements OceanEngineService {
return String . format
return String . format
( UrlConstants . CONNECT_OAUTH2_AUTHORIZE_URL ,
( UrlConstants . CONNECT_OAUTH2_AUTHORIZE_URL ,
oceanEngineConfig . getAppId ( ) ,
oceanEngineConfig . getAppId ( ) ,
AESUtils . encrypt ( id . toString ( ) .
AESUtils . encrypt ( id . toString ( ) . concat ( StrPool . COLON ) .
concat ( StrPool . COLON ) .
concat ( authorizeName ) ,
concat ( authorizeName ) ,
AdPlatFormConstants . AD_PLATFORM ) ,
AdPlatFormConstants . AD_PLATFORM ) ,
oceanEngineConfig . getRedirectUrl ( ) ) ;
oceanEngineConfig . getRedirectUrl ( ) ) ;
@ -90,7 +92,7 @@ public class OceanEngineServiceImpl implements OceanEngineService {
if ( split . length > DefaultNumberConstants . ONE_NUMBER ) {
if ( split . length > DefaultNumberConstants . ONE_NUMBER ) {
long parseLong = Long . parseLong ( split [ DefaultNumberConstants . ZERO_NUMBER ] ) ;
long parseLong = Long . parseLong ( split [ DefaultNumberConstants . ZERO_NUMBER ] ) ;
String authorizeName = split [ DefaultNumberConstants . ONE_NUMBER ] ;
String authorizeName = split [ DefaultNumberConstants . ONE_NUMBER ] ;
OceanEngineToken byCompanyId = oceanEngineRepository . findByCompanyIdAndAndAuthorizeName ( parseLong , authorizeName ) ;
OceanEngineToken byCompanyId = oceanEngineRepository . findByCompanyIdAndAndAuthorizeName ( parseLong , authorizeName ) ;
CompanyDto companyById = companyService . findCompanyById ( parseLong ) ;
CompanyDto companyById = companyService . findCompanyById ( parseLong ) ;
if ( ObjectUtil . isNull ( byCompanyId ) & & ObjectUtil . isNotNull ( companyById ) ) {
if ( ObjectUtil . isNull ( byCompanyId ) & & ObjectUtil . isNotNull ( companyById ) ) {
if ( ObjectUtil . isNull ( companyById . getUserId ( ) ) ) {
if ( ObjectUtil . isNull ( companyById . getUserId ( ) ) ) {
@ -114,17 +116,18 @@ public class OceanEngineServiceImpl implements OceanEngineService {
companyService . updateCompanyAuthorizationStatus ( Boolean . TRUE , companyById . getId ( ) ) ;
companyService . updateCompanyAuthorizationStatus ( Boolean . TRUE , companyById . getId ( ) ) ;
oceanEngineRepository . updateOceanEngin
oceanEngineRepository . updateOceanEngin
( data . getAccessToken ( ) , data . getRefreshToken ( ) , data . getExpiresIn ( ) ,
( data . getAccessToken ( ) , data . getRefreshToken ( ) , data . getExpiresIn ( ) ,
data . getRefreshTokenExpiresIn ( ) , JSONUtil . toJsonStr ( data . getAdvertiserIds ( ) ) , byCompanyId . getId ( ) ) ;
data . getRefreshTokenExpiresIn ( ) , JSONUtil . toJsonStr ( data . getAdvertiserIds ( ) ) ,
}
companyById . getUserId ( ) , DateUtil . date ( ) , DefaultNumberConstants . ONE_NUMBER , byCompanyId . getId ( ) ) ;
}
}
}
}
}
}
}
}
}
@Override
@Override
public Map < String , Object > queryAll ( OceanEngineQueryCriteria dict , Pageable pageable ) {
public Map < String , Object > queryAll ( OceanEngineQueryCriteria dict , Pageable pageable ) {
Page < OceanEngineToken > page = oceanEngineRepository . findAll
Page < OceanEngineToken > page = oceanEngineRepository . findAll
( ( root , query , cb ) - > QueryHelp . getPredicate ( root , dict , cb ) , pageable ) ;
( ( root , query , cb ) - > QueryHelp . getPredicate ( root , dict , cb ) , pageable ) ;
return PageUtil . toPage ( page . map ( oceanEngineMapper : : toDto ) ) ;
return PageUtil . toPage ( page . map ( oceanEngineMapper : : toDto ) ) ;
@ -152,7 +155,7 @@ public class OceanEngineServiceImpl implements OceanEngineService {
@Override
@Override
@Cacheable ( value = "oceanEnginCache" , key = "'companyId:' + #companyId" )
@Cacheable ( value = "oceanEnginCache" , key = "'companyId:' + #companyId" )
public OceanEngineToken getOceanEnginByCompanyId ( Long companyId , String authorizeName ) {
public OceanEngineToken getOceanEnginByCompanyId ( Long companyId , String authorizeName ) {
return oceanEngineRepository . findByCompanyIdAndAndAuthorizeName ( companyId , authorizeName ) ;
return oceanEngineRepository . findByCompanyIdAndAndAuthorizeName ( companyId , authorizeName ) ;
}
}
@ -191,4 +194,26 @@ public class OceanEngineServiceImpl implements OceanEngineService {
// 修改状态
// 修改状态
oceanEngineRepository . updateAuthorizationStatusById ( status , id ) ;
oceanEngineRepository . updateAuthorizationStatusById ( status , id ) ;
}
}
@Override
public String save ( OceanEngineTokenDto oceanEngineTokenDto ) {
Long companyId = oceanEngineTokenDto . getCompanyId ( ) ;
String authorizeName = oceanEngineTokenDto . getAuthorizeName ( ) ;
// 修改状态
OceanEngineToken byCompanyIdAndAndAuthorizeName =
oceanEngineRepository . findByCompanyIdAndAndAuthorizeName ( companyId , authorizeName ) ;
if ( ObjectUtil . isNotNull ( byCompanyIdAndAndAuthorizeName ) ) {
throw new BadRequestException ( "该授权名称已存在" ) ;
}
CompanyDto companyById = companyService . findCompanyById ( companyId ) ;
if ( ObjectUtil . isNotNull ( companyById ) & & ObjectUtil . isNotNull ( companyById . getUserId ( ) ) ) {
OceanEngineToken token = new OceanEngineToken ( ) ;
token . setCompanyId ( companyId ) ;
token . setAuthorizeName ( authorizeName ) ;
token . setStatus ( DefaultNumberConstants . MINUS_ONE_NUMBER ) ;
oceanEngineRepository . save ( token ) ;
return this . buildAuthorizationUrl ( companyId , authorizeName ) ;
}
return CharSequenceUtil . EMPTY ;
}
}
}