123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242 |
- package yb
- import (
- "github.com/beego/beego/v2/client/orm"
- "time"
- )
- // PriceDriven 价格驱动表
- type PriceDriven struct {
- PriceDrivenId int `orm:"column(price_driven_id);pk" description:"价格驱动ID"`
- //ChartPermissionId int `json:"chart_permission_id" description:"品种权限ID"`
- VarietyTagId int `json:"variety_tag_id" description:"标签ID"`
- VarietyTagName string `json:"variety_tag_name" description:"标签名称"`
- MainVariable string `json:"main_variable" description:"关键变量"`
- CoreDrivenType int `json:"core_driven_type" description:"核心驱动类型 0-多 1-空"`
- CoreDrivenContent string `json:"core_driven_content" description:"核心驱动内容"`
- CoreContent string `json:"core_content" description:"核心内容"`
- LastUpdateAdminId int `json:"last_update_admin_id" description:"最后更新人ID"`
- LastUpdateAdminName string `json:"last_update_admin_name" description:"最后更新人名称"`
- ThsMsgState int `json:"ths_msg_state" description:"同花顺推送状态:0-未推送 1-已推送"`
- TemplateMsgState int `json:"template_msg_state" description:"模板消息推送状态:0-未推送 1-已推送"`
- PublishState int `json:"publish_state" description:"发布状态:0-未发布 1-已发布"`
- SendThsMsgTime time.Time `json:"last_ths_msg_time" description:"最后推送同花顺客群消息时间"`
- SendTemplateMsgTime time.Time `json:"last_template_msg_time" description:"最后推送模板消息时间"`
- CreateTime time.Time `json:"create_time" description:"创建时间"`
- ModifyTime time.Time `json:"modify_time" description:"更新时间"`
- }
- // TableName 表名变更
- func (priceDrivenInfo *PriceDriven) TableName() string {
- return "yb_price_driven"
- }
- // Add 新增
- func (priceDrivenInfo *PriceDriven) Add() (err error) {
- o := orm.NewOrm()
- id, err := o.Insert(priceDrivenInfo)
- if err != nil {
- return
- }
- priceDrivenInfo.PriceDrivenId = int(id)
- return
- }
- // Update 更新
- func (priceDrivenInfo *PriceDriven) Update(cols []string) (err error) {
- o := orm.NewOrm()
- _, err = o.Update(priceDrivenInfo, cols...)
- return
- }
- // GetPriceDrivenByChartPermissionId 通过品种获取价格驱动
- //func GetPriceDrivenByChartPermissionId(chartPermissionId int) (item *PriceDriven, err error) {
- // o := orm.NewOrm()
- // sql := `SELECT * FROM yb_price_driven WHERE chart_permission_id = ? ORDER BY create_time DESC LIMIT 1`
- // err = o.Raw(sql, chartPermissionId).QueryRow(&item)
- // return
- //}
- // GetPriceDrivenByVarietyTagId 通过标签ID获取价格驱动
- func GetPriceDrivenByVarietyTagId(chartPermissionId int) (item *PriceDriven, err error) {
- o := orm.NewOrm()
- sql := `SELECT * FROM yb_price_driven WHERE variety_tag_id = ? ORDER BY create_time DESC LIMIT 1`
- err = o.Raw(sql, chartPermissionId).QueryRow(&item)
- return
- }
- // GetPriceDrivenById 主键获取价格驱动
- func GetPriceDrivenById(priceDrivenId int) (item *PriceDriven, err error) {
- o := orm.NewOrm()
- sql := `SELECT * FROM yb_price_driven WHERE price_driven_id = ? LIMIT 1`
- err = o.Raw(sql, priceDrivenId).QueryRow(&item)
- return
- }
- // PriceDrivenSaveLog 价格驱动保存记录表
- type PriceDrivenSaveLog struct {
- Id int `orm:"column(id);pk"`
- PriceDrivenId int `json:"price_driven_id" description:"价格驱动ID"`
- //ChartPermissionId int `json:"chart_permission_id" description:"品种权限ID"`
- VarietyTagId int `json:"variety_tag_id" description:"标签ID"`
- MainVariable string `json:"main_variable" description:"关键变量"`
- CoreDrivenType int `json:"core_driven_type" description:"核心驱动类型 0-多 1-空"`
- CoreDrivenContent string `json:"core_driven_content" description:"核心驱动内容"`
- CoreContent string `json:"core_content" description:"核心内容"`
- AdminId int `json:"admin_id" description:"更新人ID"`
- AdminName string `json:"admin_name" description:"更新人名称"`
- CreateTime time.Time `json:"create_time" description:"创建时间"`
- }
- // TableName 表名变更
- func (priceDrivenSaveLogInfo *PriceDrivenSaveLog) TableName() string {
- return "yb_price_driven_save_log"
- }
- // Add 新增保存记录
- func (priceDrivenSaveLogInfo *PriceDrivenSaveLog) Add() (err error) {
- o := orm.NewOrm()
- lastId, err := o.Insert(priceDrivenSaveLogInfo)
- if err != nil {
- return
- }
- priceDrivenSaveLogInfo.PriceDrivenId = int(lastId)
- return
- }
- // GetPriceDrivenSaveLogByPriceDrivenId 获取最新一条保存记录
- func GetPriceDrivenSaveLogByPriceDrivenId(priceDrivenId int) (item *PriceDrivenSaveLog, err error) {
- o := orm.NewOrm()
- sql := `SELECT * FROM yb_price_driven_save_log WHERE price_driven_id = ? ORDER BY create_time DESC LIMIT 1`
- err = o.Raw(sql, priceDrivenId).QueryRow(&item)
- return
- }
- // GetRecentPriceDrivenList 获取每个标签最新价格驱动信息
- func GetRecentPriceDrivenList() (list []*PriceDriven, err error) {
- o := orm.NewOrm()
- sql := `SELECT
- pd.price_driven_id,
- pd.variety_tag_id,
- pd.variety_tag_name,
- pd.main_variable,
- pd.core_driven_type,
- pd.core_driven_content,
- pd.modify_time
- FROM
- ( SELECT price_driven_id, MAX( create_time ) AS create_time FROM yb_price_driven WHERE publish_state = 1 GROUP BY variety_tag_id ) AS pd2
- LEFT JOIN yb_price_driven AS pd ON pd.create_time = pd2.create_time
- WHERE pd.publish_state = 1
- ORDER BY
- pd.modify_time DESC`
- _, err = o.Raw(sql).QueryRows(&list)
- return
- }
- // PriceDrivenVarietyTagClick 价格驱动标签点击统计
- type PriceDrivenVarietyTagClick struct {
- VarietyTagId int `json:"variety_tag_id" description:"标签ID"`
- CountNum int `json:"count_num" description:"点击量"`
- RecentClickTime string `json:"recent_click_time" description:"最近点击时间"`
- }
- // GetPriceDrivenClick 获取价格驱动点击量(根据标签ID分组)
- func GetPriceDrivenClick(priceDrivenIds string) (list []*PriceDrivenVarietyTagClick, err error) {
- o := orm.NewOrm()
- sql := `SELECT
- vl.variety_tag_id,
- COUNT(1) AS count_num,
- MAX(vl.create_time) AS recent_click_time
- FROM
- yb_price_driven_visit_log AS vl
- WHERE 1=1 `
- if priceDrivenIds != "" {
- sql += ` AND vl.price_driven_id IN (` + priceDrivenIds + `) `
- }
- sql += ` GROUP BY vl.variety_tag_id`
- _, err = o.Raw(sql).QueryRows(&list)
- return
- }
- // GetPriceDrivenPageClick 获取价格驱动分页点击量(根据标签ID分组)
- func GetPriceDrivenPageClick(startSize, pageSize int, priceDrivenIds, joinRule, groupRule, orderRule string) (list []*PriceDrivenVarietyTagClick, err error) {
- o := orm.NewOrm()
- sql := `SELECT
- pd.variety_tag_id,
- COUNT( vl.id ) AS count_num
- FROM
- ( SELECT price_driven_id, variety_tag_id FROM yb_price_driven
- WHERE price_driven_id IN (` + priceDrivenIds + `) ) AS pd
- LEFT JOIN yb_price_driven_visit_log AS vl ON ` + joinRule
- if groupRule != "" {
- sql += ` GROUP BY ` + groupRule
- }
- if orderRule != "" {
- sql += ` ORDER BY ` + orderRule
- }
- sql += ` LIMIT ?,? `
- _, err = o.Raw(sql, startSize, pageSize).QueryRows(&list)
- return
- }
- // GetDefaultPriceDrivenPageClick 获取价格驱动默认分页点击量统计列表(根据标签ID分组)
- func GetDefaultPriceDrivenPageClick(startSize, pageSize int, priceDrivenIds string) (list []*PriceDrivenVarietyTagClick, err error) {
- o := orm.NewOrm()
- sql := `SELECT
- variety_tag_id
- FROM
- yb_price_driven
- WHERE
- price_driven_id IN (` + priceDrivenIds + `) `
- sql += `ORDER BY modify_time DESC LIMIT ?,?`
- _, err = o.Raw(sql, startSize, pageSize).QueryRows(&list)
- return
- }
- // PriceDrivenVarietyTagClickDetail 价格驱动标签点击统计详情
- type PriceDrivenVarietyTagClickDetail struct {
- UserId int `json:"user_id" description:"用户ID"`
- RealName string `json:"real_name" description:"用户姓名"`
- CompanyName string `json:"company_name" description:"公司名称"`
- CompanyStatus string `json:"company_status" description:"公司状态"`
- CountNum int `json:"count_num" description:"点击量"`
- //SourceAgent int `json:"source_agent" description:"来源"`
- NewSourceAgent int `json:"new_source_agent" description:"来源"`
- RecentClickTime string `json:"recent_click_time" description:"最近点击时间"`
- }
- // GetPriceDrivenPageClickDetail 获取价格驱动分页点击量详情(根据用户分组)
- func GetPriceDrivenPageClickDetail(startSize, pageSize, varietyTagId, priceDrivenId int) (total int, list []*PriceDrivenVarietyTagClickDetail, err error) {
- o := orm.NewOrm()
- pars := make([]interface{}, 0)
- sql := `SELECT
- user_id,
- real_name,
- IF(source_agent=4,2,source_agent) as new_source_agent,
- company_name,
- company_status,
- COUNT(1) AS count_num,
- MAX(create_time) AS recent_click_time
- FROM
- yb_price_driven_visit_log
- WHERE 1=1 `
- if varietyTagId > 0 {
- sql += ` AND variety_tag_id = ?`
- pars = append(pars, varietyTagId)
- }
- if priceDrivenId > 0 {
- sql += ` AND price_driven_id = ?`
- pars = append(pars, priceDrivenId)
- }
- sql += ` GROUP BY user_id, new_source_agent ORDER BY recent_click_time DESC`
- totalSQL := `SELECT COUNT(1) total FROM (` + sql + `) z `
- err = o.Raw(totalSQL, pars).QueryRow(&total)
- if err != nil {
- return
- }
- sql += ` LIMIT ?,? `
- _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&list)
- return
- }
|