go-common/app/admin/main/member/model/review.go

102 lines
2.5 KiB
Go
Raw Normal View History

2019-04-22 10:49:16 +00:00
package model
import (
"encoding/json"
"fmt"
"go-common/app/admin/main/member/model/block"
"go-common/library/log"
xtime "go-common/library/time"
)
// review state const.
const (
ReviewStateWait = iota
ReviewStatePass
ReviewStateNoPass
ReviewStateArchived
ReviewStateQueuing = 10
)
// review property const.
const (
ReviewProperty = iota
ReviewPropertyFace
ReviewPropertySign
ReviewPropertyName
)
// all
var (
AllReviewStates = []int8{
ReviewStateWait,
ReviewStatePass,
ReviewStateNoPass,
ReviewStateQueuing,
}
)
// UserPropertyReview is
type UserPropertyReview struct {
ID int64 `json:"id" gorm:"column:id"`
Mid int64 `json:"mid" gorm:"column:mid"`
Old string `json:"old" gorm:"column:old"`
New string `json:"new" gorm:"column:new"`
State int8 `json:"state" gorm:"column:state"`
Property int8 `json:"property" gorm:"column:property"`
Remark string `json:"remark" gorm:"column:remark"`
Operator string `json:"operator" gorm:"column:operator"`
IsMonitor bool `json:"is_monitor" gorm:"column:is_monitor"`
Extra string `json:"extra" gorm:"column:extra"`
CTime xtime.Time `json:"ctime" gorm:"column:ctime"`
MTime xtime.Time `json:"mtime" gorm:"column:mtime"`
// 昵称,展示用
Name string `json:"name" gorm:"-"`
FaceReject int64 `json:"face_reject" gorm:"-"`
Block *block.BlockDetail `json:"block" gorm:"-"`
Follower int64 `json:"follower" gorm:"-"`
}
// Extra is.
type Extra struct {
NickFree bool `json:"nick_free"`
}
// NickFree nick free.
func (r *UserPropertyReview) NickFree() bool {
if len(r.Extra) == 0 {
return false
}
ext := Extra{}
if err := json.Unmarshal([]byte(r.Extra), &ext); err != nil {
log.Error("Failed to unmarshal extra, userPropertyReview: %+v error: %v", r, err)
return false
}
return ext.NickFree
}
// FaceCheckRes is.
type FaceCheckRes struct {
Blood float64 `json:"blood,omitempty"`
Violent float64 `json:"violent,omitempty"`
Sex float64 `json:"sex,omitempty"`
Politics float64 `json:"politics,omitempty"`
}
// Valid is.
func (fcr *FaceCheckRes) Valid() bool {
return fcr.Sex < 0.19 && fcr.Politics < 0.5 && fcr.Blood < 0.5 && fcr.Violent < 0.5
}
// String is.
func (fcr *FaceCheckRes) String() string {
return fmt.Sprintf("Sex: %.4f, Politics: %.4f", fcr.Sex, fcr.Politics)
}
//BuildFaceURL buildFaceUrl.
func (r *UserPropertyReview) BuildFaceURL() {
r.Old = BuildFaceURL(r.Old)
r.New = BuildFaceURL(r.New)
}