fonchain-artistinfo/cmd/model/view_passed_artwork_static.go

54 lines
2.1 KiB
Go

// Package model -----------------------------
// @file : view_passed_artwork_static.go
// @author : JJXu
// @contact : wavingbear@163.com
// @time : 2023/3/11 11:13
// -------------------------------------------
package model
import (
"gorm.io/gorm"
"time"
)
type ViewPassedArtworkStatic struct {
ArtistUid string `json:"artistUid" gorm:"column:artist_uid;comment:画家uid"`
IsLock bool `json:"isLock" gorm:"column:is_lock;comment:是否锁定"`
LatestLockTime string `json:"latestLockTime" gorm:"column:latest_lock_time;comment:最近一次锁定时间"`
PasswdArtworkNumber int64 `json:"passwdArtworkNumber" gorm:"column:passwd_artwork_number;comment:审核通过的画作总数"`
LatestUpdatedAt time.Time `json:"latestUpdatedAt" gorm:"column:latest_updated_at;comment:最近一次更新时间"`
RealName string `json:"realName" gorm:"column:real_name;comment:真实姓名"`
//---补充字段,转到pb文件
//Idx int64 `json:"idx" gorm:"-"`
//PenName string `json:"penName" gorm:"-"`
//StageName string `json:"stageName" gorm:"-"`
//ArtworkTotal string `json:"artworkTotal" gorm:"-"`
//RulerTotal int64 `json:"rulerTotal" gorm:"-"`
//PassedRulerTotal int64 `json:"passedRulerTotal" gorm:"-"`
}
func (p ViewPassedArtworkStatic) TableName() string {
return "view_passed_artwork_static"
}
func CreateViewPassedArtworkStatic(db *gorm.DB) error {
// 统计画家通过基本画作审批的画作数量
var sql = `
CREATE OR REPLACE VIEW view_passed_artwork_static AS
-- 查询审核通过的画作数量以及相关数据
SELECT
su.mgmt_artist_uid artist_uid
,MAX(su.is_lock) is_lock
,max(su.latest_lock_time) latest_lock_time
,count(alr.artwork_uid) passed_artwork_number
,MAX(alr.updated_at) latest_updated_at
,MAX(rn.name) real_name
FROM sys_user su
LEFT JOIN artwork_lock_record alr ON alr.artist_uid = su.mgmt_artist_uid AND alr.base_audit_status=4 AND alr.deleted_at = 0
LEFT JOIN real_name rn ON rn.id = su.real_name_id
GROUP BY su.mgmt_artist_uid HAVING su.mgmt_artist_uid !=''
`
db.Exec(sql)
return nil
}