Initial commit
This commit is contained in:
@@ -0,0 +1,117 @@
|
||||
package activitySer
|
||||
|
||||
import (
|
||||
"context"
|
||||
"time"
|
||||
|
||||
"stat/api/proto"
|
||||
"stat/common/stdLog"
|
||||
"stat/models/activitymod"
|
||||
|
||||
"go.mongodb.org/mongo-driver/bson"
|
||||
"go.mongodb.org/mongo-driver/bson/primitive"
|
||||
"go.mongodb.org/mongo-driver/mongo/options"
|
||||
)
|
||||
|
||||
// 添加活动奖品
|
||||
func AddOneGift(ctx context.Context, param proto.AddGiftReq) (stdLog.CodeType, error) {
|
||||
now := time.Now()
|
||||
filter := bson.M{activitymod.FN.ActivityInfo.Id: param.ActId}
|
||||
info, err := activitymod.FindOneActivityInfo(ctx, filter)
|
||||
if err != nil {
|
||||
return stdLog.QueryDataError, err
|
||||
}
|
||||
doc := &activitymod.LotteryGift{
|
||||
Id: primitive.NewObjectID(),
|
||||
ActId: info.Id.Hex(),
|
||||
ActName: info.Name,
|
||||
GiftName: param.GiftName,
|
||||
GiftDesc: param.GiftDesc,
|
||||
Rate: param.Rate,
|
||||
Sort: param.Sort,
|
||||
CreatedAt: now,
|
||||
}
|
||||
if err = activitymod.InsertOneLotteryGift(ctx, doc); err != nil {
|
||||
return stdLog.InsertDataError, err
|
||||
}
|
||||
|
||||
return stdLog.Success, nil
|
||||
}
|
||||
|
||||
// 修改奖品信息
|
||||
func UpdateOneGift(ctx context.Context, param *proto.UpdateGiftReq) (stdLog.CodeType, error) {
|
||||
now := time.Now()
|
||||
param.UpdatedAt = now
|
||||
filter := bson.M{activitymod.FN.LotteryGift.Id: param.Id}
|
||||
updateDoc := bson.M{"$set": param}
|
||||
err := activitymod.UpdateOneLotteryGift(ctx, filter, updateDoc)
|
||||
if err != nil {
|
||||
return stdLog.UpdateDataError, err
|
||||
}
|
||||
return stdLog.Success, nil
|
||||
}
|
||||
|
||||
// 删除一个活动奖品
|
||||
func DeleteOneGift(ctx context.Context, param proto.DelGiftReq) (stdLog.CodeType, error) {
|
||||
filter := bson.M{activitymod.FN.LotteryGift.Id: param.Id}
|
||||
count, err := activitymod.DelOneLotteryGift(ctx, filter)
|
||||
if err != nil {
|
||||
return stdLog.UpdateDataError, err
|
||||
}
|
||||
if count == 0 {
|
||||
return stdLog.DataNotExist, nil
|
||||
}
|
||||
|
||||
return stdLog.Success, nil
|
||||
}
|
||||
|
||||
// 活动奖品列表
|
||||
func GetLotteryGiftList(ctx context.Context, param proto.GiftListReq) (stdLog.CodeType, *proto.GiftListResp, error) {
|
||||
if param.PageSize <= 0 {
|
||||
param.PageSize = 10
|
||||
}
|
||||
if param.PageNum <= 0 {
|
||||
param.PageNum = 1
|
||||
}
|
||||
data := &proto.GiftListResp{List: make([]*proto.GiftInfo, 0)}
|
||||
filter := bson.M{}
|
||||
if param.ActId != nil {
|
||||
filter[activitymod.FN.LotteryGift.ActId] = *param.ActId
|
||||
}
|
||||
if param.GiftName != nil {
|
||||
filter[activitymod.FN.LotteryGift.GiftName] = bson.M{"$regex": *param.GiftName}
|
||||
}
|
||||
if param.GiftDesc != nil {
|
||||
filter[activitymod.FN.LotteryGift.GiftDesc] = bson.M{"$regex": *param.GiftDesc}
|
||||
}
|
||||
if param.Rate != nil {
|
||||
filter[activitymod.FN.LotteryGift.Rate] = *param.Rate
|
||||
}
|
||||
count, err := activitymod.CountLotteryGifts(ctx, filter)
|
||||
if err != nil {
|
||||
return stdLog.QueryDataError, data, err
|
||||
}
|
||||
data.Total = count
|
||||
|
||||
opt := &options.FindOptions{}
|
||||
skip := (param.PageNum - 1) * param.PageSize
|
||||
if param.PageSize <= 0 {
|
||||
param.PageSize = 10
|
||||
}
|
||||
opt.SetSkip(skip)
|
||||
opt.SetLimit(param.PageSize)
|
||||
opt.SetSort(bson.M{activitymod.FN.LotteryGift.Sort: 1})
|
||||
if err := activitymod.FindManyLotteryGiftWithBind(ctx, &data.List, filter, opt); err != nil {
|
||||
return stdLog.QueryDataError, data, err
|
||||
}
|
||||
for _, v := range data.List {
|
||||
gFilter := bson.M{activitymod.FN.LotteryGetGift.GiftId: v.Id.Hex()}
|
||||
gCount, _ := activitymod.CountLotteryGetGifts(ctx, gFilter)
|
||||
v.GiftNum = gCount
|
||||
|
||||
gFilter[activitymod.FN.LotteryGetGift.IsUsed] = true
|
||||
usedCount, _ := activitymod.CountLotteryGetGifts(ctx, gFilter)
|
||||
v.ReceivedGiftNum = usedCount
|
||||
}
|
||||
return stdLog.Success, data, nil
|
||||
}
|
||||
Reference in New Issue
Block a user