From 2925465b41eb6d09b1bb583ecc114a67a1e1f8c8 Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Thu, 19 Sep 2024 13:35:34 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E8=83=8C=E5=8C=85=E5=85=91=E6=8D=A2?= =?UTF-8?q?=E5=A8=83=E5=A8=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/constant.go | 5 +- dbproxy/svc/l_dbbagchangedolllog.go | 73 ++++ model/bagchangedolllog.go | 83 +++++ protocol/bag/bag.pb.go | 519 ++++++++++++++++++++++++++-- protocol/bag/bag.proto | 37 ++ protocol/webapi/common.proto | 1 + worldsrv/action_bag.go | 74 ++++ worldsrv/shopmgr.go | 2 +- 8 files changed, 755 insertions(+), 39 deletions(-) create mode 100644 dbproxy/svc/l_dbbagchangedolllog.go create mode 100644 model/bagchangedolllog.go diff --git a/common/constant.go b/common/constant.go index 8be199c..b433751 100644 --- a/common/constant.go +++ b/common/constant.go @@ -315,7 +315,8 @@ const ( GainWayRoomGain = 107 //房卡场获得 GainWayItemShop = 108 // 交易市场道具交易 GainWayClawdoorCostItem = 109 // 娃娃机上分扣道具 - GainWayItemChangeDoll = 110 // 道具兑换娃娃 + GainWayItemShopChangeDoll = 110 // 商城兑换娃娃 + GainWayItemBagChangeDoll = 111 // 背包内兑换娃娃 ) // 后台选择 金币变化类型 的充值 类型id号起始 @@ -596,8 +597,8 @@ const ( ItemTypeExpireTime = 15 // 时效类道具 ItemTypeObjective = 16 // 目标类道具 ItemTypeChange = 17 // 兑换话费 - ItemTypeMachine = 18 //娃娃兑换 ItemTypeSkinChip = 22 // 皮肤碎片 + ItemTypeDoll = 26 //娃娃兑换 ) func GetKeyNoviceGameId(gameId int) string { diff --git a/dbproxy/svc/l_dbbagchangedolllog.go b/dbproxy/svc/l_dbbagchangedolllog.go new file mode 100644 index 0000000..d8c73d8 --- /dev/null +++ b/dbproxy/svc/l_dbbagchangedolllog.go @@ -0,0 +1,73 @@ +package svc + +import ( + "github.com/globalsign/mgo" + "github.com/globalsign/mgo/bson" + "mongo.games.com/game/dbproxy/mongo" + "mongo.games.com/game/model" + "mongo.games.com/goserver/core/logger" + "net/rpc" +) + +func DbBagChangeDollLogCollection(plt string) *mongo.Collection { + s := mongo.MgoSessionMgrSington.GetPltMgoSession(plt, model.BagChangeDollLogDBName) + if s != nil { + dollRec, first := s.DB().C(model.BagChangeDollLogCollName) + if first { + dollRec.EnsureIndex(mgo.Index{Key: []string{"snid"}, Background: true, Sparse: true}) + } + return dollRec + } + return nil +} + +type DbBagChangeDollLogSvc struct { +} + +func (svc *DbBagChangeDollLogSvc) InsertDbBagChangeDollLog(args *model.DbBagChangeDollLogArgs, ret *bool) (err error) { + clog := DbBagChangeDollLogCollection(args.Log.Platform) + if clog == nil { + return + } + logger.Logger.Trace("DbBagChangeDollLogSvc.InsertDbBagChangeDollLog") + err = clog.Insert(args.Log) + if err != nil { + logger.Logger.Error("DbBagChangeDollLogSvc.InsertDbBagChangeDollLog error:", err) + return + } + *ret = true + return +} +func (svc *DbBagChangeDollLogSvc) GetDbBagChangeDollLog(args *model.DbBagChangeDollLogArgs, dollLog []*model.BagChangeDollLog) (err error) { + clog := DbBagChangeDollLogCollection(args.Log.Platform) + if clog == nil { + logger.Logger.Error("GetDbBagChangeDollLog == nil") + return nil + } + logger.Logger.Trace("DbBagChangeDollLogSvc.GetDbBagChangeDollLog") + err = clog.Find(bson.M{"_id": args.Log.Snid}).All(dollLog) + if err != nil { + logger.Logger.Error("DbBagChangeDollLogSvc.GetDbBagChangeDollLog error:", err) + return nil + } + return +} +func (svc *DbBagChangeDollLogSvc) UpdateDbShopState(args *model.DbBagChangeDollLogArgs, ret *bool) (err error) { + clog := DbBagChangeDollLogCollection(args.Log.Platform) + if clog == nil { + logger.Logger.Error("UpdateDbShopState == nil") + return nil + } + logger.Logger.Trace("DbBagChangeDollLogSvc.UpdateDbShopState") + err = clog.UpdateId(args.Log.LogId, bson.M{"$set": bson.M{"state": args.Log.State}}) + if err != nil { + logger.Logger.Error("DbBagChangeDollLogSvc.UpdateDbShopState error:", err) + return nil + } + *ret = true + return +} + +func init() { + rpc.Register(new(DbBagChangeDollLogSvc)) +} diff --git a/model/bagchangedolllog.go b/model/bagchangedolllog.go new file mode 100644 index 0000000..7baed0b --- /dev/null +++ b/model/bagchangedolllog.go @@ -0,0 +1,83 @@ +package model + +import ( + "github.com/globalsign/mgo/bson" + "mongo.games.com/goserver/core/logger" + "time" +) + +type BagChangeDollLog struct { + LogId bson.ObjectId `bson:"_id"` + Platform string //平台 + Snid int32 //用户id + ItemId int32 + ItemNum int32 + UserName string //姓名 + UserTel string //手机号 + Addr string //地址 + State int32 //状态 0.默认 1.成功 2.失败 3.未发货准备发货 + Remark string //备注信息 + CreateTs time.Time //订单生成时间 + OpTs time.Time //订单最后操作时间 + Ts int64 +} + +var ( + BagChangeDollLogDBName = "log" + BagChangeDollLogCollName = "log_bagChangeDoll" +) + +type DbBagChangeDollLogArgs struct { + Log *BagChangeDollLog +} + +func NewDbBagChangeDoll(platform string, snid, itemId, itemNum int32, state int32, remark string, addr string, userName string, userTel string) *BagChangeDollLog { + t := time.Now() + return &BagChangeDollLog{ + LogId: bson.NewObjectId(), + Platform: platform, + Snid: snid, + ItemId: itemId, + ItemNum: itemNum, + State: state, + UserName: userName, + UserTel: userTel, + Addr: addr, + Remark: remark, + CreateTs: t, + OpTs: t, + Ts: t.Unix(), + } +} +func InsertDbBagChangeDollLog(log *BagChangeDollLog) (err error) { + if rpcCli == nil { + logger.Logger.Error("model.InsertDbBagChangeDollLog rpcCli == nil") + return + } + var ret bool + args := &DbBagChangeDollLogArgs{ + Log: log, + } + err = rpcCli.CallWithTimeout("DbBagChangeDollLogSvc.InsertDbBagChangeDollLog", args, &ret, time.Second*30) + if err != nil { + logger.Logger.Warn("InsertDbBagChangeDollLog error:", err) + return + } + return +} +func GetDbBagChangeDollLog(platform string, snid int32) []*BagChangeDollLog { + if rpcCli == nil { + logger.Logger.Error("model.GetDbBagChangeDollLog rpcCli == nil") + return nil + } + var ret []*BagChangeDollLog + args := &DbBagChangeDollLogArgs{ + Log: &BagChangeDollLog{Snid: snid, Platform: platform}, + } + err := rpcCli.CallWithTimeout("DbBagChangeDollLogSvc.GetDbBagChangeDollLog", args, &ret, time.Second*30) + if err != nil { + logger.Logger.Warn("GetDbBagChangeDollLog error:", err) + return nil + } + return ret +} diff --git a/protocol/bag/bag.pb.go b/protocol/bag/bag.pb.go index 3c014a1..4a68a07 100644 --- a/protocol/bag/bag.pb.go +++ b/protocol/bag/bag.pb.go @@ -96,8 +96,12 @@ const ( SPacketID_PACKET_SC_ITEM_EXCHANGE_RES SPacketID = 2533 //背包道具兑换返回 SPacketID_PACKET_ALL_BAG_END SPacketID = 2549 //最大消息号 //3000~3099 - SPacketID_PACKET_PropExchange SPacketID = 3000 // 道具兑换 - SPacketID_PACKET_ExchangeList SPacketID = 3001 // 兑换列表 + SPacketID_PACKET_PropExchange SPacketID = 3000 // 道具兑换 + SPacketID_PACKET_ExchangeList SPacketID = 3001 // 兑换列表 + SPacketID_PACKET_CS_DollChange SPacketID = 3002 //娃娃卡兑换 + SPacketID_PACKET_SC_DollChange SPacketID = 3003 //娃娃卡兑换返回 + SPacketID_PACKET_CS_DollChangeLog SPacketID = 3004 //娃娃卡兑换记录 + SPacketID_PACKET_SC_DollChangeLog SPacketID = 3005 //娃娃卡兑换记录返回 ) // Enum value maps for SPacketID. @@ -111,6 +115,10 @@ var ( 2549: "PACKET_ALL_BAG_END", 3000: "PACKET_PropExchange", 3001: "PACKET_ExchangeList", + 3002: "PACKET_CS_DollChange", + 3003: "PACKET_SC_DollChange", + 3004: "PACKET_CS_DollChangeLog", + 3005: "PACKET_SC_DollChangeLog", } SPacketID_value = map[string]int32{ "PACKET_BAG_ZERO": 0, @@ -121,6 +129,10 @@ var ( "PACKET_ALL_BAG_END": 2549, "PACKET_PropExchange": 3000, "PACKET_ExchangeList": 3001, + "PACKET_CS_DollChange": 3002, + "PACKET_SC_DollChange": 3003, + "PACKET_CS_DollChangeLog": 3004, + "PACKET_SC_DollChangeLog": 3005, } ) @@ -972,6 +984,334 @@ func (x *SCExchangeList) GetTp() int32 { return 0 } +//娃娃卡兑换 +//PACKET_CS_DollChange +type CSDollChange struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ItemId int32 `protobuf:"varint,1,opt,name=ItemId,proto3" json:"ItemId,omitempty"` + ItemNum int32 `protobuf:"varint,2,opt,name=ItemNum,proto3" json:"ItemNum,omitempty"` + UserName string `protobuf:"bytes,3,opt,name=UserName,proto3" json:"UserName,omitempty"` //姓名 + UserTel string `protobuf:"bytes,4,opt,name=UserTel,proto3" json:"UserTel,omitempty"` //电话 + Addr string `protobuf:"bytes,5,opt,name=Addr,proto3" json:"Addr,omitempty"` //地址 +} + +func (x *CSDollChange) Reset() { + *x = CSDollChange{} + if protoimpl.UnsafeEnabled { + mi := &file_bag_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSDollChange) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSDollChange) ProtoMessage() {} + +func (x *CSDollChange) ProtoReflect() protoreflect.Message { + mi := &file_bag_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSDollChange.ProtoReflect.Descriptor instead. +func (*CSDollChange) Descriptor() ([]byte, []int) { + return file_bag_proto_rawDescGZIP(), []int{13} +} + +func (x *CSDollChange) GetItemId() int32 { + if x != nil { + return x.ItemId + } + return 0 +} + +func (x *CSDollChange) GetItemNum() int32 { + if x != nil { + return x.ItemNum + } + return 0 +} + +func (x *CSDollChange) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + +func (x *CSDollChange) GetUserTel() string { + if x != nil { + return x.UserTel + } + return "" +} + +func (x *CSDollChange) GetAddr() string { + if x != nil { + return x.Addr + } + return "" +} + +//PACKET_SC_DollChange +type SCDollChange struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RetCode OpResultCode `protobuf:"varint,1,opt,name=RetCode,proto3,enum=bag.OpResultCode" json:"RetCode,omitempty"` +} + +func (x *SCDollChange) Reset() { + *x = SCDollChange{} + if protoimpl.UnsafeEnabled { + mi := &file_bag_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SCDollChange) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SCDollChange) ProtoMessage() {} + +func (x *SCDollChange) ProtoReflect() protoreflect.Message { + mi := &file_bag_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SCDollChange.ProtoReflect.Descriptor instead. +func (*SCDollChange) Descriptor() ([]byte, []int) { + return file_bag_proto_rawDescGZIP(), []int{14} +} + +func (x *SCDollChange) GetRetCode() OpResultCode { + if x != nil { + return x.RetCode + } + return OpResultCode_OPRC_Sucess +} + +//娃娃卡兑换记录 +//PACKET_CS_DollChangeLog +type CSDollChangeLog struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CSDollChangeLog) Reset() { + *x = CSDollChangeLog{} + if protoimpl.UnsafeEnabled { + mi := &file_bag_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSDollChangeLog) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSDollChangeLog) ProtoMessage() {} + +func (x *CSDollChangeLog) ProtoReflect() protoreflect.Message { + mi := &file_bag_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSDollChangeLog.ProtoReflect.Descriptor instead. +func (*CSDollChangeLog) Descriptor() ([]byte, []int) { + return file_bag_proto_rawDescGZIP(), []int{15} +} + +//PACKET_SC_DollChangeLog +type SCDillChangeLog struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Info []*DillChangeLogInfo `protobuf:"bytes,1,rep,name=Info,proto3" json:"Info,omitempty"` +} + +func (x *SCDillChangeLog) Reset() { + *x = SCDillChangeLog{} + if protoimpl.UnsafeEnabled { + mi := &file_bag_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SCDillChangeLog) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SCDillChangeLog) ProtoMessage() {} + +func (x *SCDillChangeLog) ProtoReflect() protoreflect.Message { + mi := &file_bag_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SCDillChangeLog.ProtoReflect.Descriptor instead. +func (*SCDillChangeLog) Descriptor() ([]byte, []int) { + return file_bag_proto_rawDescGZIP(), []int{16} +} + +func (x *SCDillChangeLog) GetInfo() []*DillChangeLogInfo { + if x != nil { + return x.Info + } + return nil +} + +type DillChangeLogInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ItemId int32 `protobuf:"varint,1,opt,name=ItemId,proto3" json:"ItemId,omitempty"` + ItemNum int32 `protobuf:"varint,2,opt,name=ItemNum,proto3" json:"ItemNum,omitempty"` + State int32 `protobuf:"varint,3,opt,name=State,proto3" json:"State,omitempty"` + UserName string `protobuf:"bytes,4,opt,name=UserName,proto3" json:"UserName,omitempty"` + UserTel string `protobuf:"bytes,5,opt,name=UserTel,proto3" json:"UserTel,omitempty"` + Addr string `protobuf:"bytes,6,opt,name=Addr,proto3" json:"Addr,omitempty"` + CreateTs string `protobuf:"bytes,7,opt,name=CreateTs,proto3" json:"CreateTs,omitempty"` + OpTs string `protobuf:"bytes,8,opt,name=OpTs,proto3" json:"OpTs,omitempty"` + Remark string `protobuf:"bytes,9,opt,name=Remark,proto3" json:"Remark,omitempty"` //备注信息 +} + +func (x *DillChangeLogInfo) Reset() { + *x = DillChangeLogInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_bag_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DillChangeLogInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DillChangeLogInfo) ProtoMessage() {} + +func (x *DillChangeLogInfo) ProtoReflect() protoreflect.Message { + mi := &file_bag_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DillChangeLogInfo.ProtoReflect.Descriptor instead. +func (*DillChangeLogInfo) Descriptor() ([]byte, []int) { + return file_bag_proto_rawDescGZIP(), []int{17} +} + +func (x *DillChangeLogInfo) GetItemId() int32 { + if x != nil { + return x.ItemId + } + return 0 +} + +func (x *DillChangeLogInfo) GetItemNum() int32 { + if x != nil { + return x.ItemNum + } + return 0 +} + +func (x *DillChangeLogInfo) GetState() int32 { + if x != nil { + return x.State + } + return 0 +} + +func (x *DillChangeLogInfo) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + +func (x *DillChangeLogInfo) GetUserTel() string { + if x != nil { + return x.UserTel + } + return "" +} + +func (x *DillChangeLogInfo) GetAddr() string { + if x != nil { + return x.Addr + } + return "" +} + +func (x *DillChangeLogInfo) GetCreateTs() string { + if x != nil { + return x.CreateTs + } + return "" +} + +func (x *DillChangeLogInfo) GetOpTs() string { + if x != nil { + return x.OpTs + } + return "" +} + +func (x *DillChangeLogInfo) GetRemark() string { + if x != nil { + return x.Remark + } + return "" +} + var File_bag_proto protoreflect.FileDescriptor var file_bag_proto_rawDesc = []byte{ @@ -1057,33 +1397,73 @@ var file_bag_proto_rawDesc = []byte{ 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x02, 0x54, 0x70, 0x2a, 0x99, 0x01, 0x0a, 0x0c, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, - 0x75, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, - 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, - 0x55, 0x73, 0x65, 0x55, 0x70, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, - 0x49, 0x64, 0x45, 0x72, 0x72, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, - 0x44, 0x62, 0x45, 0x72, 0x72, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x50, 0x52, 0x43, 0x5f, - 0x42, 0x61, 0x67, 0x46, 0x75, 0x6c, 0x6c, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x4f, 0x50, 0x52, - 0x43, 0x5f, 0x4e, 0x6f, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x10, 0x06, 0x12, 0x12, 0x0a, - 0x0e, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4e, 0x6f, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, - 0x07, 0x2a, 0xde, 0x01, 0x0a, 0x09, 0x53, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, - 0x13, 0x0a, 0x0f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x42, 0x41, 0x47, 0x5f, 0x5a, 0x45, - 0x52, 0x4f, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, - 0x4c, 0x4c, 0x5f, 0x42, 0x41, 0x47, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xe2, 0x13, 0x12, 0x17, - 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x4c, 0x4c, 0x5f, 0x42, 0x41, 0x47, - 0x5f, 0x55, 0x53, 0x45, 0x10, 0xe3, 0x13, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x42, 0x41, 0x47, 0x44, 0x41, 0x54, 0x41, - 0x10, 0xe4, 0x13, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, - 0x5f, 0x49, 0x54, 0x45, 0x4d, 0x5f, 0x45, 0x58, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x52, - 0x45, 0x53, 0x10, 0xe5, 0x13, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x41, 0x4c, 0x4c, 0x5f, 0x42, 0x41, 0x47, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xf5, 0x13, 0x12, 0x18, - 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, 0xb8, 0x17, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x10, - 0xb9, 0x17, 0x42, 0x23, 0x5a, 0x21, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, - 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x2f, 0x62, 0x61, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x05, 0x52, 0x02, 0x54, 0x70, 0x22, 0x8a, 0x01, 0x0a, 0x0c, 0x43, 0x53, 0x44, 0x6f, 0x6c, 0x6c, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x18, + 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x55, 0x73, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x12, 0x12, + 0x0a, 0x04, 0x41, 0x64, 0x64, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x41, 0x64, + 0x64, 0x72, 0x22, 0x3b, 0x0a, 0x0c, 0x53, 0x43, 0x44, 0x6f, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, + 0x11, 0x0a, 0x0f, 0x43, 0x53, 0x44, 0x6f, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, + 0x6f, 0x67, 0x22, 0x3d, 0x0a, 0x0f, 0x53, 0x43, 0x44, 0x69, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x4c, 0x6f, 0x67, 0x12, 0x2a, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x44, 0x69, 0x6c, 0x6c, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x49, 0x6e, 0x66, + 0x6f, 0x22, 0xed, 0x01, 0x0a, 0x11, 0x44, 0x69, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, + 0x18, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x55, + 0x73, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x55, 0x73, + 0x65, 0x72, 0x54, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x41, 0x64, 0x64, 0x72, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x41, 0x64, 0x64, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x54, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x54, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x4f, 0x70, 0x54, 0x73, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x4f, 0x70, 0x54, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x6d, + 0x61, 0x72, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, + 0x6b, 0x2a, 0x99, 0x01, 0x0a, 0x0c, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, 0x75, 0x63, 0x65, 0x73, + 0x73, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x55, 0x73, 0x65, 0x55, + 0x70, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x49, 0x64, 0x45, 0x72, + 0x72, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x44, 0x62, 0x45, 0x72, + 0x72, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x61, 0x67, 0x46, + 0x75, 0x6c, 0x6c, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4e, 0x6f, + 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x4f, 0x50, 0x52, + 0x43, 0x5f, 0x4e, 0x6f, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, 0x07, 0x2a, 0xd0, 0x02, + 0x0a, 0x09, 0x53, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x13, 0x0a, 0x0f, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x42, 0x41, 0x47, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, + 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x4c, 0x4c, 0x5f, 0x42, + 0x41, 0x47, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xe2, 0x13, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x4c, 0x4c, 0x5f, 0x42, 0x41, 0x47, 0x5f, 0x55, 0x53, 0x45, + 0x10, 0xe3, 0x13, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, + 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x42, 0x41, 0x47, 0x44, 0x41, 0x54, 0x41, 0x10, 0xe4, 0x13, 0x12, + 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x49, 0x54, 0x45, + 0x4d, 0x5f, 0x45, 0x58, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x52, 0x45, 0x53, 0x10, 0xe5, + 0x13, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x4c, 0x4c, 0x5f, + 0x42, 0x41, 0x47, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xf5, 0x13, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x10, 0xb8, 0x17, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x45, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x10, 0xb9, 0x17, 0x12, 0x19, + 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x44, 0x6f, 0x6c, 0x6c, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, 0xba, 0x17, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x44, 0x6f, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x10, 0xbb, 0x17, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, + 0x53, 0x5f, 0x44, 0x6f, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x6f, 0x67, 0x10, + 0xbc, 0x17, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, + 0x44, 0x6f, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x6f, 0x67, 0x10, 0xbd, 0x17, + 0x42, 0x23, 0x5a, 0x21, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x2f, 0x62, 0x61, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1099,7 +1479,7 @@ func file_bag_proto_rawDescGZIP() []byte { } var file_bag_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_bag_proto_msgTypes = make([]protoimpl.MessageInfo, 13) +var file_bag_proto_msgTypes = make([]protoimpl.MessageInfo, 18) var file_bag_proto_goTypes = []interface{}{ (OpResultCode)(0), // 0: bag.OpResultCode (SPacketID)(0), // 1: bag.SPacketID @@ -1116,6 +1496,11 @@ var file_bag_proto_goTypes = []interface{}{ (*ExchangeInfo)(nil), // 12: bag.ExchangeInfo (*CSExchangeList)(nil), // 13: bag.CSExchangeList (*SCExchangeList)(nil), // 14: bag.SCExchangeList + (*CSDollChange)(nil), // 15: bag.CSDollChange + (*SCDollChange)(nil), // 16: bag.SCDollChange + (*CSDollChangeLog)(nil), // 17: bag.CSDollChangeLog + (*SCDillChangeLog)(nil), // 18: bag.SCDillChangeLog + (*DillChangeLogInfo)(nil), // 19: bag.DillChangeLogInfo } var file_bag_proto_depIdxs = []int32{ 0, // 0: bag.SCBagInfo.RetCode:type_name -> bag.OpResultCode @@ -1130,11 +1515,13 @@ var file_bag_proto_depIdxs = []int32{ 9, // 9: bag.ExchangeInfo.CostItems:type_name -> bag.PropInfo 9, // 10: bag.ExchangeInfo.GainItems:type_name -> bag.PropInfo 12, // 11: bag.SCExchangeList.Infos:type_name -> bag.ExchangeInfo - 12, // [12:12] is the sub-list for method output_type - 12, // [12:12] is the sub-list for method input_type - 12, // [12:12] is the sub-list for extension type_name - 12, // [12:12] is the sub-list for extension extendee - 0, // [0:12] is the sub-list for field type_name + 0, // 12: bag.SCDollChange.RetCode:type_name -> bag.OpResultCode + 19, // 13: bag.SCDillChangeLog.Info:type_name -> bag.DillChangeLogInfo + 14, // [14:14] is the sub-list for method output_type + 14, // [14:14] is the sub-list for method input_type + 14, // [14:14] is the sub-list for extension type_name + 14, // [14:14] is the sub-list for extension extendee + 0, // [0:14] is the sub-list for field type_name } func init() { file_bag_proto_init() } @@ -1299,6 +1686,66 @@ func file_bag_proto_init() { return nil } } + file_bag_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSDollChange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bag_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SCDollChange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bag_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSDollChangeLog); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bag_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SCDillChangeLog); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bag_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DillChangeLogInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -1306,7 +1753,7 @@ func file_bag_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_bag_proto_rawDesc, NumEnums: 2, - NumMessages: 13, + NumMessages: 18, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/bag/bag.proto b/protocol/bag/bag.proto index c004be9..8b6b54e 100644 --- a/protocol/bag/bag.proto +++ b/protocol/bag/bag.proto @@ -23,6 +23,10 @@ enum SPacketID { //3000~3099 PACKET_PropExchange = 3000; // 道具兑换 PACKET_ExchangeList = 3001; // 兑换列表 + PACKET_CS_DollChange = 3002;//娃娃卡兑换 + PACKET_SC_DollChange = 3003;//娃娃卡兑换返回 + PACKET_CS_DollChangeLog = 3004;//娃娃卡兑换记录 + PACKET_SC_DollChangeLog = 3005;//娃娃卡兑换记录返回 } //物品信息 后续精简 message ItemInfo{ @@ -119,4 +123,37 @@ message CSExchangeList{ message SCExchangeList{ repeated ExchangeInfo Infos = 1; // 兑换列表 int32 Tp = 2; // 兑换类型 +} +//娃娃卡兑换 +//PACKET_CS_DollChange +message CSDollChange{ + int32 ItemId = 1; + int32 ItemNum = 2; + string UserName = 3;//姓名 + string UserTel = 4;//电话 + string Addr = 5;//地址 +} +//PACKET_SC_DollChange +message SCDollChange{ + OpResultCode RetCode = 1; +} +//娃娃卡兑换记录 +//PACKET_CS_DollChangeLog +message CSDollChangeLog{ + +} +//PACKET_SC_DollChangeLog +message SCDillChangeLog{ + repeated DillChangeLogInfo Info =1; +} +message DillChangeLogInfo{ + int32 ItemId = 1; + int32 ItemNum = 2; + int32 State = 3; + string UserName = 4; + string UserTel = 5; + string Addr = 6; + string CreateTs = 7; + string OpTs =8; + string Remark = 9;//备注信息 } \ No newline at end of file diff --git a/protocol/webapi/common.proto b/protocol/webapi/common.proto index 85c19f9..757e26a 100644 --- a/protocol/webapi/common.proto +++ b/protocol/webapi/common.proto @@ -915,6 +915,7 @@ message MachineInfo{ int32 CostItemNum = 5; //消耗道具数量 int32 ItemId = 6; //获得道具Id int32 ItemNum = 7; //获得道具数量 + string IconAddr = 8;//图片地址 } // etcd /game/match_audience message MatchAudience { diff --git a/worldsrv/action_bag.go b/worldsrv/action_bag.go index 1975421..e8de6e4 100644 --- a/worldsrv/action_bag.go +++ b/worldsrv/action_bag.go @@ -506,6 +506,76 @@ func CSPropExchange(s *netlib.Session, packetid int, data interface{}, sid int64 return nil } +// 兑换娃娃 +func CSDollChange(s *netlib.Session, packetid int, data interface{}, sid int64) error { + msg, ok := data.(*bag.CSDollChange) + if !ok { + return nil + } + p := PlayerMgrSington.GetPlayer(sid) + if p == nil { + return nil + } + bagInfo, _, isF := BagMgrSingleton.AddItemsV2(&model.AddItemParam{ + P: p.PlayerData, + Change: []*model.Item{ + { + ItemId: msg.GetItemId(), + ItemNum: -1, + }, + }, + GainWay: common.GainWayItemBagChangeDoll, + Operator: "system", + Remark: "背包内使用兑换娃娃卡", + NoLog: false, + }) + logger.Logger.Trace("背包内使用兑换娃娃卡 bagInfo = ", bagInfo) + pack := &bag.SCDollChange{} + pack.RetCode = bag.OpResultCode_OPRC_UseUp + if isF { + pack.RetCode = bag.OpResultCode_OPRC_Sucess + task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { + dollLog := model.NewDbBagChangeDoll(p.Platform, p.SnId, msg.ItemId, msg.ItemNum, 0, "", msg.Addr, msg.UserName, msg.UserTel) + return model.InsertDbBagChangeDollLog(dollLog) + }), task.CompleteNotifyWrapper(func(data interface{}, t task.Task) { + if data != nil { + logger.Logger.Errorf("CSDollChange err: %v", data) + } + }), "CSDollChange").Start() + + } + p.SendToClient(int(bag.SPacketID_PACKET_SC_DollChange), pack) + return nil +} + +// 兑换娃娃记录 +func CSDollChangeLog(s *netlib.Session, packetid int, data interface{}, sid int64) error { + p := PlayerMgrSington.GetPlayer(sid) + if p == nil { + return nil + } + pack := &bag.SCDillChangeLog{} + task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { + return model.GetDbBagChangeDollLog(p.Platform, p.SnId) + }), task.CompleteNotifyWrapper(func(data interface{}, t task.Task) { + for _, log := range data.([]*model.BagChangeDollLog) { + info := &bag.DillChangeLogInfo{} + info.ItemId = log.ItemId + info.ItemNum = log.ItemNum + info.State = log.State + info.UserName = log.UserName + info.UserTel = log.UserTel + info.Addr = log.Addr + info.CreateTs = log.CreateTs.String() + info.OpTs = log.OpTs.String() + info.Remark = log.Remark + pack.Info = append(pack.Info, info) + } + }), "CSDollChange").Start() + p.SendToClient(int(bag.SPacketID_PACKET_SC_DollChangeLog), pack) + return nil +} + func init() { // 查看背包 common.Register(int(bag.SPacketID_PACKET_ALL_BAG_INFO), &bag.CSBagInfo{}, CSBagInfo) @@ -515,4 +585,8 @@ func init() { common.Register(int(bag.SPacketID_PACKET_ExchangeList), &bag.CSExchangeList{}, CSExchangeList) // 道具兑换 common.Register(int(bag.SPacketID_PACKET_PropExchange), &bag.CSPropExchange{}, CSPropExchange) + //兑换娃娃 + common.Register(int(bag.SPacketID_PACKET_CS_DollChange), &bag.CSDollChange{}, CSDollChange) + //兑换娃娃记录 + common.Register(int(bag.SPacketID_PACKET_CS_DollChangeLog), &bag.CSDollChangeLog{}, CSDollChangeLog) } diff --git a/worldsrv/shopmgr.go b/worldsrv/shopmgr.go index 270eadf..f3b4cf2 100644 --- a/worldsrv/shopmgr.go +++ b/worldsrv/shopmgr.go @@ -886,7 +886,7 @@ func (this *ShopMgr) Exchange(p *Player, goodsId int32, username, mobile, commen ItemId: common.ItemDollCard, ItemNum: int64(info.JPrice * num), } - _, _, isF := BagMgrSingleton.AddItem(p, int64(item.ItemId), -item.ItemNum, 0, common.GainWayItemChangeDoll, + _, _, isF := BagMgrSingleton.AddItem(p, int64(item.ItemId), -item.ItemNum, 0, common.GainWayItemShopChangeDoll, "sys", fmt.Sprintf("兑换娃娃扣除%v", item.ItemId), 0, 0, false) if !isF { // 扣掉金券 pack.RetCode = shop.OpResultCode_OPRC_DCoinNotEnough From 7e8ceebbf70c2e53b7184821788a286dddfa9f14 Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Thu, 19 Sep 2024 13:36:43 +0800 Subject: [PATCH 2/3] proto --- protocol/webapi/common.pb.go | 113 +++++++++++++++++++---------------- 1 file changed, 61 insertions(+), 52 deletions(-) diff --git a/protocol/webapi/common.pb.go b/protocol/webapi/common.pb.go index 8ea06fd..d3b38aa 100644 --- a/protocol/webapi/common.pb.go +++ b/protocol/webapi/common.pb.go @@ -8286,6 +8286,7 @@ type MachineInfo struct { CostItemNum int32 `protobuf:"varint,5,opt,name=CostItemNum,proto3" json:"CostItemNum,omitempty"` //消耗道具数量 ItemId int32 `protobuf:"varint,6,opt,name=ItemId,proto3" json:"ItemId,omitempty"` //获得道具Id ItemNum int32 `protobuf:"varint,7,opt,name=ItemNum,proto3" json:"ItemNum,omitempty"` //获得道具数量 + IconAddr string `protobuf:"bytes,8,opt,name=IconAddr,proto3" json:"IconAddr,omitempty"` //图片地址 } func (x *MachineInfo) Reset() { @@ -8369,6 +8370,13 @@ func (x *MachineInfo) GetItemNum() int32 { return 0 } +func (x *MachineInfo) GetIconAddr() string { + if x != nil { + return x.IconAddr + } + return "" +} + // etcd /game/match_audience type MatchAudience struct { state protoimpl.MessageState @@ -10053,7 +10061,7 @@ var file_common_proto_rawDesc = []byte{ 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x27, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xd5, 0x01, 0x0a, 0x0b, 0x4d, 0x61, 0x63, 0x68, + 0x6f, 0x52, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xf1, 0x01, 0x0a, 0x0b, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x41, 0x70, 0x70, 0x49, 0x64, 0x18, 0x02, @@ -10066,57 +10074,58 @@ var file_common_proto_rawDesc = []byte{ 0x52, 0x0b, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x22, - 0x4f, 0x0a, 0x0d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, - 0x53, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, - 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x54, 0x73, - 0x22, 0x4c, 0x0a, 0x0c, 0x53, 0x70, 0x69, 0x72, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x0e, 0x0a, 0x02, - 0x4f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x4f, 0x6e, 0x12, 0x10, 0x0a, 0x03, - 0x55, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x55, 0x72, 0x6c, 0x22, 0x72, - 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x4f, 0x6e, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x4f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x6f, - 0x72, 0x74, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x6f, 0x72, 0x74, - 0x49, 0x64, 0x22, 0xcc, 0x03, 0x0a, 0x0a, 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, - 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, - 0x02, 0x4f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x4f, 0x6e, 0x12, 0x16, 0x0a, - 0x06, 0x53, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, - 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x18, 0x07, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x74, 0x65, - 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x06, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x77, 0x65, - 0x62, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x4f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x4f, 0x6e, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x47, - 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x05, 0x52, - 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x52, - 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, - 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x0c, - 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, - 0x22, 0x0a, 0x0c, 0x4e, 0x65, 0x65, 0x64, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x4e, 0x65, 0x65, 0x64, 0x50, 0x61, 0x73, 0x73, 0x77, - 0x6f, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, - 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, - 0x56, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x52, - 0x49, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x52, - 0x49, 0x42, 0x26, 0x5a, 0x24, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x2f, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x12, + 0x1a, 0x0a, 0x08, 0x49, 0x63, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x49, 0x63, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x22, 0x4f, 0x0a, 0x0d, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, + 0x54, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x54, 0x73, 0x22, 0x4c, 0x0a, 0x0c, + 0x53, 0x70, 0x69, 0x72, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, + 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x4f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x4f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x72, 0x6c, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x55, 0x72, 0x6c, 0x22, 0x72, 0x0a, 0x08, 0x52, 0x6f, + 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, + 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x4f, 0x6e, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x02, 0x4f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x6f, 0x72, 0x74, 0x49, 0x64, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x22, 0xcc, + 0x03, 0x0a, 0x0a, 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, + 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x4f, 0x6e, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x4f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x6f, 0x72, + 0x74, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x6f, 0x72, 0x74, 0x49, + 0x64, 0x12, 0x24, 0x0a, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x10, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, + 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x4f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x4f, 0x6e, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, + 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, + 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, + 0x18, 0x0b, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1c, 0x0a, + 0x09, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x09, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x4e, + 0x65, 0x65, 0x64, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0c, 0x4e, 0x65, 0x65, 0x64, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, + 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x56, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x56, 0x6f, 0x69, 0x63, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x52, 0x49, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x52, 0x49, 0x42, 0x26, 0x5a, + 0x24, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x77, + 0x65, 0x62, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( From d3642c93e454e5a4925d3cc7aabccfb66263e5f7 Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Thu, 19 Sep 2024 17:18:16 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=A8=83=E5=A8=83=E5=85=91=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/DB_GameItem.dat | Bin 18735 -> 18729 bytes data/DB_GameItem.json | 6 +- data/DB_GiftCard.dat | Bin 57 -> 57 bytes data/DB_PropExchange.dat | Bin 384 -> 384 bytes data/DB_Task.dat | Bin 5439 -> 5439 bytes dbproxy/svc/l_dbbagchangedolllog.go | 4 +- protocol/bag/bag.pb.go | 170 +++++++++++++--------------- protocol/bag/bag.proto | 9 +- protocol/webapi/webapi.pb.go | 141 +++++++++++++---------- protocol/webapi/webapi.proto | 2 + worldsrv/action_bag.go | 94 ++++++++------- worldsrv/shopmgr.go | 1 + worldsrv/trascate_webapi.go | 5 + xlsx/DB_GameItem.xlsx | Bin 35314 -> 35321 bytes 14 files changed, 232 insertions(+), 200 deletions(-) diff --git a/data/DB_GameItem.dat b/data/DB_GameItem.dat index ea158f6d0656c1eec9d9e1462cec120438c3a4e7..fa14b5ef3eb95c82bb9d92fa927999f9606a1123 100644 GIT binary patch delta 43 rcmZ2KiE-s5#trcvjH#0oJWQA(7$+A>s7>DQ!Nr&~`ILttLVyzhOCt_t delta 38 ocmZ2EiE;fT#trcvj2V*?JWM8U6xW`t;K|9vl{)#jharp$01&DT2mk;8 diff --git a/data/DB_GameItem.json b/data/DB_GameItem.json index 4725b72..399a340 100644 --- a/data/DB_GameItem.json +++ b/data/DB_GameItem.json @@ -6271,8 +6271,7 @@ ], "SaleType": 1, "SaleGold": 5000, - "Composition": 1, - "CompositionMax": 9999, + "CompositionMax": 1, "Location": "0", "Describe": "可联系客服兑换实物奖励", "Gain": { @@ -6309,8 +6308,7 @@ ], "SaleType": 1, "SaleGold": 5000, - "Composition": 1, - "CompositionMax": 9999, + "CompositionMax": 1, "Location": "0", "Describe": "可联系客服兑换实物奖励", "Gain": { diff --git a/data/DB_GiftCard.dat b/data/DB_GiftCard.dat index 15600367ff42a73b75826e6378f02a3bde3a8661..96640b07f274cbbbda035ee3e52503c8356a73cb 100644 GIT binary patch delta 38 pcmcDtoFJjd$+57PP2j+^jZ8{x92eV|1-P_0AVMv+2JBXh3;@YB39kSE delta 38 pcmcDtoFJjd#&NNYS%6E4lVf2oo4|o-8=15?Aj}q919mG$1^~Z739kSE diff --git a/data/DB_PropExchange.dat b/data/DB_PropExchange.dat index 692c5d1b4dcfefb43616d6335367170979a23cf5..2922a032d2148858f57dec518517d249f80a6055 100644 GIT binary patch literal 384 zcmd-w<6snElw#w!(#8y?uR`f-Q2IKQz6_$3I5-yevI!h$vE|a^U;?YZ0hPZArEfv$ z+i2>;IUwevn~O_7x_iLp0o@642PfDa4Qn5;IUweP#gXiT>4)iq*$*=hyE{0+?r2#1h=nVbg9Ypmn8A0T4nT1@&_bAj=oZ2( UKnVaPc8*0rkA7k1VxTPq0BA})H2?qr diff --git a/data/DB_Task.dat b/data/DB_Task.dat index 5c3030bf91b484951748e1222cf51ebdd8b77bcb..4bb22563f3dfb193e2d7ace2e38ee689d3345856 100644 GIT binary patch delta 239 zcmdn5wO?z)d`3YwjwQWp0wP`<91DT;g*N8R8yN3039xZoY-1K+gbJ@XJb5llp&&%f zfoSwl56&Bgd$o7;Gs`|llA)xRgpxMluzq9**ECg|wpe7%f z#j`nt^8pi77-r#uUbfAyJgXQdoA3xu;`=apDYxKcM*d<+h-M^JT-F?qt}qMmOb*}| W+q{^c17<$VLk*o(oA(Gbvj70D*F;eO delta 211 zcmdn5wO?z)d`3YIj)lE!0vFntz1TRG09hiNH!$915`YM=ILrtXzSzbrFnKOZp&*3G z;sudha7b>lJnID^h^UAcC)lI~r)My3W@LNH2vofYXdW|E^@HU?o4>RBFiu{;F0whC z^DfimXZEWJdmCNvK`DY(R&A%wy!T=6H04S%7D9 W0KeGg#rzzMla2WWH}4T>W&r>nR6Wc9 diff --git a/dbproxy/svc/l_dbbagchangedolllog.go b/dbproxy/svc/l_dbbagchangedolllog.go index d8c73d8..2443d15 100644 --- a/dbproxy/svc/l_dbbagchangedolllog.go +++ b/dbproxy/svc/l_dbbagchangedolllog.go @@ -38,14 +38,14 @@ func (svc *DbBagChangeDollLogSvc) InsertDbBagChangeDollLog(args *model.DbBagChan *ret = true return } -func (svc *DbBagChangeDollLogSvc) GetDbBagChangeDollLog(args *model.DbBagChangeDollLogArgs, dollLog []*model.BagChangeDollLog) (err error) { +func (svc *DbBagChangeDollLogSvc) GetDbBagChangeDollLog(args *model.DbBagChangeDollLogArgs, dollLog *[]*model.BagChangeDollLog) (err error) { clog := DbBagChangeDollLogCollection(args.Log.Platform) if clog == nil { logger.Logger.Error("GetDbBagChangeDollLog == nil") return nil } logger.Logger.Trace("DbBagChangeDollLogSvc.GetDbBagChangeDollLog") - err = clog.Find(bson.M{"_id": args.Log.Snid}).All(dollLog) + err = clog.Find(bson.M{"snid": args.Log.Snid}).All(dollLog) if err != nil { logger.Logger.Error("DbBagChangeDollLogSvc.GetDbBagChangeDollLog error:", err) return nil diff --git a/protocol/bag/bag.pb.go b/protocol/bag/bag.pb.go index 4a68a07..f3c9f12 100644 --- a/protocol/bag/bag.pb.go +++ b/protocol/bag/bag.pb.go @@ -991,11 +991,10 @@ type CSDollChange struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ItemId int32 `protobuf:"varint,1,opt,name=ItemId,proto3" json:"ItemId,omitempty"` - ItemNum int32 `protobuf:"varint,2,opt,name=ItemNum,proto3" json:"ItemNum,omitempty"` - UserName string `protobuf:"bytes,3,opt,name=UserName,proto3" json:"UserName,omitempty"` //姓名 - UserTel string `protobuf:"bytes,4,opt,name=UserTel,proto3" json:"UserTel,omitempty"` //电话 - Addr string `protobuf:"bytes,5,opt,name=Addr,proto3" json:"Addr,omitempty"` //地址 + Items []*PropInfo `protobuf:"bytes,1,rep,name=Items,proto3" json:"Items,omitempty"` + UserName string `protobuf:"bytes,2,opt,name=UserName,proto3" json:"UserName,omitempty"` //姓名 + UserTel string `protobuf:"bytes,3,opt,name=UserTel,proto3" json:"UserTel,omitempty"` //电话 + Addr string `protobuf:"bytes,4,opt,name=Addr,proto3" json:"Addr,omitempty"` //地址 } func (x *CSDollChange) Reset() { @@ -1030,18 +1029,11 @@ func (*CSDollChange) Descriptor() ([]byte, []int) { return file_bag_proto_rawDescGZIP(), []int{13} } -func (x *CSDollChange) GetItemId() int32 { +func (x *CSDollChange) GetItems() []*PropInfo { if x != nil { - return x.ItemId + return x.Items } - return 0 -} - -func (x *CSDollChange) GetItemNum() int32 { - if x != nil { - return x.ItemNum - } - return 0 + return nil } func (x *CSDollChange) GetUserName() string { @@ -1397,73 +1389,72 @@ var file_bag_proto_rawDesc = []byte{ 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x02, 0x54, 0x70, 0x22, 0x8a, 0x01, 0x0a, 0x0c, 0x43, 0x53, 0x44, 0x6f, 0x6c, 0x6c, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x18, - 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x55, 0x73, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x12, 0x12, - 0x0a, 0x04, 0x41, 0x64, 0x64, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x41, 0x64, - 0x64, 0x72, 0x22, 0x3b, 0x0a, 0x0c, 0x53, 0x43, 0x44, 0x6f, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, - 0x11, 0x0a, 0x0f, 0x43, 0x53, 0x44, 0x6f, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, - 0x6f, 0x67, 0x22, 0x3d, 0x0a, 0x0f, 0x53, 0x43, 0x44, 0x69, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x4c, 0x6f, 0x67, 0x12, 0x2a, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x44, 0x69, 0x6c, 0x6c, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x49, 0x6e, 0x66, - 0x6f, 0x22, 0xed, 0x01, 0x0a, 0x11, 0x44, 0x69, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, - 0x18, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, - 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x55, - 0x73, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x55, 0x73, - 0x65, 0x72, 0x54, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x41, 0x64, 0x64, 0x72, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x41, 0x64, 0x64, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x54, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x54, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x4f, 0x70, 0x54, 0x73, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x4f, 0x70, 0x54, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x6d, - 0x61, 0x72, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, - 0x6b, 0x2a, 0x99, 0x01, 0x0a, 0x0c, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, - 0x64, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, 0x75, 0x63, 0x65, 0x73, - 0x73, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, 0x6f, - 0x72, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x55, 0x73, 0x65, 0x55, - 0x70, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x49, 0x64, 0x45, 0x72, - 0x72, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x44, 0x62, 0x45, 0x72, - 0x72, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x61, 0x67, 0x46, - 0x75, 0x6c, 0x6c, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4e, 0x6f, - 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x4f, 0x50, 0x52, - 0x43, 0x5f, 0x4e, 0x6f, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, 0x07, 0x2a, 0xd0, 0x02, - 0x0a, 0x09, 0x53, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x13, 0x0a, 0x0f, 0x50, - 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x42, 0x41, 0x47, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, - 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x4c, 0x4c, 0x5f, 0x42, - 0x41, 0x47, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xe2, 0x13, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x4c, 0x4c, 0x5f, 0x42, 0x41, 0x47, 0x5f, 0x55, 0x53, 0x45, - 0x10, 0xe3, 0x13, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, - 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x42, 0x41, 0x47, 0x44, 0x41, 0x54, 0x41, 0x10, 0xe4, 0x13, 0x12, - 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x49, 0x54, 0x45, - 0x4d, 0x5f, 0x45, 0x58, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x52, 0x45, 0x53, 0x10, 0xe5, - 0x13, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x4c, 0x4c, 0x5f, - 0x42, 0x41, 0x47, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xf5, 0x13, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x10, 0xb8, 0x17, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x45, - 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x10, 0xb9, 0x17, 0x12, 0x19, - 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x44, 0x6f, 0x6c, 0x6c, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, 0xba, 0x17, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x44, 0x6f, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x10, 0xbb, 0x17, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, - 0x53, 0x5f, 0x44, 0x6f, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x6f, 0x67, 0x10, - 0xbc, 0x17, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, - 0x44, 0x6f, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x6f, 0x67, 0x10, 0xbd, 0x17, - 0x42, 0x23, 0x5a, 0x21, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x2f, 0x62, 0x61, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x05, 0x52, 0x02, 0x54, 0x70, 0x22, 0x7d, 0x0a, 0x0c, 0x43, 0x53, 0x44, 0x6f, 0x6c, 0x6c, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x54, 0x65, + 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x55, 0x73, 0x65, 0x72, 0x54, 0x65, 0x6c, + 0x12, 0x12, 0x0a, 0x04, 0x41, 0x64, 0x64, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x41, 0x64, 0x64, 0x72, 0x22, 0x3b, 0x0a, 0x0c, 0x53, 0x43, 0x44, 0x6f, 0x6c, 0x6c, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x4f, 0x70, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, + 0x65, 0x22, 0x11, 0x0a, 0x0f, 0x43, 0x53, 0x44, 0x6f, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x4c, 0x6f, 0x67, 0x22, 0x3d, 0x0a, 0x0f, 0x53, 0x43, 0x44, 0x69, 0x6c, 0x6c, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x6f, 0x67, 0x12, 0x2a, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x44, 0x69, 0x6c, 0x6c, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x49, + 0x6e, 0x66, 0x6f, 0x22, 0xed, 0x01, 0x0a, 0x11, 0x44, 0x69, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, + 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, + 0x64, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x55, 0x73, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x55, 0x73, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x41, 0x64, 0x64, 0x72, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x41, 0x64, 0x64, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x4f, 0x70, 0x54, 0x73, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4f, 0x70, 0x54, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, + 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, 0x65, 0x6d, + 0x61, 0x72, 0x6b, 0x2a, 0x99, 0x01, 0x0a, 0x0c, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, 0x75, 0x63, + 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, + 0x72, 0x6f, 0x72, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x55, 0x73, + 0x65, 0x55, 0x70, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x49, 0x64, + 0x45, 0x72, 0x72, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x44, 0x62, + 0x45, 0x72, 0x72, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x61, + 0x67, 0x46, 0x75, 0x6c, 0x6c, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x4f, 0x50, 0x52, 0x43, 0x5f, + 0x4e, 0x6f, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x4f, + 0x50, 0x52, 0x43, 0x5f, 0x4e, 0x6f, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, 0x07, 0x2a, + 0xd0, 0x02, 0x0a, 0x09, 0x53, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x13, 0x0a, + 0x0f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x42, 0x41, 0x47, 0x5f, 0x5a, 0x45, 0x52, 0x4f, + 0x10, 0x00, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x4c, 0x4c, + 0x5f, 0x42, 0x41, 0x47, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xe2, 0x13, 0x12, 0x17, 0x0a, 0x12, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x4c, 0x4c, 0x5f, 0x42, 0x41, 0x47, 0x5f, 0x55, + 0x53, 0x45, 0x10, 0xe3, 0x13, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x53, 0x43, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x42, 0x41, 0x47, 0x44, 0x41, 0x54, 0x41, 0x10, 0xe4, + 0x13, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x49, + 0x54, 0x45, 0x4d, 0x5f, 0x45, 0x58, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x52, 0x45, 0x53, + 0x10, 0xe5, 0x13, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x4c, + 0x4c, 0x5f, 0x42, 0x41, 0x47, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xf5, 0x13, 0x12, 0x18, 0x0a, 0x13, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x10, 0xb8, 0x17, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x10, 0xb9, 0x17, + 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x44, 0x6f, + 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, 0xba, 0x17, 0x12, 0x19, 0x0a, 0x14, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x44, 0x6f, 0x6c, 0x6c, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x10, 0xbb, 0x17, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x43, 0x53, 0x5f, 0x44, 0x6f, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x6f, + 0x67, 0x10, 0xbc, 0x17, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, + 0x43, 0x5f, 0x44, 0x6f, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x6f, 0x67, 0x10, + 0xbd, 0x17, 0x42, 0x23, 0x5a, 0x21, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x2f, 0x62, 0x61, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1515,13 +1506,14 @@ var file_bag_proto_depIdxs = []int32{ 9, // 9: bag.ExchangeInfo.CostItems:type_name -> bag.PropInfo 9, // 10: bag.ExchangeInfo.GainItems:type_name -> bag.PropInfo 12, // 11: bag.SCExchangeList.Infos:type_name -> bag.ExchangeInfo - 0, // 12: bag.SCDollChange.RetCode:type_name -> bag.OpResultCode - 19, // 13: bag.SCDillChangeLog.Info:type_name -> bag.DillChangeLogInfo - 14, // [14:14] is the sub-list for method output_type - 14, // [14:14] is the sub-list for method input_type - 14, // [14:14] is the sub-list for extension type_name - 14, // [14:14] is the sub-list for extension extendee - 0, // [0:14] is the sub-list for field type_name + 9, // 12: bag.CSDollChange.Items:type_name -> bag.PropInfo + 0, // 13: bag.SCDollChange.RetCode:type_name -> bag.OpResultCode + 19, // 14: bag.SCDillChangeLog.Info:type_name -> bag.DillChangeLogInfo + 15, // [15:15] is the sub-list for method output_type + 15, // [15:15] is the sub-list for method input_type + 15, // [15:15] is the sub-list for extension type_name + 15, // [15:15] is the sub-list for extension extendee + 0, // [0:15] is the sub-list for field type_name } func init() { file_bag_proto_init() } diff --git a/protocol/bag/bag.proto b/protocol/bag/bag.proto index 8b6b54e..65ed7db 100644 --- a/protocol/bag/bag.proto +++ b/protocol/bag/bag.proto @@ -127,11 +127,10 @@ message SCExchangeList{ //娃娃卡兑换 //PACKET_CS_DollChange message CSDollChange{ - int32 ItemId = 1; - int32 ItemNum = 2; - string UserName = 3;//姓名 - string UserTel = 4;//电话 - string Addr = 5;//地址 + repeated PropInfo Items = 1; + string UserName = 2;//姓名 + string UserTel = 3;//电话 + string Addr = 4;//地址 } //PACKET_SC_DollChange message SCDollChange{ diff --git a/protocol/webapi/webapi.pb.go b/protocol/webapi/webapi.pb.go index 2480f77..3ce9b3a 100644 --- a/protocol/webapi/webapi.pb.go +++ b/protocol/webapi/webapi.pb.go @@ -6094,6 +6094,7 @@ type ASCreateExchangeOrder struct { TelCharge int32 `protobuf:"varint,15,opt,name=TelCharge,proto3" json:"TelCharge,omitempty"` // 电话充值 VipLevel int32 `protobuf:"varint,16,opt,name=VipLevel,proto3" json:"VipLevel,omitempty"` //VIP等级 TelId int32 `protobuf:"varint,17,opt,name=TelId,proto3" json:"TelId,omitempty"` //运营商ID + DPrice int32 `protobuf:"varint,18,opt,name=DPrice,proto3" json:"DPrice,omitempty"` //消耗娃娃积分 } func (x *ASCreateExchangeOrder) Reset() { @@ -6247,6 +6248,13 @@ func (x *ASCreateExchangeOrder) GetTelId() int32 { return 0 } +func (x *ASCreateExchangeOrder) GetDPrice() int32 { + if x != nil { + return x.DPrice + } + return 0 +} + type SACreateExchangeOrder struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -6595,6 +6603,7 @@ type ASUpExchangeStatus struct { NeedNum int32 `protobuf:"varint,6,opt,name=NeedNum,proto3" json:"NeedNum,omitempty"` //消耗V卡 JPrice int32 `protobuf:"varint,7,opt,name=JPrice,proto3" json:"JPrice,omitempty"` //消耗的金券数量 Cash int32 `protobuf:"varint,8,opt,name=Cash,proto3" json:"Cash,omitempty"` //消耗的现金数量 + DPrice int32 `protobuf:"varint,9,opt,name=DPrice,proto3" json:"DPrice,omitempty"` //消耗的娃娃积分 } func (x *ASUpExchangeStatus) Reset() { @@ -6685,6 +6694,13 @@ func (x *ASUpExchangeStatus) GetCash() int32 { return 0 } +func (x *ASUpExchangeStatus) GetDPrice() int32 { + if x != nil { + return x.DPrice + } + return 0 +} + // 返回 type SAUpExchangeStatus struct { state protoimpl.MessageState @@ -10027,7 +10043,7 @@ var file_webapi_proto_rawDesc = []byte{ 0x2e, 0x54, 0x61, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x03, 0x54, 0x61, 0x67, 0x12, 0x2f, 0x0a, 0x09, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x43, 0x50, 0x4f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, - 0x43, 0x50, 0x4f, 0x52, 0x09, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x43, 0x50, 0x4f, 0x22, 0xcb, + 0x43, 0x50, 0x4f, 0x52, 0x09, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x43, 0x50, 0x4f, 0x22, 0xe3, 0x03, 0x0a, 0x15, 0x41, 0x53, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, @@ -10056,66 +10072,69 @@ var file_webapi_proto_rawDesc = []byte{ 0x09, 0x54, 0x65, 0x6c, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x56, 0x69, 0x70, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x56, 0x69, 0x70, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x65, 0x6c, 0x49, 0x64, 0x18, - 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x54, 0x65, 0x6c, 0x49, 0x64, 0x22, 0x6b, 0x0a, 0x15, - 0x53, 0x41, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x03, 0x54, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x61, 0x67, 0x43, - 0x6f, 0x64, 0x65, 0x52, 0x03, 0x54, 0x61, 0x67, 0x12, 0x2f, 0x0a, 0x09, 0x52, 0x65, 0x74, 0x75, - 0x72, 0x6e, 0x43, 0x50, 0x4f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x77, 0x65, - 0x62, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x43, 0x50, 0x4f, 0x52, 0x09, - 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x43, 0x50, 0x4f, 0x22, 0x58, 0x0a, 0x12, 0x41, 0x53, 0x47, - 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, - 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, - 0x6e, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, - 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, - 0x61, 0x67, 0x65, 0x22, 0xaf, 0x02, 0x0a, 0x11, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, - 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x64, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x50, - 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, - 0x50, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x45, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, - 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x45, - 0x58, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0c, 0x45, 0x58, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x54, 0x65, 0x6c, 0x49, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, - 0x54, 0x65, 0x6c, 0x49, 0x64, 0x22, 0xdc, 0x01, 0x0a, 0x12, 0x53, 0x41, 0x47, 0x65, 0x74, 0x45, - 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x03, - 0x54, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x77, 0x65, 0x62, 0x61, - 0x70, 0x69, 0x2e, 0x54, 0x61, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x03, 0x54, 0x61, 0x67, 0x12, - 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, - 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x75, 0x72, 0x50, 0x61, 0x67, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x75, 0x72, 0x50, 0x61, 0x67, 0x65, 0x12, - 0x1c, 0x0a, 0x09, 0x50, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x09, 0x50, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1c, 0x0a, - 0x09, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x09, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x37, 0x0a, 0x09, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x4c, 0x69, 0x73, 0x74, 0x22, 0xd0, 0x01, 0x0a, 0x12, 0x41, 0x53, 0x55, 0x70, 0x45, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x64, 0x12, 0x12, 0x0a, - 0x04, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x69, - 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, - 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4e, 0x65, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x07, 0x4e, 0x65, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x4a, - 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4a, 0x50, 0x72, - 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x61, 0x73, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x04, 0x43, 0x61, 0x73, 0x68, 0x22, 0x49, 0x0a, 0x12, 0x53, 0x41, 0x55, 0x70, 0x45, + 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x54, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, + 0x44, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x44, 0x50, + 0x72, 0x69, 0x63, 0x65, 0x22, 0x6b, 0x0a, 0x15, 0x53, 0x41, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x21, 0x0a, + 0x03, 0x54, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x77, 0x65, 0x62, + 0x61, 0x70, 0x69, 0x2e, 0x54, 0x61, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x03, 0x54, 0x61, 0x67, + 0x12, 0x2f, 0x0a, 0x09, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x43, 0x50, 0x4f, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x43, 0x50, 0x4f, 0x52, 0x09, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x43, 0x50, + 0x4f, 0x22, 0x58, 0x0a, 0x12, 0x41, 0x53, 0x47, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x22, 0xaf, 0x02, 0x0a, 0x11, + 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, + 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, + 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, + 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, 0x65, 0x6d, + 0x61, 0x72, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x50, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x75, 0x6d, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x45, 0x58, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x45, 0x58, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x65, 0x6c, 0x49, 0x64, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x54, 0x65, 0x6c, 0x49, 0x64, 0x22, 0xdc, 0x01, + 0x0a, 0x12, 0x53, 0x41, 0x47, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x03, 0x54, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x0f, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x61, 0x67, 0x43, 0x6f, + 0x64, 0x65, 0x52, 0x03, 0x54, 0x61, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x74, 0x61, 0x6c, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x18, 0x0a, + 0x07, 0x43, 0x75, 0x72, 0x50, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, + 0x43, 0x75, 0x72, 0x50, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x61, 0x67, 0x65, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x50, 0x61, 0x67, 0x65, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x74, + 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, + 0x74, 0x61, 0x6c, 0x12, 0x37, 0x0a, 0x09, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, + 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x09, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xe8, 0x01, 0x0a, + 0x12, 0x41, 0x53, 0x55, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x47, + 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x47, 0x6f, + 0x6f, 0x64, 0x73, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4e, 0x65, 0x65, + 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4e, 0x65, 0x65, 0x64, + 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x4a, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x4a, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, + 0x61, 0x73, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x43, 0x61, 0x73, 0x68, 0x12, + 0x16, 0x0a, 0x06, 0x44, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x44, 0x50, 0x72, 0x69, 0x63, 0x65, 0x22, 0x49, 0x0a, 0x12, 0x53, 0x41, 0x55, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, 0x03, 0x54, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x61, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x03, 0x54, 0x61, 0x67, diff --git a/protocol/webapi/webapi.proto b/protocol/webapi/webapi.proto index 40464af..89b44e2 100644 --- a/protocol/webapi/webapi.proto +++ b/protocol/webapi/webapi.proto @@ -692,6 +692,7 @@ message ASCreateExchangeOrder { int32 TelCharge = 15; // 电话充值 int32 VipLevel = 16; //VIP等级 int32 TelId = 17; //运营商ID + int32 DPrice = 18; //消耗娃娃积分 } message SACreateExchangeOrder { @@ -737,6 +738,7 @@ message ASUpExchangeStatus { int32 NeedNum = 6; //消耗V卡 int32 JPrice = 7;//消耗的金券数量 int32 Cash = 8;//消耗的现金数量 + int32 DPrice = 9;//消耗的娃娃积分 } // 返回 diff --git a/worldsrv/action_bag.go b/worldsrv/action_bag.go index e8de6e4..431b941 100644 --- a/worldsrv/action_bag.go +++ b/worldsrv/action_bag.go @@ -516,33 +516,45 @@ func CSDollChange(s *netlib.Session, packetid int, data interface{}, sid int64) if p == nil { return nil } - bagInfo, _, isF := BagMgrSingleton.AddItemsV2(&model.AddItemParam{ - P: p.PlayerData, - Change: []*model.Item{ - { - ItemId: msg.GetItemId(), - ItemNum: -1, - }, - }, - GainWay: common.GainWayItemBagChangeDoll, - Operator: "system", - Remark: "背包内使用兑换娃娃卡", - NoLog: false, - }) - logger.Logger.Trace("背包内使用兑换娃娃卡 bagInfo = ", bagInfo) pack := &bag.SCDollChange{} - pack.RetCode = bag.OpResultCode_OPRC_UseUp - if isF { - pack.RetCode = bag.OpResultCode_OPRC_Sucess - task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { - dollLog := model.NewDbBagChangeDoll(p.Platform, p.SnId, msg.ItemId, msg.ItemNum, 0, "", msg.Addr, msg.UserName, msg.UserTel) - return model.InsertDbBagChangeDollLog(dollLog) - }), task.CompleteNotifyWrapper(func(data interface{}, t task.Task) { - if data != nil { - logger.Logger.Errorf("CSDollChange err: %v", data) - } - }), "CSDollChange").Start() + for _, item := range msg.Items { + if item.ItemId == 0 { + continue + } + info := srvdata.GameItemMgr.Get(p.Platform, item.ItemId) + if info == nil { + continue + } + if info.Type != common.ItemTypeDoll { + continue + } + bagInfo, rest, isF := BagMgrSingleton.AddItemsV2(&model.AddItemParam{ + P: p.PlayerData, + Change: []*model.Item{ + { + ItemId: item.GetItemId(), + ItemNum: 1, + }, + }, + GainWay: common.GainWayItemBagChangeDoll, + Operator: "system", + Remark: "背包内使用兑换娃娃卡", + NoLog: false, + }) + logger.Logger.Trace("背包内使用兑换娃娃卡 bagInfo = ", bagInfo) + pack.RetCode = rest + if isF { + task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { + dollLog := model.NewDbBagChangeDoll(p.Platform, p.SnId, item.ItemId, 1, 0, "", msg.Addr, msg.UserName, msg.UserTel) + return model.InsertDbBagChangeDollLog(dollLog) + }), task.CompleteNotifyWrapper(func(data interface{}, t task.Task) { + if data != nil { + logger.Logger.Errorf("CSDollChange err: %v", data) + } + }), "CSDollChange").Start() + + } } p.SendToClient(int(bag.SPacketID_PACKET_SC_DollChange), pack) return nil @@ -554,25 +566,29 @@ func CSDollChangeLog(s *netlib.Session, packetid int, data interface{}, sid int6 if p == nil { return nil } - pack := &bag.SCDillChangeLog{} task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { return model.GetDbBagChangeDollLog(p.Platform, p.SnId) }), task.CompleteNotifyWrapper(func(data interface{}, t task.Task) { - for _, log := range data.([]*model.BagChangeDollLog) { - info := &bag.DillChangeLogInfo{} - info.ItemId = log.ItemId - info.ItemNum = log.ItemNum - info.State = log.State - info.UserName = log.UserName - info.UserTel = log.UserTel - info.Addr = log.Addr - info.CreateTs = log.CreateTs.String() - info.OpTs = log.OpTs.String() - info.Remark = log.Remark - pack.Info = append(pack.Info, info) + pack := &bag.SCDillChangeLog{} + if data != nil { + for _, log := range data.([]*model.BagChangeDollLog) { + info := &bag.DillChangeLogInfo{} + info.ItemId = log.ItemId + info.ItemNum = log.ItemNum + info.State = log.State + info.UserName = log.UserName + info.UserTel = log.UserTel + info.Addr = log.Addr + info.CreateTs = log.CreateTs.String() + info.OpTs = log.OpTs.String() + info.Remark = log.Remark + pack.Info = append(pack.Info, info) + } } + p.SendToClient(int(bag.SPacketID_PACKET_SC_DollChangeLog), pack) + }), "CSDollChange").Start() - p.SendToClient(int(bag.SPacketID_PACKET_SC_DollChangeLog), pack) + return nil } diff --git a/worldsrv/shopmgr.go b/worldsrv/shopmgr.go index f3b4cf2..64d4dee 100644 --- a/worldsrv/shopmgr.go +++ b/worldsrv/shopmgr.go @@ -914,6 +914,7 @@ func (this *ShopMgr) Exchange(p *Player, goodsId int32, username, mobile, commen TelCharge: cdata.TelCharge, VipLevel: p.VIP, TelId: telId, + DPrice: info.DPrice * num, } buff, err := webapi.API_CreateExchange(common.GetAppId(), pack) if err != nil { diff --git a/worldsrv/trascate_webapi.go b/worldsrv/trascate_webapi.go index bb2e4e6..d91995d 100644 --- a/worldsrv/trascate_webapi.go +++ b/worldsrv/trascate_webapi.go @@ -3375,6 +3375,7 @@ func init() { } addvcoin := msg.NeedNum jPrice := msg.JPrice + dPrice := msg.DPrice var items []*model.Item //V卡 if addvcoin > 0 { @@ -3384,6 +3385,10 @@ func init() { if jPrice > 0 { items = append(items, &model.Item{ItemId: common.ItemIDJCard, ItemNum: int64(jPrice)}) } + //娃娃积分 + if dPrice > 0 { + items = append(items, &model.Item{ItemId: common.ItemDollCard, ItemNum: int64(dPrice)}) + } remark := fmt.Sprintf("兑换撤单 %v-%v", msg.GoodsId, msg.Name) if player != nil { // 在线 diff --git a/xlsx/DB_GameItem.xlsx b/xlsx/DB_GameItem.xlsx index 1e779cfe0e5f1a48c382a5cc4bc8ee56ba01e428..3f6e2002ab73ac790f1052d429fe7df74a877c52 100644 GIT binary patch delta 15135 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 sZ&zY|upq49?I{WcjD9rQzANUHq{r~^~ delta 15119 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