feat(friend): 添加好友系统功能实现

完善好友管理功能,包括添加好友、回复好友请求、删除好友等操作,
同时优化了相关数据结构和接口定义。

BREAKING CHANGE: 调整了黑名单数据结构,将BlackInfo从结构体改为uint32数组
```
This commit is contained in:
昔念
2026-01-20 06:15:55 +08:00
parent fcb55d3a46
commit 07d25b3e96
15 changed files with 255 additions and 82 deletions

View File

@@ -0,0 +1,38 @@
package model
import (
"blazing/cool"
)
// 表名常量
const TableNamePlayerFriend = "player_friend"
// Friend 对应数据库表 player_cdk_log用于记录CDK兑换日志
type Friend struct {
Base
PlayerID uint64 `gorm:"not null;index:idx_player_friend_by_player_id;comment:'所属玩家ID'" json:"player_id"`
Friend []uint32 `gorm:"type:jsonb; comment:'好友列表'" json:"friend"`
Black []uint32 `gorm:"type:jsonb; comment:'黑名单列表'" json:"black"`
}
// TableName 返回表名
func (*Friend) TableName() string {
return TableNamePlayerFriend
}
// GroupName 返回表组名
func (*Friend) GroupName() string {
return "default"
}
// NewFriend 创建一个新的CDK记录
func NewFriend() *Friend {
return &Friend{
Base: *NewBase(),
}
}
// init 程序启动时自动创建表
func init() {
cool.CreateTable(&Friend{})
}

View File

@@ -13,7 +13,7 @@ type Title struct {
PlayerID uint64 `gorm:"not null;index:idx_player_title_by_player_id;comment:'所属玩家ID'" json:"player_id"`
//TitleID uint32 `gorm:"not null;comment:'称号ID'" json:"title_id"`
//可用称号
AvailableTitle []uint32 `gorm:"type:json; comment:'可用称号'" json:"available_title"`
AvailableTitle []uint32 `gorm:"type:jsonb; comment:'可用称号'" json:"available_title"`
}
// TableName 返回表名