Initial commit

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-15 13:57:10 +08:00
co-authored by Claude Opus 5
commit 8679200f41
1897 changed files with 257900 additions and 0 deletions
+63
View File
@@ -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
}
+56
View File
@@ -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
}
+55
View File
@@ -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"`
}