Merge branch 'meixiongfeng' of http://git.legu.cc/liwei_3d/go_dreamfactory into meixiongfeng

This commit is contained in:
meixiongfeng 2022-12-21 10:45:04 +08:00
commit 4d978ef04c
10 changed files with 139 additions and 424 deletions

View File

@ -2839,6 +2839,44 @@
"text": "竞技场挑战券不足" "text": "竞技场挑战券不足"
} }
}, },
{
"id": "100005",
"name": {
"key": "itemname_100005",
"text": "阵营挑战券"
},
"usetype": 10,
"color": 3,
"bagtype": 0,
"index": 1,
"special_type": 0,
"time": 0,
"effects": "",
"box_id": 0,
"synthetize_num": 0,
"access": [
107
],
"use_skip": 107,
"upper_limit": -1,
"uselv": 0,
"isani": 0,
"star": 0,
"race": 0,
"img": "wp_icon_jjcq",
"ico": "wp_icon_jjcq",
"intr": {
"key": "itemdesc_100005",
"text": "进入阵营BOSS的凭证"
},
"sale": [],
"synthetize_deplete": [],
"decompose_deplete": [],
"tipstxt": {
"key": "itemtipstxt_100005",
"text": "阵营挑战券不足"
}
},
{ {
"id": "110001", "id": "110001",
"name": { "name": {

File diff suppressed because it is too large Load Diff

View File

@ -11,6 +11,12 @@ import (
/* /*
MD5加密 MD5加密
*/ */
//MD5加密 大写
func MD5(str string) string {
h := md5.New()
h.Write([]byte(str))
return hex.EncodeToString(h.Sum(nil))
}
//MD5加密 大写 //MD5加密 大写
func MD5EncToUpper(str string) string { func MD5EncToUpper(str string) string {

View File

@ -2,11 +2,13 @@ package enchant
import ( import (
"go_dreamfactory/comm" "go_dreamfactory/comm"
"go_dreamfactory/lego/sys/mgo"
"go_dreamfactory/pb" "go_dreamfactory/pb"
"go_dreamfactory/sys/configure" "go_dreamfactory/sys/configure"
cfg "go_dreamfactory/sys/configure/structs" cfg "go_dreamfactory/sys/configure/structs"
"go_dreamfactory/utils" "go_dreamfactory/utils"
"go.mongodb.org/mongo-driver/bson/primitive"
"google.golang.org/protobuf/proto" "google.golang.org/protobuf/proto"
) )
@ -28,7 +30,35 @@ func (this *apiComp) GetList(session comm.IUserSession, req *pb.EnchantGetListRe
} }
list, err := this.module.modelEnchant.getEnchantList(session.GetUserId()) list, err := this.module.modelEnchant.getEnchantList(session.GetUserId())
if err != nil { if mgo.MongodbNil == err {
list.Id = primitive.NewObjectID().Hex()
list.Uid = session.GetUserId()
list.Boss = make(map[int32]int64)
list.BossTime = make(map[int32]int32)
_cfg := this.module.configure.GetEnchantBossTypeConfigData()
for k := range _cfg {
list.BossTime[k] = 0
}
this.module.modelEnchant.Add(session.GetUserId(), list)
conf := this.module.configure.GetGlobalConf()
if conf == nil {
code = pb.ErrorCode_ConfigNoFound
return
}
iContt := conf.EnchantbossInitial
atn := conf.EnchantbossCos
if iContt > 0 {
this.module.DispenseRes(session, []*cfg.Gameatn{&cfg.Gameatn{
A: atn.A,
T: atn.T,
N: iContt,
}}, true)
}
} else if err != nil {
code = pb.ErrorCode_DBError code = pb.ErrorCode_DBError
return return
} }

View File

@ -3,7 +3,6 @@ package enchant
import ( import (
"go_dreamfactory/comm" "go_dreamfactory/comm"
"go_dreamfactory/lego/core" "go_dreamfactory/lego/core"
"go_dreamfactory/lego/sys/mgo"
"go_dreamfactory/modules" "go_dreamfactory/modules"
"go_dreamfactory/pb" "go_dreamfactory/pb"
@ -40,19 +39,10 @@ func (this *modelEnchant) getEnchantList(uid string) (result *pb.DBEnchant, err
Boss: make(map[int32]int64), Boss: make(map[int32]int64),
BossTime: make(map[int32]int32), BossTime: make(map[int32]int32),
} }
if err = this.Get(uid, result); err != nil && mgo.MongodbNil != err { if err = this.Get(uid, result); err != nil {
return return
} }
if mgo.MongodbNil == err {
if len(result.Boss) == 0 {
_cfg := this.module.configure.GetEnchantBossTypeConfigData()
for k := range _cfg {
result.BossTime[k] = 0
}
}
this.Add(uid, result)
}
err = nil err = nil
return result, err return result, err
} }

View File

@ -10,14 +10,9 @@ import (
"net/http" "net/http"
) )
type PayDelivery struct { type PayDeliveryResults struct {
pb.DBSystemNotify Code int32 `json:"s"`
Order string `json:"orderid"` State int32 `json:"state"`
ProductID string `json:"productid"`
Price float32 `json:"price"`
Amount int32 `json:"amount"`
Uid string `json:"uid"`
Sign string `json:"sign"`
} }
//充值发货 //充值发货
@ -30,7 +25,7 @@ func (this *Api_Comp) PayDelivery(c *engine.Context) {
Uid: req[0].(string), Uid: req[0].(string),
Productid: req[1].(string), Productid: req[1].(string),
Orderid: req[2].(string), Orderid: req[2].(string),
Price: req[3].(float32), Price: int32(req[3].(float64)),
Amount: 1, Amount: 1,
} }
payresp *pb.PayDeliveryResp = &pb.PayDeliveryResp{ payresp *pb.PayDeliveryResp = &pb.PayDeliveryResp{
@ -40,10 +35,21 @@ func (this *Api_Comp) PayDelivery(c *engine.Context) {
} }
) )
defer func() { defer func() {
c.JSON(http.StatusOK, &Respond{Code: payresp.Code, Message: payresp.Msg, Data: ""}) if payresp.Code != 0 {
if payresp.Code != pb.ErrorCode_PayOrderCompleted {
c.JSON(http.StatusOK, &PayDeliveryResults{Code: 2})
} else {
c.JSON(http.StatusOK, &PayDeliveryResults{Code: 3, State: 1})
}
} else {
c.JSON(http.StatusOK, &PayDeliveryResults{Code: 1})
}
}() }()
sign := md5.MD5EncToLower(fmt.Sprintf("%s%s%s%d%s%s", req[0], req[1], req[2], req[3], req[4], this.options.Key)) sginStr := fmt.Sprintf("%s%s%s%d%s", req[0], req[1], req[2], req[3], this.options.Key)
if sign != req[4] { sign := md5.MD5(sginStr)
if sign != req[4].(string) {
payresp.Code = pb.ErrorCode_SignError payresp.Code = pb.ErrorCode_SignError
payresp.Msg = pb.GetErrorCodeMsg(pb.ErrorCode_SignError) payresp.Msg = pb.GetErrorCodeMsg(pb.ErrorCode_SignError)
} }

View File

@ -276,6 +276,7 @@ const (
// pay // pay
ErrorCode_PayBuyNumNotEnough ErrorCode = 3701 //支付次数不足 ErrorCode_PayBuyNumNotEnough ErrorCode = 3701 //支付次数不足
ErrorCode_PayRenewTimeErr ErrorCode = 3702 // 续费时间没达到要求 ErrorCode_PayRenewTimeErr ErrorCode = 3702 // 续费时间没达到要求
ErrorCode_PayOrderCompleted ErrorCode = 3703 // 订单已完成
// worldtask // worldtask
ErrorCode_WorldtaskFinish ErrorCode = 3801 //任务完成失败 ErrorCode_WorldtaskFinish ErrorCode = 3801 //任务完成失败
ErrorCode_WorldtaskLvNotEnough ErrorCode = 3802 //等级不满足 ErrorCode_WorldtaskLvNotEnough ErrorCode = 3802 //等级不满足
@ -515,6 +516,7 @@ var (
3602: "GrowtaskAdvReceive", 3602: "GrowtaskAdvReceive",
3701: "PayBuyNumNotEnough", 3701: "PayBuyNumNotEnough",
3702: "PayRenewTimeErr", 3702: "PayRenewTimeErr",
3703: "PayOrderCompleted",
3801: "WorldtaskFinish", 3801: "WorldtaskFinish",
3802: "WorldtaskLvNotEnough", 3802: "WorldtaskLvNotEnough",
3803: "WorldtaskNoAccept", 3803: "WorldtaskNoAccept",
@ -749,6 +751,7 @@ var (
"GrowtaskAdvReceive": 3602, "GrowtaskAdvReceive": 3602,
"PayBuyNumNotEnough": 3701, "PayBuyNumNotEnough": 3701,
"PayRenewTimeErr": 3702, "PayRenewTimeErr": 3702,
"PayOrderCompleted": 3703,
"WorldtaskFinish": 3801, "WorldtaskFinish": 3801,
"WorldtaskLvNotEnough": 3802, "WorldtaskLvNotEnough": 3802,
"WorldtaskNoAccept": 3803, "WorldtaskNoAccept": 3803,
@ -790,7 +793,7 @@ var File_errorcode_proto protoreflect.FileDescriptor
var file_errorcode_proto_rawDesc = []byte{ var file_errorcode_proto_rawDesc = []byte{
0x0a, 0x0f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x0a, 0x0f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x2a, 0xb2, 0x29, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x6f, 0x2a, 0xca, 0x29, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12,
0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d,
0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x10, 0x0a, 0x12, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x10, 0x0a, 0x12,
0x1b, 0x0a, 0x17, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x1b, 0x0a, 0x17, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
@ -1109,20 +1112,21 @@ var file_errorcode_proto_rawDesc = []byte{
0x73, 0x6b, 0x41, 0x64, 0x76, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x10, 0x92, 0x1c, 0x12, 0x73, 0x6b, 0x41, 0x64, 0x76, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x10, 0x92, 0x1c, 0x12,
0x17, 0x0a, 0x12, 0x50, 0x61, 0x79, 0x42, 0x75, 0x79, 0x4e, 0x75, 0x6d, 0x4e, 0x6f, 0x74, 0x45, 0x17, 0x0a, 0x12, 0x50, 0x61, 0x79, 0x42, 0x75, 0x79, 0x4e, 0x75, 0x6d, 0x4e, 0x6f, 0x74, 0x45,
0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xf5, 0x1c, 0x12, 0x14, 0x0a, 0x0f, 0x50, 0x61, 0x79, 0x52, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xf5, 0x1c, 0x12, 0x14, 0x0a, 0x0f, 0x50, 0x61, 0x79, 0x52,
0x65, 0x6e, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x72, 0x72, 0x10, 0xf6, 0x1c, 0x12, 0x14, 0x65, 0x6e, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x72, 0x72, 0x10, 0xf6, 0x1c, 0x12, 0x16,
0x0a, 0x0f, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x0a, 0x11, 0x50, 0x61, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65,
0x68, 0x10, 0xd9, 0x1d, 0x12, 0x19, 0x0a, 0x14, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x74, 0x65, 0x64, 0x10, 0xf7, 0x1c, 0x12, 0x14, 0x0a, 0x0f, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74,
0x6b, 0x4c, 0x76, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xda, 0x1d, 0x12, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x10, 0xd9, 0x1d, 0x12, 0x19, 0x0a, 0x14,
0x16, 0x0a, 0x11, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x41, 0x63, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x4c, 0x76, 0x4e, 0x6f, 0x74, 0x45, 0x6e,
0x63, 0x65, 0x70, 0x74, 0x10, 0xdb, 0x1d, 0x12, 0x18, 0x0a, 0x13, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xda, 0x1d, 0x12, 0x16, 0x0a, 0x11, 0x57, 0x6f, 0x72, 0x6c, 0x64,
0x74, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0xdc, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x10, 0xdb, 0x1d, 0x12,
0x1d, 0x12, 0x15, 0x0a, 0x10, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x18, 0x0a, 0x13, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x43, 0x6f,
0x6e, 0x69, 0x68, 0x65, 0x64, 0x10, 0xdd, 0x1d, 0x12, 0x1c, 0x0a, 0x17, 0x57, 0x6f, 0x72, 0x6c, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0xdc, 0x1d, 0x12, 0x15, 0x0a, 0x10, 0x57, 0x6f, 0x72,
0x64, 0x74, 0x61, 0x73, 0x6b, 0x4c, 0x61, 0x73, 0x74, 0x55, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x68, 0x65, 0x64, 0x10, 0xdd, 0x1d,
0x68, 0x65, 0x64, 0x10, 0xde, 0x1d, 0x12, 0x1e, 0x0a, 0x19, 0x41, 0x63, 0x61, 0x64, 0x65, 0x6d, 0x12, 0x1c, 0x0a, 0x17, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x4c, 0x61, 0x73,
0x79, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x74, 0x55, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xde, 0x1d, 0x12, 0x1e,
0x61, 0x73, 0x6b, 0x10, 0xbd, 0x1e, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x0a, 0x19, 0x41, 0x63, 0x61, 0x64, 0x65, 0x6d, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x43,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x10, 0xbd, 0x1e, 0x42, 0x06,
0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
} }
var ( var (

View File

@ -377,7 +377,7 @@ type PayDeliveryReq struct {
Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid"` Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid"`
Orderid string `protobuf:"bytes,2,opt,name=orderid,proto3" json:"orderid"` Orderid string `protobuf:"bytes,2,opt,name=orderid,proto3" json:"orderid"`
Productid string `protobuf:"bytes,3,opt,name=productid,proto3" json:"productid"` Productid string `protobuf:"bytes,3,opt,name=productid,proto3" json:"productid"`
Price float32 `protobuf:"fixed32,4,opt,name=price,proto3" json:"price"` Price int32 `protobuf:"varint,4,opt,name=price,proto3" json:"price"`
Amount int32 `protobuf:"varint,5,opt,name=amount,proto3" json:"amount"` Amount int32 `protobuf:"varint,5,opt,name=amount,proto3" json:"amount"`
} }
@ -434,7 +434,7 @@ func (x *PayDeliveryReq) GetProductid() string {
return "" return ""
} }
func (x *PayDeliveryReq) GetPrice() float32 { func (x *PayDeliveryReq) GetPrice() int32 {
if x != nil { if x != nil {
return x.Price return x.Price
} }
@ -454,7 +454,7 @@ type PayDeliveryResp struct {
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
Code ErrorCode `protobuf:"varint,1,opt,name=code,proto3,enum=ErrorCode" json:"code"` Code ErrorCode `protobuf:"varint,1,opt,name=code,proto3,enum=ErrorCode" json:"s"` //头像
Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg"` Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg"`
Data string `protobuf:"bytes,3,opt,name=data,proto3" json:"data"` Data string `protobuf:"bytes,3,opt,name=data,proto3" json:"data"`
} }
@ -548,7 +548,7 @@ var file_pay_pay_msg_proto_rawDesc = []byte{
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x64, 0x12, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x64, 0x12,
0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01,
0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x64, 0x12, 0x14, 0x0a,
0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x70, 0x72,
0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20,
0x01, 0x28, 0x05, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x57, 0x0a, 0x0f, 0x50, 0x01, 0x28, 0x05, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x57, 0x0a, 0x0f, 0x50,
0x61, 0x79, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x61, 0x79, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e,

View File

@ -8,6 +8,7 @@ import (
"go_dreamfactory/modules/battle" "go_dreamfactory/modules/battle"
"go_dreamfactory/modules/chat" "go_dreamfactory/modules/chat"
"go_dreamfactory/modules/combat" "go_dreamfactory/modules/combat"
"go_dreamfactory/modules/enchant"
"go_dreamfactory/modules/equipment" "go_dreamfactory/modules/equipment"
"go_dreamfactory/modules/forum" "go_dreamfactory/modules/forum"
"go_dreamfactory/modules/friend" "go_dreamfactory/modules/friend"
@ -106,6 +107,7 @@ func main() {
academy.NewModule(), academy.NewModule(),
reddot.NewModule(), reddot.NewModule(),
combat.NewModule(), combat.NewModule(),
enchant.NewModule(),
) )
} }

View File

@ -25,8 +25,8 @@ func (*GameLibraryHistoryData) GetTypeId() int32 {
func (_v *GameLibraryHistoryData)Deserialize(_buf map[string]interface{}) (err error) { func (_v *GameLibraryHistoryData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; if _v.Histroy, _ok_ = _buf["histroy"].(string); !_ok_ { err = errors.New("histroy error"); return } } { var _ok_ bool; if _v.Histroy, _ok_ = _buf["histroy"].(string); !_ok_ { err = errors.New("histroy error"); return } }
{ var _ok_ bool; if _v.Name, _ok_ = _buf["name"].(string); !_ok_ { err = errors.New("name error"); return } } {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["name"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Name error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Name, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{ var _ok_ bool; if _v.Txt, _ok_ = _buf["txt"].(string); !_ok_ { err = errors.New("txt error"); return } } {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["txt"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Txt error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Txt, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{ {
var _arr_ []interface{} var _arr_ []interface{}
var _ok_ bool var _ok_ bool