12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- package model
- import (
- "fmt"
- "sync"
- "time"
- "git.jiaxianghudong.com/go/logs"
- "git.jiaxianghudong.com/webs/pkg/dbx"
- )
- //ActiveCache 调用到的活动缓存
- var ActiveCache sync.Map
- //ActiveCacheArr 所有活动数组缓存
- var ActiveCacheArr sync.Map
- // ActiveSwitchAll 活动
- type ActiveSwitchAll struct {
- ID string `sql:"id" json:"id"`
- Title string `sql:"title" json:"title"`
- Status string `sql:"status" json:"status"` // `status` tinyint(2) DEFAULT '0' COMMENT '0关闭,1开启',
- ActiveID string `sql:"active_id" json:"active_id"` // `active_id` varchar(100) DEFAULT NULL COMMENT '关联活动标签符',
- OpenCondition string `sql:"open_condition" json:"open_condition"` // `open_condition` text CHARACTER SET utf32 COMMENT 'app_id,channel_id和地区的组合,空表示全部',
- OpenTimes string `sql:"open_times" json:"open_times"` // `open_times` varchar(999) DEFAULT NULL COMMENT '开启时间,空表示全部',
- BeginShowTime string `sql:"begin_show_time" json:"begin_show_time"` // `begin_show_time` varchar(55) NOT NULL COMMENT '循环显示开始时间',
- EndShowTime string `sql:"end_show_time" json:"end_show_time"` // `end_show_time` varchar(55) NOT NULL COMMENT '循环显示时结束间',
- BeginShowDate string `sql:"begin_show_date" json:"begin_show_date"` // `begin_show_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '指定显示开始日期时间',
- EndShowDate string `sql:"end_show_date" json:"end_show_date"` // `end_show_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '指定显示结束日期时间',
- IsDebug string `sql:"is_debug" json:"is_debug"` // `is_debug` int(2) NOT NULL DEFAULT '0' COMMENT '是否测试 0否 1是',
- Sort string `sql:"sort" json:"sort"` // `sort` int(11) NOT NULL DEFAULT '0' COMMENT '排序',
- IsTimeOffOn string `sql:"istimeoffon" json:"istimeoffon"` // `istimeoffon` int(2) NOT NULL DEFAULT '0' COMMENT '显示模式:1循环模式 2:指定模式'';',
- Push string `sql:"push" json:"push"` // `push` int(2) NOT NULL DEFAULT '0' COMMENT '0为不推送1为推送',
- RuleTitle string `sql:"rule_title" json:"rule_title"` // `rule_title` varchar(55) NOT NULL COMMENT '活动规则标题',
- Rule string `sql:"rule" json:"rule"` // `rule` text NOT NULL COMMENT '活动规则',
- Grade string `sql:"grade" json:"grade"` // `grade` varchar(50) NOT NULL COMMENT '档位',
- GradeRatio string `sql:"grade_ratio" json:"grade_ratio"` // `grade_ratio` varchar(50) NOT NULL COMMENT '档位对应百分比',
- Data string `sql:"data" json:"data"`
- }
- // Get 获取全部活动数据
- func (m ActiveSwitchAll) Get(typeName string) (ActiveSwitchAll, error) {
- sql := fmt.Sprintf("SELECT id,title,status,active_id,open_condition,open_times,begin_show_time,end_show_time,begin_show_date,end_show_date,is_debug,sort,istimeoffon,push,rule_title,rule,grade,grade_ratio,data FROM `ext`.`active_switch` WHERE active_id='%v'", typeName)
- queryResult := dbx.MySQLExt.QueryRow(sql)
- if nil == queryResult {
- return m, nil
- }
- err := queryResult.Scan(&m.ID, &m.Title, &m.Status, &m.ActiveID, &m.OpenCondition, &m.OpenTimes, &m.BeginShowTime, &m.EndShowTime, &m.BeginShowDate, &m.EndShowDate,
- &m.IsDebug, &m.Sort, &m.IsTimeOffOn, &m.Push, &m.RuleTitle, &m.Rule, &m.Grade, &m.GradeRatio, &m.Data)
- if nil != err && "sql: no rows in result set" != err.Error() {
- logs.Error("活动数据获取失败,活动ID:", typeName, ",错误:", err.Error())
- return m, err
- }
- return m, nil
- }
- //GetActiveSwitch 获取可用活动开关配置列表
- func GetActiveSwitch() ([]ActiveSwitchAll, error) {
- var switchs []ActiveSwitchAll
- sql := fmt.Sprintf("select * from `ext`.`active_switch` where status =1 and end_show_date >= '%s' ORDER BY id DESC", time.Now().Format("2006-01-02 15:04:05"))
- err := dbx.MySQLExt.Query2(sql, &switchs)
- if err != nil {
- logs.Errorf(" select * from `ext`.`active_switch` where status =1 and end_show_date >= ? ORDER BY id DESC err:%v", err)
- return nil, err
- }
- return switchs, nil
- }
|