ServiceAD

package
v5.1.28 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 10, 2024 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AppendAnalysisClick

func AppendAnalysisClick(args *ArgsAppendAnalysisClick) (err error)

AppendAnalysisClick 写入点击数据

func AuditApply

func AuditApply(args *ArgsAuditApply) (err error)

AuditApply 审核请求 商户可以审核用户提交的请求

func DeleteAD

func DeleteAD(args *ArgsDeleteAD) (err error)

DeleteAD 删除广告

func DeleteApply

func DeleteApply(args *ArgsDeleteApply) (err error)

DeleteApply 删除请求

func DeleteBind

func DeleteBind(args *ArgsDeleteBind) (err error)

DeleteBind 删除绑定关系

func GetGetADMoreMap

func GetGetADMoreMap(args *ArgsGetADMore) (data map[int64]string, err error)

func Run

func Run()

func UpdateAD

func UpdateAD(args *ArgsUpdateAD) (err error)

UpdateAD 修改广告

Types

type ArgsAppendAnalysisClick

type ArgsAppendAnalysisClick struct {
	//组织ID
	OrgID int64 `db:"org_id" json:"orgID"`
	//分区ID
	AreaID int64 `db:"area_id" json:"areaID"`
	//广告ID
	AdID int64 `db:"ad_id" json:"adID"`
	//投放次数
	ClickCount int64 `db:"click_count" json:"clickCount"`
}

ArgsAppendAnalysisClick 写入点击数据参数

type ArgsAuditApply

type ArgsAuditApply struct {
	//ID
	ID int64 `db:"id" json:"id" check:"id"`
	//组织ID
	// 验证用
	OrgID int64 `db:"org_id" json:"orgID" check:"id" empty:"true"`
	//是否审核
	IsAudit bool `json:"isAudit" check:"bool"`
	//申请描述
	AuditDes string `db:"audit_des" json:"auditDes" check:"des" min:"1" max:"600" empty:"true"`
	//拒绝原因
	AuditBanDes string `db:"audit_ban_des" json:"auditBanDes" check:"des" min:"1" max:"600" empty:"true"`
	//投放分区ID列
	AreaIDs pq.Int64Array `db:"area_ids" json:"areaIDs" check:"ids" empty:"true"`
	//分区标识码
	// 作为前端抽取数据类型使用,可以重复指定多个
	Mark string `db:"mark" json:"mark" check:"mark" empty:"true"`
}

ArgsAuditApply 审核请求参数

type ArgsCreateAD

type ArgsCreateAD struct {
	//组织ID
	OrgID int64 `db:"org_id" json:"orgID" check:"id" empty:"true"`
	//分区标识码
	// 作为前端抽取数据类型使用,可以重复指定多个
	Mark string `db:"mark" json:"mark" check:"mark"`
	//名称
	Name string `db:"name" json:"name" check:"name"`
	//描述
	Des string `db:"des" json:"des" check:"des" min:"1" max:"6000" empty:"true"`
	//封面
	CoverFileID int64 `db:"cover_file_id" json:"coverFileID" check:"id" empty:"true"`
	//描述组图
	DesFiles pq.Int64Array `db:"des_files" json:"desFiles" check:"ids" empty:"true"`
	//扩展参数
	Params CoreSQLConfig.FieldsConfigsType `db:"params" json:"params"`
}

ArgsCreateAD 创建新的广告参数

type ArgsCreateApply

type ArgsCreateApply struct {
	//启动时间
	StartAt string `db:"start_at" json:"startAt" check:"isoTime"`
	//结束时间
	EndAt string `db:"end_at" json:"endAt" check:"isoTime"`
	//组织ID
	OrgID int64 `db:"org_id" json:"orgID" check:"id"`
	//用户ID
	// 可以由用户发起,用户发起的广告主要向商户投放,由商户进行审核处理
	UserID int64 `db:"user_id" json:"userID" check:"id" empty:"true"`
	//投放分区ID列
	AreaIDs pq.Int64Array `db:"area_ids" json:"areaIDs" check:"ids" empty:"true"`
	//分区标识码
	// 作为前端抽取数据类型使用,可以重复指定多个
	Mark string `db:"mark" json:"mark" check:"mark" empty:"true"`
	//名称
	Name string `db:"name" json:"name" check:"name" min:"1" max:"300" empty:"true"`
	//描述
	Des string `db:"des" json:"des" check:"des" min:"1" max:"3000" empty:"true"`
	//封面
	CoverFileID int64 `db:"cover_file_id" json:"coverFileID" check:"id"`
	//描述组图
	DesFiles pq.Int64Array `db:"des_files" json:"desFiles" check:"ids" empty:"true"`
	//扩展参数
	Params CoreSQLConfig.FieldsConfigsType `db:"params" json:"params" check:"params"`
}

ArgsCreateApply 创建请求参数

type ArgsDeleteAD

type ArgsDeleteAD struct {
	//ID
	ID int64 `db:"id" json:"id" check:"id"`
	//组织ID
	// 验证用
	OrgID int64 `db:"org_id" json:"orgID" check:"id" empty:"true"`
}

ArgsDeleteAD 删除广告参数

type ArgsDeleteApply

type ArgsDeleteApply struct {
	//ID
	ID int64 `db:"id" json:"id" check:"id"`
	//组织ID
	// 验证用
	OrgID int64 `db:"org_id" json:"orgID" check:"id" empty:"true"`
	//用户ID
	// 可以由用户发起,用户发起的广告主要向商户投放,由商户进行审核处理
	UserID int64 `db:"user_id" json:"userID" check:"id" empty:"true"`
}

ArgsDeleteApply 删除请求参数

type ArgsDeleteBind

type ArgsDeleteBind struct {
	//ID
	ID int64 `db:"id" json:"id" check:"id"`
	//组织ID
	// 验证用
	OrgID int64 `db:"org_id" json:"orgID" check:"id" empty:"true"`
}

ArgsDeleteBind 删除绑定关系参数

type ArgsGetADByID

type ArgsGetADByID struct {
	//ID
	ID int64 `db:"id" json:"id" check:"id"`
	//组织ID
	// 留空则表明为平台的用户留下的内容
	OrgID int64 `db:"org_id" json:"orgID" check:"id" empty:"true"`
}

ArgsGetADByID 获取指定的ID参数

type ArgsGetADList

type ArgsGetADList struct {
	//分页
	Pages CoreSQLPages.ArgsDataList `json:"pages"`
	//组织ID
	// -1 跳过
	OrgID int64 `db:"org_id" json:"orgID" check:"id" empty:"true"`
	//分区标识码
	// 作为前端抽取数据类型使用,可以重复指定多个
	Mark string `db:"mark" json:"mark" check:"mark" empty:"true"`
	//是否删除
	IsRemove bool `db:"is_remove" json:"isRemove" check:"bool"`
	//搜索
	Search string `json:"search" check:"search" empty:"true"`
}

ArgsGetADList 获取广告列表参数

type ArgsGetADMore

type ArgsGetADMore struct {
	//ID列
	IDs pq.Int64Array `json:"ids"`
	//是否包含删除数据
	HaveRemove bool `json:"haveRemove"`
}

ArgsGetADMore 获取一组数据参数

type ArgsGetAnalysis

type ArgsGetAnalysis struct {
	//查询时间范围
	TimeBetween CoreSQLTime.FieldsCoreTime `json:"timeBetween"`
	//结构方式
	// year / month / day / hour
	TimeType string `json:"timeType"`
	//组织ID
	OrgID int64 `db:"org_id" json:"orgID" check:"id" empty:"true"`
	//分区ID
	AreaID int64 `db:"area_id" json:"areaID" check:"id" empty:"true"`
	//广告ID
	AdID int64 `db:"ad_id" json:"adID" check:"id" empty:"true"`
	//是否为历史数据
	IsHistory bool `json:"isHistory" check:"bool"`
}

ArgsGetAnalysis 获取统计数据参数

type ArgsGetApplyID

type ArgsGetApplyID struct {
	//ID
	ID int64 `db:"id" json:"id" check:"id"`
	//组织ID
	// 验证用
	OrgID int64 `db:"org_id" json:"orgID" check:"id" empty:"true"`
	//用户ID
	// 可以由用户发起,用户发起的广告主要向商户投放,由商户进行审核处理
	UserID int64 `db:"user_id" json:"userID" check:"id" empty:"true"`
}

ArgsGetApplyID 获取请求记录参数

type ArgsGetApplyList

type ArgsGetApplyList struct {
	//分页
	Pages CoreSQLPages.ArgsDataList `json:"pages"`
	//组织ID
	OrgID int64 `db:"org_id" json:"orgID" check:"id" empty:"true"`
	//用户ID
	// 可以由用户发起,用户发起的广告主要向商户投放,由商户进行审核处理
	UserID int64 `db:"user_id" json:"userID" check:"id" empty:"true"`
	//是否审核
	NeedIsAudit bool `json:"needIsAudit" check:"bool"`
	IsAudit     bool `json:"isAudit" check:"bool"`
	//是否开始
	NeedIsStart bool `json:"needIsStart" check:"bool"`
	IsStart     bool `json:"isStart" check:"bool"`
	//是否结束
	NeedIsEnd bool `json:"needIsEnd" check:"bool"`
	IsEnd     bool `json:"isEnd" check:"bool"`
	//广告标识码
	Mark string `json:"mark" check:"mark" empty:"true"`
	//是否删除
	IsRemove bool `db:"is_remove" json:"isRemove" check:"bool"`
	//搜索
	Search string `json:"search" check:"search" empty:"true"`
}

ArgsGetApplyList 获取请求列表参数

type ArgsGetBindList

type ArgsGetBindList struct {
	//分页
	Pages CoreSQLPages.ArgsDataList `json:"pages"`
	//组织ID
	// -1 跳过
	OrgID int64 `db:"org_id" json:"orgID" check:"id" empty:"true"`
	//广告ID
	// -1 跳过
	AdID int64 `db:"ad_id" json:"adID" check:"id" empty:"true"`
	//分区ID
	// -1 跳过
	AreaID int64 `db:"area_id" json:"areaID" check:"id" empty:"true"`
	//是否删除
	IsRemove bool `db:"is_remove" json:"isRemove" check:"bool"`
}

ArgsGetBindList 获取绑定关系参数

type ArgsPutAD

type ArgsPutAD struct {
	//组织ID
	// 如果为0,则表示为平台方
	OrgID int64 `db:"org_id" json:"orgID" check:"id" empty:"true"`
	//分区ID
	// 分区如果没有给与,则直接抽取mark
	AreaID int64 `db:"area_id" json:"areaID" check:"id" empty:"true"`
	//标识码
	Mark string `db:"mark" json:"mark" check:"mark"`
}

ArgsPutAD 根据分区ID,自动投放指定mark的广告参数

type ArgsPutADByGPS

type ArgsPutADByGPS struct {
	//地图制式
	// 0 / 1 / 2
	// WGS-84 / GCJ-02 / BD-09
	MapType int `db:"map_type" json:"mapType"`
	//要检查的点
	Point CoreSQLGPS.FieldsPoint `db:"point" json:"point"`
	//组织ID
	OrgID int64 `db:"org_id" json:"orgID" check:"id"`
	//标识码
	Mark string `db:"mark" json:"mark" check:"mark"`
}

ArgsPutADByGPS 根据定位识别分区后,再投放广告参数

type ArgsSetBind

type ArgsSetBind struct {
	//启动时间
	StartAt time.Time `db:"start_at" json:"startAt" check:"isoTime"`
	//结束时间
	EndAt time.Time `db:"end_at" json:"endAt" check:"isoTime"`
	//组织ID
	OrgID int64 `db:"org_id" json:"orgID" check:"id" empty:"true"`
	//分区ID
	AreaID int64 `db:"area_id" json:"areaID" check:"id"`
	//广告ID
	AdID int64 `db:"ad_id" json:"adID" check:"id"`
	//权重因子
	// 当一个分区存在多个广告绑定时,权重将作为随机的重要计算参数,影响随机的倾向性
	// 同一个分区下将所有广告进行合计,然后取随机数,在因子+偏移值范围的广告将作为最终投放标定
	// 注意,广告也可能会被用户数据分析模块影响,该模块将注入新的因子作为投放参数,作为因子2存在。
	// 投放概率 = 广告因子 + 用户数据分析因子 / (因子总数)
	Factor int `db:"factor" json:"factor" check:"intThan0"`
	//扩展参数
	Params CoreSQLConfig.FieldsConfigsType `db:"params" json:"params"`
}

ArgsSetBind 设置绑定关系参数

type ArgsUpdateAD

type ArgsUpdateAD struct {
	//ID
	ID int64 `db:"id" json:"id" check:"id"`
	//组织ID
	// 验证用
	OrgID int64 `db:"org_id" json:"orgID" check:"id" empty:"true"`
	//分区标识码
	// 作为前端抽取数据类型使用,可以重复指定多个
	Mark string `db:"mark" json:"mark" check:"mark"`
	//名称
	Name string `db:"name" json:"name" check:"name"`
	//描述
	Des string `db:"des" json:"des" check:"des" min:"1" max:"6000" empty:"true"`
	//封面
	CoverFileID int64 `db:"cover_file_id" json:"coverFileID" check:"id" empty:"true"`
	//描述组图
	DesFiles pq.Int64Array `db:"des_files" json:"desFiles" check:"ids" empty:"true"`
	//扩展参数
	Params CoreSQLConfig.FieldsConfigsType `db:"params" json:"params"`
}

ArgsUpdateAD 修改广告参数

type DataAD

type DataAD struct {
	//ID
	ID int64 `db:"id" json:"id"`
	//广告标识码,识别位置信息
	Mark string `db:"mark" json:"mark"`
	//名称
	Name string `db:"name" json:"name"`
	//描述
	Des string `db:"des" json:"des"`
	//封面
	CoverFileID int64 `db:"cover_file_id" json:"coverFileID"`
	//描述组图
	DesFiles pq.Int64Array `db:"des_files" json:"desFiles"`
	//扩展参数
	Params CoreSQLConfig.FieldsConfigsType `db:"params" json:"params"`
}

DataAD 根据分区ID,自动投放指定mark的广告数据

func PutAD

func PutAD(args *ArgsPutAD) (data DataAD, errCode string, err error)

PutAD 根据分区ID,自动投放指定mark的广告 本方法将依赖于绑定关系及权重计算后投放

func PutADByGPS

func PutADByGPS(args *ArgsPutADByGPS) (data DataAD, errCode string, err error)

PutADByGPS 根据定位识别分区后,再投放广告

type DataGetAnalysis

type DataGetAnalysis struct {
	//时间
	DayTime string `db:"d" json:"dayTime"`
	//价格合计
	Count int64 `db:"count_count" json:"count"`
}

DataGetAnalysis 获取统计数据数据

func GetAnalysis

func GetAnalysis(args *ArgsGetAnalysis) (dataList []DataGetAnalysis, err error)

GetAnalysis 获取统计数据

type FieldsAD

type FieldsAD struct {
	//ID
	ID int64 `db:"id" json:"id"`
	//创建时间
	CreateAt time.Time `db:"create_at" json:"createAt"`
	//更新时间
	UpdateAt time.Time `db:"update_at" json:"updateAt"`
	//删除时间
	DeleteAt time.Time `db:"delete_at" json:"deleteAt"`
	//组织ID
	OrgID int64 `db:"org_id" json:"orgID"`
	//分区标识码
	// 作为前端抽取数据类型使用,可以重复指定多个
	Mark string `db:"mark" json:"mark"`
	//名称
	Name string `db:"name" json:"name"`
	//描述
	Des string `db:"des" json:"des"`
	//封面
	CoverFileID int64 `db:"cover_file_id" json:"coverFileID"`
	//描述组图
	DesFiles pq.Int64Array `db:"des_files" json:"desFiles"`
	//扩展参数
	Params CoreSQLConfig.FieldsConfigsType `db:"params" json:"params"`
}

FieldsAD 广告数据核心

func CreateAD

func CreateAD(args *ArgsCreateAD) (data FieldsAD, err error)

CreateAD 创建新的广告

func GetADByID

func GetADByID(args *ArgsGetADByID) (data FieldsAD, err error)

GetADByID 获取指定的ID

func GetADList

func GetADList(args *ArgsGetADList) (dataList []FieldsAD, dataCount int64, err error)

GetADList 获取广告列表

func GetADMore

func GetADMore(args *ArgsGetADMore) (dataList []FieldsAD, err error)

GetADMore 获取一组数据

type FieldsAnalysis

type FieldsAnalysis struct {
	//ID
	ID int64 `db:"id" json:"id"`
	//统计周期
	// 完全相同的一个来源体系,1小时仅构建一条数据
	DayTime time.Time `db:"day_time" json:"dayTime"`
	//组织ID
	OrgID int64 `db:"org_id" json:"orgID"`
	//分区ID
	AreaID int64 `db:"area_id" json:"areaID"`
	//广告ID
	AdID int64 `db:"ad_id" json:"adID"`
	//投放次数
	Count int64 `db:"count" json:"count"`
	//点击次数
	ClickCount int64 `db:"click_count" json:"clickCount"`
}

FieldsAnalysis 统计记录

type FieldsApply

type FieldsApply struct {
	//ID
	ID int64 `db:"id" json:"id"`
	//创建时间
	CreateAt time.Time `db:"create_at" json:"createAt"`
	//更新时间
	UpdateAt time.Time `db:"update_at" json:"updateAt"`
	//删除时间
	DeleteAt time.Time `db:"delete_at" json:"deleteAt"`
	//启动时间
	StartAt time.Time `db:"start_at" json:"startAt"`
	//结束时间
	EndAt time.Time `db:"end_at" json:"endAt"`
	//审核时间
	AuditAt time.Time `db:"audit_at" json:"auditAt"`
	//申请描述
	AuditDes string `db:"audit_des" json:"auditDes"`
	//拒绝原因
	AuditBanDes string `db:"audit_ban_des" json:"auditBanDes"`
	//组织ID
	OrgID int64 `db:"org_id" json:"orgID"`
	//用户ID
	// 可以由用户发起,用户发起的广告主要向商户投放,由商户进行审核处理
	UserID int64 `db:"user_id" json:"userID"`
	//投放分区ID列
	AreaIDs pq.Int64Array `db:"area_ids" json:"areaIDs"`
	//已经投放的广告ID
	AdID int64 `db:"ad_id" json:"adID"`
	//分区标识码
	// 作为前端抽取数据类型使用,可以重复指定多个
	Mark string `db:"mark" json:"mark"`
	//名称
	Name string `db:"name" json:"name"`
	//描述
	Des string `db:"des" json:"des"`
	//封面
	CoverFileID int64 `db:"cover_file_id" json:"coverFileID"`
	//描述组图
	DesFiles pq.Int64Array `db:"des_files" json:"desFiles"`
	//展示次数
	Count int64 `db:"count" json:"count"`
	//点击次数
	ClickCount int64 `db:"click_count" json:"clickCount"`
	//扩展参数
	Params CoreSQLConfig.FieldsConfigsType `db:"params" json:"params"`
}

FieldsApply 商户广告申请

func CreateApply

func CreateApply(args *ArgsCreateApply) (data FieldsApply, err error)

CreateApply 创建请求 申请的新记录将进入列队,在N秒内审核后绑定到对应的空间上 当过期后,将自动删除绑定关系,并删除对应的广告ID

func GetApplyID

func GetApplyID(args *ArgsGetApplyID) (data FieldsApply, err error)

GetApplyID 获取请求记录

func GetApplyList

func GetApplyList(args *ArgsGetApplyList) (dataList []FieldsApply, dataCount int64, err error)

GetApplyList 获取请求列表

type FieldsBind

type FieldsBind struct {
	//ID
	ID int64 `db:"id" json:"id"`
	//创建时间
	CreateAt time.Time `db:"create_at" json:"createAt"`
	//更新时间
	UpdateAt time.Time `db:"update_at" json:"updateAt"`
	//删除时间
	DeleteAt time.Time `db:"delete_at" json:"deleteAt"`
	//启动时间
	StartAt time.Time `db:"start_at" json:"startAt"`
	//结束时间
	EndAt time.Time `db:"end_at" json:"endAt"`
	//组织ID
	OrgID int64 `db:"org_id" json:"orgID"`
	//分区ID
	AreaID int64 `db:"area_id" json:"areaID"`
	//广告ID
	AdID int64 `db:"ad_id" json:"adID"`
	//权重因子
	// 当一个分区存在多个广告绑定时,权重将作为随机的重要计算参数,影响随机的倾向性
	// 同一个分区下将所有广告进行合计,然后取随机数,在因子+偏移值范围的广告将作为最终投放标定
	// 注意,广告也可能会被用户数据分析模块影响,该模块将注入新的因子作为投放参数,作为因子2存在。
	// 投放概率 = 广告因子 + 用户数据分析因子 / (因子总数)
	Factor int `db:"factor" json:"factor"`
	//扩展参数
	Params CoreSQLConfig.FieldsConfigsType `db:"params" json:"params"`
}

FieldsBind 分区和广告的绑定关系

func GetBindList

func GetBindList(args *ArgsGetBindList) (dataList []FieldsBind, dataCount int64, err error)

GetBindList 获取绑定关系

func SetBind

func SetBind(args *ArgsSetBind) (data FieldsBind, err error)

SetBind 设置绑定关系

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL