Files
2026-05-20 16:13:58 +08:00

109 lines
2.4 KiB
Go

package appInfoSer
import (
"context"
"stat/api/proto"
"stat/common/stdLog"
"stat/common/utils"
"stat/models/appInfoMod"
"time"
)
// 获取appInfo列表
func GetAppInfoList(ctx context.Context, param proto.ListAppInfoReq) (code stdLog.CodeType, data interface{}, err error) {
resp := proto.ListAppInfoRes{
Total: 0,
List: make([]proto.AppInfoRes, 0),
}
skip, limit := utils.ToDBPage(param.PageNum, param.PageSize)
total, aList, err := appInfoMod.GetAppInfoList(ctx, param.AppName, param.Used, skip, limit)
if err != nil {
code = stdLog.Failure
return
}
for _, v := range aList {
tmp := proto.AppInfoRes{
AppId: v.AppId,
Name: v.Name,
LandPages: v.LandPages,
IconImg: v.IconImg,
CreatedAt: v.CreatedAt,
AdvertiseNum: v.AdvertiseNum,
AdvertiseNewNum: v.AdvertiseNewNum,
UpdatedAt: v.UpdatedAt,
}
resp.List = append(resp.List, tmp)
}
resp.Total = total
data = resp
code = stdLog.Success
return
}
// 添加appInfo
func AddAppInfo(ctx context.Context, param proto.AddAppInfoReq) (code stdLog.CodeType, data interface{}, err error) {
_, serr := appInfoMod.GetAppInfoById(ctx, *param.AppId)
if serr != nil {
return stdLog.AppExistErr, nil, serr
}
now := time.Now()
doc := appInfoMod.AppInfo{
AppId: *param.AppId,
Name: *param.Name,
IconImg: *param.IconImg,
// LandPages: *param.LandPages,
Used: true,
AdvertiseNum: 5,
AdvertiseNewNum: 5,
CreatedAt: now,
UpdatedAt: now,
}
if err = appInfoMod.AddAppInfo(ctx, &doc); err != nil {
code = stdLog.Failure
return
}
code = stdLog.Success
return
}
// 更新appInfo
func UpdateAppInfo(ctx context.Context, param proto.UpdateAppInfoReq) (code stdLog.CodeType, data interface{}, err error) {
now := time.Now()
doc := appInfoMod.AppInfoUpdate{
Name: param.Name,
LandPages: param.LandPages,
IconImg: param.IconImg,
UpdatedAt: &now,
AdvertiseNum: param.AdvertiseNum,
AdvertiseNewNum: param.AdvertiseNewNum,
}
if err = appInfoMod.UpdateAppInfo(ctx, *param.AppId, doc); err != nil {
code = stdLog.Failure
return
}
code = stdLog.Success
return
}
// 删除appInfo
func DelAppInfo(ctx context.Context, param proto.DelAppInfoReq) (code stdLog.CodeType, data interface{}, err error) {
if err = appInfoMod.DelAppInfo(ctx, *param.AppId); err != nil {
code = stdLog.Failure
return
}
code = stdLog.Success
return
}