102 lines
2.5 KiB
Go
102 lines
2.5 KiB
Go
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)
|
|
}
|