// Package asArtshow ----------------------------- // @file : sync.go // @author : JJXu // @contact : wavingbear@163.com // @time : 2024/12/5 上午10:04 // ------------------------------------------- package asArtshow import ( "fmt" "github.com/fonchain_enterprise/fonchain-main/api/artist" "github.com/fonchain_enterprise/fonchain-main/api/artistinfoArtshow" "github.com/fonchain_enterprise/fonchain-main/pkg/service" "github.com/fonchain_enterprise/fonchain-main/pkg/utils" "github.com/gin-gonic/gin" "sort" ) // 同步画家指数到画家系统 func SyncArtistIndexToArtistSystem(request *artistinfoArtshow.ArtistIndexInfo, c *gin.Context) (err error) { artistIndexResp, err := service.GrpcArtistInfoArtshowImpl.GetArtistIndexList(c, &artistinfoArtshow.GetArtistIndexListRequest{ArtistUid: request.ArtistUid}) if err != nil { return } updateArtistSystemIndexRequest := &artist.IndexRequest{ Uid: request.ArtistUid, //Exhibition: artistSystemIndex.Exhibition, //Collectible: artistSystemIndex.Collectible, //Education: artistSystemIndex.Education, //Influence: artistSystemIndex.Influence, //Professionalism: artistSystemIndex.Professionalism, InSource: 2, //这个字段不要使用artistSystemIndex.InSource,两个字段含义不同 Exhibition: -1, Education: -1, Professionalism: -1, Influence: -1, Collectible: -1, } //整理画家指数数据,拿每种类型最新的一条数据 for _, class := range []string{"exhibition", "seniority", "specialized", "Influence", "collect"} { var classList []*artistinfoArtshow.ArtistIndexInfo for _, v := range artistIndexResp.Data { if v.Class == class { classList = append(classList, v) } } if len(classList) > 0 { sort.Slice(classList, func(i, j int) bool { return classList[i].CreatedAt > classList[j].CreatedAt }) switch class { case "exhibition": updateArtistSystemIndexRequest.Exhibition = utils.If(request.Id == classList[0].Id, request.TitleScore, classList[0].TitleScore).(float32) case "seniority": updateArtistSystemIndexRequest.Education = utils.If(request.Id == classList[0].Id, request.TitleScore, classList[0].TitleScore).(float32) case "specialized": updateArtistSystemIndexRequest.Professionalism = utils.If(request.Id == classList[0].Id, request.TitleScore, classList[0].TitleScore).(float32) case "Influence": updateArtistSystemIndexRequest.Influence = utils.If(request.Id == classList[0].Id, request.TitleScore, classList[0].TitleScore).(float32) case "collect": updateArtistSystemIndexRequest.Collectible = utils.If(request.Id == classList[0].Id, request.TitleScore, classList[0].TitleScore).(float32) } } } fmt.Printf("准备同步画家指数:%+v\n", updateArtistSystemIndexRequest) _, err = service.GrpcArtistImpl.UpdateIndex(c, updateArtistSystemIndexRequest) return err }