package model import ( "leafstalk/otherutils/deepcopy" "strconv" "time" "xorm.io/xorm" ) // 0:未赠送 1:已赠送 2:已领取 const ( SendFlag_Unsent = 0 SendFlag_Sent = 1 SendFlag_Received = 2 ) // // 好友状态 // type FriendStatus struct { // SendFlag int64 `json:"SendFlag"` // 赠送的体力的标志位 0:未赠送 1:已赠送 // RcvFlag int64 `json:"RcvFlag"` // 赠送的体力的标志位 0:未赠送 1:已赠送 2:已领取 // // LastTs int64 `json:"lastTs"` //最后收发的时间 // } // 申请列表 // type FriendRequestItem struct { // Requester int64 `json:"requester"` // 申请人 // CreateTs int64 `json:"createTs"` // 申请时间 // } // 玩家好友数据 type FriendPlayer struct { Id int64 // id PlayerId int64 `xorm:"BIGINT index 'playerid'"` // 玩家ID Friends map[int64]struct{} `xorm:"-"` // 好友 Requests map[int64]int64 `xorm:"-"` // 好友申请 Approvals map[int64]int64 `xorm:"-"` // 好友审核 Gives map[int64]struct{} `xorm:"Text json 'gives'"` // 已赠送给谁 Receives map[int64]int `xorm:"Text json 'receives'"` // 领取状态 LastGiveTs int64 `xorm:"BIGINT 'lastGiveTs'"` // 最后赠送的时间 CreatedAt int64 `xorm:"BIGINT 'createdat'"` } func (m FriendPlayer) TableName() string { return "friend_player" } // 需要保存的数据需确保在这里能复制到new1 中 // // func (m *FriendPlayer) DeepCopy() interface{} { // new1 := new(FriendPlayer) // *new1 = *m // // return new1 // } func (m *FriendPlayer) QueryExist(eng *xorm.Engine) (bool, error) { player := new(FriendPlayer) player.PlayerId = m.PlayerId return eng.Exist(player) } func (m *FriendPlayer) UpdateDB(eng *xorm.Engine) (int64, error) { return eng.Where("playerid=?", m.PlayerId).AllCols().Update(m) } func (m *FriendPlayer) GetUniqueKey() string { return strconv.FormatInt(m.PlayerId, 10) } func CopyFriend(old *FriendPlayer) *FriendPlayer { nu := deepcopy.MustCopy(old).(*FriendPlayer) return nu } type FriendRelation struct { Id int64 UserId int64 `xorm:"index notnull 'userId'"` FriendId int64 `xorm:"index notnull 'friendId'"` CreatedAt int64 `xorm:"created"` // Status int `xorm:"tinyint(1) notnull comment('0-待确认 1-已好友 2-已拉黑')"` // Group string `xorm:"varchar(20) comment('好友分组')"` // UpdatedAt int64 `xorm:"updated"` } func (m *FriendRelation) TableName() string { return "friend_relation" } // 好友申请表 type FriendRequest struct { Id int64 Requester int64 `xorm:"index notnull 'requester'"` Recipient int64 `xorm:"index notnull 'recipient'"` CreatedAt time.Time `xorm:"created"` // Status int `xorm:"tinyint(1) notnull comment('0-待处理 1-已接受 2-已拒绝')"` // Message string `xorm:"varchar(255) comment('申请留言')"` // ProcessedAt time.Time `xorm:"comment('处理时间')"` } func (m *FriendRequest) TableName() string { return "friend_request" } // TableName 表名 // func (m Friend) TableName() string { // return "friend" // } // 好友基础表|Vertical-FriendBase exported from 好友相关配置.xlsx type FriendBase struct { FriendMax int64 `json:"FriendMax"` // 好友上限 GiveStamina int64 `json:"GiveStamina"` // 体力单次赠送值/体力单次获得值 GiveStaminaNumMax int64 `json:"GiveStaminaNumMax"` // 每天赠送体力次数上限 GetStaminaNumMax int64 `json:"GetStaminaNumMax"` // 每日接收体力次数上限 FriendApplyTs int64 `json:"FriendApplyTs"` // 好友申请有效时间 /天 FriendRefNum int64 `json:"FriendRefNum"` // 好友添加刷新人数 /个 }