70 lines
1.8 KiB
Go
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
|
|
}
|