game_sync/model/dbshoplog.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
}