fonchain-artistinfo/cmd/model/artwork_main_lockRecord.go

97 lines
4.8 KiB
Go
Raw Normal View History

2023-02-28 15:27:00 +00:00
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
}
2023-02-28 15:27:00 +00:00
// 此表作为画家宝中的画作中间表的主表(画作主要数据保存在画作微服务中),请悉知
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 对画作进行历史记录查询时的分组
2023-02-28 15:27:00 +00:00
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 进入画作补充信息审批
// ↓
2023-02-28 15:27:00 +00:00
//画作补充信息审批记录
// 后台点击[生成补充信息按钮],审核状态为[待补充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"`
2023-02-28 15:27:00 +00:00
//UserInfo User `gorm:"foreignKey:ArtistUid;reference:MgmtArtistUid"`
2023-04-12 09:51:11 +00:00
//画作新增字段(此类字段只在画家宝中展示)
NationalExhibition int `json:"nationalExhibition" gorm:"column:national_exhibition;default:1;comment:是否入选国家画展 1=无(默认) 2=入围 3=入选 4=入围+入选"`
2023-02-28 15:27:00 +00:00
}
func (a *ArtworkLockRecord) TableName() string {
2023-02-28 15:27:00 +00:00
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
}
2023-03-03 07:28:55 +00:00
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
}