初始化创建model
This commit is contained in:
parent
1eec1d05f4
commit
0aa204eb9a
@ -6,12 +6,41 @@ use think\Model;
|
||||
|
||||
class Ad extends Model
|
||||
{
|
||||
protected $table = 'ad_ga_ads';
|
||||
protected $primaryKey = 'id';
|
||||
// 设置当前模型对应的完整数据表名称
|
||||
protected $table = 'bps_google_ads_ad';
|
||||
|
||||
// 设置主键
|
||||
protected $pk = 'ad_id';
|
||||
|
||||
// 设置自动时间戳
|
||||
protected $autoWriteTimestamp = true;
|
||||
|
||||
// 定义时间戳字段
|
||||
protected $createTime = 'create_at';
|
||||
protected $updateTime = 'update_at';
|
||||
|
||||
// 设置字段类型和默认值
|
||||
protected $casts = [
|
||||
'ad_id' => 'int',
|
||||
'ad_group_id' => 'int',
|
||||
'customer_id' => 'int',
|
||||
];
|
||||
|
||||
// 默认值设置
|
||||
protected $defaults = [
|
||||
'status' => 'ENABLED', // 广告状态默认值为 'ENABLED'
|
||||
];
|
||||
|
||||
// 关联 AdGroup 模型(广告属于广告组)
|
||||
// 即使没有外键约束,依然可以使用 belongsTo 访问 AdGroup 数据
|
||||
public function adGroup()
|
||||
{
|
||||
return $this->belongsTo(AdGroup::class, 'ad_group_id', 'id');
|
||||
return $this->belongsTo(GoogleAdsAdGroup::class, 'ad_group_id', 'ad_group_id');
|
||||
}
|
||||
}
|
||||
|
||||
// 关联 Customer 模型(广告属于客户)
|
||||
// public function customer()
|
||||
// {
|
||||
// return $this->belongsTo(GoogleAdsCustomer::class, 'customer_id', 'customer_id');
|
||||
// }
|
||||
}
|
@ -6,12 +6,48 @@ use think\Model;
|
||||
|
||||
class AdGroup extends Model
|
||||
{
|
||||
protected $table = 'ad_ga_ad_groups';
|
||||
protected $primaryKey = 'id';
|
||||
// 设置当前模型对应的完整数据表名称
|
||||
protected $table = 'bps_google_ads_ad_group';
|
||||
|
||||
// 设置主键
|
||||
protected $pk = 'ad_group_id';
|
||||
|
||||
// 设置自动时间戳
|
||||
protected $autoWriteTimestamp = true;
|
||||
|
||||
// 定义时间戳字段
|
||||
protected $createTime = 'create_at';
|
||||
protected $updateTime = 'update_at';
|
||||
|
||||
// 设置字段类型和默认值
|
||||
protected $casts = [
|
||||
'ad_group_id' => 'int',
|
||||
'campaign_id' => 'int',
|
||||
'customer_id' => 'int',
|
||||
'cpc_bid_micros' => 'int',
|
||||
];
|
||||
|
||||
// 默认值设置
|
||||
protected $defaults = [
|
||||
'cpc_bid_micros' => 0, // 每次点击出价默认值为0
|
||||
];
|
||||
|
||||
// 关联 Campaign 模型(广告组属于广告活动)
|
||||
public function campaign()
|
||||
{
|
||||
return $this->belongsTo(Campaign::class, 'campaign_id', 'id');
|
||||
return $this->belongsTo(Campaign::class, 'campaign_id', 'campaign_id');
|
||||
}
|
||||
|
||||
// 关联 Customer 模型(广告组属于客户)
|
||||
// public function customer()
|
||||
// {
|
||||
// return $this->belongsTo(GoogleAdsCustomer::class, 'customer_id', 'customer_id');
|
||||
// }
|
||||
|
||||
// 关联 Ad 模型(广告组包含多个广告)
|
||||
public function ads()
|
||||
{
|
||||
return $this->hasMany(Ad::class, 'ad_group_id', 'ad_group_id');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -4,17 +4,49 @@ namespace app\model;
|
||||
|
||||
use think\Model;
|
||||
|
||||
class Campaign extends PgBaseModel
|
||||
class BpsGoogleAdsCampaign extends Model
|
||||
{
|
||||
protected $table = 'ad_ga_campaigns'; // 对应数据库表名
|
||||
protected $primaryKey = 'id'; // 主键
|
||||
protected $autoWriteTimestamp = true; // 自动时间戳
|
||||
protected $createTime = 'created_at'; // 创建时间字段
|
||||
protected $updateTime = 'updated_at'; // 更新时间字段
|
||||
// 设置当前模型对应的完整数据表名称
|
||||
protected $table = 'bps_google_ads_campaign';
|
||||
|
||||
// 关联广告预算
|
||||
public function campaignBudget()
|
||||
// 设置主键
|
||||
protected $pk = 'campaign_id';
|
||||
|
||||
// 设置自动时间戳
|
||||
protected $autoWriteTimestamp = true;
|
||||
|
||||
// 定义时间戳字段
|
||||
protected $createTime = 'create_at';
|
||||
protected $updateTime = 'update_at';
|
||||
|
||||
// 设置字段类型和默认值
|
||||
protected $casts = [
|
||||
'campaign_id' => 'int',
|
||||
'customer_id' => 'int',
|
||||
'budget_amount_micros' => 'int',
|
||||
];
|
||||
|
||||
// 默认值设置
|
||||
protected $defaults = [
|
||||
'status' => 'ENABLED', // 活动状态默认值为 'ENABLED'
|
||||
'advertising_channel_type' => 'SEARCH', // 广告渠道类型默认值为 'SEARCH'
|
||||
];
|
||||
|
||||
// 关联 Customer 模型(广告活动属于客户)
|
||||
public function customer()
|
||||
{
|
||||
return $this->belongsTo(CampaignBudget::class, 'budget_id', 'id');
|
||||
return $this->belongsTo(GoogleAdsCustomer::class, 'customer_id', 'customer_id');
|
||||
}
|
||||
}
|
||||
|
||||
// 关联 AdGroup 模型(一个广告活动下有多个广告组)
|
||||
public function adGroups()
|
||||
{
|
||||
return $this->hasMany(GoogleAdsAdGroup::class, 'campaign_id', 'campaign_id');
|
||||
}
|
||||
|
||||
// 关联 Ad 模型(一个广告活动下有多个广告)
|
||||
public function ads()
|
||||
{
|
||||
return $this->hasManyThrough(GoogleAdsAd::class, GoogleAdsAdGroup::class, 'campaign_id', 'ad_group_id', 'campaign_id', 'ad_group_id');
|
||||
}
|
||||
}
|
@ -6,12 +6,38 @@ use think\Model;
|
||||
|
||||
class CampaignBudget extends Model
|
||||
{
|
||||
protected $table = 'ad_ga_campaign_budgets';
|
||||
protected $primaryKey = 'id';
|
||||
// 设置当前模型对应的完整数据表名称
|
||||
protected $table = 'bps_google_ads_budget';
|
||||
|
||||
// 设置主键
|
||||
protected $pk = 'budget_id';
|
||||
|
||||
// 设置自动时间戳
|
||||
protected $autoWriteTimestamp = true;
|
||||
|
||||
public function campaigns()
|
||||
{
|
||||
return $this->hasMany(Campaign::class, 'budget_id', 'id');
|
||||
}
|
||||
// 定义时间戳字段
|
||||
protected $createTime = 'create_at';
|
||||
protected $updateTime = 'update_at';
|
||||
|
||||
// 设置字段类型和默认值
|
||||
protected $casts = [
|
||||
'budget_id' => 'int',
|
||||
'customer_id' => 'int',
|
||||
'amount_micros' => 'int',
|
||||
'start_date' => 'date',
|
||||
'end_date' => 'date',
|
||||
];
|
||||
|
||||
// 默认值设置
|
||||
protected $defaults = [
|
||||
'amount_micros' => 0, // 预算金额默认0
|
||||
];
|
||||
|
||||
// 关联 Customer 模型(预算与客户相关)
|
||||
// public function customer()
|
||||
// {
|
||||
// return $this->belongsTo(GoogleAdsCustomer::class, 'customer_id', 'customer_id');
|
||||
// }
|
||||
|
||||
// 可以根据需要添加其他关联方法,假设有其他与预算相关的表,例如广告系列(campaign)
|
||||
}
|
||||
|
72
app/model/DayData.php
Normal file
72
app/model/DayData.php
Normal file
@ -0,0 +1,72 @@
|
||||
<?php
|
||||
|
||||
namespace app\model;
|
||||
|
||||
use think\Model;
|
||||
|
||||
class DayData extends Model
|
||||
{
|
||||
// 设置当前模型对应的完整数据表名称
|
||||
protected $table = 'bps_google_ad_day_data';
|
||||
|
||||
// 设置复合主键
|
||||
protected $pk = ['ad_id', 'date'];
|
||||
|
||||
// 设置自动时间戳
|
||||
protected $autoWriteTimestamp = true;
|
||||
|
||||
// 定义时间戳字段
|
||||
protected $createTime = 'create_at';
|
||||
protected $updateTime = 'update_at';
|
||||
|
||||
// 设置字段类型和默认值
|
||||
protected $casts = [
|
||||
'ad_id' => 'int',
|
||||
'customer_id' => 'int',
|
||||
'clicks' => 'int',
|
||||
'cost_micros' => 'int',
|
||||
'conversions' => 'int',
|
||||
'conversions_value' => 'float',
|
||||
'impressions' => 'int',
|
||||
'date' => 'date',
|
||||
];
|
||||
|
||||
// 默认值设置
|
||||
protected $defaults = [
|
||||
'clicks' => 0,
|
||||
'cost_micros' => 0,
|
||||
'conversions' => 0,
|
||||
'conversions_value' => 0.0,
|
||||
'impressions' => 0,
|
||||
];
|
||||
|
||||
// 关联 Campaign 模型(报告数据属于广告活动)
|
||||
public function campaign()
|
||||
{
|
||||
return $this->belongsTo(GoogleAdsCampaign::class, 'campaign_id', 'campaign_id');
|
||||
}
|
||||
|
||||
// 关联 AdGroup 模型(报告数据属于广告组)
|
||||
public function adGroup()
|
||||
{
|
||||
return $this->belongsTo(GoogleAdsAdGroup::class, 'group_id', 'group_id');
|
||||
}
|
||||
|
||||
// 关联 Ad 模型(报告数据属于广告)
|
||||
public function ad()
|
||||
{
|
||||
return $this->belongsTo(GoogleAdsAd::class, 'ad_id', 'ad_id');
|
||||
}
|
||||
|
||||
// 关联 Customer 模型(报告数据与客户相关)
|
||||
// public function customer()
|
||||
// {
|
||||
// return $this->belongsTo(GoogleAdsCustomer::class, 'customer_id', 'customer_id');
|
||||
// }
|
||||
|
||||
// 关联 Budget 模型(报告数据与预算相关)
|
||||
public function budget()
|
||||
{
|
||||
return $this->belongsTo(GoogleAdsBudget::class, 'budget_id', 'budget_id');
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user