123 lines
3.8 KiB
Go
123 lines
3.8 KiB
Go
package upcrmmodel
|
||
|
||
import (
|
||
"encoding/json"
|
||
"fmt"
|
||
"go-common/library/time"
|
||
systime "time"
|
||
)
|
||
|
||
const (
|
||
//BusinessTypeArticleAudit 1
|
||
BusinessTypeArticleAudit = 1
|
||
)
|
||
const (
|
||
//DateStr date format
|
||
DateStr = "2006-01-02"
|
||
//CreditLogTableCount all credit log table count
|
||
CreditLogTableCount = 100
|
||
)
|
||
|
||
//ArgCreditLogAdd arg
|
||
type ArgCreditLogAdd struct {
|
||
Type int `form:"type" json:"type"` // 日志类型,具体与业务方确定
|
||
OpType int `form:"op_type" json:"optype"` // 操作类型,具体与业务方确定
|
||
Reason int `form:"reason" json:"reason"` // 原因类型,具体与业务方确定
|
||
BusinessType int `form:"bussiness_type" json:"business_type"` // 业务类型
|
||
Mid int64 `form:"mid" validate:"required" json:"mid"` // 用户id
|
||
Oid int64 `form:"oid" json:"oid"` // 对象类型,如aid
|
||
UID int `form:"uid" json:"uid"` // 管理员id
|
||
Content string `form:"content" json:"content"` // 日志内容描述
|
||
CTime time.Time `form:"ctime" json:"ctime"` // 创建时间
|
||
Extra json.RawMessage `form:"extra" json:"extra,omitempty"` // 额外字段,与业务方确定
|
||
}
|
||
|
||
//ArgMidDate arg
|
||
type ArgMidDate struct {
|
||
Mid int64 `form:"mid" validate:"required"`
|
||
Days int `form:"days"` // 最近n天内的数据,1表示最近1天(今天),2表示最近2天,默认为0
|
||
FromDate string `form:"from_date"` // 2006-01-02
|
||
ToDate string `form:"to_date"` // 2006-01-02
|
||
ScoreType int `form:"score_type" default:"3"` // 分数类型, 1,2,3,参见ScoreTypeCredit
|
||
}
|
||
|
||
//GetScoreParam arg
|
||
type GetScoreParam struct {
|
||
Mid int64
|
||
FromDate systime.Time
|
||
ToDate systime.Time
|
||
ScoreType int
|
||
}
|
||
|
||
//ArgGetLogHistory arg
|
||
type ArgGetLogHistory struct {
|
||
Mid int64 `form:"mid" validate:"required"`
|
||
FromDate systime.Time `form:"from_date"`
|
||
ToDate systime.Time `form:"to_date"`
|
||
Limit int `form:"limit" default:"20"`
|
||
}
|
||
|
||
//CreditLog db struct
|
||
type CreditLog struct {
|
||
ID uint `gorm:"primary_key" json:"-"`
|
||
Type int
|
||
OpType int
|
||
Reason int
|
||
BusinessType int
|
||
Mid int64
|
||
Oid int64
|
||
UID int `gorm:"column:uid"`
|
||
Content string
|
||
CTime time.Time `gorm:"column:ctime"`
|
||
MTime time.Time `gorm:"column:mtime"`
|
||
Extra string `sql:"type:text;" json:"-"`
|
||
}
|
||
|
||
//TableName table name
|
||
func (c *CreditLog) TableName() string {
|
||
return getTableName(c.Mid)
|
||
}
|
||
|
||
func getTableName(mid int64) string {
|
||
return fmt.Sprintf("credit_log_%02d", mid%CreditLogTableCount)
|
||
}
|
||
|
||
//CopyFrom copy
|
||
func (c *CreditLog) CopyFrom(arg *ArgCreditLogAdd) *CreditLog {
|
||
c.Type = arg.Type
|
||
c.OpType = arg.OpType
|
||
c.BusinessType = arg.BusinessType
|
||
c.Reason = arg.Reason
|
||
c.Mid = arg.Mid
|
||
c.Oid = arg.Oid
|
||
c.UID = arg.UID
|
||
c.Content = arg.Content
|
||
c.CTime = arg.CTime
|
||
c.MTime = arg.CTime
|
||
c.Extra = string(arg.Extra)
|
||
return c
|
||
}
|
||
|
||
//SimpleCreditLog db struct
|
||
type SimpleCreditLog struct {
|
||
ID uint `gorm:"primary_key" json:"-"`
|
||
Type int `json:"type"`
|
||
OpType int `json:"op_type"`
|
||
Reason int `json:"reason"`
|
||
BusinessType int `json:"business_type"`
|
||
Mid int64 `json:"mid"`
|
||
Oid int64 `json:"oid"`
|
||
CTime time.Time `gorm:"column:ctime" json:"ctime"`
|
||
}
|
||
|
||
//TableName table name
|
||
func (c *SimpleCreditLog) TableName() string {
|
||
return getTableName(c.Mid)
|
||
}
|
||
|
||
//SimpleCreditLogWithContent log with content
|
||
type SimpleCreditLogWithContent struct {
|
||
SimpleCreditLog
|
||
Content string `form:"content" json:"content"` // 日志内容描述
|
||
}
|