123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- package service
- import (
- "context"
- "time"
- "go-common/app/admin/main/space/model"
- "go-common/library/ecode"
- "go-common/library/log"
- "go-common/library/queue/databus/report"
- )
- // Notice get notice data.
- func (s *Service) Notice(c context.Context, mid int64) (data *model.Notice, err error) {
- data = &model.Notice{Mid: mid}
- if err = s.dao.DB.Table(data.TableName()).Where("mid=?", mid).First(&data).Error; err != nil {
- log.Error("Notice (mid:%d) error (%v)", mid, err)
- if err == ecode.NothingFound {
- err = nil
- }
- }
- return
- }
- // NoticeUp notice clear and forbid.
- func (s *Service) NoticeUp(c context.Context, arg *model.NoticeUpArg) (err error) {
- var action string
- notice := &model.Notice{Mid: arg.Mid}
- if err = s.dao.DB.Table(notice.TableName()).Where("mid=?", arg.Mid).First(¬ice).Error; err != nil {
- log.Error("NoticeForbid error (mid:%d) (%v)", arg.Mid, err)
- if err != ecode.NothingFound {
- return
- }
- }
- up := make(map[string]interface{})
- switch arg.Type {
- case model.NoticeTypeClear:
- up["notice"] = ""
- action = model.NoticeClear
- case model.NoticeTypeClearAndForbid:
- up["notice"] = ""
- up["is_forbid"] = model.NoticeForbid
- action = model.NoticeClearAndForbid
- case model.NoticeTypeUnForbid:
- up["is_forbid"] = model.NoticeNoForbid
- action = model.NoticeUnForbid
- }
- if err != ecode.NothingFound {
- if err = s.dao.DB.Table(notice.TableName()).Where("id=?", notice.ID).Update(up).Error; err != nil {
- log.Error("NoticeForbid (mid:%d) update error (%v)", arg.Mid, err)
- return
- }
- } else {
- create := &model.Notice{Mid: arg.Mid}
- if arg.Type == model.NoticeTypeClearAndForbid {
- create.IsForbid = model.NoticeForbid
- }
- if err = s.dao.DB.Table(notice.TableName()).Create(create).Error; err != nil {
- log.Error("NoticeForbid (mid:%d) insert error (%v)", arg.Mid, err)
- return
- }
- }
- if err = report.Manager(&report.ManagerInfo{
- Uname: arg.Uname,
- UID: arg.UID,
- Business: model.NoticeLogID,
- Type: 0,
- Oid: arg.Mid,
- Action: action,
- Ctime: time.Now(),
- Content: map[string]interface{}{
- "old": notice,
- },
- }); err != nil {
- return
- }
- return
- }
|