1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- package dao
- import (
- "context"
- "fmt"
- "go-common/app/interface/live/push-live/model"
- "go-common/library/log"
- "github.com/pkg/errors"
- )
- const (
- _shard = 10 //分表十张
- _getMidsByTargetID = "SELECT uid FROM app_switch_config_%s WHERE target_id=? AND type=? AND switch=?"
- )
- // tableIndex return index by target_id
- func tableIndex(targetID int64) string {
- return fmt.Sprintf("%02d", targetID%_shard)
- }
- // GetFansBySwitch 获取直播开关数据
- func (d *Dao) GetFansBySwitch(c context.Context, targetID int64) (fans map[int64]bool, err error) {
- var mid int64
- fans = make(map[int64]bool)
- sql := fmt.Sprintf(_getMidsByTargetID, tableIndex(targetID))
- rows, err := d.db.Query(c, sql, targetID, model.LivePushType, model.LivePushSwitchOn)
- if err != nil {
- err = errors.WithStack(err)
- fmt.Printf("%v", err)
- log.Error("[dao.switch|GetSwitchMids] db.Query() error(%v)", err)
- return
- }
- for rows.Next() {
- if err = rows.Scan(&mid); err != nil {
- err = errors.WithStack(err)
- fmt.Printf("%v", err)
- log.Error("[dao.switch|GetSwitchMids] rows.Scan() error(%v)", err)
- return
- }
- fans[mid] = true
- }
- return
- }
|