123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218 |
- package popular
- import (
- "context"
- "fmt"
- "go-common/app/admin/main/feed/model/common"
- "go-common/app/admin/main/feed/model/show"
- "go-common/app/admin/main/feed/util"
- "go-common/library/log"
- "github.com/jinzhu/gorm"
- )
- const (
- //ActionAddCPopular .
- ActionAddCPopular = "ActAddPopularStars"
- //ActionUpCPopular .
- ActionUpCPopular = "ActUpPopularStars"
- //ActionDelCPopular .
- ActionDelCPopular = "ActDelPopularStars"
- //ActionRejCPopular .
- ActionRejCPopular = "ActRejPopularStars"
- //_CardTypeUpRcmdNew 热门新星卡片
- _CardTypeUpRcmdNew = "up_rcmd_new"
- //ActionAIAddCPopular .
- ActionAIAddCPopular = "ActAIAddPopularStars"
- //_CardSourceOperate popular stars build by operate
- _CardSourceOperate = 0
- //_CardSourceAI popular stars build by ai
- _CardSourceAI = 1
- )
- //PopularStarsList channel Popular list
- func (s *Service) PopularStarsList(lp *show.PopularStarsLP) (pager *show.PopularStarsPager, err error) {
- pager = &show.PopularStarsPager{
- Page: common.Page{
- Num: lp.Pn,
- Size: lp.Ps,
- },
- }
- w := map[string]interface{}{
- "deleted": common.NotDeleted,
- "type": _CardTypeUpRcmdNew,
- }
- query := s.showDao.DB.Model(&show.PopularStars{})
- if lp.ID > 0 {
- w["id"] = lp.ID
- }
- if lp.Status > 0 {
- w["status"] = lp.Status
- }
- if lp.Source >= 0 {
- if lp.Source == 0 {
- query = query.Where(map[string]interface{}{"source": _CardSourceOperate})
- } else {
- w["source"] = lp.Source
- }
- }
- if lp.Person != "" {
- query = query.Where("person like ?", "%"+lp.Person+"%")
- }
- if lp.LongTitle != "" {
- query = query.Where("long_title like ?", "%"+lp.LongTitle+"%")
- }
- if err = query.Where(w).Count(&pager.Page.Total).Error; err != nil {
- log.Error("popularSvc.PopularStarsList Index count error(%v)", err)
- return
- }
- Populars := make([]*show.PopularStars, 0)
- if err = query.Where(w).Order("`id` DESC").Offset((lp.Pn - 1) * lp.Ps).Limit(lp.Ps).Find(&Populars).Error; err != nil {
- log.Error("popularSvc.PopularStarsList First error(%v)", err)
- return
- }
- pager.Item = Populars
- return
- }
- //AddPopularStars add popular stars
- func (s *Service) AddPopularStars(c context.Context, param *show.PopularStarsAP, name string, uid int64) (err error) {
- var (
- popStars *show.PopularStars
- )
- if popStars, err = s.ValidMid(param.Value); err != nil {
- fmt.Println("error")
- return
- }
- if popStars.ID != 0 {
- err = fmt.Errorf("up主ID 已存在")
- return
- }
- param.Type = _CardTypeUpRcmdNew
- param.Source = _CardSourceOperate
- param.Status = common.Pass
- if err = s.showDao.PopularStarsAdd(param); err != nil {
- return
- }
- if err = util.AddLogs(common.LogPopularStars, name, uid, 0, ActionAddCPopular, param); err != nil {
- log.Error("popularSvc.AddPopularStars AddLog error(%v)", err)
- return
- }
- return
- }
- //UpdatePopularStars update channel Popular
- func (s *Service) UpdatePopularStars(c context.Context, param *show.PopularStarsUP, name string, uid int64) (err error) {
- var (
- popStars *show.PopularStars
- )
- if popStars, err = s.ValidMid(param.Value); err != nil {
- return
- }
- if popStars.ID != 0 && popStars.ID != param.ID {
- err = fmt.Errorf("up主ID 已存在")
- return
- }
- param.Type = _CardTypeUpRcmdNew
- param.Status = common.Pass
- if err = s.showDao.PopularStarsUpdate(param); err != nil {
- return
- }
- if err = util.AddLogs(common.LogPopularStars, name, uid, 0, ActionUpCPopular, param); err != nil {
- log.Error("popularSvc.UpdatePopularStars AddLog error(%v)", err)
- return
- }
- return
- }
- //DeletePopularStars delete channel Popular
- func (s *Service) DeletePopularStars(id int64, name string, uid int64) (err error) {
- if err = s.showDao.PopularStarsDelete(id, _CardTypeUpRcmdNew); err != nil {
- return
- }
- if err = util.AddLogs(common.LogPopularStars, name, uid, id, ActionDelCPopular, id); err != nil {
- log.Error("popularSvc.DeletePopularStars AddLog error(%v)", err)
- return
- }
- return
- }
- //RejectPopularStars reject channel Popular
- func (s *Service) RejectPopularStars(id int64, name string, uid int64) (err error) {
- if err = s.showDao.PopularStarsReject(id, _CardTypeUpRcmdNew); err != nil {
- return
- }
- if err = util.AddLogs(common.LogPopularStars, name, uid, id, ActionRejCPopular, id); err != nil {
- log.Error("popularSvc.DeletePopularStars AddLog error(%v)", err)
- return
- }
- return
- }
- //ValidMid mid must unique
- func (s *Service) ValidMid(mid string) (popStars *show.PopularStars, err error) {
- w := map[string]interface{}{
- "value": mid,
- "deleted": common.NotDeleted,
- "type": _CardTypeUpRcmdNew,
- }
- popStars = &show.PopularStars{}
- if err = s.showDao.DB.Model(&show.PopularStars{}).Where(w).Find(&popStars).Error; err != nil {
- if err == gorm.ErrRecordNotFound {
- err = nil
- return
- }
- log.Error("popularSvc.ValidMid Find error(%v)", err)
- return
- }
- return
- }
- //AIAddPopularStars add popular stars
- func (s *Service) AIAddPopularStars(c context.Context, values []*show.PopularStarsAP) (err error) {
- if err = util.AddLogs(common.LogPopularStars, "AI", 0, 0, ActionAIAddCPopular, values); err != nil {
- log.Error("popularSvc.AIAddPopularStars AddLog error(%v)", err)
- return
- }
- for _, v := range values {
- var popStars *show.PopularStars
- if popStars, err = s.ValidMid(v.Value); err != nil {
- log.Error("popularSvc.AIAddPopularStars ValidMid value(%v) error(%v)", v, err)
- continue
- }
- if popStars.ID != 0 {
- //运营创建的优先级最高
- if popStars.Source == _CardSourceOperate {
- continue
- }
- //已通过的优先级较高
- if popStars.Status == common.Pass {
- continue
- }
- tmp := &show.PopularStarsUP{
- ID: popStars.ID,
- Content: v.Content,
- LongTitle: v.LongTitle,
- }
- if err = s.showDao.PopularStarsUpdate(tmp); err != nil {
- log.Error("popularSvc.AIAddPopularStars PopularStarsUpdate value(%v) error(%v)", tmp, err)
- continue
- }
- } else {
- tmp := &show.PopularStarsAP{
- Type: _CardTypeUpRcmdNew,
- Source: _CardSourceAI,
- Status: common.Verify,
- Value: v.Value,
- Content: v.Content,
- LongTitle: v.LongTitle,
- }
- if err = s.showDao.PopularStarsAdd(tmp); err != nil {
- log.Error("popularSvc.AIAddPopularStars PopularStarsAdd value(%v) error(%v)", tmp, err)
- continue
- }
- }
- }
- return
- }
|