fonchain-fiee/pkg/service/artistInfo/asArtwork/dtoCommon.go

266 lines
9.4 KiB
Go
Raw Normal View History

2025-02-19 06:24:15 +00:00
// Package asArtwork -----------------------------
// @file : common.go
// @author : JJXu
// @contact : wavingbear@163.com
// @time : 2023/2/28 14:00
// -------------------------------------------
package asArtwork
import (
"context"
"dubbo.apache.org/dubbo-go/v3/common/logger"
"errors"
"fmt"
"strings"
"time"
"github.com/fonchain_enterprise/fonchain-main/api/artistInfoArtwork"
"github.com/fonchain_enterprise/fonchain-main/api/artwork"
"github.com/fonchain_enterprise/fonchain-main/api/artwork_query"
"github.com/fonchain_enterprise/fonchain-main/pkg/e"
"github.com/fonchain_enterprise/fonchain-main/pkg/service"
"github.com/fonchain_enterprise/fonchain-main/pkg/utils"
"github.com/fonchain_enterprise/fonchain-main/pkg/utils/stime"
"github.com/gin-gonic/gin"
)
// ReplenishArtwork 补充画家宝中查询到的画作首选项数据 更新ReplenishArtwork2此方法无法正常进行排序
func ReplenishArtwork2(lockRecords []*artistInfoArtwork.ArtworkLockInfo) ([]ArtworkPreviewResponse, error) {
var artworkUids []string
for _, v := range lockRecords {
artworkUids = append(artworkUids, v.ArtworkUid)
}
if len(artworkUids) == 0 {
return nil, nil
}
res, err := service.GrpcArtworkQueryImpl.ArtworkPreviewList(context.Background(), &artwork_query.ArtworkPreviewListRequest{
Page: 1,
PageSize: -1,
ArtworkUids: artworkUids,
})
if err != nil {
fmt.Println("1111111111")
return nil, err
}
var resultData []ArtworkPreviewResponse
for _, record := range lockRecords {
for _, v := range res.Data {
var ( // 这些数据存在画家宝的数据表中
lockStatus int64
BaseAuditStatus int32
BaseAuditMark string
BaseAuditMark2 string
SupplementAuditStatus int32
SupplementAuditMark string
SupplementAuditMark2 string
AuditFlowIndex int32
CreatedAt int64
UpdatedAt int64
DeletedAt int64
artistUid string
)
if record.ArtworkUid == v.ArtworkUid {
lockStatus = record.Status
BaseAuditStatus = int32(record.BaseAuditStatus)
BaseAuditMark = record.BaseAuditMark
BaseAuditMark2 = record.BaseAuditMark2
SupplementAuditStatus = record.SupplementAuditStatus
SupplementAuditMark = record.SupplementAuditMark
SupplementAuditMark2 = record.SupplementAuditMark2
AuditFlowIndex = record.AuditFlowIndex
CreatedAt = record.CreatedAt
UpdatedAt = record.UpdatedAt
DeletedAt = record.DeletedAt
artistUid = record.ArtistUid
fmt.Println("查询画作是否入围国展")
var artworkExtResp, err = service.GrpcArtistInfoArtworkImpl.GetArtworkExtDatas(context.Background(), &artistInfoArtwork.GetArtworkExtDataRequest{ArtworkUid: v.ArtworkUid})
if err != nil {
fmt.Println("ReplenishArtwork GrpcArtistInfoArtworkImpl.GetArtworkExtDatas Err: ", err.Error())
}
// if v.InSource == 1 { //排除仅存在于画作系统中的画作
// continue
// }
var nationalExhibition int64 = 1
if artworkExtResp != nil {
nationalExhibition = artworkExtResp.Data[0].NationalExhibition
}
profileRes, err := service.GrpcArtworkImpl.ArtworkDetail(context.Background(), &artwork.ArtworkDetailRequest{ArtworkUuid: v.ArtworkUid, Type: "1"})
if err != nil {
fmt.Println("ReplenishArtwork GrpcArtworkImpl.ArtworkDetail Err: ", err.Error())
}
var tfNum string
if profileRes != nil && profileRes.ProfileInfo != nil {
tfNum = profileRes.ProfileInfo.Tfnum
}
resultData = append(resultData, ArtworkPreviewResponse{
ArtistUuid: artistUid,
ArtworkName: v.ArtworkName,
Length: v.Length,
Width: v.Width,
Ruler: v.Ruler,
CreatedAddress: strings.Split(v.CreatedAddress, ""),
ArtistPhoto: v.ArtistPhoto,
HdPic: v.HdPic,
ArtworkUid: v.ArtworkUid,
CreatedDate: v.CreateDate, //utils.If(v.CreateDate == "", "未知", v.CreateDate).(string),
LockStatus: lockStatus,
CreatedAt: time.Unix(CreatedAt, 0).Format(stime.Format_Normal_YMDhms),
UpdatedAt: time.Unix(UpdatedAt, 0).Format(stime.Format_Normal_YMDhms),
DeletedAt: DeletedAt,
BaseAuditStatus: BaseAuditStatus,
BaseAuditMark: BaseAuditMark,
BaseAuditMark2: BaseAuditMark2,
SupplementAuditStatus: SupplementAuditStatus,
SupplementAuditMark: SupplementAuditMark,
SupplementAuditMark2: SupplementAuditMark2,
AuditFlowIndex: AuditFlowIndex,
Insource: v.InSource,
NationalExhibition: nationalExhibition,
TfNum: tfNum,
ArtworkType: v.ArtworkType,
BaseInfoArtistUpdateAt: record.BaseInfoArtistUpdateAt,
BaseInfoLatestOperator: record.BaseInfoLatestOperator,
BaseInfoLatestOperationTime: record.BaseInfoLatestOperationTime,
SupplyInfoArtistUpdateAt: record.SupplyInfoArtistUpdateAt,
SupplyInfoLatestOperator: record.SupplyInfoLatestOperator,
SupplyInfoLatestOperationTime: record.SupplyInfoLatestOperationTime,
Id: record.Id,
})
}
}
}
return resultData, nil
}
func GetArtworkPreviewList(c *gin.Context, req *GetArtworkPreviewListReq, mode artistInfoArtwork.ArtworkQueryMode) { //*artwork_query.ArtworkPreviewListRequest
var order []string
if req.SortField != "" {
var orderType = "asc"
if req.SortOrder == "descend" {
orderType = "desc"
}
order = append(order, fmt.Sprintf("%s %s", utils.CamelToSnake(req.SortField), orderType))
}
//画家宝微服务获取画作管理中的列表
records, err := service.GrpcArtistInfoArtworkImpl.GetArtworkLockRecords(c, &artistInfoArtwork.GetArtworkLockRecordsRequest{
ArtistUid: req.ArtistUid,
QueryType: mode,
ArtworkUids: req.ArtworkUids,
BaseAuditStatus: int64(req.BaseAuditStatus),
SupplementAuditStatus: int64(req.SupplementAuditStatus),
Order: order,
})
if err != nil {
service.ErrorWithMark(c, e.Failed, err, "GetArtworkList:GrpcArtistInfoArtworkImpl.GetArtworkLockRecords", "查询失败")
return
}
if len(records.Data) == 0 {
service.ResponseList(c, []struct{}{}, service.OptionPage(req.Page, req.PageSize, 0), service.OptionMsg("查询成功"))
return
}
// 通过画作微服务补充画作信息
resultData, err := ReplenishArtwork2(records.Data)
if err != nil {
service.ErrorWithMark(c, e.Failed, err, "GetIncompleteExtDataList ReplenishArtwork Error", err.Error())
return
}
//分页 todo 分页后面放到画家宝微服务
var result2 = []ArtworkPreviewResponse{}
for k, v := range resultData {
if int32(k) >= req.PageSize*(req.Page-1) && int32(k) < req.PageSize*req.Page {
result2 = append(result2, v)
}
}
service.ResponseList(c, result2, service.OptionPage(req.Page, req.PageSize, records.Total), service.OptionMsg("查询成功"))
}
// GetArtworkPreviewListData
//
// @Description: 返回切片结构体
// @param req
// @param mode
// @return result
// @return err
func GetArtworkPreviewListData(req *GetArtworkPreviewListReq, mode artistInfoArtwork.ArtworkQueryMode) (result2 []ArtworkPreviewResponse, err error) {
var order []string
if req.SortField != "" {
var orderType = "asc"
if req.SortOrder == "descend" {
orderType = "desc"
}
order = append(order, fmt.Sprintf("%s %s", utils.CamelToSnake(req.SortField), orderType))
}
//画家宝微服务获取画作管理中的列表
records, err := service.GrpcArtistInfoArtworkImpl.GetArtworkLockRecords(context.Background(), &artistInfoArtwork.GetArtworkLockRecordsRequest{
ArtistUid: req.ArtistUid,
QueryType: mode,
ArtworkUids: req.ArtworkUids,
BaseAuditStatus: int64(req.BaseAuditStatus),
SupplementAuditStatus: int64(req.SupplementAuditStatus),
Order: order,
})
if err != nil {
logger.Error("GetArtworkPreviewListData GrpcArtistInfoArtworkImpl err", err)
err = errors.New(e.GetMsg(e.ErrorSelect))
return
}
if len(records.Data) == 0 {
err = errors.New(e.GetMsg(e.NOTDATA))
return
}
// 通过画作微服务补充画作信息
resultData, err := ReplenishArtwork2(records.Data)
if err != nil {
err = errors.New(e.GetMsg(e.ErrorSelect))
return
}
for k, v := range resultData {
if int32(k) >= req.PageSize*(req.Page-1) && int32(k) < req.PageSize*req.Page {
result2 = append(result2, v)
}
}
return
}
// DEPRECATED
func ConvertAuditStatusToString(auditStatus int) string {
switch auditStatus {
case 1:
return "暂存"
case 2:
return "待审核"
case 3:
return "审批不通过"
case 4:
return "审批通过"
case 5:
return "信息待补充"
case 6:
return "驳回"
case 7:
return "复审中"
default:
return "未知"
}
}
func DescriptionAuidtStatusAtNow(data *artistInfoArtwork.ArtworkLockInfo) (flowIndex string, auditStatus string) {
auditStatus = data.BaseAuditStatus.Value()
switch data.AuditFlowIndex {
case 2:
flowIndex = "基本信息审批"
case 3:
flowIndex = "补充信息审批"
default:
if auditStatus != "暂存" {
flowIndex = "基本信息审批"
} else {
flowIndex = "无"
}
}
return
}