123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210 |
- package bws
- import (
- "context"
- "encoding/json"
- bwsmdl "go-common/app/interface/main/activity/model/bws"
- "go-common/library/ecode"
- "go-common/library/log"
- )
- // RedisInfo .
- func (s *Service) RedisInfo(c context.Context, loginMid, mid int64, key, day, typ string, del int) (data json.RawMessage, err error) {
- if !s.isAdmin(loginMid) {
- err = ecode.ActivityNotAdmin
- return
- }
- if key == "" {
- if key, err = s.midToKey(c, mid); err != nil {
- return
- }
- }
- var (
- bid int64 = 1
- bs []byte
- )
- switch typ {
- case "point":
- if del == 1 {
- err = s.dao.DelCachePoints(c, bid)
- return
- }
- var points *bwsmdl.Points
- if points, err = s.dao.CachePoints(c, bid); err != nil || points == nil || len(points.Points) == 0 {
- log.Error("RedisInfo point error (%v)", err)
- return
- }
- if bs, err = json.Marshal(points.Points); err != nil {
- log.Error("RedisInfo point json error (%v)", err)
- return
- }
- data = json.RawMessage(bs)
- case "achieve":
- if del == 1 {
- err = s.dao.DelCacheAchievements(c, bid)
- return
- }
- var achieves *bwsmdl.Achievements
- if achieves, err = s.dao.CacheAchievements(c, bid); err != nil || achieves == nil || len(achieves.Achievements) == 0 {
- log.Error("RedisInfo achieve error (%v)", err)
- return
- }
- if bs, err = json.Marshal(achieves.Achievements); err != nil {
- log.Error("RedisInfo achieve json error (%v)", err)
- return
- }
- data = json.RawMessage(bs)
- case "user_point":
- if del == 1 {
- err = s.dao.DelCacheUserPoints(c, bid, key)
- return
- }
- var res []*bwsmdl.UserPoint
- if res, err = s.dao.CacheUserPoints(c, bid, key); err != nil {
- log.Error("RedisInfo user point key(%s) error (%v)", key, err)
- return
- }
- if bs, err = json.Marshal(res); err != nil {
- log.Error("RedisInfo user point json error (%v)", err)
- return
- }
- data = json.RawMessage(bs)
- case "user_achieve":
- if del == 1 {
- err = s.dao.DelCacheUserAchieves(c, bid, key)
- return
- }
- var res []*bwsmdl.UserAchieve
- if res, err = s.dao.CacheUserAchieves(c, bid, key); err != nil {
- log.Error("RedisInfo user achieve key(%s) error (%v)", key, err)
- return
- }
- if bs, err = json.Marshal(res); err != nil {
- log.Error("RedisInfo user achieve json error (%v)", err)
- return
- }
- data = json.RawMessage(bs)
- case "achieve_cnt":
- if day == "" {
- day = today()
- }
- if del == 1 {
- err = s.dao.DelCacheAchieveCounts(c, bid, day)
- return
- }
- var res []*bwsmdl.CountAchieves
- if res, err = s.dao.CacheAchieveCounts(c, bid, day); err != nil {
- log.Error("RedisInfo achieve_cnt day(%s) error (%v)", day, err)
- return
- }
- if bs, err = json.Marshal(res); err != nil {
- log.Error("RedisInfo achieve_cnt json error (%v)", err)
- return
- }
- data = json.RawMessage(bs)
- case "achieve_cnt_db":
- if day == "" {
- day = today()
- }
- var res []*bwsmdl.CountAchieves
- if res, err = s.dao.RawAchieveCounts(c, bid, day); err != nil {
- log.Error("RedisInfo achieve_cnt_db day(%s) error (%v)", day, err)
- return
- }
- if bs, err = json.Marshal(res); err != nil {
- log.Error("RedisInfo achieve_cnt_db json error (%v)", err)
- return
- }
- data = json.RawMessage(bs)
- default:
- err = ecode.RequestErr
- }
- return
- }
- // KeyInfo .
- func (s *Service) KeyInfo(c context.Context, loginMid, keyID, mid int64, key, typ string, del int) (data json.RawMessage, err error) {
- if !s.isAdmin(loginMid) {
- err = ecode.ActivityNotAdmin
- return
- }
- var (
- bs []byte
- )
- switch typ {
- case "id":
- if keyID == 0 {
- err = ecode.RequestErr
- return
- }
- var user *bwsmdl.Users
- if user, err = s.dao.UserByID(c, keyID); err != nil {
- return
- }
- if bs, err = json.Marshal(user); err != nil {
- return
- }
- data = json.RawMessage(bs)
- case "mid":
- if mid == 0 {
- err = ecode.RequestErr
- return
- }
- if del == 1 {
- err = s.dao.DelCacheUsersMid(c, mid)
- return
- }
- var res *bwsmdl.Users
- if res, err = s.dao.CacheUsersMid(c, mid); err != nil {
- return
- }
- if bs, err = json.Marshal(res); err != nil {
- return
- }
- data = json.RawMessage(bs)
- case "key":
- if key == "" {
- err = ecode.RequestErr
- return
- }
- if del == 1 {
- err = s.dao.DelCacheUsersKey(c, key)
- return
- }
- var res *bwsmdl.Users
- if res, err = s.dao.CacheUsersKey(c, key); err != nil {
- return
- }
- if bs, err = json.Marshal(res); err != nil {
- return
- }
- data = json.RawMessage(bs)
- default:
- err = ecode.RequestErr
- }
- return
- }
- // AdminInfo get admin info.
- func (s *Service) AdminInfo(c context.Context, bid, mid int64) (data *bwsmdl.AdminInfo, err error) {
- data = new(bwsmdl.AdminInfo)
- if s.isAdmin(mid) {
- data.IsAdmin = true
- }
- var points *bwsmdl.Points
- if points, err = s.dao.Points(c, bid); err != nil || points == nil || len(points.Points) == 0 {
- log.Error("s.dao.Points error(%v)", err)
- err = ecode.ActivityPointFail
- return
- }
- for _, v := range points.Points {
- if v.Ower == mid {
- data.Point = v
- }
- }
- if data.Point == nil {
- data.Point = struct{}{}
- }
- return
- }
|