go-common/app/job/main/credit/model/jury.go
2019-04-22 18:49:16 +08:00

165 lines
4.4 KiB
Go

package model
import (
xtime "go-common/library/time"
)
// Case is jury case info.
type Case struct {
ID int64 `json:"id"`
Mid int64 `json:"mid"`
Status int64 `json:"status"`
Origin
JudgeType int64 `json:"judge_type"`
PunishResult int64 `json:"punish_result"`
Agree int64 `json:"vote_rule"`
Against int64 `json:"vote_break"`
VoteDelete int64 `json:"vote_delete"`
PunishStatus int64 `json:"pubish_status"`
BlockedDay int64 `json:"blocked_days"`
RelationID string `json:"relation_id"`
Operator string `json:"operator"`
PutTotal int64 `json:"put_total"`
Stime string `json:"start_time"`
Etime string `json:"end_time"`
Ctime string `json:"ctime"`
CaseType int8 `json:"case_type"`
OPID int64 `json:"oper_id"`
BusinessTime string `json:"business_time"`
BCtime xtime.Time
}
// Publish is blocked_publish info.
type Publish struct {
ID int64 `json:"id"`
Title string `json:"title"`
Subtitle string `json:"sub_title"`
PStatus int8 `json:"publish_status"`
SStatus int8 `json:"stick_status"`
Content string `json:"content"`
URL string `json:"url"`
PType int8 `json:"ptype"`
STime string `json:"show_time"`
}
// SimCase is simple case struct info.
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"`
}
// Jury is simple jury struct info.
type Jury struct {
ID int64 `json:"id"`
Mid int64 `json:"mid"`
Status int8 `json:"status"`
}
// CaseVote is simple caseVote struct info.
type CaseVote struct {
ID int64 `json:"id"`
CID int64 `json:"cid"`
MID int64 `json:"mid"`
Vote int8 `json:"vote"`
Expired xtime.Time `json:"expired"`
}
// BLogCaseVote is simple blogCaseVote struct info.
type BLogCaseVote struct {
ID int64 `json:"-"`
CID int64 `json:"cid"`
MID int64 `json:"mid"`
Vote int8 `json:"-"`
Expired string `json:"-"`
Ctime string `json:"-"`
Mtime string `json:"-"`
}
// Opinion is simple opinion struct info.
type Opinion struct {
Cid int64 `json:"cid"`
Vid int64 `json:"vid"`
Content string `json:"content"`
State int8 `json:"state"`
}
// BlockDays get user blocked days.
func (c *Case) BlockDays() (forever int8, days int64) {
switch c.PunishResult {
case Punish3Days:
days = 3
case Punish7Days:
days = 7
case Punish15Days:
days = 15
case PunishForever:
forever = int8(1)
case PunishCustom:
days = c.BlockedDay
}
return
}
// Origin is origin info of blocked.
type Origin struct {
OriginTitle string `json:"origin_title"`
OriginURL string `json:"origin_url"`
OriginContent string `json:"origin_content"`
OriginContentModify string `json:"origin_content_modify"`
OriginType int64 `json:"origin_type"`
ReasonType int64 `json:"reason_type"`
}
// BlockedInfo user block info.
type BlockedInfo struct {
ID int64 `json:"id"`
UID int64 `json:"uid"`
Origin
BlockedRemark string `json:"blocked_remark"`
PunishTime string `json:"punish_time"`
PunishType int64 `json:"punish_type"`
MoralNum int64 `json:"moral_num"`
BlockedDays int64 `json:"blocked_days"`
PublishStatus int64 `json:"publish_status"`
BlockedType int64 `json:"blocked_type"`
BlockedForever int8 `json:"blocked_forever"`
OperatorName string `json:"operator_name"`
CaseID int64 `json:"case_id"`
OPID int64 `json:"oper_id"`
Status int64 `json:"status"`
MTime string `json:"mtime"`
}
// Kpi is jury kpi info.
type Kpi struct {
ID int64 `json:"id"`
Mid int64 `json:"mid"`
Rate int8 `json:"rate"`
Rank int64 `json:"rank"`
RankPer int64 `json:"rank_per"`
RankTotal int64 `json:"rankTotal"`
HandlerStatus int64 `json:"handlerStatus"`
}
// PunishResultDays punish res days.
func PunishResultDays(blockedTimes int64) (punishResult, blockedDay int64) {
switch {
case blockedTimes == 0:
punishResult = int64(Block7Days)
blockedDay = BlockTimeSeven
case blockedTimes == 1:
punishResult = int64(Block15Days)
blockedDay = BlockTimeFifteen
case blockedTimes > 1:
punishResult = int64(BlockForever)
blockedDay = BlockTimeForever
}
return
}