123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- package dao
- import (
- "context"
- "fmt"
- "strconv"
- "go-common/app/admin/main/tv/model"
- "go-common/library/cache/memcache"
- "go-common/library/log"
- "github.com/jinzhu/gorm"
- )
- const (
- _setUploader = "REPLACE INTO ugc_uploader (mid, state) VALUES (?,?)"
- _auditMids = "UPDATE ugc_uploader SET valid = ? WHERE mid IN (?) AND deleted = 0"
- _intervUp = "UPDATE ugc_uploader SET cms_face = ?, cms_name = ? WHERE mid = ? AND deleted = 0"
- _stateNormal = 1
- _deleted = 1
- // up list oder type
- _ctimeNew = 1
- _ctimeOld = 2
- _mtimeNew = 3
- _mtimeOld = 4
- size = 20
- )
- // UpAdd def.
- func (d *Dao) UpAdd(mid int64) (err error) {
- if err = d.DB.Exec(_setUploader, mid, _stateNormal).Error; err != nil {
- log.Error("UpAdd Error %v", err)
- }
- return
- }
- // UpList def.
- func (d *Dao) UpList(order int, page int, ids []int64) (ups []*model.Upper, pager *model.Page, err error) {
- var db = d.DB.Where("deleted != ?", _deleted)
- if len(ids) != 0 {
- db = db.Where("mid IN (?)", ids)
- }
- pager = &model.Page{
- Num: page,
- Size: size,
- }
- if err = db.Model(&model.Upper{}).Count(&pager.Total).Error; err != nil {
- log.Error("Uplist Count Error %v", err)
- return
- }
- db = treatOrder(order, db)
- if err = db.Offset((page - 1) * size).Limit(size).Find(&ups).Error; err != nil {
- log.Error("UpList Error %v, Order: %d", err, order)
- }
- return
- }
- func treatOrder(order int, db *gorm.DB) *gorm.DB {
- switch order {
- case _ctimeNew:
- db = db.Order("ctime DESC")
- case _ctimeOld:
- db = db.Order("ctime ASC")
- case _mtimeNew:
- db = db.Order("mtime DESC")
- case _mtimeOld:
- db = db.Order("mtime ASC")
- default:
- db = db.Order("ctime DESC")
- }
- return db
- }
- // UpCmsList def.
- func (d *Dao) UpCmsList(req *model.ReqUpCms) (ups []*model.CmsUpper, pager *model.Page, err error) {
- var db = d.DB.Where("deleted = 0")
- if req.MID != 0 {
- db = db.Where("mid = ?", req.MID)
- }
- if req.Name != "" {
- db = db.Where("ori_name LIKE ?", "%"+req.Name+"%")
- }
- if req.Valid != "" {
- valid, _ := strconv.Atoi(req.Valid)
- db = db.Where("valid = ?", valid)
- }
- pager = &model.Page{
- Num: req.Pn,
- Size: size,
- }
- if err = db.Model(&model.Upper{}).Count(&pager.Total).Error; err != nil {
- log.Error("Uplist Count Error %v", err)
- return
- }
- db = treatOrder(req.Order, db)
- if err = db.Offset((req.Pn - 1) * size).Limit(size).Find(&ups).Error; err != nil {
- log.Error("UpList Error %v, Order: %d", err, req.Order)
- }
- return
- }
- // VerifyIds verifies whether all the mids exist
- func (d *Dao) VerifyIds(mids []int64) (okMids map[int64]*model.UpMC, err error) {
- if len(mids) == 0 {
- return
- }
- okMids = make(map[int64]*model.UpMC)
- var ups []*model.UpMC
- db := d.DB.Where("deleted != ?", _deleted).Where("mid IN (?)", mids)
- if err = db.Find(&ups).Error; err != nil {
- log.Error("VerifyIds Error %v, Mids %v", err, mids)
- }
- for _, v := range ups {
- okMids[v.MID] = v
- }
- return
- }
- // AuditIds carries out the action to the given mids
- func (d *Dao) AuditIds(mids []int64, validAct int) (err error) {
- if err = d.DB.Exec(_auditMids, validAct, mids).Error; err != nil {
- log.Error("AuditIds Error %v, Mids %v", err, mids)
- }
- return
- }
- // SetUpper updates the cms info of an upper in DB
- func (d *Dao) SetUpper(req *model.ReqUpEdit) (err error) {
- if err = d.DB.Exec(_intervUp, req.Face, req.Name, req.MID).Error; err != nil {
- log.Error("SetUpper Error %v, Mid %v", err, req)
- }
- return
- }
- func upperMetaKey(MID int64) string {
- return fmt.Sprintf("up_cms_%d", MID)
- }
- // SetUpMetaCache updates upinfo in MC
- func (d *Dao) SetUpMetaCache(c context.Context, upper *model.UpMC) (err error) {
- var (
- key = upperMetaKey(upper.MID)
- conn = d.mc.Get(c)
- )
- defer conn.Close()
- if err = conn.Set(&memcache.Item{Key: key, Object: upper, Flags: memcache.FlagJSON, Expiration: d.cmsExpire}); err != nil {
- log.Error("conn.Set error(%v)", err)
- }
- return
- }
- // DelCache deletes the cache from CM
- func (d *Dao) DelCache(c context.Context, mid int64) (err error) {
- var (
- key = upperMetaKey(mid)
- conn = d.mc.Get(c)
- )
- defer conn.Close()
- if err = conn.Delete(key); err != nil {
- log.Error("conn.Set error(%v)", err)
- }
- return
- }
|