145 lines
5.4 KiB
Go
145 lines
5.4 KiB
Go
// Package logic -----------------------------
|
|
// @file : artistinfo_artshowVideo.go
|
|
// @author : JJXu
|
|
// @contact : wavingbear@163.com
|
|
// @time : 2023/3/2 11:51
|
|
// -------------------------------------------
|
|
package logic
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
"github.com/fonchain/fonchain-artistinfo/cmd/internal/dao"
|
|
"github.com/fonchain/fonchain-artistinfo/cmd/model"
|
|
"github.com/fonchain/fonchain-artistinfo/pb/artistInfoUser"
|
|
"github.com/fonchain/fonchain-artistinfo/pb/artistinfoArtshow"
|
|
"github.com/fonchain/fonchain-artistinfo/pkg/util/stime"
|
|
"google.golang.org/protobuf/types/known/emptypb"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
type ArtshowArtistIndexLogic struct{}
|
|
|
|
func (a ArtshowArtistIndexLogic) BatchCreateArtistIndex(request *artistinfoArtshow.BatchCreateArtistIndexRequest) error {
|
|
var datas = []model.ArtshowArtistIndex{}
|
|
for _, v := range request.ArtistUids {
|
|
userInfo, err := NewArtistInfo().FindUser(&artistInfoUser.FindUserRequest{
|
|
MgmtArtistUid: v,
|
|
IsArtist: true,
|
|
})
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if userInfo.Id == 0 {
|
|
return errors.New(fmt.Sprintf("用户%s不存在", v))
|
|
}
|
|
datas = append(datas,
|
|
//Status=2(锁定) AuditStatus=5(待补充)
|
|
model.ArtshowArtistIndex{LockTime: userInfo.LatestLockTime, ArtistUid: v, Class: "exhibition", Title: "艺术家-展览", Types: "2", Status: 2, AuditStatus: 5},
|
|
model.ArtshowArtistIndex{LockTime: userInfo.LatestLockTime, ArtistUid: v, Class: "seniority", Title: "艺术家-资历", Types: "1", Status: 2, AuditStatus: 5},
|
|
model.ArtshowArtistIndex{LockTime: userInfo.LatestLockTime, ArtistUid: v, Class: "specialized", Title: "艺术家-专业", Types: "1", Status: 2, AuditStatus: 5},
|
|
model.ArtshowArtistIndex{LockTime: userInfo.LatestLockTime, ArtistUid: v, Class: "Influence", Title: "艺术家-影响力", Types: "1", Status: 2, AuditStatus: 5},
|
|
model.ArtshowArtistIndex{LockTime: userInfo.LatestLockTime, ArtistUid: v, Class: "collect", Title: "艺术家-收藏", Types: "1", Status: 2, AuditStatus: 5},
|
|
)
|
|
}
|
|
return dao.ArtistinfoArtshowArtistIndex.BatchCreateData(datas)
|
|
}
|
|
|
|
func (a ArtshowArtistIndexLogic) CreateArtistIndex(request *artistinfoArtshow.ArtistIndexInfo) error {
|
|
return dao.ArtistinfoArtshowArtistIndex.CreateData(&model.ArtshowArtistIndex{
|
|
LockTime: request.LockTime,
|
|
ArtistUid: request.ArtistUid,
|
|
Class: request.Class,
|
|
Title: request.Title,
|
|
Types: request.Types,
|
|
Status: 2,
|
|
})
|
|
}
|
|
func (a ArtshowArtistIndexLogic) GetArtistIndexDetail(request *artistinfoArtshow.GetArtistIndexDetailRequest) (rep *artistinfoArtshow.ArtistIndexInfo, err error) {
|
|
data, err := dao.ArtistinfoArtshowArtistIndex.GetData(request.Id)
|
|
if err != nil {
|
|
if gorm.ErrRecordNotFound == err {
|
|
err = errors.New("找不到数据")
|
|
}
|
|
return nil, err
|
|
}
|
|
rep = &artistinfoArtshow.ArtistIndexInfo{
|
|
ArtistUid: data.ArtistUid,
|
|
Title: data.Title,
|
|
Class: data.Class,
|
|
TitleScore: data.TitleScore,
|
|
Score: data.Score,
|
|
Types: data.Types,
|
|
Status: data.Status,
|
|
LockTime: data.LockTime,
|
|
AuditMark1: data.AuditMark1,
|
|
AuditMark2: data.AuditMark2,
|
|
AuditStatus: int64(data.AuditStatus),
|
|
Id: data.ID,
|
|
CreatedAt: stime.TimeToString(data.CreatedAt, stime.Format_Normal_YMDhms),
|
|
UpdatedAt: stime.TimeToString(data.UpdatedAt, stime.Format_Normal_YMDhms),
|
|
DeletedAt: int64(data.DeletedAt),
|
|
Editable: data.Editable(),
|
|
}
|
|
return
|
|
}
|
|
|
|
func (a ArtshowArtistIndexLogic) GetArtistIndexList(request *artistinfoArtshow.GetArtistIndexListRequest) (res *artistinfoArtshow.GetArtistIndexListResponse, err error) {
|
|
res = &artistinfoArtshow.GetArtistIndexListResponse{}
|
|
datas, total, err := dao.ArtistinfoArtshowArtistIndex.GetDataList(request)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
res.Page = &artistinfoArtshow.VideoPagination{
|
|
Page: request.Page,
|
|
PageSize: request.PageSize,
|
|
Total: total,
|
|
}
|
|
for _, v := range datas {
|
|
res.Data = append(res.Data, &artistinfoArtshow.ArtistIndexInfo{
|
|
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.UpdatedAt, stime.Format_Normal_YMDhms),
|
|
DeletedAt: int64(v.DeletedAt),
|
|
})
|
|
}
|
|
return
|
|
}
|
|
|
|
func (a ArtshowArtistIndexLogic) AuditArtistIndex(request *artistinfoArtshow.AuditArtistIndexRequest) (*emptypb.Empty, error) {
|
|
err := dao.ArtistinfoArtshowArtistIndex.Audit(model.AuditStatus(request.AuditStatus), request.AuditMark1, request.AuditMark2, request.ArtistIndexIds...)
|
|
return nil, err
|
|
}
|
|
|
|
func (a ArtshowArtistIndexLogic) UpdateArtistIndex(request *artistinfoArtshow.UpdateArtistIndexRequest) (*emptypb.Empty, error) {
|
|
err := dao.ArtistinfoArtshowArtistIndex.UpdateData(&model.ArtshowArtistIndex{
|
|
Model: model.Model{ID: request.Id},
|
|
TitleScore: request.TitleScore,
|
|
Score: request.Score,
|
|
AuditStatus: model.AuditType_Pending,
|
|
})
|
|
return nil, err
|
|
}
|
|
|
|
func (a ArtshowArtistIndexLogic) DeletedArtistIndex(request *artistinfoArtshow.DeletedArtistIndexRequest) (*emptypb.Empty, error) {
|
|
var ids = []int64{}
|
|
if request.Id != 0 {
|
|
ids = append(ids, request.Id)
|
|
} else if len(request.Ids) > 0 {
|
|
ids = append(ids, request.Ids...)
|
|
}
|
|
err := dao.ArtistinfoArtshowArtistIndex.DeletedData(ids...)
|
|
return nil, err
|
|
}
|