162 lines
4.5 KiB
Go
162 lines
4.5 KiB
Go
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
|
|
}
|