Files
2019-04-22 18:49:16 +08:00

70 lines
1.8 KiB
Go

package dao
import (
"context"
"fmt"
"strconv"
"strings"
"time"
"go-common/app/job/live/xroom-feed/internal/model"
"go-common/library/database/sql"
"go-common/library/log"
)
const (
_sqlConf = "select id, name, type, rules, module_type, position, percent, priority from ap_rec_pool_conf where is_del = 0 and (status = 2 or (status = 1 and start_time < '%s' and end_time > '%s'))"
_sqlWhiteList = "select room_id from ap_rec_white_list where rec_id = %d and is_del = 0"
)
func (d *Dao) GetConfFromDb() (ruleConf []*model.RecPoolConf, err error) {
var rows *sql.Rows
ruleConf = make([]*model.RecPoolConf, 0)
timeNow := time.Now().Format("2006-01-02 15:04:05")
rows, err = d.liveAppDb.Query(context.TODO(), fmt.Sprintf(_sqlConf, timeNow, timeNow))
if err != nil {
log.Error("getConfFromDb_error:%+v", err)
return
}
for rows.Next() {
r := new(model.RecPoolConf)
if err = rows.Scan(&r.Id, &r.Name, &r.ConfType, &r.Rules, &r.ModuleType, &r.Position, &r.Percent, &r.Priority); err != nil {
log.Error("getConfFromDb_parseError:%+v", err)
continue
}
ruleConf = append(ruleConf, r)
}
return
}
func (d *Dao) GetWhiteList(ctx context.Context, id int) (whiteStr string, err error) {
//白名单获取
var whiteRows *sql.Rows
whiteRows, err = d.liveAppDb.Query(ctx, fmt.Sprintf(_sqlWhiteList, id))
if err != nil {
log.Error("getWhiteListFromDb_error:%+v", err)
return
}
whiteList := make([]string, 0)
for whiteRows.Next() {
r := new(model.RecWhiteList)
if err = whiteRows.Scan(&r.RoomId); err != nil {
log.Error("getWhiteListFromDb_parseError:%+v", err)
continue
}
if r.RoomId == 0 {
continue
}
whiteList = append(whiteList, strconv.Itoa(r.RoomId))
}
if len(whiteList) <= 0 {
return
}
whiteStr = strings.Join(whiteList, ",")
return
}