91 lines
2.9 KiB
Go
91 lines
2.9 KiB
Go
package infmtctrl
|
|
|
|
import (
|
|
"time"
|
|
|
|
"91porn-server/app/service/infmtser"
|
|
"91porn-server/common"
|
|
"91porn-server/common/log"
|
|
"91porn-server/common/stderr"
|
|
"91porn-server/models/commod"
|
|
"91porn-server/models/v/noticefmtmod"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
"go.mongodb.org/mongo-driver/bson/primitive"
|
|
)
|
|
|
|
// ObjectID
|
|
type ObjectID = primitive.ObjectID
|
|
|
|
// NoticeList doc
|
|
// @Summary 消息模块 - 预览
|
|
// @Description 动态预览和通知预览
|
|
// @Tags Information
|
|
// @Accept mpfd,json
|
|
// @Produce json,html
|
|
// @Success 200 {string} json "{"msg": "操作成功" "data": infmtser.NoticePage }"
|
|
// @Failure 400 {string} json "{"msg": "操作失败"}"
|
|
// @Router /api/app/inform/preview [get]
|
|
func Preview(c *gin.Context) {
|
|
// 检查uid是否存在
|
|
uid, err := common.GetUID(c)
|
|
if err != nil {
|
|
common.ServeJSON(c, stderr.UserIsNotExists, "Notice List Context USER_ID is not exist ")
|
|
return
|
|
}
|
|
noticePreviewList, hasNewNotice, err := infmtser.UpdateNoticePreviewList(uid, time.Now())
|
|
if err != nil {
|
|
common.ServeJSON(c, stderr.ErrNetWorkBusy, err)
|
|
return
|
|
}
|
|
trendPreMap, hasNewTrend := infmtser.TrendPreviewMap(uid)
|
|
common.ServeJSON(c, stderr.Success, gin.H{
|
|
"noticePreList": noticePreviewList,
|
|
"trendPreMap": trendPreMap,
|
|
"hasNew": hasNewNotice || hasNewTrend,
|
|
"updatedAt": time.Now(),
|
|
})
|
|
}
|
|
|
|
// NoticeList doc
|
|
// @Summary 消息模块 - 通知队列
|
|
// @Description 获取通知并同步通知状态
|
|
// @Tags Information
|
|
// @Accept mpfd,json
|
|
// @Produce json,html
|
|
// @Param sender formData string true "消息发送者"
|
|
// @Param pageNumber formData int true "当前页"
|
|
// @Param pageSize formData int true "每页条数"
|
|
// @Success 200 {string} json "{"msg": "操作成功" "data": infmtser.MailPage }"
|
|
// @Failure 400 {string} json "{"msg": "操作失败"}"
|
|
// @Router /api/app/inform/notice/list [get]
|
|
func NoticeList(c *gin.Context) {
|
|
var arg struct {
|
|
Sender noticefmtmod.Sender `form:"sender" json:"sender" binding:"required"` //消息发送者 活动助手、系统消息
|
|
commod.Page
|
|
}
|
|
if err := c.ShouldBind(&arg); err != nil {
|
|
common.ServeJSON(c, stderr.ErrParamError, "Notice List arg error "+err.Error())
|
|
return
|
|
}
|
|
// 检查uid是否存在
|
|
uid, err := common.GetUID(c)
|
|
if err != nil {
|
|
common.ServeJSON(c, stderr.UserIsNotExists, "Notice List Context USER_ID is not exist ")
|
|
return
|
|
}
|
|
skip := (arg.PageNumber - 1) * arg.PageSize
|
|
limit := arg.PageSize
|
|
noticePage, err := infmtser.NoticePages(arg.Sender, uid, int64(skip), int64(limit))
|
|
if err != nil {
|
|
common.ServeJSON(c, stderr.ErrNetWorkBusy, err)
|
|
return
|
|
}
|
|
common.Go(func() {
|
|
if err = infmtser.UpdateNoticeReadTime(arg.Sender, uid, time.Now()); err != nil {
|
|
log.Error("UpdateNoticeReadTime faild", log.E(err))
|
|
}
|
|
})
|
|
common.ServeJSON(c, stderr.Success, noticePage)
|
|
}
|