161 lines
4.5 KiB
Go
161 lines
4.5 KiB
Go
package model
|
|
|
|
import (
|
|
"errors"
|
|
"time"
|
|
|
|
"github.com/globalsign/mgo/bson"
|
|
"mongo.games.com/goserver/core/logger"
|
|
)
|
|
|
|
var (
|
|
DbShopDBName = "log"
|
|
DbShopCollName = "log_dbshop"
|
|
)
|
|
|
|
type ItemInfo struct {
|
|
ItemId int32
|
|
ItemNum int64
|
|
}
|
|
type DbShop struct {
|
|
LogId bson.ObjectId `bson:"_id"`
|
|
Platform string //平台
|
|
PageId int32
|
|
ShopId int32 //商品id
|
|
ShopName string //商品名称
|
|
SnId int32 //兑换玩家
|
|
Count int32 //兑换数量
|
|
Amount []int32 //0.金币 1.钻石 2.经验 获得
|
|
ItemInfo []ItemInfo //道具 获得
|
|
Consume int32 //消费类型 1.金币 2.钻石 3.现金
|
|
ConsumeNum int32 //消费金额
|
|
ConsumeType string //消费类型符号
|
|
ConsumeTypeNum int32 //消费类型符号对应金额
|
|
GainWay int32
|
|
State int32 //状态 0.默认 1.成功 2.失败 3.未发货准备发货
|
|
UserName string //姓名
|
|
OtherParams []int32 //额外参数
|
|
UserTel string //手机号
|
|
Remark string //备注信息
|
|
Operator string //操作人
|
|
CreateTs time.Time //订单生成时间
|
|
OpTs time.Time //订单最后操作时间
|
|
Ts int64
|
|
}
|
|
type DbShopLogArgs struct {
|
|
Log *DbShop
|
|
}
|
|
|
|
func NewDbShop(platform string, pageId int32, amount []int32, consumeType string, consumeTypeNum, consume, consumeNum, gainWay int32,
|
|
itemInfo []ItemInfo, shopId int32, shopName string, snId, state int32, remark string, other []int32) *DbShop {
|
|
t := time.Now()
|
|
return &DbShop{
|
|
LogId: bson.NewObjectId(),
|
|
Platform: platform,
|
|
PageId: pageId,
|
|
Amount: amount,
|
|
Consume: consume,
|
|
ConsumeNum: consumeNum,
|
|
ConsumeType: consumeType,
|
|
ConsumeTypeNum: consumeTypeNum,
|
|
GainWay: gainWay,
|
|
ItemInfo: itemInfo,
|
|
ShopId: shopId,
|
|
ShopName: shopName,
|
|
SnId: snId,
|
|
Count: 1,
|
|
State: state,
|
|
UserName: "",
|
|
UserTel: "",
|
|
Remark: remark,
|
|
Operator: "sys",
|
|
CreateTs: t,
|
|
OpTs: t,
|
|
Ts: t.Unix(),
|
|
OtherParams: other,
|
|
}
|
|
}
|
|
func InsertDbShopLog(log *DbShop) (err error) {
|
|
if rpcCli == nil {
|
|
logger.Logger.Error("model.InsertDbShopLog rpcCli == nil")
|
|
return
|
|
}
|
|
var ret bool
|
|
args := &DbShopLogArgs{
|
|
Log: log,
|
|
}
|
|
err = rpcCli.CallWithTimeout("DbShopLogSvc.InsertDbShopLog", args, &ret, time.Second*30)
|
|
if err != nil {
|
|
logger.Logger.Warn("InsertDbShopLog error:", err)
|
|
return
|
|
}
|
|
return
|
|
}
|
|
func GetDbShopLog(platform string, loginId string) *DbShop {
|
|
if rpcCli == nil {
|
|
logger.Logger.Error("model.GetDbShopLog rpcCli == nil")
|
|
return nil
|
|
}
|
|
var ret DbShop
|
|
args := &DbShopLogArgs{
|
|
Log: &DbShop{LogId: bson.ObjectIdHex(loginId), Platform: platform},
|
|
}
|
|
err := rpcCli.CallWithTimeout("DbShopLogSvc.GetDbShopLog", args, &ret, time.Second*30)
|
|
if err != nil {
|
|
logger.Logger.Warn("GetDbShopLog error:", err)
|
|
return nil
|
|
}
|
|
return &ret
|
|
}
|
|
func UpdateDbShopState(platform string, loginId string, state int32) error {
|
|
if rpcCli == nil {
|
|
logger.Logger.Error("model.UpdateDbShopState rpcCli == nil")
|
|
return errors.New(" rpcCli == nil")
|
|
}
|
|
var ret bool
|
|
args := &DbShopLogArgs{
|
|
Log: &DbShop{LogId: bson.ObjectIdHex(loginId), Platform: platform, State: state},
|
|
}
|
|
err := rpcCli.CallWithTimeout("DbShopLogSvc.UpdateDbShopState", args, &ret, time.Second*30)
|
|
if err != nil {
|
|
logger.Logger.Warn("UpdateDbShopState error:", err)
|
|
return err
|
|
}
|
|
if !ret {
|
|
return errors.New("update fail " + loginId)
|
|
}
|
|
return nil
|
|
}
|
|
func GetDbShopLogsByPage(platform string, snid, pageId int32) []*DbShop {
|
|
if rpcCli == nil {
|
|
logger.Logger.Error("model.GetDbShopLogsByPage rpcCli == nil")
|
|
return nil
|
|
}
|
|
var ret []*DbShop
|
|
args := &DbShopLogArgs{
|
|
Log: &DbShop{PageId: pageId, Platform: platform, SnId: snid},
|
|
}
|
|
err := rpcCli.CallWithTimeout("DbShopLogSvc.GetDbShopLogsByPage", args, &ret, time.Second*30)
|
|
if err != nil {
|
|
logger.Logger.Warn("GetDbShopLogsByPage error:", err)
|
|
return nil
|
|
}
|
|
return ret
|
|
}
|
|
func GetDbShopLogsByState(platform string, snid int32) []*DbShop {
|
|
if rpcCli == nil {
|
|
logger.Logger.Error("model.GetDbShopLogsByState rpcCli == nil")
|
|
return nil
|
|
}
|
|
var ret []*DbShop
|
|
args := &DbShopLogArgs{
|
|
Log: &DbShop{State: 3, Platform: platform, SnId: snid},
|
|
}
|
|
err := rpcCli.CallWithTimeout("DbShopLogSvc.GetDbShopLogsByState", args, &ret, time.Second*30)
|
|
if err != nil {
|
|
logger.Logger.Warn("GetDbShopLogsByState error:", err)
|
|
return nil
|
|
}
|
|
return ret
|
|
}
|