104 lines
3.4 KiB
PHP
104 lines
3.4 KiB
PHP
<?php
|
||
// app/service/BaseService.php
|
||
namespace app\service;
|
||
|
||
use app\model\ThirdUser;
|
||
use think\db\exception\BindParamException;
|
||
use think\facade\Db as ThinkDb;
|
||
use app\model\Campaign as CampaignModel;
|
||
|
||
class BaseService
|
||
{
|
||
/**
|
||
* 更新广告系列状态
|
||
*
|
||
* @param int $campaignId 广告系列ID
|
||
* @param int $status 新的状态值
|
||
* @return bool
|
||
*/
|
||
public function modifyDbCampaignStatus(int $campaignId, int $status)
|
||
{
|
||
// 确保状态值是有效的(例如可以是 ENABLED、PAUSED 等)
|
||
if (!in_array($status, [2, 3, 4])) { // 这里 1、2、3 是示例状态码,按需替换
|
||
throw new \think\exception\ValidateException('Invalid status');
|
||
}
|
||
|
||
// 使用原始 SQL 更新状态
|
||
$sql = "UPDATE bps.bps_google_ads_campaign SET status = :status, update_at = CURRENT_TIMESTAMP WHERE campaign_id = :campaign_id";
|
||
|
||
// 执行 SQL 更新
|
||
$result = ThinkDb::execute($sql, ['status' => $status, 'campaign_id' => $campaignId]);
|
||
|
||
return $result > 0; // 如果更新成功,返回 true,否则返回 false
|
||
}
|
||
|
||
/**
|
||
* 更新广告组状态
|
||
*
|
||
* @param int $groupId 广告组ID
|
||
* @param int $status 新的状态值
|
||
* @return bool
|
||
* @throws BindParamException
|
||
*/
|
||
public function modifyDbGroupStatus(int $groupId, int $status)
|
||
{
|
||
// 确保状态值是有效的(例如可以是 ENABLED、PAUSED 等)
|
||
if (!in_array($status, [2, 3, 4])) { // 这里 1、2、3 是示例状态码,按需替换
|
||
// throw new \think\exception\ValidateException('Invalid status');
|
||
}
|
||
|
||
// 使用原始 SQL 更新状态
|
||
$sql = "UPDATE bps.bps_google_ads_ad_group SET status = :status, update_at = CURRENT_TIMESTAMP WHERE ad_group_id = :ad_group_id";
|
||
|
||
// 执行 SQL 更新
|
||
$result = ThinkDb::execute($sql, ['status' => $status, 'ad_group_id' => $groupId]);
|
||
|
||
return $result > 0; // 如果更新成功,返回 true,否则返回 false
|
||
}
|
||
|
||
/**
|
||
* 更新广告组状态
|
||
*
|
||
* @param int $groupId 广告组ID
|
||
* @param int $status 新的状态值
|
||
* @return bool
|
||
* @throws BindParamException
|
||
*/
|
||
public function modifyDbAdStatus(int $adId, int $status)
|
||
{
|
||
// 确保状态值是有效的(例如可以是 ENABLED、PAUSED 等)
|
||
if (!in_array($status, [2, 3, 4])) { // 这里 1、2、3 是示例状态码,按需替换
|
||
// throw new \think\exception\ValidateException('Invalid status');
|
||
}
|
||
|
||
// 使用原始 SQL 更新状态
|
||
$sql = "UPDATE bps.bps_google_ads_ad SET status = :status, update_at = CURRENT_TIMESTAMP WHERE ad_id = :ad_id";
|
||
|
||
// 执行 SQL 更新
|
||
$result = ThinkDb::execute($sql, ['status' => $status, 'ad_id' => $adId]);
|
||
|
||
return $result > 0; // 如果更新成功,返回 true,否则返回 false
|
||
}
|
||
|
||
|
||
/**
|
||
* 从数据库获取 refreshToken
|
||
*
|
||
* @param string $thirdUserId 广告主ID
|
||
* @return string|null
|
||
*/
|
||
public function getRefreshTokenFromDatabase($thirdUserId)
|
||
{
|
||
// 通过 advertiser_id 查询 ThirdUserAdvertiser,联表查询 ThirdUser 数据
|
||
$thirdUser = ThirdUser::find($thirdUserId);
|
||
//dump($thirdUser);
|
||
|
||
// 如果找到广告主数据
|
||
if ($thirdUser) {
|
||
return $thirdUser->access_token; // 返回 access_token
|
||
}
|
||
|
||
return null; // 如果没有找到,返回 null
|
||
}
|
||
}
|