12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- package service
- import (
- "context"
- "time"
- "go-common/app/interface/main/growup/model"
- "go-common/library/ecode"
- "go-common/library/log"
- "go-common/library/net/metadata"
- xtime "go-common/library/time"
- )
- // JoinColumn join up to creative column
- func (s *Service) JoinColumn(c context.Context, mid int64, accountType, signType int) (err error) {
- id, err := s.dao.Blocked(c, mid)
- if err != nil {
- log.Error("s.dao.GetBlocked mid(%d) error(%v)", mid, err)
- return
- }
- if id != 0 {
- log.Info("mid(%d) is blocked", mid)
- return ecode.GrowupDisabled
- }
- // get up view
- ip := metadata.String(c, metadata.RemoteIP)
- stat, err := s.dao.ArticleStat(c, mid, ip)
- if err != nil {
- log.Error("s.dao.ArticleStat mid(%d) error(%v)", mid, err)
- return
- }
- if stat.View < s.conf.Threshold.LimitArticleView {
- log.Info("mid(%d) view(%s) not reach standard", mid, stat.View)
- return ecode.GrowupDisabled
- }
- // get up nickname
- card, err := s.dao.Card(c, mid)
- if err != nil {
- log.Error("s.dao.Card(%d) error(%v)", mid, err)
- return
- }
- fans, err := s.dao.Fans(c, mid)
- if err != nil {
- return
- }
- state, err := s.dao.GetAccountState(c, "up_info_column", mid)
- if err != nil {
- return
- }
- // if account state is 2 3 4 5 6 7 return
- if state >= 2 && state < 8 {
- return
- }
- now := xtime.Time(time.Now().Unix())
- // sign_type: 1.basic; 2.first publish; 0:default.
- v := &model.UpInfo{
- MID: mid,
- Nickname: card.Name,
- AccountType: accountType,
- MainCategory: 0,
- Fans: fans,
- AccountState: 2,
- SignType: signType,
- ApplyAt: now,
- TotalPlayCount: stat.View,
- }
- _, err = s.dao.InsertUpInfo(c, "up_info_column", "total_view_count", v)
- return
- }
|