97 lines
4.8 KiB
Go
97 lines
4.8 KiB
Go
package model
|
||
|
||
type AuditStatus int64
|
||
|
||
const (
|
||
AuditType_preSave AuditStatus = 1 //1= 暂存
|
||
AuditType_Pending AuditStatus = 2 //2= 待审核
|
||
AuditType_Failed AuditStatus = 3 //3= 审核失败
|
||
AuditType_Pass AuditStatus = 4 //4= 审核通过
|
||
AuditType_Supplemented AuditStatus = 5 //5= 待补充
|
||
)
|
||
|
||
var auditStatusMaper = map[AuditStatus]string{
|
||
AuditType_preSave: "暂存",
|
||
AuditType_Pending: "待审核",
|
||
AuditType_Failed: "审核失败",
|
||
AuditType_Pass: "审核通过",
|
||
AuditType_Supplemented: "待补充",
|
||
}
|
||
|
||
func (a AuditStatus) String() string {
|
||
if a == 0 {
|
||
return "无"
|
||
}
|
||
str, ok := auditStatusMaper[a]
|
||
if !ok {
|
||
return "未知"
|
||
}
|
||
return str
|
||
}
|
||
|
||
// 此表作为画家宝中的画作中间表的主表(画作主要数据保存在画作微服务中),请悉知
|
||
type ArtworkLockRecord struct {
|
||
Model
|
||
ArtistUid string `json:"artistUid" gorm:"column:artist_uid;type:varchar(191);comment:画家uid"`
|
||
ArtworkUid string `json:"artworkUid" gorm:"column:artwork_uid;type:varchar(191);comment:画作uid"`
|
||
Status int64 `json:"status" gorm:"column:status;default:1;comment:1=准备/暂存 2=锁定 3=解锁"` //这个锁的目的是配合下面的LockTime 对画作进行历史记录查询时的分组
|
||
LockTime string `json:"lockTime" gorm:"column:lock_time;comment:锁定时间"`
|
||
|
||
//用户锁定后(Status=2)才能进入流程.
|
||
AuditFlowIndex int64 `json:"auditFlowIndex" gorm:"column:audit_flow_index;default:1;comment:当前的审批流程 1:无 2:基本信息审核 3补充信息审核"`
|
||
// 画作基本信息审批
|
||
// -- 画作上传,审核状态为[暂存1] -- 后台锁定用户,所有Status为1的画作设置为[锁定2],并生成锁定时间 ,审核状态为 [待审核3] -- 后台审批不通过,审核状态改为[不通过3] -- 用户修改画作后,状态再次改为[待审核2]直至审批通过
|
||
BaseAuditStatus AuditStatus `json:"baseAuditStatus" gorm:"column:base_audit_status;default:1;comment:画作基本信息审核状态 1:暂存 2:待审核 3:审核不通过 4:审核通过"`
|
||
BaseAuditMark string `json:"baseAuditMark" gorm:"column:base_audit_mark;comment:画作基本信息审核审核备注1"`
|
||
BaseAuditMark2 string `json:"baseAuditMark2" gorm:"column:base_audit_mark2;comment:画作基本信息审核审核备注2"`
|
||
// ↓
|
||
// 画作基本信息审批通过后,后台点击[生成补充信息按钮] AuditFlowIndex字段变为3 , 进入画作补充信息审批
|
||
// ↓
|
||
//画作补充信息审批记录
|
||
// 后台点击[生成补充信息按钮],审核状态为[待补充5]-- 用户更新补充信息,状态改为[待审核2] -- 后台审批不通过,审核状态改为[不通过3] -- 用户修改画作后,状态再次改为[待审核2]直至审批通过
|
||
SupplementAuditStatus AuditStatus `json:"supplementAuditStatus" gorm:"column:supplement_audit_status;default:0;comment:补充信息审核状态 0无 5待补充 2.待审核 3:审核不通过 4:审核通过"` // 注意没有暂存状态
|
||
SupplementAuditMark string `json:"supplementAuditMark" gorm:"column:supplement_audit_mark;comment:补充信息审核备注1"`
|
||
SupplementAuditMark2 string `json:"supplementAuditMark2" gorm:"column:supplement_audit_mark2;comment:补充信息审核备注2"`
|
||
//UserInfo User `gorm:"foreignKey:ArtistUid;reference:MgmtArtistUid"`
|
||
|
||
//画作新增字段(此类字段只在画家宝中展示)
|
||
NationalExhibition int `json:"nationalExhibition" gorm:"column:national_exhibition;default:1;comment:是否入选国家画展 1=无(默认) 2=入围 3=入选 4=入围+入选"`
|
||
}
|
||
|
||
func (a *ArtworkLockRecord) TableName() string {
|
||
return "artwork_lock_record"
|
||
}
|
||
|
||
//func (a *ArtworkLockRecord) BeforeUpdate(tx *gorm.DB) (err error) {
|
||
// var thisData ArtworkLockRecord
|
||
// tx.Where("artwork_uid = ?", a.ArtworkUid).First(&thisData)
|
||
// //如果是审核状态不通过的情况下更新画作信息,则自动变为待审核
|
||
// if thisData.BaseAuditStatus == 3 && a.BaseAuditStatus == 0 && a.SupplementAuditStatus == 0 {
|
||
// a.BaseAuditStatus = 2
|
||
// }
|
||
// if thisData.SupplementAuditStatus == 3 && a.BaseAuditStatus == 0 && a.SupplementAuditStatus == 0 {
|
||
// a.SupplementAuditStatus = 2
|
||
// }
|
||
// return
|
||
//}
|
||
|
||
// 基本信息是否可编辑
|
||
func (a *ArtworkLockRecord) BaseEditable() bool {
|
||
if a.Status == 1 {
|
||
return true
|
||
}
|
||
if a.Status == 2 && (a.BaseAuditStatus == AuditType_Failed || a.BaseAuditStatus == AuditType_Pending || a.BaseAuditStatus == AuditType_Supplemented) {
|
||
return true
|
||
}
|
||
return false
|
||
}
|
||
|
||
// 补充信息是否可编辑
|
||
func (a *ArtworkLockRecord) SupplementEditable() bool {
|
||
//&& a.BaseAuditStatus == AuditType_Pass todo 是否要流程通过基本信息
|
||
if a.Status == 2 && (a.SupplementAuditStatus == AuditType_Supplemented || a.SupplementAuditStatus == AuditType_Failed || a.SupplementAuditStatus == AuditType_Pending) {
|
||
return true
|
||
}
|
||
return false
|
||
}
|