206 lines
7.4 KiB
Go
206 lines
7.4 KiB
Go
// Package logic -----------------------------
|
|
// @file : artistinfo_artshow.go
|
|
// @author : JJXu
|
|
// @contact : wavingbear@163.com
|
|
// @time : 2023/3/7 15:55
|
|
// -------------------------------------------
|
|
package logic
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"github.com/fonchain/fonchain-artistinfo/cmd/model"
|
|
"github.com/fonchain/fonchain-artistinfo/pb/artistinfoArtshow"
|
|
"github.com/fonchain/fonchain-artistinfo/pb/artwork_query"
|
|
db "github.com/fonchain/fonchain-artistinfo/pkg/db"
|
|
"github.com/fonchain/fonchain-artistinfo/pkg/service"
|
|
"github.com/fonchain/fonchain-artistinfo/pkg/util/stime"
|
|
"time"
|
|
)
|
|
|
|
type ArtshowLogic struct{}
|
|
|
|
func (a ArtshowLogic) GetArtshowHistroyList(request *artistinfoArtshow.GetArtshowHistroyListRequest) (data *artistinfoArtshow.GetArtshowHistroyListResponse, err error) {
|
|
data = &artistinfoArtshow.GetArtshowHistroyListResponse{}
|
|
|
|
//查询数据
|
|
var (
|
|
//画家补充信息
|
|
artistSupplementList = []model.ArtshowArtistSupplement{}
|
|
//画家指数
|
|
artistIndexList = []model.ArtshowArtistIndex{}
|
|
//画展视频资料
|
|
artshowVideoList = []model.ArtshowVideoRecord{}
|
|
//画作补充信息基本列表
|
|
artworBaseList = []model.ArtworkLockRecord{}
|
|
//画作补充信息列表
|
|
artworkSupplementList = []*artwork_query.ArtworkPreviewResponse{}
|
|
)
|
|
var (
|
|
//画家补充信息
|
|
db_artistSupplement = db.DB.Model(&model.ArtshowArtistSupplement{}).Where("status = 3 AND artist_uid = ?", request.ArtistUid).Order("lock_time desc")
|
|
//画家指数
|
|
db_artistIndex = db.DB.Model(&model.ArtshowArtistIndex{}).Where("status = 3 AND artist_uid = ?", request.ArtistUid).Order("lock_time desc")
|
|
//画展视频资料
|
|
db_artshowVideo = db.DB.Model(&model.ArtshowVideoRecord{}).Where("status = 3 AND artist_uid = ?", request.ArtistUid).Order("lock_time desc")
|
|
//画作补充信息基本列表
|
|
db_artworBase = db.DB.Model(&model.ArtworkLockRecord{}).Where("status = 3 AND artist_uid = ?", request.ArtistUid).Order("lock_time desc")
|
|
)
|
|
if request.AuditStatus != 0 {
|
|
db_artistSupplement = db_artistSupplement.Where("audit_status = ?", request.AuditStatus)
|
|
db_artistIndex = db_artistIndex.Where("audit_status = ?", request.AuditStatus)
|
|
db_artshowVideo = db_artshowVideo.Where("audit_status = ?", request.AuditStatus)
|
|
db_artworBase = db_artworBase.Where("supplement_audit_status = ?", request.AuditStatus)
|
|
}
|
|
|
|
err = db_artistSupplement.Find(&artistSupplementList).Error
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
err = db_artistIndex.Find(&artistIndexList).Error
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
err = db_artshowVideo.Find(&artshowVideoList).Error
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
err = db_artworBase.Find(&artworBaseList).Error
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
// 查询画作补充信息
|
|
artworkUidList := []string{}
|
|
for _, v := range artworBaseList {
|
|
artworkUidList = append(artworkUidList, v.ArtworkUid)
|
|
}
|
|
artworkSupplementRes, err := service.ArtworkQueryImpl.ArtworkPreviewList(context.Background(), &artwork_query.ArtworkPreviewListRequest{
|
|
Page: 1,
|
|
PageSize: -1,
|
|
ArtworkUids: artworkUidList,
|
|
})
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
artworkSupplementList = artworkSupplementRes.Data
|
|
|
|
// 使用画家补充信息的锁定时间进行分组,然后补充剩余数据
|
|
var dataGroups = []*artistinfoArtshow.TimeGroup{}
|
|
var thisTime = ""
|
|
var thisIndex = -1
|
|
for count, v := range artistSupplementList {
|
|
if thisTime == "" || v.LockTime != thisTime {
|
|
thisTime = v.LockTime
|
|
thisIndex++
|
|
}
|
|
var isAdd = true
|
|
if request.PageSize > -1 {
|
|
if int64(count) >= request.PageSize*(request.Page-1) && int64(count) < request.PageSize*request.Page {
|
|
isAdd = true
|
|
} else {
|
|
isAdd = false
|
|
}
|
|
}
|
|
if isAdd {
|
|
dataGroups = append(dataGroups, &artistinfoArtshow.TimeGroup{
|
|
Time: thisTime,
|
|
ArtworkSupplementList: []*artistinfoArtshow.ArtworkSupplementData{},
|
|
ArtistSupplementList: []*artistinfoArtshow.ArtistSupplementData{},
|
|
ArtistIndexList: []*artistinfoArtshow.ArtistIndexData{},
|
|
ArtistVideoList: []*artistinfoArtshow.ArtistVideoData{},
|
|
})
|
|
|
|
dataGroups[thisIndex].ArtistSupplementList = append(dataGroups[thisIndex].ArtistSupplementList, &artistinfoArtshow.ArtistSupplementData{
|
|
ArtistUid: v.ArtistUid,
|
|
Status: v.Status,
|
|
LockTime: v.LockTime,
|
|
AuditStatus: int64(v.AuditStatus),
|
|
AuditMark1: v.AuditMark1,
|
|
AuditMark2: v.AuditMark2,
|
|
ArtistName: v.ArtistName,
|
|
ArtistProfile: v.ArtistProfile,
|
|
CountryArtLevel: v.CountryArtLevel,
|
|
ArtistCertPic: v.ArtistCertPic,
|
|
BankNum: v.BankNum,
|
|
BankName: v.BankName,
|
|
Id: v.ID,
|
|
CreatedAt: stime.TimeToString(v.CreatedAt, stime.Format_Normal_YMDhms),
|
|
UpdatedAt: stime.TimeToString(v.CreatedAt, stime.Format_Normal_YMDhms),
|
|
DeletedAt: stime.TimeToString(time.Unix(v.CreatedAt.Unix(), 0), stime.Format_Normal_YMDhms),
|
|
})
|
|
}
|
|
}
|
|
|
|
for i, group := range dataGroups {
|
|
//补充画家指数
|
|
for _, v := range artistIndexList {
|
|
if v.LockTime == group.Time {
|
|
dataGroups[i].ArtistIndexList = append(dataGroups[i].ArtistIndexList, &artistinfoArtshow.ArtistIndexData{
|
|
ArtistUid: v.ArtistUid,
|
|
Title: v.Title,
|
|
Class: v.Class,
|
|
TitleScore: v.TitleScore,
|
|
Score: v.Score,
|
|
Types: v.Types,
|
|
Status: v.Status,
|
|
LockTime: v.LockTime,
|
|
AuditMark1: v.AuditMark1,
|
|
AuditMark2: v.AuditMark2,
|
|
AuditStatus: int64(v.AuditStatus),
|
|
Id: v.ID,
|
|
CreatedAt: stime.TimeToString(v.CreatedAt, stime.Format_Normal_YMDhms),
|
|
UpdatedAt: stime.TimeToString(v.CreatedAt, stime.Format_Normal_YMDhms),
|
|
DeletedAt: fmt.Sprintf("%d", v.DeletedAt),
|
|
})
|
|
}
|
|
}
|
|
//补充视频信息
|
|
for _, v := range artshowVideoList {
|
|
if v.LockTime == group.Time {
|
|
dataGroups[i].ArtistVideoList = append(dataGroups[i].ArtistVideoList, &artistinfoArtshow.ArtistVideoData{
|
|
Id: v.ID,
|
|
ArtistUid: v.ArtistUid,
|
|
LockTime: v.LockTime,
|
|
VideoUrl: v.VideoUrl,
|
|
AuditStatus: int64(v.AuditStatus),
|
|
AuditMark1: v.AuditMark1,
|
|
AuditMark2: v.AuditMark2,
|
|
ArtistName: v.ArtistName,
|
|
})
|
|
}
|
|
}
|
|
|
|
for _, v := range artworBaseList {
|
|
if v.LockTime == group.Time {
|
|
for _, artowrkSupplement := range artworkSupplementList {
|
|
if v.ArtworkUid == artowrkSupplement.ArtworkUid {
|
|
dataGroups[i].ArtworkSupplementList = append(dataGroups[i].ArtworkSupplementList, &artistinfoArtshow.ArtworkSupplementData{
|
|
ArtistUid: v.ArtistUid,
|
|
Status: v.Status,
|
|
LockTime: v.LockTime,
|
|
AuditStatus: int64(v.SupplementAuditStatus),
|
|
AuditMark1: v.SupplementAuditMark,
|
|
AuditMark2: v.SupplementAuditMark2,
|
|
ArtworkName: artowrkSupplement.ArtworkName,
|
|
CreatedDate: artowrkSupplement.CreateDate,
|
|
CreatedAddress: artowrkSupplement.CreatedAddress,
|
|
CreatedAt: stime.TimeToString(v.CreatedAt, stime.Format_Normal_YMDhms),
|
|
UpdatedAt: stime.TimeToString(v.CreatedAt, stime.Format_Normal_YMDhms),
|
|
DeletedAt: int64(v.DeletedAt),
|
|
ArtworkUuid: artowrkSupplement.ArtworkUid,
|
|
Length: artowrkSupplement.Length,
|
|
Width: artowrkSupplement.Width,
|
|
Ruler: artowrkSupplement.Ruler,
|
|
HdPic: artowrkSupplement.HdPic,
|
|
ArtistPhoto: artowrkSupplement.ArtistPhoto,
|
|
})
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
data.Data = dataGroups
|
|
fmt.Printf("%+v\n", dataGroups)
|
|
return
|
|
}
|