game_sync/model/friendapply.go

99 lines
2.1 KiB
Go

package model
import (
"github.com/globalsign/mgo/bson"
"mongo.games.com/goserver/core/logger"
"time"
)
type FriendApply struct {
Id bson.ObjectId `bson:"_id"`
Snid int32
ApplySnids []*FriendApplySnid
}
type FriendApplySnid struct {
SnId int32
Name string
Head int32
CreateTs int64
HeadUrl string
RoleId int32
}
type FriendApplyRet struct {
FA *FriendApply
}
type FriendApplyByKey struct {
Platform string
SnId int32
FA *FriendApply
}
func NewFriendApply(snid int32) *FriendApply {
f := &FriendApply{Id: bson.NewObjectId()}
f.Snid = snid
f.ApplySnids = []*FriendApplySnid{}
return f
}
func UpsertFriendApply(platform string, snid int32, fa *FriendApply) *FriendApply {
if rpcCli == nil {
logger.Logger.Error("model.UpsertFriendApply rpcCli == nil")
return nil
}
if fa.ApplySnids == nil || len(fa.ApplySnids) == 0 {
DelFriendApply(platform, snid)
return nil
}
args := &FriendApplyByKey{
Platform: platform,
SnId: snid,
FA: fa,
}
var ret *FriendApplyRet
err := rpcCli.CallWithTimeout("FriendApplySvc.UpsertFriendApply", args, &ret, time.Second*30)
if err != nil {
logger.Logger.Warn("UpsertFriendApply error:", err)
return nil
}
return ret.FA
}
func QueryFriendApplyBySnid(platform string, snid int32) (fa *FriendApply, err error) {
if rpcCli == nil {
logger.Logger.Error("model.QueryFriendApplyBySnid rpcCli == nil")
return
}
args := &FriendApplyByKey{
Platform: platform,
SnId: snid,
}
var ret *FriendApplyRet
err = rpcCli.CallWithTimeout("FriendApplySvc.QueryFriendApplyByKey", args, &ret, time.Second*30)
if err != nil {
logger.Logger.Warn("QueryFriendApplyBySnid error:", err)
}
if ret != nil {
fa = ret.FA
}
return
}
func DelFriendApply(platform string, snid int32) {
if rpcCli == nil {
logger.Logger.Error("model.UpsertFriendApply rpcCli == nil")
return
}
args := &FriendApplyByKey{
Platform: platform,
SnId: snid,
}
err := rpcCli.CallWithTimeout("FriendApplySvc.DelFriendApply", args, nil, time.Second*30)
if err != nil {
logger.Logger.Warn("DelFriendApply error:", err)
}
return
}