185 lines
4.4 KiB
Go
185 lines
4.4 KiB
Go
package block
|
||
|
||
import (
|
||
"time"
|
||
)
|
||
|
||
// BlockStatus 封禁状态 0. 未封禁 1. 永久封禁 2. 限时封禁
|
||
type BlockStatus uint8
|
||
|
||
const (
|
||
// BlockStatusFalse 未封禁
|
||
BlockStatusFalse BlockStatus = iota
|
||
// BlockStatusForever 永久封禁
|
||
BlockStatusForever
|
||
// BlockStatusLimit 限时封禁
|
||
BlockStatusLimit
|
||
// BlockStatusCredit 小黑屋封禁
|
||
BlockStatusCredit
|
||
)
|
||
|
||
// BlockSource 封禁来源 1. 小黑屋(小黑屋和manager后台封禁) 2. 系统封禁(反作弊及监控系统上报) 3.解封 (所有后台,用户前台自助的解封)
|
||
type BlockSource uint8
|
||
|
||
const (
|
||
// BlockSourceCredit 小黑屋封禁
|
||
BlockSourceCredit BlockSource = iota + 1
|
||
// BlockSourceSys 系统封禁
|
||
BlockSourceSys
|
||
// BlockSourceRemove 解封
|
||
BlockSourceRemove
|
||
)
|
||
|
||
// String .
|
||
func (b BlockSource) String() string {
|
||
switch b {
|
||
case BlockSourceCredit:
|
||
return "小黑屋封禁"
|
||
case BlockSourceSys:
|
||
return "系统封禁"
|
||
case BlockSourceRemove:
|
||
return "解封"
|
||
default:
|
||
return ""
|
||
}
|
||
}
|
||
|
||
const (
|
||
// BlockLogBizID 用户审核日志
|
||
BlockLogBizID = 122
|
||
// BlockJOBManagerID blockjob manager uid
|
||
BlockJOBManagerID = 1493
|
||
// BlockJOBManagerName blockjob manager name
|
||
BlockJOBManagerName = "blockjob"
|
||
)
|
||
|
||
// BlockArea 封禁业务
|
||
type BlockArea uint8
|
||
|
||
// const .
|
||
const (
|
||
BlockAreaNone BlockArea = iota
|
||
BlockAreaReply
|
||
BlockAreaDanmaku
|
||
BlockAreaMessage
|
||
BlockAreaTag
|
||
BlockAreaProfile // 个人资料
|
||
BlockAreaArchive
|
||
BlockAreaMusic
|
||
BlockAreaArticle
|
||
BlockAreaSpaceBanner // 空间头图
|
||
BlockAreaDynamic // 动态
|
||
BlockAreaAlbum // 相册
|
||
BlockAreaQuickVideo //小视频
|
||
)
|
||
|
||
// String .
|
||
func (b BlockArea) String() string {
|
||
switch b {
|
||
case BlockAreaReply:
|
||
return "评论"
|
||
case BlockAreaDanmaku:
|
||
return "弹幕"
|
||
case BlockAreaMessage:
|
||
return "私信"
|
||
case BlockAreaTag:
|
||
return "标签"
|
||
case BlockAreaProfile:
|
||
return "个人资料"
|
||
case BlockAreaArchive:
|
||
return "投稿"
|
||
case BlockAreaMusic:
|
||
return "音频"
|
||
case BlockAreaArticle:
|
||
return "专栏"
|
||
case BlockAreaSpaceBanner:
|
||
return "空间头图"
|
||
case BlockAreaDynamic:
|
||
return "动态"
|
||
case BlockAreaAlbum:
|
||
return "相册"
|
||
case BlockAreaQuickVideo:
|
||
return "小视频"
|
||
default:
|
||
return ""
|
||
}
|
||
}
|
||
|
||
// BlockAction .
|
||
type BlockAction uint8
|
||
|
||
const (
|
||
// BlockActionLimit 限时封禁
|
||
BlockActionLimit BlockAction = iota + 1
|
||
// BlockActionForever 永久封禁
|
||
BlockActionForever
|
||
// BlockActionAdminRemove 后台解封
|
||
BlockActionAdminRemove
|
||
// BlockActionSelfRemove 自助解封
|
||
BlockActionSelfRemove
|
||
)
|
||
|
||
// String .
|
||
func (b BlockAction) String() string {
|
||
switch b {
|
||
case BlockActionLimit:
|
||
return "限时封禁"
|
||
case BlockActionForever:
|
||
return "永久封禁"
|
||
case BlockActionAdminRemove:
|
||
return "后台解封"
|
||
case BlockActionSelfRemove:
|
||
return "自动解封"
|
||
default:
|
||
return ""
|
||
}
|
||
}
|
||
|
||
// BlockInfo 封禁信息
|
||
type BlockInfo struct {
|
||
MID int64 `json:"mid"`
|
||
BlockStatus BlockStatus `json:"block_status"` // blockStatus 封禁状态 0. 未封禁 1. 永久封禁 2. 限时封禁
|
||
// EndTime int64 `json:"end_time"` // 结束封禁时间 unix time 永久封禁为0
|
||
}
|
||
|
||
// ParseDB .
|
||
func (b *BlockInfo) ParseDB(data *DBUser) {
|
||
b.MID = data.MID
|
||
b.BlockStatus = data.Status
|
||
}
|
||
|
||
// ParseMC .
|
||
func (b *BlockInfo) ParseMC(data *MCBlockInfo, mid int64) {
|
||
b.MID = mid
|
||
b.BlockStatus = data.BlockStatus
|
||
}
|
||
|
||
// BlockHistory 封禁历史
|
||
type BlockHistory struct {
|
||
Area BlockArea `json:"type"`
|
||
Operator string `json:"operator"` // 操作人
|
||
Reason string `json:"reason"` // 封禁原因
|
||
Action BlockAction `json:"action"` // 操作类型
|
||
ActionTime int64 `json:"action_time"` // 操作时间
|
||
RemoveTime int64 `json:"remove_time"` // 解封时间
|
||
Comment string `json:"comment"`
|
||
}
|
||
|
||
// ParseDB .
|
||
func (b *BlockHistory) ParseDB(data *DBHistory) {
|
||
b.Area = data.Area
|
||
b.Operator = data.AdminName
|
||
b.Reason = data.Reason
|
||
b.Action = data.Action
|
||
b.ActionTime = data.StartTime.Unix()
|
||
b.RemoveTime = data.StartTime.Add(time.Second * time.Duration(data.Duration)).Unix()
|
||
b.Comment = data.Comment
|
||
}
|
||
|
||
// BlockMessage 通知消息体
|
||
type BlockMessage struct {
|
||
MID int64 `json:"mid"` // 用户mid
|
||
Area BlockArea `json:"area"` // BlockArea 封禁类型 1. 小黑屋(小黑屋和manager后台封禁) 2. 系统封禁(反作弊及监控系统上报) 3.解封 (所有后台,用户前台自助的解封)
|
||
Status BlockStatus `json:"status"` // blockStatus 封禁状态 0. 未封禁 1. 永久封禁 2. 限时封禁
|
||
}
|