// 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 }