@@ -0,0 +1,63 @@
|
||||
package annouser
|
||||
|
||||
import (
|
||||
"91porn-server/common"
|
||||
"91porn-server/common/localcache"
|
||||
"91porn-server/models/v/adsmod"
|
||||
"91porn-server/models/v/annoumod"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"91porn-server/common/log"
|
||||
)
|
||||
|
||||
// GetAnnouList 获取指定类型的公告
|
||||
func GetAnnouList(t int) (out *Annou, err error) {
|
||||
log.Info(fmt.Sprintf("[Params-%s]", "GetAnnouList"), log.Any("type", t))
|
||||
cfg, ok := localcache.C.Get(adsmod.GetAnnounceByTypeList)
|
||||
if ok {
|
||||
return cfg.(*Annou), nil
|
||||
}
|
||||
if out, err = getAnnouList(); err != nil {
|
||||
log.Error(fmt.Sprintf("[HTTP-%s]==> request fail error:%v:", "GetAnnouList", err), log.Any("type", t))
|
||||
return
|
||||
}
|
||||
common.Go(func() {
|
||||
localcache.C.Set(adsmod.GetAnnounceByTypeList, out, 10*time.Minute)
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// AnnouList 公告列表
|
||||
func AnnouList() (out []*Annou, err error) {
|
||||
log.Info(fmt.Sprintf("[Params-%s]", "GetAnnouList"))
|
||||
cfg, ok := localcache.C.Get(adsmod.GetAnnounceList)
|
||||
if ok {
|
||||
return cfg.([]*Annou), nil
|
||||
}
|
||||
if out, err = annouList(); err != nil {
|
||||
log.Error(fmt.Sprintf("[HTTP-%s]==> request fail error:%v:", "GetAnnouList", err))
|
||||
return
|
||||
}
|
||||
common.Go(func() {
|
||||
localcache.C.Set(adsmod.GetAnnounceList, out, 5*time.Minute)
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// MsgAnnouList 消息模块公告列表
|
||||
func MsgAnnouList(req annoumod.MsgListReq) (out *MsgAnnousResp, err error) {
|
||||
log.Info(fmt.Sprintf("[Params-%s]", "MsgAnnouList"))
|
||||
cfg, ok := localcache.C.Get(adsmod.GetMsgAnnounceList)
|
||||
if ok {
|
||||
return cfg.(*MsgAnnousResp), nil
|
||||
}
|
||||
if out, err = annouLists(req.PageNumber, req.PageSize); err != nil {
|
||||
log.Error(fmt.Sprintf("[HTTP-%s]==> request fail error:%v:", "MsgAnnouList", err))
|
||||
return
|
||||
}
|
||||
common.Go(func() {
|
||||
localcache.C.Set(adsmod.GetMsgAnnounceList, out, 10*time.Minute)
|
||||
})
|
||||
return
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
package annouser
|
||||
|
||||
import (
|
||||
"91porn-server/app/appg"
|
||||
"91porn-server/common/httputil"
|
||||
"errors"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
// 从数据中心获取数据
|
||||
func getAnnouList() (*Annou, error) {
|
||||
var (
|
||||
url string = appg.Conf.URL.DataCentreURL + GetAnnouListRouter
|
||||
params QueryAllCond = QueryAllCond{AppId}
|
||||
out CommonResponse
|
||||
)
|
||||
if code, err := httputil.DefaultClientGetWithResp(&out, url, nil, params); err != nil {
|
||||
return nil, err
|
||||
} else if code != http.StatusOK {
|
||||
return nil, errors.New(NetWorkError)
|
||||
}
|
||||
if len(out.Data) > 0 {
|
||||
return out.Data[0], nil
|
||||
}
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
// 从数据中心获取数据
|
||||
func annouList() ([]*Annou, error) {
|
||||
var (
|
||||
url string = appg.Conf.URL.DataCentreURL + GetAnnouListRouter
|
||||
params QueryAllCond = QueryAllCond{AppId}
|
||||
out CommonResponse
|
||||
)
|
||||
if code, err := httputil.DefaultClientGetWithResp(&out, url, nil, params); err != nil {
|
||||
return nil, err
|
||||
} else if code != http.StatusOK {
|
||||
return nil, errors.New(NetWorkError)
|
||||
}
|
||||
return out.Data, nil
|
||||
}
|
||||
|
||||
// 从数据中心分页获取数据
|
||||
func annouLists(pageNumber, pageSize int) (*MsgAnnousResp, error) {
|
||||
var (
|
||||
url string = appg.Conf.URL.DataCentreURL + GetAnnouListsRouter
|
||||
params QueryByPageCond = QueryByPageCond{AppId, pageNumber, pageSize}
|
||||
out MsgAnnousResponse
|
||||
)
|
||||
if code, err := httputil.DefaultClientGetWithResp(&out, url, nil, params); err != nil {
|
||||
return nil, err
|
||||
} else if code != http.StatusOK {
|
||||
return nil, errors.New(NetWorkError)
|
||||
}
|
||||
return out.Data, nil
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
package annouser
|
||||
|
||||
const (
|
||||
GetAnnouListRouter = "/api/stat/announce/get"
|
||||
GetAnnouListsRouter = "/api/stat/announce/out/list"
|
||||
NetWorkError = "网络错误"
|
||||
AppId = 31
|
||||
)
|
||||
|
||||
type QueryAllCond struct {
|
||||
AppId int32 `json:"appId" binding:"required"`
|
||||
}
|
||||
|
||||
type QueryByPageCond struct {
|
||||
AppId int32 `json:"appId" binding:"required"`
|
||||
PageNumber int `form:"pageNum" json:"pageNum"`
|
||||
PageSize int `form:"pageSize" json:"pageSize"`
|
||||
}
|
||||
|
||||
// Annou 公告模型
|
||||
type Annou struct {
|
||||
//id
|
||||
ID string `json:"id"`
|
||||
//名字
|
||||
Title string `json:"title"`
|
||||
//内容
|
||||
Content string `json:"content"`
|
||||
//广告图
|
||||
Cover string `json:"cover"`
|
||||
//链接地址
|
||||
Href string `json:"href"`
|
||||
//类型
|
||||
Type int64 `json:"type"`
|
||||
}
|
||||
|
||||
type CommonResponse struct {
|
||||
Code int64 `json:"code"`
|
||||
Data []*Annou `json:"data"`
|
||||
Msg string `json:"msg"`
|
||||
Time string `json:"time"`
|
||||
Tip string `json:"tip"`
|
||||
}
|
||||
|
||||
type MsgAnnousResponse struct {
|
||||
Code int64 `json:"code"`
|
||||
Data *MsgAnnousResp `json:"data"`
|
||||
Msg string `json:"msg"`
|
||||
Time string `json:"time"`
|
||||
Tip string `json:"tip"`
|
||||
}
|
||||
|
||||
type MsgAnnousResp struct {
|
||||
Total int64 `json:"total"`
|
||||
List []*Annou `json:"list"`
|
||||
}
|
||||
Reference in New Issue
Block a user