// Package asArtwork ----------------------------- // @file : util.go // @author : JJXu // @contact : wavingbear@163.com // @time : 2023/8/29 18:33 // ------------------------------------------- package asArtshow import ( "encoding/json" "fmt" "github.com/fonchain_enterprise/fonchain-main/api/artistInfoArtwork" "strings" ) type ArtworkAward struct { AwardTime string `json:"award_time"` //获奖时间(画家宝不需要) AwardContent string `json:"award_content"` //获奖奖项或正文内容 AwardCert string `json:"award_cert"` //获奖图片 AwardLink string `json:"award_link"` //链接地址 } type tmpArtworkAwardResponse struct { ArtistMarketId1 int32 ArtistMarketId2 int32 ArtistMarketId3 int32 ArtistMarketDetail string ArtistMarketUrl1 string ArtistMarketUrl2 string } func ConvertMarketDataToResponse(ArtworkMarkets []*artistInfoArtwork.ArtworkMarketData) (tmp tmpArtworkAwardResponse) { for _, v := range ArtworkMarkets { if v.Detail != "" { if strings.Contains(v.Detail, "{") { var detail ArtworkAward if err := json.Unmarshal([]byte(v.Detail), &detail); err != nil { fmt.Println(err.Error()) continue } if tmp.ArtistMarketId1 == 0 { tmp.ArtistMarketDetail = detail.AwardContent tmp.ArtistMarketUrl1 = detail.AwardCert tmp.ArtistMarketId1 = int32(v.ID) } else if tmp.ArtistMarketId2 == 0 { tmp.ArtistMarketUrl2 = detail.AwardCert tmp.ArtistMarketId2 = int32(v.ID) } } else { //旧版数据处理优化 switch v.Type { case 0: tmp.ArtistMarketDetail = v.Detail tmp.ArtistMarketId1 = int32(v.ID) case 2: if tmp.ArtistMarketUrl1 == "" { tmp.ArtistMarketUrl1 = v.Detail tmp.ArtistMarketId2 = int32(v.ID) } else if tmp.ArtistMarketUrl2 == "" { tmp.ArtistMarketUrl2 = v.Detail tmp.ArtistMarketId3 = int32(v.ID) } } } } } return }