go-common/app/interface/main/creative/model/appeal/appeal.go
2019-04-22 18:49:16 +08:00

176 lines
5.6 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
}