From 5bdf3d78df250cedf6660ec3b00c9943b4d32124 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Fri, 6 Sep 2024 16:23:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=95=86=E5=BA=97=E8=B4=AD=E4=B9=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- worldsrv/shopmgr.go | 32 ++++++++++++++++++++++++++------ 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/worldsrv/shopmgr.go b/worldsrv/shopmgr.go index 5f34e9b..75333b9 100644 --- a/worldsrv/shopmgr.go +++ b/worldsrv/shopmgr.go @@ -63,6 +63,7 @@ const ( const ( ShopTypeCoin = iota + 1 // 金币 ShopTypeDiamond // 钻石 + SHopTypeItem // 道具 ) // 商品参数类型 @@ -1267,26 +1268,45 @@ func (this *ShopMgr) SendAPICreateOrder(p *Player, ConfigPayId int32, data any, //钻石 amount[ShopParamDiamond] = bbd.Grade } - dbShop = this.NewDbShop(p, 0, amount[:], ShopConsumeMoney, int32(bbd.Price2), common.GainWay_ActBlindBox, nil, 0, "", 0, remark, []int32{bbd.Id}) + + var itemInfo []model.ItemInfo + var webItemInfo []*webapi_proto.ItemInfo + for _, info := range shopInfo.GetItems() { + itemInfo = append(itemInfo, model.ItemInfo{ + ItemId: info.ItemId, + ItemNum: info.ItemNum, + }) + webItemInfo = append(webItemInfo, &webapi_proto.ItemInfo{ + ItemId: info.ItemId, + ItemNum: info.ItemNum, + }) + } + + dbShop = this.NewDbShop(p, 0, amount[:], ShopConsumeMoney, int32(bbd.Price2), common.GainWay_ActBlindBox, itemInfo, 0, "", 0, remark, []int32{bbd.Id}) err := model.InsertDbShopLog(dbShop) if err != nil { logger.Logger.Errorf("model.InsertDbShopLog err:", err) return nil } return webapi.API_CreateOrder(common.GetAppId(), dbShop.LogId.Hex(), ConfigPayId, p.SnId, 0, p.Platform, p.PackageID, p.DeviceOS, - p.DeviceId, bbd.Name, amount, int32(bbd.Price2), nil, "", p.Channel, p.ChannelId) + p.DeviceId, bbd.Name, amount, int32(bbd.Price2), webItemInfo, "", p.Channel, p.ChannelId) } else if wfs, ok := data.(*webapi_proto.WelfareSpree); ok { var items []model.ItemInfo + var webItemInfo []*webapi_proto.ItemInfo for _, it := range wfs.Item { - if it.Type == 1 { + if it.Type == ShopTypeCoin { amount[ShopParamCoin] = it.Grade - } else if it.Type == 2 { + } else if it.Type == ShopTypeDiamond { amount[ShopParamDiamond] = it.Grade - } else if it.Type == 3 { + } else if it.Type == SHopTypeItem { items = append(items, model.ItemInfo{ ItemId: it.Item_Id, ItemNum: int64(it.Grade), }) + webItemInfo = append(webItemInfo, &webapi_proto.ItemInfo{ + ItemId: it.GetItem_Id(), + ItemNum: int64(it.GetGrade()), + }) } } var gainWay int32 = common.GainWay_ActFirstPay @@ -1300,7 +1320,7 @@ func (this *ShopMgr) SendAPICreateOrder(p *Player, ConfigPayId int32, data any, return nil } return webapi.API_CreateOrder(common.GetAppId(), dbShop.LogId.Hex(), ConfigPayId, p.SnId, 0, p.Platform, p.PackageID, p.DeviceOS, - p.DeviceId, "FirstRecharge", amount, int32(wfs.Price2), nil, "", p.Channel, p.ChannelId) + p.DeviceId, "FirstRecharge", amount, int32(wfs.Price2), webItemInfo, "", p.Channel, p.ChannelId) } return nil }), task.CompleteNotifyWrapper(func(retdata interface{}, t task.Task) {