2023-02-24 16:30:57 +00:00
|
|
|
|
// Package logic -----------------------------
|
|
|
|
|
// @file : artistinfo_artwork.go
|
|
|
|
|
// @author : JJXu
|
|
|
|
|
// @contact : wavingbear@163.com
|
|
|
|
|
// @time : 2023/2/24 22:26
|
|
|
|
|
// -------------------------------------------
|
|
|
|
|
package logic
|
|
|
|
|
|
|
|
|
|
import (
|
2023-02-26 11:57:42 +00:00
|
|
|
|
"context"
|
2023-02-24 16:30:57 +00:00
|
|
|
|
"errors"
|
|
|
|
|
"github.com/fonchain/fonchain-artistinfo/cmd/internal/dao"
|
|
|
|
|
"github.com/fonchain/fonchain-artistinfo/cmd/model"
|
|
|
|
|
"github.com/fonchain/fonchain-artistinfo/pb/artistInfoArtwork"
|
2023-02-26 11:57:42 +00:00
|
|
|
|
"github.com/fonchain/fonchain-artistinfo/pb/artwork_query"
|
2023-02-25 00:44:50 +00:00
|
|
|
|
"github.com/fonchain/fonchain-artistinfo/pkg/m"
|
2023-02-26 11:57:42 +00:00
|
|
|
|
"github.com/fonchain/fonchain-artistinfo/pkg/service"
|
2023-03-01 08:24:26 +00:00
|
|
|
|
"google.golang.org/protobuf/types/known/emptypb"
|
2023-02-26 11:57:42 +00:00
|
|
|
|
"strings"
|
2023-02-24 16:30:57 +00:00
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type IArtistInfoArtwork interface {
|
2023-02-26 11:59:43 +00:00
|
|
|
|
GetArtworkLockDetail(request *artistInfoArtwork.GetArtworkLockDetailRequest) (res *artistInfoArtwork.ArtistLockInfo, err error)
|
2023-02-25 00:44:50 +00:00
|
|
|
|
CreateArtworkLockRecord(req *artistInfoArtwork.CreateArtworkLockRecordReq) (res *artistInfoArtwork.ArtworkCommonNoParams, err error)
|
|
|
|
|
ArtworkLockAction(req *artistInfoArtwork.ArtworkLockActionRequest) (res *artistInfoArtwork.ArtworkCommonNoParams, err error)
|
2023-02-24 16:30:57 +00:00
|
|
|
|
GetArtworkLockRecords(req *artistInfoArtwork.GetArtworkLockRecordsRequest) (res *artistInfoArtwork.ArtworkLockList, err error)
|
2023-02-26 11:59:43 +00:00
|
|
|
|
GetArtworkLockHistoryGroup(request *artistInfoArtwork.GetArtworkLockHistoryRequest) (res *artistInfoArtwork.GetArtworkLockHistoryResponse, err error)
|
2023-02-25 00:44:50 +00:00
|
|
|
|
DeleteArtworkRecord(req *artistInfoArtwork.DeleteArtworkRecordRequest) (res *artistInfoArtwork.ArtworkCommonNoParams, err error)
|
2023-02-24 16:30:57 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var _ IArtistInfoArtwork = new(ArtistInfoArtworkLogic)
|
|
|
|
|
|
|
|
|
|
type ArtistInfoArtworkLogic struct{}
|
|
|
|
|
|
2023-02-26 11:57:42 +00:00
|
|
|
|
func (a ArtistInfoArtworkLogic) GetArtworkLockDetail(request *artistInfoArtwork.GetArtworkLockDetailRequest) (res *artistInfoArtwork.ArtistLockInfo, err error) {
|
|
|
|
|
data, err := dao.GetArtworkLockDetail(request.ArtworkUid)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
res = &artistInfoArtwork.ArtistLockInfo{
|
2023-03-01 08:24:26 +00:00
|
|
|
|
ArtistUid: data.ArtistUid,
|
|
|
|
|
ArtworkUid: data.ArtworkUid,
|
|
|
|
|
Status: data.Status,
|
|
|
|
|
LockTime: data.LockTime,
|
|
|
|
|
CreatedAt: data.CreatedAt.Unix(),
|
|
|
|
|
UpdatedAt: data.UpdatedAt.Unix(),
|
|
|
|
|
DeletedAt: int64(data.DeletedAt),
|
|
|
|
|
BaseAuditStatus: int32(data.BaseAuditStatus),
|
|
|
|
|
BaseAuditMark: data.BaseAuditMark,
|
|
|
|
|
BaseAuditMark2: data.BaseAuditMark2,
|
|
|
|
|
SupplementAuditStatus: int32(data.SupplementAuditStatus),
|
|
|
|
|
SupplementAuditMark: data.SupplementAuditMark,
|
|
|
|
|
SupplementAuditMark2: data.SupplementAuditMark2,
|
|
|
|
|
AuditFlowIndex: int32(data.AuditFlowIndex),
|
2023-03-03 07:28:55 +00:00
|
|
|
|
BaseEditable: data.BaseEditable(),
|
|
|
|
|
SupplementEditable: data.SupplementEditable(),
|
2023-02-26 11:57:42 +00:00
|
|
|
|
}
|
|
|
|
|
return
|
|
|
|
|
}
|
2023-02-25 00:44:50 +00:00
|
|
|
|
func (ArtistInfoArtworkLogic) CreateArtworkLockRecord(req *artistInfoArtwork.CreateArtworkLockRecordReq) (res *artistInfoArtwork.ArtworkCommonNoParams, err error) {
|
2023-02-24 16:30:57 +00:00
|
|
|
|
err = dao.CreateArtworkLockRecord(&model.ArtworkLockRecord{
|
|
|
|
|
ArtistUid: req.ArtistUid,
|
|
|
|
|
ArtworkUid: req.ArtworkUid,
|
|
|
|
|
Status: req.Status,
|
|
|
|
|
LockTime: req.LockTime,
|
|
|
|
|
})
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
2023-02-25 00:44:50 +00:00
|
|
|
|
func (ArtistInfoArtworkLogic) ArtworkLockAction(req *artistInfoArtwork.ArtworkLockActionRequest) (res *artistInfoArtwork.ArtworkCommonNoParams, err error) {
|
2023-02-24 16:30:57 +00:00
|
|
|
|
switch req.Lock {
|
|
|
|
|
case 2:
|
2023-03-02 09:22:10 +00:00
|
|
|
|
err = dao.BatchLockArtworks(req.ArtistUid, req.LockTime)
|
2023-02-24 16:30:57 +00:00
|
|
|
|
case 3:
|
|
|
|
|
err = dao.BatchUnlockArtworks(req.ArtistUid)
|
|
|
|
|
default:
|
|
|
|
|
err = errors.New("lock值错误")
|
|
|
|
|
}
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (ArtistInfoArtworkLogic) GetArtworkLockRecords(req *artistInfoArtwork.GetArtworkLockRecordsRequest) (res *artistInfoArtwork.ArtworkLockList, err error) {
|
|
|
|
|
res = &artistInfoArtwork.ArtworkLockList{}
|
|
|
|
|
res, err = dao.GetArtworkLockRecords(req)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
2023-02-26 11:57:42 +00:00
|
|
|
|
func (a ArtistInfoArtworkLogic) GetArtworkLockHistoryGroup(request *artistInfoArtwork.GetArtworkLockHistoryRequest) (res *artistInfoArtwork.GetArtworkLockHistoryResponse, err error) {
|
|
|
|
|
// 查询解锁的画作
|
|
|
|
|
unlockArtworkList, err := dao.GetArtworkLockRecords(&artistInfoArtwork.GetArtworkLockRecordsRequest{
|
|
|
|
|
ArtistUid: request.ArtistUid,
|
|
|
|
|
QueryType: artistInfoArtwork.ArtworkQueryMode_AllUnlockArtwork,
|
|
|
|
|
})
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
if len(unlockArtworkList.Data) == 0 {
|
|
|
|
|
return nil, nil
|
|
|
|
|
}
|
|
|
|
|
res = &artistInfoArtwork.GetArtworkLockHistoryResponse{}
|
|
|
|
|
var artworkUidList []string
|
|
|
|
|
for _, v := range unlockArtworkList.Data {
|
|
|
|
|
artworkUidList = append(artworkUidList, v.ArtworkUid)
|
|
|
|
|
}
|
|
|
|
|
//查询画作预览列表
|
|
|
|
|
previewListRes, err := service.ArtworkQueryImpl.ArtworkPreviewList(context.Background(), &artwork_query.ArtworkPreviewListRequest{
|
|
|
|
|
Page: 1,
|
|
|
|
|
PageSize: -1,
|
|
|
|
|
ArtworkUids: artworkUidList,
|
|
|
|
|
})
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
var thisLockTime = ""
|
|
|
|
|
var groupIndex = -1
|
|
|
|
|
for _, v := range unlockArtworkList.Data {
|
|
|
|
|
var newGroup bool
|
|
|
|
|
if thisLockTime != v.LockTime {
|
|
|
|
|
thisLockTime = v.LockTime
|
|
|
|
|
newGroup = true
|
|
|
|
|
groupIndex++
|
|
|
|
|
}
|
|
|
|
|
if newGroup {
|
|
|
|
|
res.GroupList = append(res.GroupList, &artistInfoArtwork.ArtworkLockRecord{
|
|
|
|
|
LockGroup: v.LockTime,
|
|
|
|
|
DataList: []*artistInfoArtwork.ArtworkPreviewInfo{},
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
for _, artwork := range previewListRes.Data {
|
|
|
|
|
res.GroupList[groupIndex].DataList = append(res.GroupList[groupIndex].DataList, &artistInfoArtwork.ArtworkPreviewInfo{
|
2023-03-01 08:24:26 +00:00
|
|
|
|
ArtistUuid: artwork.ArtistUuid,
|
|
|
|
|
ArtworkName: artwork.ArtworkName,
|
|
|
|
|
Length: artwork.Length,
|
|
|
|
|
Width: artwork.Width,
|
|
|
|
|
Ruler: artwork.Ruler,
|
|
|
|
|
CreatedAddress: strings.Split(artwork.CreatedAddress, ","),
|
|
|
|
|
ArtistPhoto: artwork.ArtistPhoto,
|
|
|
|
|
HdPic: artwork.HdPic,
|
|
|
|
|
ArtworkUid: artwork.ArtworkUid,
|
|
|
|
|
CreatedDate: artwork.CreateDate,
|
|
|
|
|
LockStatus: int32(v.Status),
|
|
|
|
|
BaseAuditStatus: v.BaseAuditStatus,
|
|
|
|
|
BaseAuditMark: v.BaseAuditMark,
|
|
|
|
|
BaseAuditMark2: v.BaseAuditMark2,
|
|
|
|
|
SupplementAuditStatus: v.SupplementAuditStatus,
|
|
|
|
|
SupplementAuditMark: v.SupplementAuditMark,
|
|
|
|
|
SupplementAuditMark2: v.SupplementAuditMark2,
|
|
|
|
|
AuditFlowIndex: int32(v.AuditFlowIndex),
|
|
|
|
|
CreatedAt: v.CreatedAt,
|
|
|
|
|
UpdatedAt: v.UpdatedAt,
|
|
|
|
|
DeletedAt: v.DeletedAt,
|
2023-02-26 11:57:42 +00:00
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
2023-02-25 00:44:50 +00:00
|
|
|
|
func (ArtistInfoArtworkLogic) DeleteArtworkRecord(req *artistInfoArtwork.DeleteArtworkRecordRequest) (res *artistInfoArtwork.ArtworkCommonNoParams, err error) {
|
|
|
|
|
//检查画作锁定情况
|
|
|
|
|
for _, v := range req.ArtworkUids {
|
|
|
|
|
if dao.HasBeenLocked(v) {
|
|
|
|
|
return nil, errors.New(m.ERROR_ISLOCK)
|
|
|
|
|
}
|
|
|
|
|
}
|
2023-02-24 16:30:57 +00:00
|
|
|
|
err = dao.DeletedArtworkLockRecord(req.ArtworkUids...)
|
|
|
|
|
return
|
|
|
|
|
}
|
2023-02-28 00:30:33 +00:00
|
|
|
|
|
|
|
|
|
func (a ArtistInfoArtworkLogic) UpdateArtworkAuditStatus(request *artistInfoArtwork.UpdateArtworkAuditStatusRequest) (res *artistInfoArtwork.ArtworkCommonNoParams, err error) {
|
2023-03-01 08:24:26 +00:00
|
|
|
|
if request.ArtworkUid != "" {
|
|
|
|
|
err = dao.UpdateAuditStatus(request.ArtworkUid, request.AuditStatus, request.AuditMark, request.AuditMark2, request.FlowIndex)
|
2023-03-02 05:32:45 +00:00
|
|
|
|
|
2023-03-01 08:24:26 +00:00
|
|
|
|
} else if request.ArtworkUids != nil && len(request.ArtworkUids) > 0 {
|
|
|
|
|
err = dao.BatchUpdateAuditStatus(request.ArtworkUids, request.AuditStatus, request.AuditMark, request.AuditMark2, request.FlowIndex)
|
|
|
|
|
} else {
|
|
|
|
|
return nil, errors.New("画作uid不能为空")
|
|
|
|
|
}
|
2023-02-28 00:30:33 +00:00
|
|
|
|
return
|
|
|
|
|
}
|
2023-03-01 08:24:26 +00:00
|
|
|
|
|
|
|
|
|
// CheckArtworkEditable 检查画作的可编辑状态
|
|
|
|
|
// followIndex 2:基本信息审核 3补充信息审核
|
|
|
|
|
func (a ArtistInfoArtworkLogic) CheckArtworkEditable(request *artistInfoArtwork.ArtworkUidRequest, followIndex int) (res *artistInfoArtwork.CheckArtworkEditableResponse, err error) {
|
|
|
|
|
res = &artistInfoArtwork.CheckArtworkEditableResponse{}
|
2023-03-01 00:34:45 +00:00
|
|
|
|
lockDetail, err := dao.GetArtworkLockDetail(request.ArtworkUid)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
2023-03-01 08:24:26 +00:00
|
|
|
|
if followIndex == 2 {
|
|
|
|
|
res.Editable = lockDetail.BaseEditable()
|
|
|
|
|
} else if followIndex == 3 {
|
|
|
|
|
res.Editable = lockDetail.SupplementEditable()
|
2023-03-01 00:34:45 +00:00
|
|
|
|
}
|
|
|
|
|
return
|
|
|
|
|
}
|
2023-03-01 08:24:26 +00:00
|
|
|
|
func (a ArtistInfoArtworkLogic) GenerateArtworkSupplementInfo(request *artistInfoArtwork.ArtworkUidsRequest) (*emptypb.Empty, error) {
|
|
|
|
|
//更新画作流程
|
|
|
|
|
err := dao.GenerateArtworkSupplementInfo(request.ArtworkUids)
|
|
|
|
|
return nil, err
|
2023-03-02 05:32:45 +00:00
|
|
|
|
|
2023-03-01 08:24:26 +00:00
|
|
|
|
}
|