99 lines
2.1 KiB
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
|
|
}
|