You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
161 lines
4.5 KiB
161 lines
4.5 KiB
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 |
|
}
|
|
|