forked from all_user/stat_center
Initial commit
This commit is contained in:
@@ -0,0 +1,152 @@
|
||||
package applicationser
|
||||
|
||||
import (
|
||||
"context"
|
||||
"stat/api/proto"
|
||||
"stat/common/genId"
|
||||
"stat/common/stdLog"
|
||||
"stat/common/utils"
|
||||
"stat/models/applicationLocMod"
|
||||
"stat/models/applicationmod"
|
||||
|
||||
"stat/models/appInfoMod"
|
||||
"time"
|
||||
)
|
||||
|
||||
// 获取广告位置列表
|
||||
func ListAppLoc(ctx context.Context, param proto.ListAppLocReq) (code stdLog.CodeType, data interface{}, err error) {
|
||||
resp := proto.ListAppLocRes{
|
||||
Total: 0,
|
||||
List: make([]proto.AppLocInfo, 0),
|
||||
}
|
||||
|
||||
skip, limit := utils.ToDBPage(param.PageNum, param.PageSize)
|
||||
|
||||
// 获取广告位置信息
|
||||
total, adsList, err := applicationLocMod.FindApplicationLocationList(ctx, param.AppId, skip, limit)
|
||||
if err != nil {
|
||||
code = stdLog.Failure
|
||||
return
|
||||
}
|
||||
|
||||
resp.Total = total
|
||||
|
||||
// 获取app信息
|
||||
appIds := make([]int32, 0)
|
||||
for _, v := range adsList {
|
||||
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 adsList {
|
||||
appName := ""
|
||||
if appInfo, ok := appMap[v.AppId]; ok {
|
||||
appName = appInfo.Name
|
||||
}
|
||||
tmp := proto.AppLocInfo{
|
||||
Id: v.Id,
|
||||
AppId: v.AppId,
|
||||
AppName: appName,
|
||||
LocId: v.LocId,
|
||||
Name: v.Name,
|
||||
ImgSizeDesc: v.ImgSizeDesc,
|
||||
Remark: v.Remark,
|
||||
CreatedAt: v.CreatedAt,
|
||||
UpdatedAt: v.UpdatedAt,
|
||||
}
|
||||
|
||||
resp.List = append(resp.List, tmp)
|
||||
}
|
||||
|
||||
code = stdLog.Success
|
||||
data = resp
|
||||
return
|
||||
}
|
||||
|
||||
// 新增广告位置
|
||||
func AddAppLoc(ctx context.Context, param proto.AddAppLocReq) (code stdLog.CodeType, data interface{}, err error) {
|
||||
// 获取位置信息
|
||||
locInfo, err := applicationLocMod.FindLocationByAppIdAndLocId(ctx, *param.AppId, *param.LocId)
|
||||
if err != nil || locInfo.Id > 0 {
|
||||
code = stdLog.ApplicationLocExists
|
||||
return
|
||||
}
|
||||
|
||||
adsLocId := genId.GetNextAppLocId()
|
||||
now := time.Now()
|
||||
|
||||
doc := applicationLocMod.ApplicationLocation{
|
||||
Id: adsLocId,
|
||||
AppId: *param.AppId,
|
||||
LocId: *param.LocId,
|
||||
Name: *param.Name,
|
||||
ImgSizeDesc: param.ImgSizeDesc,
|
||||
Remark: param.Remark,
|
||||
CreatedAt: now,
|
||||
UpdatedAt: now,
|
||||
}
|
||||
|
||||
if err = applicationLocMod.AddApplicationLocation(ctx, &doc); err != nil {
|
||||
code = stdLog.Failure
|
||||
return
|
||||
}
|
||||
|
||||
code = stdLog.Success
|
||||
return
|
||||
}
|
||||
|
||||
// 修改广告位置
|
||||
func UpdateAppLoc(ctx context.Context, param proto.UpdateAppLocReq) (code stdLog.CodeType, data interface{}, err error) {
|
||||
// 获取位置信息
|
||||
locInfo, err := applicationLocMod.FindLocationById(ctx, *param.Id)
|
||||
if err != nil {
|
||||
code = stdLog.Failure
|
||||
return
|
||||
}
|
||||
|
||||
now := time.Now()
|
||||
|
||||
doc := applicationLocMod.UpdateAppLoc{
|
||||
AppId: param.AppId,
|
||||
LocId: param.LocId,
|
||||
Name: param.Name,
|
||||
ImgSizeDesc: param.ImgSizeDesc,
|
||||
Remark: param.Remark,
|
||||
UpdatedAt: &now,
|
||||
}
|
||||
|
||||
if err = applicationLocMod.UpdateApplicationLocation(ctx, *param.Id, doc); err != nil {
|
||||
code = stdLog.Failure
|
||||
return
|
||||
}
|
||||
|
||||
// 修改广告的位置id
|
||||
if param.LocId != nil && *param.LocId != locInfo.LocId {
|
||||
if err = applicationmod.UpdateLocInfo(ctx, locInfo.AppId, locInfo.LocId, *param.LocId); err != nil {
|
||||
code = stdLog.Failure
|
||||
return code, data, err
|
||||
}
|
||||
}
|
||||
|
||||
code = stdLog.Success
|
||||
return
|
||||
}
|
||||
|
||||
// 删除广告位置
|
||||
func DelAppLoc(ctx context.Context, param proto.DelAppLocReq) (code stdLog.CodeType, data interface{}, err error) {
|
||||
if err = applicationLocMod.DelApplicationLocation(ctx, *param.Id); err != nil {
|
||||
code = stdLog.Failure
|
||||
return
|
||||
}
|
||||
|
||||
code = stdLog.Success
|
||||
return
|
||||
}
|
||||
Reference in New Issue
Block a user