package anchorsnipemodel import ( "active/internal/model/broadcast" "git.jiaxianghudong.com/go/logs" "git.jiaxianghudong.com/webs/pkg/xgorm" ) const Blocklist = "blocklist" // 活动开启返回 type ActiveDetailRsp struct { StartTimestamp int64 `json:"start_timestamp"` // 活动开始时间戳(秒) EndTimestamp int64 `json:"end_timestamp"` // 活动结束时间戳(秒) } // 主播上线/进入游戏 上报数据,更新配置 type ReportAnchorReq struct { ActType int32 `json:"act_type" form:"act_type"` // 上报行为,0-上线,1-进入游戏 Beans int64 `json:"beans" form:"beans"` // 上线-豆豆数量 GameID int32 `json:"game_id" form:"game_id"` // 进入游戏-进入的哪个游戏id PlayMode string `json:"play_mode" form:"play_mode"` // 游戏玩法 RoomType int64 `json:"room_type" form:"room_type"` // 房间类型 } // 主播配置 type AnchorData struct { UserID int32 `json:"user_id" form:"user_id"` // 主播的游戏id Beans int64 `json:"beans" form:"beans"` // 豆豆数 GameID int32 `json:"game_id" form:"game_id"` // 主播直播的游戏 PlayMode string `json:"play_mode" form:"play_mode"` // 主播直播的游戏玩法 IsOnline int32 `json:"is_online" form:"is_online"` // 是否在直播 Starttime int32 `json:"starttime" form:"starttime"` // 开播时间戳(秒) Endtime int32 `json:"endtime" form:"endtime"` // 下播时间戳(秒) RoomType int64 `json:"room_type" form:"room_type"` // 房间类型 } // 返回狙击主播列表 type SnipeAnchorlistRsp struct { RemainCt int32 `json:"remain_ct" form:"remain_ct"` // 剩余次数 TotalCt int32 `json:"total_ct" form:"total_ct"` // 总次数 FailAward int32 `json:"fail_award" form:"fail_award"` // 狙击失败奖励,现在只有豆豆 IsBlock bool `json:"is_block" form:"is_block"` // 是否被拉黑 Anchors []AnchorData `json:"anchors" form:"anchors"` // 主播配置列表 } // 游戏结果玩家数据 type UserGameData struct { UserID int32 `json:"user_id" form:"user_id"` // 玩家id GameRes int32 `json:"game_res" form:"game_res"` // 玩家输赢结果 BeansWin int64 `json:"beans_win" form:"beans_win"` // 赢取的豆豆数,赢为正,输为负 Identity int32 `json:"identity" form:"identity"` // 身份,客户端自己约定 } // 请求狙击排行榜 type DayRanklistReq struct { AnUserID int32 `json:"an_userid" form:"an_userid"` // 主播的游戏id } // 狙击者数据 type SniperData struct { UserID int32 `json:"user_id" form:"user_id"` // 玩家id SnipeCount int32 `json:"snipe_count" form:"snipe_count"` // 狙击次数 WinBeans int64 `json:"win_beans" form:"win_beans"` // 狙击金币 } // 返回日榜家数据 type DayRanklistRsp struct { AnUserID int32 `json:"an_userid" form:"an_userid"` // 主播的游戏id SnipedCount int32 `json:"sniped_count" form:"sniped_count"` // 被狙击次数 DefendSuccess int32 `json:"defend_success" form:"defend_success"` // 防守成功次数 DefendFail int32 `json:"defend_fail" form:"defend_fail"` // 防守失败次数 SniperList []SniperData `json:"sniper_list" form:"sniper_list"` // 狙击者数据 } // 请求每天对局记录 type DayRecordsReq struct { AnUserID int32 `json:"an_userid" form:"an_userid"` // 主播的游戏id } // 对局记录 type SnipeRecord struct { RoomType int32 `json:"room_type" form:"room_type"` // 游戏场次 GameID int32 `json:"game_id" form:"game_id"` // 主播直播的游戏 PlayMode string `json:"play_mode" form:"play_mode"` // 主播直播的游戏玩法 Endtime int32 `json:"endtime" form:"endtime"` // 结束时间戳(秒) GameRes int32 `json:"game_res" form:"game_res"` // 玩家输赢结果 0-失败,1-胜利,2-平局 LoseBeans int64 `json:"lose_beans" form:"lose_beans"` // 主播输掉的豆豆数,被褥豆豆数 Identity int32 `json:"identity" form:"identity"` // 身份,客户端自己约定 Snipers []UserGameData `json:"sniper" form:"sniper"` // 狙击者数据 } // 返回每天对局记录 type DayRecordsRsp struct { Records []SnipeRecord `json:"records" form:"records"` // 对局记录 } // 主播拉黑玩家 type BlockUserReq struct { ChallengerID uint32 `json:"challenger_id" form:"challenger_id"` // 挑战者ID } // 拉黑列表mysql数据 type BlockUserData struct { BlockId uint32 `json:"blockid" gorm:"column:blockid"` // 被拉黑玩家id AnchorId uint32 `json:"anchorid" gorm:"column:anchorid"` // 主播id } // 保存拉黑数据 func (this *BlockUserData) Save() { xdb := xgorm.NewConn(broadcast.AnchorGorm) if err := xdb.Table(Blocklist).Create(this).Error; err != nil { logs.Errorf("save blockUserData:%+v, err=%v", *this, err) return } logs.Infof("user beblock,blickid:%d,anchorid:%v", this.BlockId, this.AnchorId) } // 是否被拉黑 func IsBlock(userid uint32) bool { xdb := xgorm.NewConn(broadcast.AnchorGorm) count := int64(0) xdb.Table(Blocklist).Select("blockid").Where("blockid = ?", userid).Count(&count) if count > 0 { return true } return false } //****************************************服务器接口**************************************** type ParamConfigReq struct { UserID int32 `json:"user_id" form:"user_id"` // 玩家ID } // 返回配置给游戏服务器 type ParamsConfigRsp struct { UserID int32 `json:"user_id" form:"user_id"` // 玩家ID RemainCt int32 `json:"remain_ct" form:"remain_ct"` // 剩余次数 MaxCount int32 `json:"max_count" form:"max_count"` // 狙击最大次数 FailBeans int32 `json:"fail_beans" form:"fail_beans"` // 狙击失败奖励的豆豆数 } // 上报游戏结果数据 type ReportGameResultReq struct { RoomType int32 `json:"room_type" form:"room_type"` // 游戏场次 Snipers []int32 `json:"snipers" form:"snipers"` // 参与者ID UsersData []UserGameData `json:"users_data" form:"users_data"` // 玩家列表 } //****************************************服务器接口****************************************