Initial commit
This commit is contained in:
@@ -0,0 +1,152 @@
|
||||
package announInfoSer
|
||||
|
||||
import (
|
||||
"context"
|
||||
"stat/api/proto"
|
||||
"stat/common/stdLog"
|
||||
"stat/common/utils"
|
||||
"stat/models/announInfoMod"
|
||||
"stat/models/appInfoMod"
|
||||
)
|
||||
|
||||
// 获取广告列表
|
||||
func ListAnnoun(ctx context.Context, param proto.ListAnnounReq) (code stdLog.CodeType, data interface{}, err error) {
|
||||
resp := proto.ListAnnounRes{
|
||||
Total: 0,
|
||||
List: make([]proto.AnnounInfo, 0),
|
||||
}
|
||||
|
||||
skip, limit := utils.ToDBPage(param.PageNum, param.PageSize)
|
||||
|
||||
// 获取广告位置信息
|
||||
total, aList, err := announInfoMod.FindAnnounceList(ctx, param.AppId, skip, limit)
|
||||
if err != nil {
|
||||
code = stdLog.Failure
|
||||
return
|
||||
}
|
||||
|
||||
resp.Total = total
|
||||
|
||||
// 获取app信息
|
||||
appIds := make([]int32, 0)
|
||||
for _, v := range aList {
|
||||
appIds = append(appIds, v.AppId)
|
||||
}
|
||||
appList, err := appInfoMod.GetAppInfosByAppIds(ctx, appIds)
|
||||
if err != nil {
|
||||
code = stdLog.Failure
|
||||
return
|
||||
}
|
||||
appMap := make(map[int32]appInfoMod.AppInfo)
|
||||
for _, v := range appList {
|
||||
appMap[v.AppId] = v
|
||||
}
|
||||
|
||||
for _, v := range aList {
|
||||
appName := ""
|
||||
if appInfo, ok := appMap[v.AppId]; ok {
|
||||
appName = appInfo.Name
|
||||
}
|
||||
|
||||
tmp := proto.AnnounInfo{
|
||||
ID: v.ID.Hex(),
|
||||
AppId: v.AppId,
|
||||
AppName: appName,
|
||||
Title: v.Title,
|
||||
Content: v.Content,
|
||||
Cover: v.Cover,
|
||||
Href: v.Href,
|
||||
Type: v.Type,
|
||||
Active: v.Active,
|
||||
StartTime: v.StartTime,
|
||||
EndTime: v.EndTime,
|
||||
}
|
||||
|
||||
resp.List = append(resp.List, tmp)
|
||||
}
|
||||
|
||||
code = stdLog.Success
|
||||
data = resp
|
||||
return
|
||||
}
|
||||
|
||||
// 新增广告
|
||||
func AddAnnounce(ctx context.Context, param proto.AddAnnounReq) (code stdLog.CodeType, data interface{}, err error) {
|
||||
doc := announInfoMod.AnnounInfo{
|
||||
AppId: *param.AppId,
|
||||
Title: *param.Title,
|
||||
Content: *param.Content,
|
||||
Cover: *param.Cover,
|
||||
Href: *param.Href,
|
||||
Type: *param.Type,
|
||||
Active: *param.Active,
|
||||
StartTime: *param.StartTime,
|
||||
EndTime: *param.EndTime,
|
||||
}
|
||||
|
||||
if err = announInfoMod.AddAnnounce(ctx, &doc); err != nil {
|
||||
code = stdLog.Failure
|
||||
return
|
||||
}
|
||||
|
||||
code = stdLog.Success
|
||||
return
|
||||
}
|
||||
|
||||
// 修改广告位置
|
||||
func UpdateAnnounce(ctx context.Context, param proto.UpdateAnnounReq) (code stdLog.CodeType, data interface{}, err error) {
|
||||
doc := announInfoMod.UpdateDoc{
|
||||
AppId: param.AppId,
|
||||
Title: param.Title,
|
||||
Content: param.Content,
|
||||
Cover: param.Cover,
|
||||
Href: param.Href,
|
||||
Type: param.Type,
|
||||
Active: param.Active,
|
||||
StartTime: param.StartTime,
|
||||
EndTime: param.EndTime,
|
||||
}
|
||||
if err = announInfoMod.UpdateAnnounce(ctx, *param.Id, doc); err != nil {
|
||||
code = stdLog.Failure
|
||||
return
|
||||
}
|
||||
|
||||
code = stdLog.Success
|
||||
return
|
||||
}
|
||||
|
||||
// 删除广告
|
||||
func DelAnnounce(ctx context.Context, param proto.DelAnnounReq) (code stdLog.CodeType, data interface{}, err error) {
|
||||
if err = announInfoMod.DelAnnounce(ctx, *param.Id); err != nil {
|
||||
code = stdLog.Failure
|
||||
return
|
||||
}
|
||||
|
||||
code = stdLog.Success
|
||||
return
|
||||
}
|
||||
|
||||
// 外部获取广告
|
||||
func GetAnnounce(ctx context.Context, param proto.AnnouncementReq) (code stdLog.CodeType, data interface{}, err error) {
|
||||
resp := proto.AnnouncementRes{AnnounceList: make([]proto.AnnouncementInfo, 0)}
|
||||
|
||||
aList, err := announInfoMod.FindAnnounceByAppId(ctx, *param.AppId)
|
||||
if err != nil {
|
||||
code = stdLog.Failure
|
||||
return
|
||||
}
|
||||
for _, v := range aList {
|
||||
resp.AnnounceList = append(resp.AnnounceList, proto.AnnouncementInfo{
|
||||
ID: v.ID.Hex(),
|
||||
Title: v.Title,
|
||||
Content: v.Content,
|
||||
Cover: v.Cover,
|
||||
Href: v.Href,
|
||||
Type: v.Type,
|
||||
})
|
||||
}
|
||||
|
||||
data = resp
|
||||
code = stdLog.Success
|
||||
return
|
||||
}
|
||||
Reference in New Issue
Block a user