Create & Init Project...

This commit is contained in:
2019-04-22 18:49:16 +08:00
commit fc4fa37393
25440 changed files with 4054998 additions and 0 deletions

View File

@@ -0,0 +1,43 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = [
"appeal.go",
"archive.go",
"blocked.go",
"credit.go",
"credit_state.go",
"jury.go",
"labour.go",
"manager.go",
"param.go",
"rpc.go",
],
importpath = "go-common/app/interface/main/credit/model",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//app/service/main/archive/model/archive:go_default_library",
"//library/time:go_default_library",
],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,73 @@
package model
import (
"go-common/library/time"
)
// Appeal state
const (
// StateCreate 用户刚创建申诉
StateCreate = 1
// StateReply 管理员回复,并且用户已读
StateReply = 2
// StateAdminClose 管理员关闭申诉
StateAdminClose = 3
// StateUserFinished 用户已解决申诉(评分)
StateUserFinished = 4
// StateTimeoutClose 超时关闭申诉
StateTimeoutClose = 5
// StateNoRead 管理员回复,用户未读
StateNoRead = 6
// StateUserClosed 用户直接关闭申诉
StateUserClosed = 7
// StateAdminFinished 管理员已通过申诉
StateAdminFinished = 8
// EventStateAdminReply 管理员回复
EventStateAdminReply = 1
// EventStateAdminNote 管理员回复并记录
EventStateAdminNote = 2
// EventStateUserReply 用户回复
EventStateUserReply = 3
// EventStateSystem 系统回复
EventStateSystem = 4
// appeal business
Business = 5
)
// Appeal info.
type Appeal struct {
ID int64 `json:"id"`
Oid int64 `json:"oid"`
Cid int64 `json:"cid"`
Mid int64 `json:"mid"`
Aid int64 `json:"aid"`
Tid int8 `json:"tid"`
Title string `json:"title"`
State int8 `json:"state"`
Visit int8 `json:"visit"`
QQ string `json:"qq"`
Email string `json:"email"`
Phone string `json:"phone"`
Pics string `json:"pics"`
Content string `json:"content"`
Description string `json:"description"`
Star int8 `json:"star"`
CTime time.Time `json:"ctime"`
MTime time.Time `json:"mtime"`
}
// IsOpen appeal open state.
func IsOpen(state int8) bool {
return state == StateCreate || state == StateReply || state == StateNoRead
}
// OpenedStates open get appeal
func OpenedStates() (states []int64) {
return []int64{StateCreate, StateReply, StateNoRead}
}
// ClosedStates get appeal
func ClosedStates() (states []int64) {
return []int64{StateAdminClose, StateUserFinished, StateTimeoutClose, StateUserClosed, StateAdminFinished}
}

View File

@@ -0,0 +1,10 @@
package model
import (
arcMDL "go-common/app/service/main/archive/model/archive"
)
// ArcVisible .
func ArcVisible(state int32) bool {
return state == arcMDL.StateOpen || state == arcMDL.StateOrange || state == arcMDL.StateForbidFixed
}

View File

@@ -0,0 +1,38 @@
package model
import "go-common/library/time"
// BlockedUserCard usr blocked info.
type BlockedUserCard struct {
UID int64 `json:"uid"`
Uname string `json:"uname"`
Face string `json:"face"`
BlockedSum int `json:"blockedSum"`
MoralBlockedSum int `json:"moralBlockedSum"`
MoralNum int `json:"moralNum"`
BlockedStatus int `json:"blockedStatus"`
BlockedForever bool `json:"blockedForever"`
BlockedRestDay int64 `json:"blockedRestDays"`
AnsWerStatus bool `json:"answerStatus"`
BlockedEndTime int64 `json:"blockedEndTime"`
}
// BlockedAnnouncement blocked publish info.
type BlockedAnnouncement struct {
ID int64 `json:"id"`
Title string `json:"title"`
SubTitle string `json:"subTitle"`
PublishStatus uint8 `json:"-"`
StickStatus uint8 `json:"stickStatus"`
Content string `json:"content"`
URL string `json:"url"`
Ptype int8 `json:"ptype"`
CTime time.Time `json:"ctime"`
MTime time.Time `json:"mtime"`
}
// AnnounceList announce list.
type AnnounceList struct {
List []*BlockedAnnouncement `json:"list"`
Count int64 `json:"count"`
}

View File

@@ -0,0 +1,217 @@
package model
import (
"fmt"
xtime "go-common/library/time"
)
// CreditInfo credit info.
type CreditInfo struct {
Mid int64 `json:"mid"`
Status int64 `json:"status"`
PunishType int64 `json:"blockedType"`
PunishEnd xtime.Time `json:"punishEnd"`
CTime xtime.Time `json:"-"`
MTime xtime.Time `json:"mtime"`
}
// BlockedInfo blocked case info.
type BlockedInfo struct {
ID int64 `json:"id"`
Uname string `json:"uname"`
Face string `json:"face"`
UID int64 `json:"uid"`
OriginTitle string `json:"originTitle"`
BlockedRemark string `json:"blockedRemark"`
OriginURL string `json:"originUrl"`
OriginContent string `json:"originContent,omitempty"`
OriginContentModify string `json:"originContentModify"`
OriginType int64 `json:"originType"`
OriginTypeName string `json:"originTypeName"`
PunishTitle string `json:"punishTitle"`
PunishTime xtime.Time `json:"punishTime"`
PunishType int64 `json:"punishType"`
PunishTypeName string `json:"punishTypeName"`
MoralNum int64 `json:"moralNum"`
BlockedDays int64 `json:"blockedDays"`
PublishStatus int64 `json:"publishStatus"`
BlockedType int64 `json:"blockedType"`
BlockedForever int64 `json:"blockedForever"`
ReasonType int64 `json:"reasonType"`
ReasonTypeName string `json:"reasonTypeName"`
OperatorName string `json:"operatorName"`
CaseID int64 `json:"caseId"`
PublishTime xtime.Time `json:"-"`
CTime xtime.Time `json:"ctime"`
MTime xtime.Time `json:"-"`
CommentSum int64 `json:"commentSum"`
OID int64 `json:"-"`
}
// BlockedPublish blocked publish info.
type BlockedPublish struct {
ID int64 `json:"id"`
Title string `json:"title"`
SubTitle string `json:"subTitle"`
PublishStatus int8 `json:"publishStatus"`
StickStatus int8 `json:"stickStatus"`
Content string `json:"content"`
CTime xtime.Time `json:"ctime"`
MTime xtime.Time `json:"mtime"`
URL string `json:"url"`
}
// BlockedCase blocked case info.
type BlockedCase struct {
ID int64 `json:"id"`
MID int64 `json:"mid"`
Status int8 `json:"status"`
StatusTitle string `json:"statusTitle,omitempty"`
OriginType int8 `json:"originType"`
ReasonType int8 `json:"reasonType"`
OriginContent string `json:"originContent"`
PunishResult int64 `json:"punishResult"`
PunishTitle string `json:"punishTitle,omitempty"`
JudgeType int8 `json:"judgeType"`
OriginURL string `json:"originUrl"`
BlockedDays int32 `json:"blockedDays"`
PutTotal int64 `json:"putTotal"`
VoteRule int64 `json:"voteRule"`
VoteBreak int64 `json:"voteBreak"`
VoteDelete int64 `json:"voteDelete"`
StartTime xtime.Time `json:"startTime"`
EndTime xtime.Time `json:"endTime"`
Operator string `json:"-"`
CTime xtime.Time `json:"ctime"`
MTime xtime.Time `json:"mtime"`
OriginTitle string `json:"originTitle"`
RelationID string `json:"relationId"`
Face string `json:"face"`
Uname string `json:"uname"`
Vote int8 `json:"vote"`
VoteTime xtime.Time `json:"voteTime,omitempty"`
ExpiredMillis int64 `json:"expiredMillis,omitempty"`
CaseType int8 `json:"case_type"`
}
// BlockedCaseVote blocked_case_vote.
type BlockedCaseVote struct {
ID int64 `json:"id"`
CID int64 `json:"cid"`
MID int64 `json:"mid"`
Vote int8 `json:"vote"`
CTime xtime.Time `json:"ctime"`
MTime xtime.Time `json:"mtime"`
Expired xtime.Time `json:"expired"`
}
// BlockedJury blocked jury info.
type BlockedJury struct {
ID int64 `json:"id"`
MID int64 `json:"mid"`
Status int8 `json:"status"`
Expired xtime.Time `json:"expired"`
InvalidReason int8 `json:"invalidReason"`
VoteTotal int64 `json:"voteTotal"`
CaseTotal int64 `json:"caseTotal"`
VoteRadio int64 `json:"voteRadio"`
CTime xtime.Time `json:"ctime"`
MTime xtime.Time `json:"mtime"`
VoteRight int64 `json:"voteRight"`
Black int8 `json:"black"`
}
// JuryRequirement jury requirement info.
type JuryRequirement struct {
Blocked bool `json:"blocked"`
Cert bool `json:"cert"`
Level bool `json:"level"`
Rule bool `json:"rule"`
}
//UserInfo jury interface
type UserInfo struct {
CaseTotal int64 `json:"caseTotal"`
Face string `json:"face"`
RestDays int64 `json:"restDays"`
RightRadio int64 `json:"rightRadio"`
Status int8 `json:"status"`
Uname string `json:"uname"`
}
// BlockedConfig config struct.
type BlockedConfig struct {
CaseGiveHours string `json:"caseGiveHours"`
CaseCheckHours string `json:"caseCheckHours"`
JuryVoteRadio string `json:"juryVoteRadio"`
CaseJudgeRadio string `json:"caseJudgeRadio"`
CaseVoteMin string `json:"caseVoteMin"`
}
// VoteInfo vote info.
type VoteInfo struct {
ID int64 `json:"id"`
MID int64 `json:"mid"`
Vote int8 `json:"vote"`
CID int64 `json:"cid"`
Expired xtime.Time `json:"expired"`
Mtime xtime.Time `json:"mtime"`
}
// CaseInfo struct
type CaseInfo struct {
EndTime xtime.Time `json:"endTime"`
Face string `json:"face"`
ID int64 `json:"id"`
OriginContent string `json:"originContent"`
OriginTitle string `json:"originTitle"`
OriginURL string `json:"originUrl"`
Status int8 `json:"status"`
UID int64 `json:"uid"`
Uname string `json:"uname"`
VoteBreak int64 `json:"voteBreak"`
VoteRule int64 `json:"voteRule"`
}
// Build set blocked title info.
func (bi *BlockedInfo) Build() {
bi.OriginTypeName = _originType[int8(bi.OriginType)]
bi.ReasonTypeName = _reasonType[int8(bi.ReasonType)]
bi.PunishTypeName = _punishType[int8(bi.PunishType)]
bi.PunishTitle = fmt.Sprintf("在%s中%s", bi.OriginTypeName, bi.ReasonTypeName)
}
// Build set blocked title info.
func (bc *BlockedCase) Build() {
bc.PunishTitle = fmt.Sprintf("在%s中%s", _originType[int8(bc.OriginType)], _reasonType[int8(bc.ReasonType)])
}
// CheckVote check vote.
func CheckVote(vote int8) (ok bool) {
if vote == VoteBanned || vote == VoteRule || vote == VoteAbstain || vote == VoteDel {
ok = true
}
return
}
// IsCaseTypePublic is case type public.
func IsCaseTypePublic(caseType int8) (ok bool) {
if caseType == JudeCaseTypePublic {
ok = true
}
return
}
// GantMedalID .
func (bj *BlockedJury) GantMedalID() int64 {
switch bj.CaseTotal {
case GuardMedalPointC:
return GuardMedalC
case GuardMedalPointB:
return GuardMedalB
case GuardMedalPointA:
return GuardMedalA
}
return GuardMedalNone
}

View File

@@ -0,0 +1,337 @@
package model
// const credit state
const (
// blocked_opinion
BlockedOpinionAttrOn = int8(1)
BlockedOPinionAttrOff = int8(0)
// blocked_info.block_type
PunishBlock = int8(0) // 系统封禁
PunishJury = int8(1) // 风纪仲裁
CreditStatusBlocked = -2
// blocked_info.punish_type
PunishTypeMoral = int8(1)
PunishTypeBlock = int8(2)
PunishTypeForever = int8(3)
// Publish type
PublishTypedef = int8(0)
PublishTypePunish = int8(1)
PublishTypeBan = int8(2)
PublishTypeOptimize = int8(3)
// publish status
PublishStatusClose = int8(0) // 案件关闭状态
PublishStatusOpen = int8(1) // 案件公开状态
// origin_type.
OriginReply = int8(1) // 评论
OriginDM = int8(2) // 弹幕
OriginMsg = int8(3) // 私信
OriginTag = int8(4) // 标签
OriginMember = int8(5) // 个人资料
OriginArchive = int8(6) // 投稿
OriginMusic = int8(7) // 音频
OriginArticle = int8(8) // 专栏
OriginSpaceTop = int8(9) // 空间头图
OriginDsynamic = int8(10) // 动态
OriginPhoto = int8(11) // 相册
OriginMinVideo = int8(12) // 小视频
// blocked_publish init lenth
PublishInitLen = 4
// blocked_jury.status
JuryStatusEffect = int8(1)
JuryStatusNoEffect = int8(2)
// blocked_jury.case_type
JudeCaseTypePrivate = int8(0) // 小众众裁
JudeCaseTypePublic = int8(1) // 大众众裁
// case obtain day by mid
CaseObtainToday = true
CaseObtainNoToday = false
// message
ApplyJuryTitle = "获得风纪委员资格"
ApplyJuryContext = `恭喜您获得%d天风纪委员资格风纪委员应遵守以下原则
"1. 在了解举报案件背景后,公正客观投票。对不了解或难以判断的案件,可以选择弃权。
"2. 以身作则,不在举报案件相关视频、评论下讨论或发布不相关内容。相关违规举报被落实处罚后,将会失去风纪委员资格。`
AppealTitle = "申诉处理通知"
MaxAddCaseNum = 100 //批量增加案件最大数量
// list multi juryer info
JuryMultiJuryerInfoMax = 50
// jury expired
JuryExpiredDays = 30
// one day
OneDaySecond = 86400
// black or white
JuryBlack = int8(1)
JuryWhite = int8(2)
// blocked_info blocked_forever
NotInBlockedForever = int8(0)
InBlockedForever = int8(1)
// blocked_info blocked_forever bool
BlockedStateForever = true
BlockedStateNoForever = false
// guard
GuardMedalPointA = int64(5000)
GuardMedalPointB = int64(1000)
GuardMedalPointC = int64(200)
GuardMedalNone = int64(0)
GuardMedalA = int64(69)
GuardMedalB = int64(68)
GuardMedalC = int64(67)
// reasonType
ReasonOtherType = int8(0)
ReasonBrushScreen = int8(1)
ReasonGrabFloor = int8(2)
ReasonGamblingFraud = int8(4)
ReasonProhibited = int8(5)
ReasonGarbageAds = int8(6)
ReasonPersonalAttacks = int8(7)
ReasonViolatePrivacy = int8(8)
ReasonLeadBattle = int8(9)
ReasonSpoiler = int8(10)
ReasonAddUnrelatedTags = int8(11)
ReasonDelOtherTags = int8(12)
ReasonPornographic = int8(13)
ReasonVulgar = int8(14)
ReasonBloodyViolence = int8(15)
ReasonAnimusVideoUp = int8(16)
ReasonIllegalWebsite = int8(17)
ReasonSpreadErrinfo = int8(18)
ReasonAbettingEncouragement = int8(19)
ReasonAnimusBrushScreen = int8(20)
ReasonAccountViolation = int8(21)
ReasonMaliciousPlagiarism = int8(22)
ReasonPosingAsHomemade = int8(23)
ReasonPostTeenBadContent = int8(24)
ReasonDestroyCyberSecurity = int8(25)
ReasonPostingMisleadingInfo = int8(26)
ReasonCounterfeitOfficialAuth = int8(27)
ReasonPublishInappropriateContent = int8(28)
ReasonViolationOperatingRules = int8(29)
ReasonIllegalCreateTopic = int8(30)
ReasonIllegalDrawLottery = int8(31)
ReasonIllegalFakeMan = int8(32)
// reply reasonType
ReplyReasonOtherType = int8(0)
ReplyReasonGarbageAds = int8(1)
ReplyReasonPornographic = int8(2)
ReplyReasonAnimusBrushScreen = int8(3)
ReplyReasonLeadBattle = int8(4)
ReplyReasonSpoiler = int8(5)
ReplyReasonPolitical = int8(6)
ReplyReasonPersonalAttacks = int8(7)
ReplyReasonIrrelevantVideo = int8(8)
ReplyReasonProhibited = int8(9)
ReplyReasonVulgar = int8(10)
ReplyReasonIllegalWebsite = int8(11)
ReplyReasonGamblingFraud = int8(12)
ReplyReasonSpreadErrinfo = int8(13)
ReplyReasonAbettingEncouragement = int8(14)
ReplyReasonViolatePrivacy = int8(15)
ReplyReasonGrabFloor = int8(16)
ReplyReasonPostTeenBadContent = int8(17)
// tag reasonType
TagReasonAddUnrelatedTags = int8(1)
TagReasonProhibited = int8(2)
TagReasonPersonalAttacks = int8(3)
TagReasonSpoiler = int8(4)
TagReasonDelOtherTags = int8(5)
// case status.
CaseStatusGranting = 1 // 发放中
CaseStatusGrantStop = 2 // 停止发放
CaseStatusDealing = 3 // 结案中
CaseStatusDealed = 4 // 已裁决
CaseStatusRestart = 5 // 待重启
CaseStatusUndealed = 6 // 未裁决
CaseStatusFreeze = 7 // 冻结中
CaseStatusQueueing = 8 // 队列中
// blocked_case.punish_result
BlockNone = int8(0)
Block3Days = int8(1)
Block7Days = int8(2)
BlockForever = int8(3)
BlockCustom = int8(4)
Block15Days = int8(5)
BlockOnlyDel = int8(6)
// judge status.
JudgeTypeUndeal = 0 // 未裁决
JudgeTypeViolate = 1 // 违规
JudgeTypeLegal = 2 // 未违规
// vote type
VoteBanned = 1 // 违规封禁
VoteRule = 2
VoteAbstain = 3
VoteDel = 4 // 违规删除
// opinion type
OpinonBreak = 1 // 违规观点
OpinionRule = 2 // 不违规观点
// labour ans
LabourNoAnswer = int8(0)
LabourOkAnswer = int8(1)
// opinion state
OpinionStateOK = int8(0)
OpinionStateNoOK = int8(1)
// kpi rate
KPILevelS = int8(1)
KPILevelA = int8(2)
KPILevelB = int8(3)
KPILevelC = int8(4)
KPILevelD = int8(5)
// block status
BlockStatusNone = int8(0)
BlockStatusForever = int8(1)
BlockStatusOn = int8(2)
)
// var credit state
var (
_punishResult = map[int8]string{
BlockNone: "",
Block3Days: "封禁3天",
Block7Days: "封禁7天",
BlockForever: "永久封禁",
BlockCustom: "封禁%d天",
Block15Days: "封禁15天",
BlockOnlyDel: "扣节操",
}
_punishType = map[int8]string{
PunishTypeMoral: "节操",
PunishTypeBlock: "封禁",
PunishTypeForever: "永久封禁",
}
_reasonType = map[int8]string{
ReasonOtherType: "其他",
ReasonBrushScreen: "刷屏",
ReasonGrabFloor: "抢楼",
ReasonGamblingFraud: "发布赌博诈骗信息",
ReasonProhibited: "发布违禁相关信息",
ReasonGarbageAds: "发布垃圾广告信息",
ReasonPersonalAttacks: "发布人身攻击言论",
ReasonViolatePrivacy: "发布侵犯他人隐私信息",
ReasonLeadBattle: "发布引战言论",
ReasonSpoiler: "发布剧透信息",
ReasonAddUnrelatedTags: "恶意添加无关标签",
ReasonDelOtherTags: "恶意删除他人标签",
ReasonPornographic: "发布色情信息",
ReasonVulgar: "发布低俗信息",
ReasonBloodyViolence: "发布暴力血腥信息",
ReasonAnimusVideoUp: "涉及恶意投稿行为",
ReasonIllegalWebsite: "发布非法网站信息",
ReasonSpreadErrinfo: "发布传播不实信息",
ReasonAbettingEncouragement: "发布怂恿教唆信息",
ReasonAnimusBrushScreen: "恶意刷屏",
ReasonAccountViolation: "账号违规",
ReasonMaliciousPlagiarism: "恶意抄袭",
ReasonPosingAsHomemade: "冒充自制原创",
ReasonPostTeenBadContent: "发布青少年不良内容",
ReasonDestroyCyberSecurity: "破坏网络安全",
ReasonPostingMisleadingInfo: "发布虚假误导信息",
ReasonCounterfeitOfficialAuth: "仿冒官方认证账号",
ReasonPublishInappropriateContent: "发布不适宜内容",
ReasonViolationOperatingRules: "违反运营规则",
ReasonIllegalCreateTopic: "恶意创建话题",
ReasonIllegalDrawLottery: "发布违规抽奖",
ReasonIllegalFakeMan: "恶意冒充他人",
}
_originType = map[int8]string{
OriginReply: "评论",
OriginDM: "弹幕",
OriginMsg: "私信",
OriginTag: "标签",
OriginMember: "个人资料",
OriginArchive: "投稿",
OriginMusic: "音频",
OriginArticle: "专栏",
OriginSpaceTop: "空间头图",
OriginDsynamic: "动态",
OriginPhoto: "相册",
OriginMinVideo: "小视频",
}
_replyReasonType = map[int8]int8{
ReplyReasonOtherType: ReasonOtherType,
ReplyReasonGarbageAds: ReasonGarbageAds,
ReplyReasonPornographic: ReasonPornographic,
ReplyReasonAnimusBrushScreen: ReasonAnimusBrushScreen,
ReplyReasonLeadBattle: ReasonLeadBattle,
ReplyReasonSpoiler: ReasonSpoiler,
ReplyReasonPolitical: ReasonOtherType,
ReplyReasonPersonalAttacks: ReasonPersonalAttacks,
ReplyReasonIrrelevantVideo: ReasonOtherType,
ReplyReasonProhibited: ReasonProhibited,
ReplyReasonVulgar: ReasonVulgar,
ReplyReasonIllegalWebsite: ReasonIllegalWebsite,
ReplyReasonGamblingFraud: ReasonGamblingFraud,
ReplyReasonSpreadErrinfo: ReasonSpreadErrinfo,
ReplyReasonAbettingEncouragement: ReasonAbettingEncouragement,
ReplyReasonViolatePrivacy: ReasonViolatePrivacy,
ReplyReasonGrabFloor: ReasonGrabFloor,
ReplyReasonPostTeenBadContent: ReasonPostTeenBadContent,
}
_tagReasonType = map[int8]int8{
TagReasonAddUnrelatedTags: ReasonAddUnrelatedTags,
TagReasonProhibited: ReasonProhibited,
TagReasonPersonalAttacks: ReasonPersonalAttacks,
TagReasonSpoiler: ReasonSpoiler,
TagReasonDelOtherTags: ReasonDelOtherTags,
}
)
// PunishResultDesc get PunishResult desc
func PunishResultDesc(punishResult int8) (desc string) {
desc = _punishResult[punishResult]
return
}
// PunishTypeDesc get punishType desc
func PunishTypeDesc(punishType int8) (desc string) {
desc = _punishType[punishType]
return
}
// ReasonTypeDesc get reasonType desc
func ReasonTypeDesc(reasonType int8) (desc string) {
desc = _reasonType[reasonType]
return
}
// OriginTypeDesc get originType desc
func OriginTypeDesc(originType int8) (desc string) {
desc = _originType[originType]
return
}
// BlockedReasonTypeByReply get blocked reason type.
func BlockedReasonTypeByReply(replyReasonType int8) (reasonType int8) {
reasonType = _replyReasonType[replyReasonType]
return
}
// BlockedReasonTypeByTag get blocked reason type.
func BlockedReasonTypeByTag(tagReasonType int8) (reasonType int8) {
reasonType = _tagReasonType[tagReasonType]
return
}

View File

@@ -0,0 +1,75 @@
package model
import xtime "go-common/library/time"
// Notice struct
type Notice struct {
ID int64 `json:"id"`
Content string `json:"content"`
URL string `json:"url"`
}
// Reason struct
type Reason struct {
ID int64 `json:"id"`
Reason string `json:"reason"`
Content string `json:"content"`
}
// KPI is jury kpi info.
type KPI struct {
ID int64 `json:"id"`
Mid int64 `json:"mid"`
Number int64 `json:"number"`
Day xtime.Time `json:"day"`
Rate int64 `json:"rate"`
Rank int64 `json:"rank"`
RankPer int64 `json:"rankper"`
RankTotal int64 `json:"rankTotal"`
Point int64 `json:"point"`
ActiveDays int64 `json:"activeDays"`
VoteTotal int64 `json:"voteTotal"`
VoteRadio int64 `json:"voteRadio"`
BlockedTotal int64 `json:"blockedTotal"`
TermStart xtime.Time `json:"termStart"`
TermEnd xtime.Time `json:"termEnd"`
OpinionLikes int64 `json:"opinion_likes"`
}
//KPIData is jury kpi data info.
type KPIData struct {
KPI
VoteRealTotal int64 `json:"vote_real_total"`
}
// Opinion jury vote opinion.
type Opinion struct {
// user info.
Mid int64 `json:"mid,omitempty"`
Face string `json:"face,omitempty"`
Name string `json:"name,omitempty"`
OpID int64 `json:"opid"`
Vote int8 `json:"vote"`
Content string `json:"content"`
Attr int8 `json:"attr"`
Hate int64 `json:"hate"`
Like int64 `json:"like"`
}
// OpinionRes get opinion response.
type OpinionRes struct {
Count int `json:"count"`
Opinion []*Opinion `json:"opinion"`
}
// SimCase struct
type SimCase struct {
ID int64 `json:"id"`
Mid int64 `json:"mid"`
VoteRule int64 `json:"vote_rule"`
VoteBreak int64 `json:"vote_break"`
VoteDelete int64 `json:"vote_delete"`
CaseType int8 `json:"case_type"`
Stime xtime.Time `json:"start_time"`
Etime xtime.Time `json:"end_time"`
}

View File

@@ -0,0 +1,73 @@
package model
import xtime "go-common/library/time"
// LabourQs labour question.
type LabourQs struct {
ID int64 `json:"id"`
Question string `json:"question"`
Ans int64 `json:"-"`
TrueAns int64 `json:"-"` // 真实答案 答案0:未知 1:违规 2:不违规
AvID int64 `json:"av_id"`
AvTitle string `json:"av_title"`
Status int64 `json:"-"`
Source int64 `json:"-"`
Ctime xtime.Time `json:"-"`
Mtime xtime.Time `json:"-"`
}
// LabourAns labour answer.
type LabourAns struct {
ID []int64
Answer []int64
}
//AIQsID AI give question id.
type AIQsID struct {
Pend []int64 `json:"pend"` // 未审核
Done []int64 `json:"done"` // 已审核
}
// DataBusResult databus结果
type DataBusResult struct {
Mid int64 `json:"mid"` // 用户 ID
Buvid string `json:"buvid"` // 设备标识符 前端传入
IP string `json:"ip"` // 用户 IP 地址
Ua string `json:"ua"` // 客户端 User Agent
Refer string `json:"refer"` // 页面跳转来源地址 Refer
Score int64 `json:"score"` // 答题总分数
Rs []Rs
}
// Rs struct
type Rs struct {
ID int64 `json:"id"` // 题目自增 ID
Question string `json:"question"` // 问题内容
Ans int64 `json:"ans"` // 用户答案
TrueAns int64 `json:"trueAns"` // 真实答案 答案0:未知 1:违规 2:不违规
AvID int64 `json:"av_id"` // 相关视频id
Status int64 `json:"status"` // 问题状态 1:未申核 2:已审核
Source int64 `json:"source"` // 问题来源 0:未知1:评论 2:弹幕
Ctime xtime.Time `json:"ctime"` // 创建时间
Mtime xtime.Time `json:"mtime"` // 修改时间
}
// BlockAndMoralStatus blocked status and moral.
type BlockAndMoralStatus struct {
MID int64 `json:"mid"`
Status int8 `json:"status"`
STime xtime.Time `json:"start_time"`
ETime xtime.Time `json:"end_time"`
}
// CommitRs struct
type CommitRs struct {
Score int64 `json:"score"`
Day int64 `json:"day"`
}
// QsCache struct
type QsCache struct {
Stime xtime.Time
QsStr string
}

View File

@@ -0,0 +1,7 @@
package model
// MangerInfo mangerInfo struct
type MangerInfo struct {
OID int64 `json:"id"`
Uname string `json:"username"`
}

View File

@@ -0,0 +1,124 @@
package model
import xtime "go-common/library/time"
// ArgPage define page param.
type ArgPage struct {
PN int64 `form:"pn" default:"1"`
PS int64 `form:"ps" validate:"min=0,max=30" default:"30"`
}
// ArgBlockedNumUser user blocked number param.
type ArgBlockedNumUser struct {
MID int64 `form:"mid" validate:"required"`
}
// ResBlockedNumUser user blocked number result.
type ResBlockedNumUser struct {
BlockedSum int `json:"blockedSum"`
}
// ArgIDs ids param.
type ArgIDs struct {
IDs []int64 `form:"ids,split" validate:"min=0,max=100"`
}
// ArgMIDs mids param.
type ArgMIDs struct {
MIDs []int64 `form:"mids,split" validate:"min=0,max=100"`
}
// ResJuryerStatus blocked juryer status result.
type ResJuryerStatus struct {
Expired xtime.Time `json:"expired"`
Mid int64 `json:"mid"`
Status int8 `json:"status"`
}
// ArgJudgeBlocked judge blocked param.
type ArgJudgeBlocked struct {
MID int64 `form:"mid" validate:"required"`
OID int64 `form:"oper_id" default:"0"`
BDays int `form:"blocked_days" default:"0"`
BForever int8 `form:"blocked_forever" default:"0"`
BRemark string `form:"blocked_remark" default:""`
MoralNum int `form:"moral_num" default:"0"`
OContent string `form:"origin_content" default:""`
OTitle string `form:"origin_title" default:""`
OType int8 `form:"origin_type" validate:"min=1,max=20"`
OURL string `form:"origin_url" default:""`
PTime int64 `form:"punish_time" validate:"required"`
PType int8 `form:"punish_type" validate:"min=1,max=10"`
RType int8 `form:"reason_type" validate:"min=1,max=40"`
OPName string `form:"operator_name" default:""`
}
// ArgJudgeBatchBlocked judge batch blocked param.
type ArgJudgeBatchBlocked struct {
MID []int64 `form:"mids,split" validate:"min=1,max=200"`
OID int64 `form:"oper_id" default:"0"`
BDays int `form:"blocked_days" default:"0"`
BForever int8 `form:"blocked_forever" default:"0"`
BRemark string `form:"blocked_remark" default:""`
MoralNum int `form:"moral_num" default:"0"`
OContent string `form:"origin_content" default:""`
OTitle string `form:"origin_title" default:""`
OType int8 `form:"origin_type" validate:"min=1,max=20"`
OURL string `form:"origin_url" default:""`
PTime int64 `form:"punish_time" validate:"required"`
PType int8 `form:"punish_type" validate:"min=1,max=10"`
RType int8 `form:"reason_type" validate:"min=1,max=40"`
OPName string `form:"operator_name" default:""`
}
// ArgHistory blocked historys param.
type ArgHistory struct {
MID int64 `form:"mid" validate:"required"`
STime int64 `form:"start" validate:"required"`
PN int `form:"pn" default:"1"`
PS int `form:"ps" validate:"min=0,max=100" default:"100"`
}
// ResBLKHistorys blocked historys result.
type ResBLKHistorys struct {
TotalCount int64 `json:"total_count"`
PN int `json:"pn"`
PS int `json:"ps"`
Items []*BlockedInfo `json:"items"`
}
// ArgJudgeCase judge case param.
type ArgJudgeCase struct {
AID int64 `json:"aid"`
MID int64 `json:"mid"`
Operator string `json:"operator"`
OperID int64 `json:"oper_id"`
OContent string `json:"origin_content"`
OTitle string `json:"origin_title"`
OType int64 `json:"origin_type"`
OURL string `json:"origin_url"`
ReasonType int64 `json:"reason_type"`
OID int64 `json:"oid"`
RPID int64 `json:"rp_id"`
TagID int64 `json:"tag_id"`
Type int64 `json:"type"`
Page int64 `json:"page"`
BCTime xtime.Time `json:"business_time"`
RelationID string `json:"-"`
PunishResult int8 `json:"-"`
BlockedDays int32 `json:"-"`
}
// ArgDElQS labour question del param.
type ArgDElQS struct {
ID int64 `form:"id" validate:"required"`
IsDel int64 `form:"is_del" validate:"min=1,max=3"`
}
// ArgBlockedList blocked list param.
type ArgBlockedList struct {
OType int8 `form:"otype" default:"0"`
BType int8 `form:"btype" default:"-1"`
PN int `form:"pn" validate:"min=1" default:"1"`
PS int `form:"ps" default:"20"`
}

View File

@@ -0,0 +1,87 @@
package model
// ArgMid is rpc mid params.
type ArgMid struct {
Mid int64
RealIP string
}
// ArgVote is rpc vote params.
type ArgVote struct {
Mid int64
Cid int64 `form:"cid" validate:"required"`
RealIP string
Vote int8 `form:"vote" validate:"min=1,max=4"`
Attr int8 `form:"attr" validate:"min=0,max=1" default:"0"`
Content string `form:"content"`
Likes []int64 `form:"likes,split" validate:"min=0,max=20"`
Hates []int64 `form:"hates,split" validate:"min=0,max=20"`
AType int8 `form:"apply_type" default:"0"`
AReason int8 `form:"apply_reason" default:"0"`
}
// ArgMidCid is rpc mid and cid params.
type ArgMidCid struct {
Mid, Cid int64
RealIP string
}
// ArgCid is rpc cid params.
type ArgCid struct {
Cid int64 `form:"cid"`
RealIP string
}
// ArgCaseList is rpc case list params.
type ArgCaseList struct {
Mid int64
RealIP string
Pn int64
Ps int64
}
// ArgSetQs is rpc set question params.
type ArgSetQs struct {
ID int64
Ans int64
Status int64
}
// ArgAns is rpc answer params.
type ArgAns struct {
Mid int64
RealIP string
Refer string
UA string
Buvid string
Ans *LabourAns
}
// ArgOpinion is rpc opinion arg.
type ArgOpinion struct {
Cid int64 `form:"cid" validate:"required"`
PN int64 `form:"pn" default:"1"`
PS int64 `form:"ps" validate:"min=0,max=10" default:"10"`
IP string
Otype int8 `form:"otype" validate:"min=1,max=2" default:"1"`
}
// ArgID id.
type ArgID struct {
ID int64
}
// ArgBlocked struct
type ArgBlocked struct {
Otype int64
Btype int64
PS int64
PN int64
}
// ArgAnnounce struct
type ArgAnnounce struct {
Type int8
PS int64
PN int64
}