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,32 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = ["common.go"],
importpath = "go-common/app/admin/main/credit/model",
tags = ["automanaged"],
visibility = ["//visibility:public"],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [
":package-srcs",
"//app/admin/main/credit/model/blocked:all-srcs",
"//app/admin/main/credit/model/search:all-srcs",
],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,49 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = [
"appeal.go",
"auto_case.go",
"case.go",
"config.go",
"credit_state.go",
"info.go",
"jury.go",
"kpi.go",
"labour.go",
"msg.go",
"notice.go",
"opinion.go",
"param.go",
"publish.go",
"reason.go",
],
importpath = "go-common/app/admin/main/credit/model/blocked",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//app/admin/main/credit/model:go_default_library",
"//library/log: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,7 @@
package blocked
// const Appeal const
const (
AppealStateSucc = 1
AppealStateFail = 2
)

View File

@@ -0,0 +1,21 @@
package blocked
import xtime "go-common/library/time"
// AutoCase is blocked_auto_case model.
type AutoCase struct {
ID int64 `gorm:"column:id" json:"id"`
Platform int8 `gorm:"column:platform" json:"platform"`
OPID int64 `gorm:"column:oper_id" json:"oper_id"`
ReasonStr string `gorm:"column:reasons" json:"-"`
Reasons []int64 `gorm:"-" json:"reasons"`
ReportScore int `gorm:"column:report_score" json:"report_score"`
Likes int `gorm:"column:likes" json:"likes"`
CTime xtime.Time `gorm:"column:ctime" json:"ctime"`
MTime xtime.Time `gorm:"column:mtime" json:"mtime"`
}
// TableName AutoCase tablename
func (*AutoCase) TableName() string {
return "blocked_auto_case"
}

View File

@@ -0,0 +1,199 @@
package blocked
import (
"strconv"
xtime "go-common/library/time"
)
// const case
const (
// JudeCaseTypePrivate case type private
JudeCaseTypePrivate = int8(0) // 小众众裁
// JudeCaseTypePublic case type public
JudeCaseTypePublic = int8(1) // 大众众裁
// case status.
CaseStatusGranting = int8(1) // 发放中
CaseStatusGrantStop = int8(2) // 停止发放
CaseStatusDealing = int8(3) // 结案中
CaseStatusDealed = int8(4) // 已裁决
CaseStatusRestart = int8(5) // 待重启
CaseStatusUndealed = int8(6) // 未裁决
CaseStatusFreeze = int8(7) // 冻结中
CaseStatusQueueing = int8(8) // 队列中
// vote status.
VoteTypeUndo = int8(0) // 未投票
VoteTypeViolate = int8(1) // 违规-封禁
VoteTypeLegal = int8(2) // 不违规
VoteTypeGiveUp = int8(3) // 放弃投票
VoteTypeDelete = int8(4) // 违规-删除
// 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) // 小视频
// punish status
PunishhNon = int8(0)
PunishBlockedTree = int8(1)
PunishBlockedSeven = int8(2)
PunishBlockedEver = int8(3)
PunishBlockedCustom = int8(4)
PunishBlockedFifteen = int8(5)
PunishJustDelete = int8(6)
// block time.
BlockMoralNum = -2 // 扣除节操
BlockCustom = -1 // N天封禁
BlockForever = 0 // 永久封禁
BlockThree = 3 // 3天封禁
BlockSeven = 7 // 7天封禁
BlockFifteen = 15 // 15天封禁
)
// var case
var (
StatusDesc = map[int8]string{
CaseStatusGranting: "发放中",
CaseStatusGrantStop: "停止发放",
CaseStatusDealing: "结案中",
CaseStatusDealed: "已裁决",
CaseStatusRestart: "待重启",
CaseStatusUndealed: "未裁决",
CaseStatusFreeze: "冻结中",
CaseStatusQueueing: "队列中",
}
OriginTypeDesc = map[int8]string{
OriginReply: "评论",
OriginDM: "弹幕",
OriginMsg: "私信",
OriginTag: "标签",
OriginMember: "个人资料",
OriginArchive: "投稿",
OriginMusic: "音频",
OriginArticle: "专栏",
OriginSpaceTop: "空间头图",
OriginDsynamic: "动态",
OriginPhoto: "相册",
OriginMinVideo: "小视频",
}
PunishDesc = map[int8]string{
PunishhNon: "不违规不封禁",
PunishBlockedTree: "封禁3天",
PunishBlockedSeven: "封禁7天",
PunishBlockedEver: "永久封禁",
PunishBlockedCustom: "自定义封禁",
PunishBlockedFifteen: "封禁15天",
PunishJustDelete: "违规仅删除",
}
blockedDesc = map[int]string{
BlockMoralNum: "扣除%d节操",
BlockCustom: "天封禁",
BlockForever: "永久封禁",
BlockThree: "3天封禁",
BlockSeven: "7天封禁",
BlockFifteen: "15天封禁",
}
CaseTypeDesc = map[int8]string{
JudeCaseTypePrivate: "非公开众裁",
JudeCaseTypePublic: "公开众裁",
}
)
// Case is blocked_case model.
type Case struct {
ID int64 `gorm:"column:id" json:"id"`
MID int64 `gorm:"column:mid" json:"uid"`
OPID int64 `gorm:"column:oper_id" json:"oper_id"`
Status int8 `gorm:"column:status" json:"status"`
OriginType int8 `gorm:"column:origin_type" json:"origin_type"`
ReasonType int8 `gorm:"column:reason_type" json:"reason_type"`
PunishResult int8 `gorm:"column:punish_result" json:"punish_result"`
JudgeType int `gorm:"column:judge_type" json:"judge_type"`
CaseType int8 `gorm:"column:case_type" json:"case_type"`
BlockedDays int `gorm:"column:blocked_days" json:"blocked_days"`
PutTotal int `gorm:"column:put_total" json:"put_total"`
VoteRule int64 `gorm:"column:vote_rule" json:"vote_rule"`
VoteBreak int64 `gorm:"column:vote_break" json:"vote_break"`
VoteDelete int64 `gorm:"column:vote_delete" json:"vote_delete"`
VoteTotal int64 `gorm:"-" json:"vote_total"` // 总得票数
StartTime xtime.Time `gorm:"column:start_time" json:"start_time"`
EndTime xtime.Time `gorm:"column:end_time" json:"end_time"`
CTime xtime.Time `gorm:"column:ctime" json:"ctime"`
MTime xtime.Time `gorm:"column:mtime" json:"-"`
OriginURL string `gorm:"column:origin_url" json:"origin_url"`
OriginTitle string `gorm:"column:origin_title" json:"origin_title"`
OriginContent string `gorm:"column:origin_content" json:"origin_content"`
BusinessTime xtime.Time `gorm:"column:business_time" json:"business_time"`
Uname string `gorm:"-" json:"uname"`
StatusDesc string `gorm:"-" json:"status_desc"`
OriginTypeDesc string `gorm:"-" json:"origin_type_desc"`
ReasonTypeDesc string `gorm:"-" json:"reason_type_desc"`
CaseTypeDesc string `gorm:"-" json:"case_type_desc"`
RelationID string `gorm:"column:relation_id" json:"relation_id"`
RulePercent string `gorm:"-" json:"rule_percent"` // 不违规得票率
BlockedPercent string `gorm:"-" json:"blocked_percent"` // 违规(封禁)得票率
DeletePercent string `gorm:"-" json:"delete_percent"` // 违规(仅删)得票率
PunishDesc string `gorm:"-" json:"punish_desc"`
OPName string `gorm:"-" json:"oname"` // 操作人
Fans int64 `gorm:"-" json:"fans"` // 粉丝数
}
// CaseVote is blocked_case_vote model.
type CaseVote struct {
ID int64 `gorm:"column:id" json:"id"`
CID int64 `gorm:"column:cid" json:"cid"`
UID int64 `gorm:"column:mid" json:"uid"`
VoteType int8 `gorm:"column:vote_type" json:"vote_type"`
Expired xtime.Time `gorm:"column:expired" json:"expired"`
CTime xtime.Time `gorm:"column:ctime" json:"-"`
MTime xtime.Time `gorm:"column:mtime" json:"-"`
}
// TableName case tablename
func (*Case) TableName() string {
return "blocked_case"
}
// TableName CaseVote tablename
func (*CaseVote) TableName() string {
return "blocked_case_vote"
}
// CaseList is case list.
type CaseList struct {
Count int
Order string
Sort string
PN int
PS int
IDs []int64
List []*Case
}
// RulePercent is rule_percent.
func RulePercent(voteRule, voteBreak, voteDelete int64) string {
return strconv.FormatFloat(float64(voteRule)/float64(voteRule+voteBreak+voteDelete), 'f', 2, 64)
}
// BreakPercent is blocked percent.
func BreakPercent(voteRule, voteBreak, voteDelete int64) string {
return strconv.FormatFloat(float64(voteBreak)/float64(voteRule+voteBreak+voteDelete), 'f', 2, 64)
}
// DeletePercent is delete_percent.
func DeletePercent(voteRule, voteBreak, voteDelete int64) string {
return strconv.FormatFloat(float64(voteDelete)/float64(voteRule+voteBreak+voteDelete), 'f', 2, 64)
}
// VoteTotal is vote_total.
func VoteTotal(voteRule, voteBreak, voteDelete int64) int64 {
return voteRule + voteBreak + voteDelete
}

View File

@@ -0,0 +1,41 @@
package blocked
// const config
const (
ConfigCaseGiveHours = "case_give_hours" // 案件发放时长
ConfigCaseCheckHours = "case_check_hours" // 单案审核时长
ConfigJuryVoteRadio = "jury_vote_radio" // 投准率下限
ConfigCaseJudgeRadio = "case_judge_radio" // 判决阙值
ConfigCaseVoteMin = "case_vote_min" // 案件投票数下限
ConfigCaseObtainMax = "case_obtain_max" // 每日获取案件数
ConfigCaseVoteMax = "case_vote_max" // 结案投票数
ConfigJuryApplyMax = "jury_apply_max" // 每日发放风纪委上限
ConfigCaseLoadMax = "case_load_max" // 案件发放最大队列数
ConfigCaseLoadSwitch = "case_load_switch" // 案件发放进入队列开关
ConfigCaseVoteMaxPercent = "case_vote_max_percent" // 结案投票数的百分比
)
// Config blocked_config model
type Config struct {
ID int64
ConfigKey string
Name string
Content string
Description string
OperID int64 `json:"oper_id"`
OperatorName string
}
// VoteNum .
type VoteNum struct {
RateS int8 `json:"rate_s"`
RateA int8 `json:"rate_a"`
RateB int8 `json:"rate_b"`
RateC int8 `json:"rate_c"`
RateD int8 `json:"rate_d"`
}
// TableName case tablename
func (*Config) TableName() string {
return "blocked_config"
}

View File

@@ -0,0 +1,110 @@
package blocked
// const credit state
const (
// SearchDefaultStatus delault status
SearchDefaultStatus = 0
// JuryDay jury day
JuryDay = 30
// AccMaxPageSize max ps.
AccMaxPageSize = 50
// NotNeedSendMsg no send msg.
NotNeedSendMsg = int8(0)
// NeedSendMsg send msg.
NeedSendMsg = int8(1)
// UnBlockedForever no on forever
UnBlockedForever = int8(0)
// OnBlockedForever on forever
OnBlockedForever = int8(1)
// SearchDefaultNum defalut num
SearchDefaultNum = -100
// SearchDefaultString defalut string
SearchDefaultString = "-"
// reasonType
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)
// AddJuryRemark add jury word
AddJuryRemark = "后台添加风纪委员"
DefaultTime = "1980-01-01 00:00:00"
TableBlockedCase = "blocked_case"
TableBlockedInfo = "blocked_info"
TableBlockedJury = "blocked_jury"
TableBlockedOpinion = "blocked_opinion"
TableBlockedPublish = "blocked_publish"
TableBlockedKpiPoint = "blocked_kpi_point"
BusinessBlockedCase = "block_case"
BusinessBlockedInfo = "block_info"
BusinessBlockedJury = "block_jury"
BusinessBlockedOpinion = "block_opinion"
BusinessBlockedPublish = "block_publish"
BusinessBlockedKpiPoint = "block_kpi_point"
)
var _reasonType = map[int8]string{
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: "恶意冒充他人",
}
// ReasonTypeDesc get reasonType desc
func ReasonTypeDesc(reasonType int8) string {
return _reasonType[reasonType]
}

View File

@@ -0,0 +1,160 @@
package blocked
import (
"encoding/json"
"fmt"
"strconv"
"go-common/app/admin/main/credit/model"
"go-common/library/log"
xtime "go-common/library/time"
)
// const info
const (
// info publish_status
StatusClose = int8(0) // 案件关闭状态
StatusOpen = int8(1) // 案件公开状态
// info block_type
PunishBlock = 0 // 系统封禁
PunishJury = 1 // 风纪仲裁
// punish type.
PunishTypeMoral = int8(1) // 节操
PunishTypeBlockTime = int8(2) // 封禁
PunishTypeBlockForever = int8(3) // 永久封禁
// info status.
BlockStateOpen = int8(0) // 未解禁
BlockStateClose = int8(1) // 已解禁
)
// var info
var (
PStatusDesc = map[int8]string{
StatusClose: "不公开",
StatusOpen: "公开",
}
BTypeDesc = map[int8]string{
PunishBlock: "系统封禁",
PunishJury: "风纪仲裁",
}
)
// Info is blocked_info model.
type Info struct {
ID int64 `gorm:"column:id" json:"id"`
UID int64 `gorm:"column:uid" json:"uid"`
UName string `gorm:"column:uname" json:"uname"`
Status int8 `gorm:"column:status" json:"status"`
OriginTitle string `gorm:"column:origin_title" json:"origin_title"`
OriginURL string `gorm:"column:origin_url" json:"origin_url"`
OriginContent string `gorm:"column:origin_content" json:"origin_content"`
OriginContentModify string `gorm:"column:origin_content_modify" json:"origin_content_modify"`
OriginType int8 `gorm:"column:origin_type" json:"origin_type"`
BlockedDays int `gorm:"column:blocked_days" json:"blocked_days"`
BlockedForever int8 `gorm:"column:blocked_forever" json:"blocked_forever"`
BlockedType int8 `gorm:"column:blocked_type" json:"blocked_type"`
BlockedRemark string `gorm:"column:blocked_remark" json:"blocked_remark"`
CaseID int64 `gorm:"column:case_id" json:"case_id"`
MoralNum int `gorm:"column:moral_num" json:"moral_num"`
ReasonType int8 `gorm:"column:reason_type" json:"reason_type"`
PublishStatus int8 `gorm:"column:publish_status" json:"publish_status"`
PunishType int8 `gorm:"column:punish_type" json:"punish_type"`
PunishTime xtime.Time `gorm:"column:punish_time" json:"punish_time"`
PublishTime xtime.Time `gorm:"column:publish_time" json:"publish_time"`
OperID int64 `gorm:"column:oper_id" json:"oper_id"`
CTime xtime.Time `gorm:"column:ctime" json:"ctime"`
MTime xtime.Time `gorm:"column:mtime" json:"mtime"`
PublishStatusDesc string `gorm:"-" json:"publish_status_desc"`
OriginTypeDesc string `gorm:"-" json:"origin_type_desc"`
BlockedTypeDesc string `gorm:"-" json:"blocked_type_desc"`
BlockedDaysDesc string `gorm:"-" json:"blocked_days_desc"`
ReasonTypeDesc string `gorm:"-" json:"reason_type_desc"`
OPName string `gorm:"-" json:"oname"`
OOPName string `gorm:"column:operator_name" json:"-"`
}
// InfoList is info list.
type InfoList struct {
IDs []int64
List []*Info
}
// InfoDesc is Info_desc model.
type InfoDesc struct {
ID string `json:"id"`
PunishTime string `json:"punish_time"`
OriginTypeDesc string `json:"origin_type_desc"`
ReasonTypeDesc string `json:"reason_type_desc"`
PublishStatusDesc string `json:"publish_status_desc"`
BlockedTypeDesc string `json:"blocked_type_desc"`
OriginContent string `json:"origin_content"`
BlockedDaysDesc string `json:"blocked_days_desc"`
UName string `json:"uname"`
UID string `json:"uid"`
OPName string `json:"oname"`
}
// TableName Info tablename
func (*Info) TableName() string {
return "blocked_info"
}
// DealInfo deal with info data.
func DealInfo(infos []*Info) (data [][]string, err error) {
var infoDescs []*InfoDesc
for _, v := range infos {
infoDesc := &InfoDesc{
ID: strconv.FormatInt(v.ID, 10),
PunishTime: v.PunishTime.Time().Format(model.TimeFormatSec),
OriginTypeDesc: v.OriginTypeDesc,
PublishStatusDesc: v.PublishStatusDesc,
BlockedTypeDesc: v.BlockedTypeDesc,
ReasonTypeDesc: v.ReasonTypeDesc,
OriginContent: v.OriginContent,
BlockedDaysDesc: v.BlockedDaysDesc,
UName: v.UName,
UID: strconv.FormatInt(v.UID, 10),
OPName: v.OPName,
}
infoDescs = append(infoDescs, infoDesc)
}
infoMap, _ := json.Marshal(infoDescs)
var objmap []map[string]string
if err = json.Unmarshal(infoMap, &objmap); err != nil {
log.Error("Unmarshal(%s) error(%v)", string(infoMap), err)
return
}
data = append(data, []string{"ID", "惩罚时间", "类型", "状态", "封禁类型", "理由类型", "原文概要", "处罚结果", "用户", "用户ID", "操作者"})
for _, v := range objmap {
var fields []string
fields = append(fields, v["id"])
fields = append(fields, v["punish_time"])
fields = append(fields, v["origin_type_desc"])
fields = append(fields, v["publish_status_desc"])
fields = append(fields, v["blocked_type_desc"])
fields = append(fields, v["reason_type_desc"])
fields = append(fields, v["origin_content"])
fields = append(fields, v["blocked_days_desc"])
fields = append(fields, v["uname"])
fields = append(fields, v["uid"])
fields = append(fields, v["oname"])
data = append(data, fields)
}
return
}
// BDaysDesc is blocked_days_desc.
func BDaysDesc(bDays, moralNum int, pType, bForever int8) string {
switch {
case pType == PunishTypeMoral:
return fmt.Sprintf(blockedDesc[BlockMoralNum], moralNum)
case bDays == BlockForever && bForever == OnBlockedForever:
return blockedDesc[BlockForever]
case pType == PunishTypeBlockTime:
if bDays == BlockThree || bDays == BlockSeven || bDays == BlockFifteen {
return blockedDesc[bDays]
}
return strconv.Itoa(bDays) + blockedDesc[BlockCustom]
}
return ""
}

View File

@@ -0,0 +1,161 @@
package blocked
import (
"encoding/json"
"go-common/library/log"
"strconv"
"go-common/app/admin/main/credit/model"
xtime "go-common/library/time"
)
// const jury
const (
// judge status.
JudgeTypeUndeal = int8(0) // 未裁决
JudgeTypeViolate = int8(1) // 违规
JudgeTypeLegal = int8(2) // 未违
// judge invalid_reason
JuryBlocked = int8(1)
JuryExpire = int8(2)
JuryAdmin = int8(3)
// jury black or white
JuryNormal = int8(0)
JuryBlack = int8(1)
JuryWhite = int8(2)
// JuryStatus
JuryStatusOn = int8(1)
JuryStatusDown = int8(2)
)
// var jury
var (
JuryerStyle = map[int8]string{
JuryNormal: "正常",
JuryBlack: "黑名单",
JuryWhite: "白名单",
}
JuryerStatus = map[int8]string{
JuryStatusOn: "有效",
JuryStatusDown: "失效",
}
)
// Jury blocked_jury model.
type Jury struct {
ID int64 `gorm:"column:id" json:"id"`
UID int64 `gorm:"column:mid" json:"uid"`
OPID int64 `gorm:"column:oper_id" json:"oper_id"`
UName string `gorm:"-" json:"uname"`
Status int8 `gorm:"column:status" json:"status"`
StatusDesc string `gorm:"-" json:"status_desc"`
Expired xtime.Time `gorm:"column:expired" json:"expired"`
EffectDay xtime.Time `gorm:"-" json:"effect_day"`
InvalidReason int8 `gorm:"column:invalid_reason" json:"invalid_reason"`
VoteTotal int `gorm:"column:vote_total" json:"vote_total"`
VoteRight int `gorm:"column:vote_right" json:"vote_right"`
Total int `gorm:"column:total" json:"total"`
Black int8 `gorm:"column:black" json:"black"`
VoteRadio string `gorm:"-" json:"vote_radio"`
BlackDesc string `gorm:"-" json:"black_desc"`
Remark string `gorm:"column:remark" json:"remark"`
CTime xtime.Time `gorm:"column:ctime" json:"ctime"`
MTime xtime.Time `gorm:"column:mtime" json:"mtime"`
OPName string `gorm:"-" json:"oname"`
}
// WebHook is work flow webhook .
type WebHook struct {
Verb string `json:"verb"`
Actor struct {
AdminID int64 `json:"admin_id"`
} `json:"actor"`
Object *struct {
CID int64 `json:"cid"`
CIDs []int64 `json:"cids"`
State int `json:"state"`
} `json:"object"`
Target *struct {
CID int64 `json:"cid"`
OID int64 `json:"oid"`
Business int `json:"business"`
Mid int64 `json:"mid"`
Tid int `json:"tid"`
State int `json:"state"`
} `json:"target"`
}
// TableName jury tablename
func (*Jury) TableName() string {
return "blocked_jury"
}
// JuryList is info list.
type JuryList struct {
Count int
PN int
PS int
Order string
Sort string
IDs []int64
List []*Jury
}
// JuryDesc struct
type JuryDesc struct {
UID string `json:"uid"`
UName string `json:"uname"`
StatusDesc string `json:"status_desc"`
BlackDesc string `json:"black_desc"`
VoteTotal string `json:"vote_total"`
VoteRadio string `json:"vote_radio"`
Expired string `json:"expired"`
Remark string `json:"remark"`
EffectDay string `json:"effect_day"`
OPName string `json:"oname"`
}
// DealJury export data.
func DealJury(jurys []*Jury) (data [][]string, err error) {
var jurysDesc []*JuryDesc
if len(jurys) < 0 {
return
}
for _, v := range jurys {
juryDesc := &JuryDesc{
UID: strconv.FormatInt(v.UID, 10),
UName: v.UName,
StatusDesc: v.StatusDesc,
BlackDesc: v.BlackDesc,
VoteTotal: strconv.FormatInt(int64(v.VoteTotal), 10),
VoteRadio: v.VoteRadio,
Expired: v.Expired.Time().Format(model.TimeFormatSec),
Remark: v.Remark,
EffectDay: v.EffectDay.Time().Format(model.TimeFormatSec),
OPName: v.OPName,
}
jurysDesc = append(jurysDesc, juryDesc)
}
jurysMap, _ := json.Marshal(jurysDesc)
var objmap []map[string]string
if err = json.Unmarshal(jurysMap, &objmap); err != nil {
log.Error("Unmarshal(%s) error(%v)", string(jurysMap), err)
return
}
data = append(data, []string{"UID", "昵称", "状态", "类型", "投票数", "投准率", "失效时间", "备注", "生效时间", "操作人"})
for _, v := range objmap {
var fields []string
fields = append(fields, v["uid"])
fields = append(fields, v["uname"])
fields = append(fields, v["status_desc"])
fields = append(fields, v["black_desc"])
fields = append(fields, v["vote_total"])
fields = append(fields, v["vote_radio"])
fields = append(fields, v["expired"])
fields = append(fields, v["remark"])
fields = append(fields, v["effect_day"])
fields = append(fields, v["oname"])
data = append(data, fields)
}
return
}

View File

@@ -0,0 +1,141 @@
package blocked
import (
"encoding/json"
"strconv"
"go-common/app/admin/main/credit/model"
"go-common/library/log"
xtime "go-common/library/time"
)
// const kpi
const (
RateS = int8(1)
RateA = int8(2)
RateB = int8(3)
RateC = int8(4)
RateD = int8(5)
)
// KPI is blocked_kpi model.
type KPI struct {
ID int64 `gorm:"column:id" json:"id"`
UID int64 `gorm:"column:mid" json:"uid"`
Day xtime.Time `gorm:"column:day" json:"day"`
Rate int8 `gorm:"column:rate" json:"rate"`
Rank int64 `gorm:"column:rank" json:"rank"`
RankPer int16 `gorm:"column:rank_per" json:"rank_per"`
RankTotal int64 `gorm:"column:rank_total" json:"rank_total"`
HStatus int8 `gorm:"column:handler_status" json:"handler_status"`
PStatus int8 `gorm:"column:pendent_status" json:"pendent_status"`
CTime xtime.Time `gorm:"column:ctime" json:"-"`
MTime xtime.Time `gorm:"column:mtime" json:"-"`
}
// KPIDesc is blocked_kpi_desc model.
type KPIDesc struct {
ID string `json:"id"`
UID string `json:"uid"`
Day string `json:"day"`
Rate string `json:"rate"`
RankPer string `json:"rank_per"`
RankTotal string `json:"rank_total"`
PStatus string `json:"pendent_status"`
}
// KPIList is kpi list.
type KPIList struct {
Count int64 `json:"count"`
Pn int `json:"pn"`
Ps int `json:"ps"`
List []*KPI `json:"list"`
}
// TableName kpi tablename
func (*KPI) TableName() string {
return "blocked_kpi"
}
// RateDesc is rate desc.
func RateDesc(rate int8) string {
switch rate {
case RateS:
return "S"
case RateA:
return "A"
case RateB:
return "B"
case RateC:
return "C"
case RateD:
return "D"
}
return ""
}
// DealKPI deal with kpi data.
func DealKPI(kpis []*KPI) (data [][]string, err error) {
var kpiDescs []*KPIDesc
for _, v := range kpis {
kpiDesc := &KPIDesc{
ID: strconv.FormatInt(v.ID, 10),
UID: strconv.FormatInt(v.UID, 10),
Day: v.Day.Time().Format(model.TimeFormatDay),
Rate: RateDesc(v.Rate),
RankPer: strconv.FormatInt(int64(v.RankPer), 10),
RankTotal: strconv.FormatInt(int64(v.RankTotal), 10),
PStatus: strconv.FormatInt(int64(v.PStatus), 10),
}
kpiDescs = append(kpiDescs, kpiDesc)
}
kpiMap, _ := json.Marshal(kpiDescs)
var objmap []map[string]string
if err = json.Unmarshal(kpiMap, &objmap); err != nil {
log.Error("Unmarshal(%s) error(%v)", string(kpiMap), err)
return
}
data = append(data, []string{"ID", "MID", "KPI日期", "评级", "排名百分比", "参与总数", "挂件发放状态"})
for _, v := range objmap {
var fields []string
fields = append(fields, v["id"])
fields = append(fields, v["uid"])
fields = append(fields, v["day"])
fields = append(fields, v["rate"])
fields = append(fields, v["rank_per"])
fields = append(fields, v["rank_total"])
fields = append(fields, v["pendent_status"])
data = append(data, fields)
}
return
}
// KPIPoint is blocked_kpi_point model.
type KPIPoint struct {
ID int64 `gorm:"column:id" json:"id"`
UID int64 `gorm:"column:mid" json:"uid"`
Day xtime.Time `gorm:"column:day" json:"day"`
Point int16 `gorm:"column:point" json:"point"`
ActiveDays int16 `gorm:"column:active_days" json:"active_days"`
VoteTotal int `gorm:"column:vote_total" json:"vote_total"`
VoteRadio int16 `gorm:"column:vote_radio" json:"vote_radio"`
BlockedTotal int `gorm:"column:blocked_total" json:"blocked_total"`
CTime xtime.Time `gorm:"column:ctime" json:"-"`
MTime xtime.Time `gorm:"column:mtime" json:"-"`
}
// TableName kpi_point tablename
func (*KPIPoint) TableName() string {
return "blocked_kpi_point"
}
// KPIPointList is kpi_point list.
type KPIPointList struct {
Count int `json:"total_count"`
Order string `json:"order"`
Sort string `json:"sort"`
PN int `json:"pn"`
PS int `json:"ps"`
IDs []int64 `json:"-"`
List []*KPIPoint `json:"list"`
}

View File

@@ -0,0 +1,41 @@
package blocked
import xtime "go-common/library/time"
// LabourAnswerLog is blocked_labour_answer_log model.
type LabourAnswerLog struct {
ID int64 `gorm:"column:id" json:"id"`
UID int64 `gorm:"column:mid" json:"uid"`
Score int16 `gorm:"column:score" json:"score"`
Content string `gorm:"column:content" json:"content"`
Stime xtime.Time `gorm:"column:start_time" json:"start_time"`
CTime xtime.Time `gorm:"column:ctime" json:"-"`
MTime xtime.Time `gorm:"column:mtime" json:"-"`
}
// TableName blocked_labour_answer_log tablename
func (*LabourAnswerLog) TableName() string {
return "blocked_labour_answer_log"
}
// LabourQuestion is blocked_labour_question model.
type LabourQuestion struct {
ID int64 `gorm:"column:id" json:"id"`
Question string `gorm:"column:question" json:"question"`
Ans int8 `gorm:"column:ans" json:"ans"`
AVID int64 `gorm:"column:av_id" json:"av_id"`
Status int8 `gorm:"column:status" json:"status"`
Source int8 `gorm:"column:source" json:"source"`
IsDel int8 `gorm:"column:isdel" json:"isdel"`
Total int64 `gorm:"column:total" json:"total"`
RightTotal int64 `gorm:"column:right_total" json:"right_total"`
OperID int `gorm:"column:oper_id" json:"oper_id"`
CTime xtime.Time `gorm:"column:ctime" json:"-"`
MTime xtime.Time `gorm:"column:mtime" json:"-"`
OPName string `gorm:"-" json:"oname"`
}
// TableName blocked_labour_question tablename
func (*LabourQuestion) TableName() string {
return "blocked_labour_question"
}

View File

@@ -0,0 +1,64 @@
package blocked
import (
"fmt"
)
// const msg
const (
MsgTypeDelOpinion = int8(1)
MsgTypeGetJuryer = int8(2)
MsgTypeAppealSucc = int8(3)
MsgTypeAppealFail = int8(4)
)
var _msg = map[int8]map[string]string{
MsgTypeDelOpinion: {
"title": "观点违规警告",
"content": `你在%d号案件中发布的观点“%s”违反#{《“众议观点”使用守则》}{"https://www.bilibili.com/blackroom/notice/44"},已被管理员删除。
请遵守相关守则,合理发布观点,多次违反将被取消风纪委员资格。`,
},
MsgTypeGetJuryer: {
"title": "获得风纪委员资格",
"content": `恭喜您获得%d天风纪委员资格风纪委员应遵守以下原则
"1. 在了解举报案件背景后,公正客观投票。对不了解或难以判断的案件,可以选择弃权。
"2. 以身作则,不在举报案件相关视频、评论下讨论或发布不相关内容。相关违规举报被落实处罚后,将会失去风纪委员资格。`,
},
MsgTypeAppealSucc: {
"title": "申诉处理通知",
"content": `经复核,您对案件%d的申诉成功相应惩罚将被撤销。很抱歉给您带来了不便。感谢您对社区工作的理解与支持。请继续遵守社区规范共同维护良好的社区氛围`,
},
MsgTypeAppealFail: {
"title": "申诉处理通知",
"content": `经复核,您对案件%d的申诉未能通过。请遵守社区规范共同维护良好的社区氛围`,
},
}
// SysMsg msg struct
type SysMsg struct {
Type int8
MID int64
Day int
CID int64
CaseContent string
RemoteIP string
}
// MsgInfo get msg info
func MsgInfo(msg *SysMsg) (title, content string) {
switch msg.Type {
case MsgTypeDelOpinion:
title = _msg[MsgTypeDelOpinion]["title"]
content = fmt.Sprintf(_msg[MsgTypeDelOpinion]["content"], msg.CID, msg.CaseContent)
case MsgTypeGetJuryer:
title = _msg[MsgTypeGetJuryer]["title"]
content = fmt.Sprintf(_msg[MsgTypeGetJuryer]["content"], msg.Day)
case MsgTypeAppealSucc:
title = _msg[MsgTypeAppealSucc]["title"]
content = fmt.Sprintf(_msg[MsgTypeAppealSucc]["content"], msg.CID)
case MsgTypeAppealFail:
title = _msg[MsgTypeAppealFail]["title"]
content = fmt.Sprintf(_msg[MsgTypeAppealFail]["content"], msg.CID)
}
return
}

View File

@@ -0,0 +1,44 @@
package blocked
import xtime "go-common/library/time"
const (
// NoticeStateOpen state open.
NoticeStateOpen = int8(0)
// NoticeStateClose state close.
NoticeStateClose = int8(1)
)
var (
// NoticeStateDesc state open or close.
NoticeStateDesc = map[int8]string{
NoticeStateOpen: "启用",
NoticeStateClose: "已删除",
}
)
// Notice notice struct.
type Notice struct {
ID int64 `gorm:"column:id" json:"id"`
Content string `gorm:"column:content" json:"content"`
URL string `gorm:"column:url" json:"url"`
Status int8 `gorm:"column:status" json:"status"`
OperID int64 `gorm:"column:oper_id" json:"oper_id"`
Ctime xtime.Time `gorm:"column:ctime" json:"-"`
Mtime xtime.Time `gorm:"column:mtime" json:"-"`
StatusDesc string `gorm:"-" json:"status_desc"`
OPName string `gorm:"-" json:"oname"`
}
// NoticeList is notice list.
type NoticeList struct {
Count int64 `json:"total_count"`
Pn int `json:"pn"`
Ps int `json:"ps"`
List []*Notice `json:"list"`
}
// TableName notice tablename
func (*Notice) TableName() string {
return "blocked_notice"
}

View File

@@ -0,0 +1,88 @@
package blocked
import (
xtime "go-common/library/time"
)
// const opinion
const (
// vote_desc
NoVote = int8(0)
BlockedVote = int8(1)
RuleVote = int8(2)
DeleteVote = int8(3)
BlockedDelete = int8(4)
// vote_state
VoteStateON = int8(0)
VoteStateOFF = int8(1)
// attr
AttrStateOFF = int8(0) // 匿名
AttrStateOn = int8(1) // 展示
)
// var opinion
var (
VoteDesc = map[int8]string{
NoVote: "未投票",
BlockedVote: "违规",
RuleVote: "不违规",
DeleteVote: "弃权",
BlockedDelete: "违规删除",
}
AttrDesc = map[int8]string{
AttrStateOFF: "匿名",
AttrStateOn: "展示",
}
VoteStateDesc = map[int8]string{
VoteStateON: "正常",
VoteStateOFF: "删除",
}
)
// Opinion opinion struct.
type Opinion struct {
ID int64 `gorm:"column:id" json:"id"`
VID int64 `gorm:"column:vid" json:"vid"`
CID int64 `gorm:"column:cid" json:"cid"`
MID int64 `gorm:"column:mid" json:"mid"`
OperID int64 `gorm:"column:oper_id" json:"oper_id"`
Vote int8 `gorm:"column:vote" json:"vote"`
State int8 `gorm:"column:state" json:"state"`
Attr int8 `gorm:"column:attr" json:"attr"`
Likes int `gorm:"column:likes" json:"likes"`
Hates int `gorm:"column:hates" json:"hates"`
Content string `gorm:"column:content" json:"content"`
CTime xtime.Time `gorm:"column:ctime" json:"ctime"`
UName string `gorm:"-" json:"uname"`
AttrDesc string `gorm:"-" json:"attr_desc"`
VoteDesc string `gorm:"-" json:"vote_desc"`
VoteStateDesc string `gorm:"-" json:"vote_state_desc"`
OPName string `gorm:"-" json:"oname"`
Fans int64 `gorm:"-" json:"fans"`
}
// TableName blocked_opinion tablename
func (*Opinion) TableName() string {
return "blocked_opinion"
}
// OpinionList is Opinion list.
type OpinionList struct {
Count int `json:"count"`
Order string `json:"order"`
Sort string `json:"sort"`
PN int `json:"pn"`
PS int `json:"ps"`
IDs []int64 `json:"-"`
List []*Opinion `json:"list"`
}
// OpinionCaseResult struct.
type OpinionCaseResult struct {
CID int64 `gorm:"column:cid"`
MID int64 `gorm:"column:mid"`
VID int64 `gorm:"column:mid"`
Content string `gorm:"column:content"`
}

View File

@@ -0,0 +1,187 @@
package blocked
// ArgBlockedSearch param struct.
type ArgBlockedSearch struct {
Keyword string `form:"keyword" default:"-"`
UID int64 `form:"mid" default:"-100"`
OPID int64 `form:"op_id" default:"-100"`
OriginType int8 `form:"origin_type" default:"-100"`
BlockedType int8 `form:"blocked_type" default:"-100"`
PublishStatus int8 `form:"publish_status" default:"-100"`
Start string `form:"start"`
End string `form:"end"`
PN int `form:"pn" default:"1"`
PS int `form:"ps" default:"50"`
Order string `form:"order" default:"id"`
Sort string `form:"sort" default:"desc"`
}
// ArgPublishSearch arg publish search
type ArgPublishSearch struct {
Keyword string `form:"keyword" default:"-"`
Type int8 `form:"type" default:"-100"`
ShowFrom string `form:"start"`
ShowTo string `form:"end"`
Order string `form:"order" default:"id"`
Sort string `form:"sort" default:"desc"`
PN int `form:"pn" default:"1"`
PS int `form:"ps" default:"50"`
}
// ArgCaseSearch struct
type ArgCaseSearch struct {
Keyword string `form:"keyword" default:"-"`
OriginType int8 `form:"origin_type" default:"-100"`
Status int8 `form:"status" default:"-100"`
CaseType int8 `form:"case_type" default:"-100"`
UID int64 `form:"uid" default:"-100"`
OPID int64 `form:"op_id" default:"-100"`
TimeFrom string `form:"start"`
TimeTo string `form:"end"`
Order string `form:"order" default:"id"`
Sort string `form:"sort" default:"desc"`
PN int `form:"pn" default:"1"`
PS int `form:"ps" default:"50"`
}
// ArgJurySearch struct
type ArgJurySearch struct {
UID int64 `form:"mid" default:"-100"`
Status int8 `form:"status" default:"-100"`
Black int8 `form:"type" default:"-100"`
ExpiredFrom string `form:"start"`
ExpiredTo string `form:"end"`
Order string `form:"order" default:"id"`
Sort string `form:"sort" default:"desc"`
PN int `form:"pn" default:"1"`
PS int `form:"ps" default:"50"`
}
// ArgAddJurys struct
type ArgAddJurys struct {
MIDs []int64 `form:"mids,split" validate:"required"`
OPID int64 `form:"op_id" validate:"required"`
Day int `form:"day" validate:"required"`
Send int8 `form:"send" validate:"min=0,max=1"`
}
// ArgOpinionSearch struct
type ArgOpinionSearch struct {
UID int64 `form:"mid" default:"-100"`
CID int64 `form:"cid" default:"-100"`
Vote int `form:"vote" default:"-100"`
State int8 `form:"state" default:"-100"`
Order string `form:"order" default:"id"`
Sort string `form:"sort" default:"desc"`
PN int `form:"pn" default:"1"`
PS int `form:"ps" default:"50"`
}
// ArgKpiPointSearch param struct.
type ArgKpiPointSearch struct {
UID int64 `form:"uid" default:"-100"`
Start string `form:"start" default:"-"`
End string `form:"end" default:"-"`
Order string `form:"order" default:"id"`
Sort string `form:"sort" default:"desc"`
PN int `form:"pn" default:"1"`
PS int `form:"ps" default:"50"`
}
// ArgKpiSearch param struct.
type ArgKpiSearch struct {
UID int64 `form:"uid" default:"0"`
Start string `form:"start"`
End string `form:"end"`
PN int `form:"pn" default:"1"`
PS int `form:"ps" default:"20"`
}
// ArgPublish param struct.
type ArgPublish struct {
ID int64 `form:"id"`
OID int64 `form:"op_id" validate:"required"`
PType int8 `form:"publish_type" validate:"min=1,max=4"`
PublishStatus int8 `form:"publish_status" validate:"min=0,max=1"`
StickStatus int8 `form:"stick_status" validate:"min=0,max=1"`
SubTitle string `form:"sub_title"`
Title string `form:"title"`
URL string `form:"url"`
Content string `form:"content"`
ShowTime string `form:"show_time"`
}
// ArgCase param struct.
type ArgCase struct {
ID int64 `form:"id"`
UID int64 `form:"uid" validate:"required"`
Otype int8 `form:"origin_type" validate:"min=0,max=20"`
ReasonType int8 `form:"reason_type" validate:"min=0,max=40"`
PunishResult int8 `form:"punish_result" validate:"min=0,max=10"`
BlockedDays int `form:"blocked_days"`
OriginTitle string `form:"origin_title" validate:"required"`
OriginURL string `form:"origin_url" validate:"required"`
OriginContent string `form:"origin_content"`
RelationID string `form:"relation_id"`
OID int64 `form:"op_id" validate:"required"`
}
// ArgUpStatus param struct
type ArgUpStatus struct {
IDS []int64 `form:"ids,split" validate:"min=1,max=100"`
OID int64 `form:"op_id" validate:"required"`
Status int8 `form:"status"`
}
// ArgUpInfo param struct
type ArgUpInfo struct {
ID int64 `form:"id" validate:"required"`
OID int64 `form:"op_id" validate:"required"`
Status int8 `form:"status" validate:"min=0,max=1"`
Content string `form:"content"`
}
// ArgCaseConf param struct
type ArgCaseConf struct {
CaseGiveHours int `form:"case_give_hours" default:"0"`
CaseCheckHours int `form:"case_check_hours" default:"0"`
JuryVoteRadio int `form:"jury_vote_radio" default:"0"`
CaseJudgeRadio int `form:"case_judge_radio" default:"0"`
CaseVoteMin int `form:"case_vote_min" default:"0"`
CaseObtainMax int `form:"case_obtain_max" default:"0"`
CaseVoteMax int `form:"case_vote_max" default:"0"`
JuryApplyMax int `form:"jury_apply_max" default:"0"`
CaseLoadMax int `form:"case_load_max" default:"0"`
CaseLoadSwitch int `form:"case_load_switch" default:"0"`
CaseVoteMaxPercent int `form:"case_vote_max_percent" default:"0"`
OID int `form:"op_id" validate:"required"`
}
// ArgAutoCaseConf param struct.
type ArgAutoCaseConf struct {
ID int64 `form:"id"`
Platform int8 `form:"platform" validate:"required"`
Reasons []int64 `form:"reasons,split"`
ReportScore int `form:"report_score" default:"0"`
Likes int `form:"likes" default:"0"`
OID int64 `form:"op_id" validate:"required"`
}
// Pager param struct.
type Pager struct {
Total int `json:"total"`
PN int `json:"page"`
PS int `json:"pagesize"`
Order string `json:"order"`
Sort string `json:"sort"`
}
// ArgVoteNum param struct.
type ArgVoteNum struct {
OID int64 `form:"op_id" validate:"required"`
RateS int8 `form:"rate_s" default:"1"`
RateA int8 `form:"rate_a" default:"1"`
RateB int8 `form:"rate_b" default:"1"`
RateC int8 `form:"rate_c" default:"1"`
RateD int8 `form:"rate_d" default:"1"`
}

View File

@@ -0,0 +1,68 @@
package blocked
import (
xtime "go-common/library/time"
)
// const publish
const (
// ptype.
PublishOfficial = int8(1) // 官方公告
PublishWeekCommunity = int8(2) // 社区周报
PublishFeatureBuild = int8(3) // 功能建设
PublishHotCommunity = int8(4) // 社区热点
// stick_status.
PublishStickON = int8(1) // 置顶
PublishStickOFF = int8(0) // 不置顶
)
// var publish
var (
PTypeDesc = map[int8]string{
PublishOfficial: "官方公告",
PublishWeekCommunity: "社区周报",
PublishFeatureBuild: "功能建设",
PublishHotCommunity: "社区热点",
}
SStatusDesc = map[int8]string{
PublishStickON: "置顶",
PublishStickOFF: "不置顶",
}
)
// Publish is blocked_publish model.
type Publish struct {
ID int64 `gorm:"column:id" json:"id"`
Title string `gorm:"column:title" json:"title"`
SubTitle string `gorm:"column:sub_title" json:"sub_title"`
Type int8 `gorm:"column:ptype" json:"type"`
PublishStatus int8 `gorm:"column:publish_status" json:"publish_status"`
StickStatus int8 `gorm:"column:stick_status" json:"stick_status"`
Status int8 `gorm:"column:status" json:"status"`
Content string `gorm:"column:content" json:"content"`
URL string `gorm:"column:url" json:"url"`
OPID int64 `gorm:"column:oper_id" json:"oper_id"`
ShowTime xtime.Time `gorm:"column:show_time" json:"show_time"`
PublishTypeDesc string `gorm:"-" json:"publish_type_desc"`
PublishStatusDesc string `gorm:"-" json:"publish_status_desc"`
StickStatusDesc string `gorm:"-" json:"stick_status_desc"`
OPName string `gorm:"-" json:"oname"`
CTime xtime.Time `gorm:"column:ctime" json:"-"`
MTime xtime.Time `gorm:"column:mtime" json:"-"`
}
// PublishList is publish list.
type PublishList struct {
Count int `json:"count"`
Order string `json:"order"`
Sort string `json:"sort"`
PN int `json:"pn"`
PS int `json:"ps"`
IDs []int64 `json:"-"`
List []*Publish `json:"list"`
}
// TableName publish tablename
func (*Publish) TableName() string {
return "blocked_publish"
}

View File

@@ -0,0 +1,20 @@
package blocked
import xtime "go-common/library/time"
// Reason is blocked_reason model.
type Reason struct {
ID int `gorm:"column:id" json:"id"`
Content string `gorm:"column:content" json:"content"`
Reason string `gorm:"column:reason" json:"reason"`
Status int8 `gorm:"column:status" json:"status"`
OperID int `gorm:"column:oper_id" json:"oper_id"`
CTime xtime.Time `gorm:"column:ctime" json:"-"`
MTime xtime.Time `gorm:"column:mtime" json:"-"`
OPName string `gorm:"-" json:"oname"`
}
// TableName publish tablename
func (*Reason) TableName() string {
return "blocked_reason"
}

View File

@@ -0,0 +1,35 @@
package model
// const common
const (
TimeFormatSec = "2006-01-02 15:04:05"
TimeFormatDay = "2006-01-02"
)
// MangerInfo struct
type MangerInfo struct {
OID int64 `json:"id"`
Uname string `json:"username"`
}
// EmptyList struct
type EmptyList struct {
Count int `json:"total_count"`
Order string `json:"order"`
Sort string `json:"sort"`
PN int `json:"pn"`
PS int `json:"ps"`
List struct{} `json:"list"`
}
// ArrayUnique struct
func ArrayUnique(ids []int64) (res []int64) {
length := len(ids)
for i := 0; i < length; i++ {
if (i > 0 && ids[i-1] == ids[i]) || ids[i] == 0 {
continue
}
res = append(res, ids[i])
}
return
}

View File

@@ -0,0 +1,28 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = ["search.go"],
importpath = "go-common/app/admin/main/credit/model/search",
tags = ["automanaged"],
visibility = ["//visibility:public"],
)
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,74 @@
package search
// Info struct
type Info struct {
ID int64 `json:"id"`
OPID int64 `json:"oper_id"`
Status int8 `json:"status" default:"-1"`
PStatus int8 `json:"publish_status" default:"-1"`
}
// Publish struct
type Publish struct {
ID int64 `json:"id,omitempty"`
Title string `json:"title,omitempty"`
SubTitle string `json:"sub_title,omitempty"`
ShowTime string `json:"show_time,omitempty"`
OPID int64 `json:"oper_id,omitempty"`
PType int8 `json:"ptype,omitempty"`
Status int8 `json:"status"`
}
// Case struct
type Case struct {
ID int64 `json:"id,omitempty"`
MID int64 `json:"mid,omitempty"`
OPID int64 `json:"oper_id,omitempty"`
OType int8 `json:"origin_type,omitempty"`
Status int8 `json:"status,omitempty"`
CaseType int8 `json:"case_type"`
StartTime string `json:"start_time,omitempty"`
}
// Jury struct
type Jury struct {
ID int64 `json:"id,omitempty"`
OPID int64 `json:"oper_id,omitempty"`
Expired string `json:"expired,omitempty"`
Status int8 `json:"status,omitempty"`
Black int8 `json:"black"`
}
// Opinion struct
type Opinion struct {
ID int64 `json:"id,omitempty"`
OPID int64 `json:"oper_id,omitempty"`
State int8 `json:"state,omitempty"`
}
// Update struct
type Update struct {
AppID string
IP string
Data interface{}
}
// Page struct
type Page struct {
PN int `json:"num"`
PS int `json:"size"`
Total int `json:"total"`
}
// ResSearch result
type ResSearch struct {
ID int64 `json:"id"`
}
// ReSearchData search result detail.
type ReSearchData struct {
Order string `json:"order"`
Sort string `json:"sort"`
Page *Page `json:"page"`
Result []*ResSearch `json:"result"`
}