12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- package wxbroadcastv2
- import (
- "encoding/json"
- "fmt"
- "git.jiaxianghudong.com/webs/pkg/rds"
- )
- var Total = 5 //限制位置
- var tagMap = map[int64]string{
- 0: "官方直播",
- 1: "美女主播",
- 2: "人气主播",
- 3: "优质主播",
- 4: "官方认证",
- }
- type Watch struct {
- Index int `json:"index"`
- TagUrl string `json:"tag_url" form:"tag_url"`
- Img string `json:"img" form:"img"`
- Nickname string `json:"nickname" form:"nickname"`
- Uid string `json:"uid" form:"uid"`
- IsOfficial bool `json:"is_official" form:"is_official"`
- }
- type WatchConfig struct {
- WatchList []*Watch `json:"watch_list"`
- }
- func (w *WatchConfig) Store() error {
- marshal, _ := json.Marshal(w)
- err := rds.Redis.Set(WXBROADCASTWATCH, string(marshal), -1).Err()
- return err
- }
- func (w *WatchConfig) Load() {
- val := rds.Redis.Get(WXBROADCASTWATCH).Val()
- if val == "" {
- w.WatchList = make([]*Watch, Total)
- for i := range w.WatchList {
- w.WatchList[i] = &Watch{}
- }
- w.Store()
- } else {
- json.Unmarshal([]byte(val), w)
- }
- //for i := range w.WatchList {
- // w.WatchList[i].TagUrl = tagMap[w.WatchList[i].TagId]
- //}
- }
- func (w *WatchConfig) StoreV2(channel, appid int32) (err error) {
- marshal, _ := json.Marshal(w)
- if channel > 0 && appid > 0 {
- err = rds.Redis.HSet(WXBROADCASTWATCHSPE, fmt.Sprintf("%v_%v", channel, appid), string(marshal)).Err()
- } else {
- err = rds.Redis.Set(WXBROADCASTWATCH, string(marshal), -1).Err()
- }
- return err
- }
- func (w *WatchConfig) LoadV2(channel, appid int32, reload bool) error {
- var val string
- if channel > 0 && appid > 0 {
- val = rds.Redis.HGet(WXBROADCASTWATCHSPE, fmt.Sprintf("%v_%v", channel, appid)).Val()
- }
- if (reload && val == "") || (channel == 0 && appid == 0) { //如果是旧的或者是配置通用的
- val = rds.Redis.Get(WXBROADCASTWATCH).Val()
- }
- if val != "" {
- json.Unmarshal([]byte(val), w)
- }
- if len(w.WatchList) == 0 {
- val = rds.Redis.Get(WXBROADCASTWATCH).Val()
- }
- return nil
- }
|