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.
122 lines
3.8 KiB
122 lines
3.8 KiB
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"` // 日志内容描述 |
|
}
|
|
|