go-common/app/interface/main/creative/model/appeal/appeal.go

176 lines
5.6 KiB
Go
Raw Normal View History

2019-04-22 10:49:16 +00:00
package appeal
import (
"go-common/app/service/main/archive/api"
"go-common/library/time"
)
// Appeal state
const (
// StateCreate 用户刚创建申诉
StateCreate = 1
// StateReply 管理员回复,并且用户已读
StateReply = 2
// StateAdminClose 管理员关闭申诉
StateAdminClose = 3
// StateUserFinished 用户已解决申诉(评分)
StateUserFinished = 4
// StateTimeoutClose 超时关闭申诉
StateTimeoutClose = 5
// StateNoRead 管理员回复,用户未读
StateNoRead = 6
// StateUserClosed 用户直接关闭申诉
StateUserClosed = 7
// StateAdminFinished 管理员已通过申诉
StateAdminFinished = 8
// EventStateAdminReply 管理员回复
EventStateAdminReply = 1
// EventStateAdminNote 管理员回复并记录
EventStateAdminNote = 2
// EventStateUserReply 用户回复
EventStateUserReply = 3
// EventStateSystem 系统回复
EventStateSystem = 4
// Business appeal business
Business = 2
// ReplyMsg appeal auto reply msg
ReplyMsg = "您好,您的反馈我们已收到,会尽快核实处理,请您稍等。"
//ReplyEvent 1管理员回复2管理员备注3用户回复4系统回复
ReplyUserEvent = 3
ReplySystemEvent = 4
)
// AppealMeta for appeal detail.
type AppealMeta struct {
ID int64 `gorm:"column:id" json:"id"`
Tid int32 `gorm:"column:tid" json:"tid"`
Gid int32 `gorm:"column:gid" json:"gid"`
Oid int64 `gorm:"column:oid" json:"oid"`
Mid int64 `gorm:"column:mid" json:"mid"`
State int8 `gorm:"column:state" json:"state"`
Business int8 `gorm:"column:business" json:"business"`
BusinessState int8 `gorm:"column:business_state" json:"business_state"`
Assignee int32 `gorm:"column:assignee_adminid" json:"assignee_adminid"`
Adminid int32 `gorm:"column:adminid" json:"adminid"`
MetaData string `gorm:"column:metadata" json:"metadata"`
Desc string `gorm:"column:description" json:"description"`
Attachments []*Attachment `gorm:"-" json:"attachments"`
Events []*EventNew `gorm:"-" json:"events"`
CTime time.Time `json:"ctime"`
MTime time.Time `json:"mtime"`
}
//EventNew for new.
type EventNew struct {
ID int64 `gorm:"column:id" json:"id"`
Cid int64 `gorm:"column:cid" json:"cid"`
Event int64 `gorm:"column:event" json:"event"`
Adminid int64 `gorm:"column:adminid" json:"adminid"`
Content string `gorm:"column:content" json:"content"`
Attachments string `gorm:"column:attachments" json:"attachments"`
CTime time.Time `gorm:"column:ctime" json:"ctime"`
MTime time.Time `gorm:"column:mtime" json:"mtime"`
}
// Appeal info.
type Appeal struct {
ID int64 `json:"id"`
Oid int64 `json:"oid"`
Cid int64 `json:"cid"`
Mid int64 `json:"mid"`
Aid int64 `json:"aid"`
Tid int8 `json:"tid"`
Title string `json:"title"`
State int8 `json:"state"`
Visit int8 `json:"visit"`
QQ string `json:"qq"`
Email string `json:"email"`
Phone string `json:"phone"`
Pics string `json:"pics"`
Content string `json:"content"`
Description string `json:"description"`
Star int8 `json:"star"`
CTime time.Time `json:"ctime"`
MTime time.Time `json:"mtime"`
Attachments []*Attachment `json:"attachments"`
// event
Events []*Event `json:"events"`
// archive
Archive *api.Arc `json:"archive,omitempty"`
UserInfo *UserInfo `json:"userinfo"`
}
type UserInfo struct {
MID int64 `json:"mid"`
Name string `json:"name"`
Sex string `json:"sex"`
Face string `json:"face"`
Rank int32 `json:"rank"`
Level int32 `json:"level"`
}
// Event appeal work order deal.
type Event struct {
ID int64 `json:"id"`
AdminID int64 `json:"adminid"`
Content string `json:"content"`
ApID int64 `json:"apid"`
Pics string `json:"pics"`
Event int64 `json:"event"`
Attachments string `json:"attachments"`
CTime time.Time `json:"ctime"`
MTime time.Time `json:"mtime"`
}
// Attachment is appeal attachment.
type Attachment struct {
ID int64 `json:"id"`
Cid int64 `json:"cid"`
Path string `json:"path"`
}
// Contact user contacts.
type Contact struct {
Mid int64 `json:"mid"`
Uname string `json:"uname"`
TelPhone string `json:"telPhone"`
Email string `json:"email"`
}
// BusinessAppeal for new arc add appeal.
type BusinessAppeal struct {
BusinessTypeID int64 `json:"business_typeid"`
BusinessMID int64 `json:"business_mid"`
BusinessTitle string `json:"business_title"`
BusinessContent string `json:"business_content "`
}
// IsOpen appeal open state.
func IsOpen(state int8) bool {
return state == StateCreate || state == StateReply || state == StateNoRead
}
// OpenedStates open get appeal
func OpenedStates() (states []int64) {
return []int64{StateCreate, StateReply, StateNoRead}
}
// ClosedStates get appeal
func ClosedStates() (states []int64) {
return []int64{StateAdminClose, StateUserFinished, StateTimeoutClose, StateUserClosed, StateAdminFinished}
}
// IsClosed appeal is close.
func IsClosed(state int8) (is bool) {
if state == StateAdminClose || state == StateUserFinished || state == StateTimeoutClose || state == StateUserClosed || state == StateAdminFinished {
is = true
}
return
}
// Allow archive state in (-2,-4) can add appeal.
func Allow(state int8) bool {
return state == -2 || state == -4
}