12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- package thirdp
- import (
- "context"
- "fmt"
- model "go-common/app/interface/main/tv/model/thirdp"
- "go-common/library/cache/memcache"
- "go-common/library/database/sql"
- "go-common/library/log"
- "go-common/library/xstr"
- )
- const (
- _mangoRecomKey = "mango_cms_recom"
- _mangoRecom = "SELECT id, rid, rtype, title, cover , category, playcount, jid, content, staff , rorder FROM mango_recom WHERE deleted = 0 AND id IN (%s)"
- )
- // MangoOrder gets mango recom data.
- func (d *Dao) MangoOrder(c context.Context) (s []int64, err error) {
- var (
- conn = d.mc.Get(c)
- item *memcache.Item
- res = model.MangoOrder{}
- )
- defer conn.Close()
- if item, err = conn.Get(_mangoRecomKey); err != nil {
- if err == memcache.ErrNotFound {
- err = nil
- return
- }
- log.Error("conn.Get(%s) error (%v)", _mangoRecomKey, err)
- return
- }
- if err = conn.Scan(item, &res); err != nil {
- log.Error("conn.Scan(%s) error(%v)", _mangoRecomKey, err)
- }
- s = res.RIDs
- return
- }
- // MangoRecom picks the mango recom data from DB
- func (d *Dao) MangoRecom(c context.Context, ids []int64) (data []*model.MangoRecom, err error) {
- var (
- rows *sql.Rows
- query = fmt.Sprintf(_mangoRecom, xstr.JoinInts(ids))
- dataSet = make(map[int64]*model.MangoRecom, len(ids))
- )
- if rows, err = d.db.Query(c, query); err != nil {
- log.Error("mangoRecom, Err %v", err)
- return
- }
- // SELECT id, rid, rtype, title, cover , category, playcount, jid, content, staff , rorder
- for rows.Next() {
- var r = &model.MangoRecom{}
- if err = rows.Scan(&r.ID, &r.RID, &r.Rtype, &r.Title, &r.Cover, &r.Category, &r.Playcount, &r.JID, &r.Content, &r.Staff, &r.Rorder); err != nil {
- return
- }
- dataSet[r.ID] = r
- }
- if err = rows.Err(); err != nil {
- log.Error("rows.Err() error(%v)", err)
- return
- }
- for _, v := range ids {
- if value, ok := dataSet[v]; ok {
- data = append(data, value)
- continue
- }
- log.Warn("MangoRecom RID %d Missing", v)
- }
- return
- }
|