fonchain-fiee/pkg/service/artistInfo/asArtist/artist.go

627 lines
25 KiB
Go
Raw Normal View History

2025-02-19 06:24:15 +00:00
// Package asArtist -----------------------------
// @file : asArtist.go
// @author : JJXu
// @contact : wavingbear@163.com
// @time : 2023/2/27 9:29
// -------------------------------------------
package asArtist
import (
"fmt"
"github.com/fonchain_enterprise/fonchain-main/api/artistinfoArtshow"
"github.com/fonchain_enterprise/fonchain-main/api/artwork"
"github.com/fonchain_enterprise/fonchain-main/api/artwork_query"
"github.com/fonchain_enterprise/fonchain-main/pkg/service/artistInfo/asUser"
"github.com/fonchain_enterprise/fonchain-main/pkg/utils"
"github.com/fonchain_enterprise/fonchain-main/pkg/utils/stime"
"golang.org/x/sync/errgroup"
"strings"
"time"
"dubbo.apache.org/dubbo-go/v3/common/logger"
"github.com/fonchain_enterprise/fonchain-main/api/artist"
"github.com/fonchain_enterprise/fonchain-main/api/artistInfoArtwork"
"github.com/fonchain_enterprise/fonchain-main/api/artistInfoUser"
"github.com/fonchain_enterprise/fonchain-main/pkg/config"
"github.com/fonchain_enterprise/fonchain-main/pkg/e"
"github.com/fonchain_enterprise/fonchain-main/pkg/service"
"github.com/gin-gonic/gin"
"github.com/jinzhu/copier"
)
// GetArtistProfileList 获取画家基本信息列表
func GetArtistProfileList(c *gin.Context) {
var req GetArtistProfileListRequest
if err := c.ShouldBindJSON(&req); err != nil {
service.Error(c, e.InvalidParams, err, err.Error())
return
}
var now = time.Now()
var order []string
if len(req.MultSort) > 0 {
for _, v := range req.MultSort {
if v.SortField == "" {
continue
}
var orderType = "asc"
if v.SortOrder == "descend" {
orderType = "desc"
}
order = append(order, fmt.Sprintf("%s %s", utils.CamelToSnake(v.SortField), orderType))
}
}
if req.SortField != "" {
var orderType = "asc"
if req.SortOrder == "descend" {
orderType = "desc"
}
order = append(order, fmt.Sprintf("%s %s", utils.CamelToSnake(req.SortField), orderType))
}
switch req.QueryType {
case QueryArtworkSupplyUser:
//画作补充信息审批状态为”待审核“的画家置顶 需求地址http://114.218.158.24:9017/task-view-892.html
order = append(order, "exist_pending_artwork_supply_data desc")
case QueryArtistIndexUser:
order = append(order, "exist_index_supply_data desc")
}
var where string
//if req.Sex != "" {
// switch req.Sex {
// case "男":
// where = fmt.Sprintf("sex =1")
// case "女":
// where = fmt.Sprintf("sex =2")
// default:
// service.ErrorWithMark(c, e.Failed, nil, "GetArtistProfileList Sex Validate Error", "性别字段参数错误")
// return
// }
//}
if req.ArtShowCountStart != nil {
if where != "" {
where += " AND "
}
where += fmt.Sprintf("art_show_count >= %d ", *req.ArtShowCountStart)
}
if req.ArtShowCountEnd != nil {
if where != "" {
where += " AND "
}
where += fmt.Sprintf("art_show_count <= %d", *req.ArtShowCountEnd)
}
var userListResponse *artistInfoUser.FindUsersUserViewResponse
var err error
userListResponse, err = service.GrpcArtistInfoUserImpl.FindUsersUserView(c, &artistInfoUser.FindUsersRequest{
InviterName: req.InviterName,
ArtistRealName: req.ArtistName,
Page: req.Page,
PageSize: req.PageSize,
IsArtist: req.IsArtist,
Keyword: req.Keyword,
Tnum: req.Tnum,
Order: order,
IncludeArtworkName: req.IncludeArtworkName,
IncludeArtworkSupplyAuditStatus: req.IncludeArtworkSupplyAuditStatus,
IncludeArtworkSupplyFlowType: req.IncludeArtworkSupplyFlowType,
LowState: req.LowState,
Where: where,
NativePlace: req.NativePlace,
Sex: req.Sex,
MultInviterName: req.MultInviterName,
//BlackListStatus: 1,
//UseDynamicTable: asUser.DynamicUserService.CompleteState.IsUpdateCompleted(), //使用物理视图
})
fmt.Printf("cost1: %v\n", time.Now().Sub(now))
if err != nil {
service.ErrorWithMark(c, e.Failed, err, "GetArtistProfileList: GrpcArtistInfoUserImpl.FindUsers Error", "查询失败")
return
}
//黑名单用户前面加#
for i, v := range userListResponse.Data {
if v.BlackListStatus == 2 {
userListResponse.Data[i].RealName = "#" + userListResponse.Data[i].RealName
}
}
//数据转换
var returnData []UserView
err = copier.Copy(&returnData, &userListResponse.Data)
if err != nil {
service.ErrorWithMark(c, e.Failed, err, "GetArtistProfileList: copier.Copy Error", "数据转换失败")
return
}
//查询insource字段
var artistUids []string
for _, v := range returnData {
artistUids = append(artistUids, v.ArtistUid)
}
for i, v := range returnData {
//returnData[i].LowState = 2
//新需求改为所有邀请者都要加上去 2023/04/26
// 查询所有邀请者
inviterList, err := service.GrpcArtistInfoUserImpl.GetInviterUserList(c, &artistInfoUser.GetInviterUserListRequest{InvitedCode: v.InviteCode, Page: 1, PageSize: -1})
if err != nil {
logger.Error("GrpcArtistInfoUserImpl.GetInviterUserList ERROR :", err.Error())
}
var inviterNames []string
if len(inviterList.Data) > 0 {
for _, inv := range inviterList.Data {
inviterNames = append(inviterNames, inv.RealName)
}
returnData[i].InviterRealName = strings.Join(inviterNames, ",")
}
}
fmt.Printf("cost2: %v\n", time.Now().Sub(now))
errGroup := errgroup.Group{}
for i, _ := range returnData {
i := i
//下载长文本 个人简介
errGroup.Go(func() error {
//return downloadLongTextFromBucket(&returnData[i])
return new(ResumeCache).QueryOrDownloadLongTextFromBucket(&returnData[i])
})
returnData[i].ArtistShowCount = fmt.Sprintf("%s(%d)", returnData[i].RealName, returnData[i].ArtShowCount)
//优化地址显示
for tempAddr := range returnData[i].Address {
if strings.Contains(returnData[i].Address[tempAddr], ",,,") {
returnData[i].Address[tempAddr] = strings.ReplaceAll(returnData[i].Address[tempAddr], ",,,", "")
}
}
}
err = errGroup.Wait()
fmt.Printf("cost3: %v\n", time.Now().Sub(now))
if err != nil {
service.ErrorWithMark(c, e.Failed, err, "GetArtistProfileList: downloadLongTextFromBucket Error", "查询失败")
return
}
if strings.Contains("test,dev,xjjdev", config.Env) {
time.Sleep(time.Second * 1)
fmt.Println("测试环境等待1秒")
}
////获取低优先级画家列表并作标注
//lowList, err := service.GrpcArtistImpl.LowArtistList(c, &artist.LowArtistListReq{
// Page: 1,
// PageSize: -1,
//})
//if err != nil {
// service.ErrorWithMark(c, e.Failed, err, "GetArtistProfileList: GrpcArtistImpl.LowArtistList Error", "查询失败")
// return
//}
//for i, _ := range returnData {
// for _, v := range lowList.Data {
// if v.RealName == returnData[i].RealName {
// returnData[i].LowState = 1
// }
// }
//}
//service.ResponseList(c, returnData, service.OptionPage(userListResponse.Page.Page, userListResponse.Page.PageSize, userListResponse.Page.Total),
// service.OptionAddField_ArtshowCount("artistUid"))
service.ResponseList(c, returnData, service.OptionPage(userListResponse.Page.Page, userListResponse.Page.PageSize, userListResponse.Page.Total))
}
// ArtistsArtworkStaticList 获取画家的画作统计列表
func ArtistsArtworkStaticList(c *gin.Context) {
var startTime = time.Now()
var req ArtistArtworkStaticRequest
if err := c.ShouldBindJSON(&req); err != nil {
service.Error(c, e.InvalidParams, err, err.Error())
return
}
var artistStaticRequest = &artistInfoArtwork.ArtistArtworkStaticRequest{
Page: req.Page,
PageSize: req.PageSize,
ArtistName: req.ArtistName,
Tnum: req.Tnum,
IsLock: req.IsLock,
}
//===================================画作筛选条件处理==================================================================
var (
queryArtistUidFromArtworkRecords bool
artworkLockRecordsReq = &artistInfoArtwork.GetArtworkLockRecordsRequest{Page: 1, PageSize: -1}
artistArtworkTotal = make(map[string]int64) //记录画家的画作数量
)
fmt.Println("ArtistsArtworkStaticList---------------------1")
if req.BaseAuditStatus != 0 {
queryArtistUidFromArtworkRecords = true
if req.BaseAuditStatus == StaticReq_noFinish {
artworkLockRecordsReq.Where = req.WhereAdd(artworkLockRecordsReq.Where, "(base_audit_status<3 OR base_audit_status=7)")
} else if req.BaseAuditStatus == StaticReq_preSave {
//关于暂存状态的说明:
// 暂存状态表示的是未锁定的画作。
// 远古时的逻辑是当画家锁定后,用户上传的画作也被锁定,同时审批状态会从**暂存**变成**待审核**,也就是从不能审批状态变为可以审批,这时候直接用暂存状态直接查询是没有问题的;
// 后来要求暂存的画作也要支持审核,但是如果审批过后,画作状态就不是**暂存**状态了。按照原先的逻辑,这些画其实还是未锁定状态,因为这些画没有被锁定,最终导致有部分画作会找不到,所以要改为使用锁定状态来查询;
artworkLockRecordsReq.Where = req.WhereAdd(artworkLockRecordsReq.Where, "status =1")
} else {
artworkLockRecordsReq.BaseAuditStatus = int64(req.BaseAuditStatus)
}
}
fmt.Println("ArtistsArtworkStaticList---------------------2")
if req.NationalExhibition != 0 {
queryArtistUidFromArtworkRecords = true
artworkLockRecordsReq.Where = req.WhereAdd(artworkLockRecordsReq.Where, fmt.Sprintf("national_exhibition=%d", req.NationalExhibition))
}
if req.QueryHaveProof != 0 {
queryArtistUidFromArtworkRecords = true
artworkLockRecordsReq.Where = req.WhereAdd(artworkLockRecordsReq.Where, "national_exhibition_proof !=''")
}
fmt.Println("ArtistsArtworkStaticList---------------------3")
if req.ArtworkName != "" || req.Tfnum != "" {
fmt.Println("ArtistsArtworkStaticList---------------------3.1")
queryArtistUidFromArtworkRecords = true
artworks, err := service.GrpcArtworkQueryImpl.GetArtworkProfileList(c, &artwork_query.GetArtworkProfileListRequest{
Query: &artwork_query.ArtworkProfileData{
Name: req.ArtworkName,
Tfnum: req.Tfnum,
},
Page: 1,
PageSize: -1,
})
if err != nil {
service.ErrorWithMark(c, e.Failed, err, "ArtistsArtworkStaticList: service.GrpcArtworkQueryImpl.ArtworkPreviewList", "查询失败")
return
}
fmt.Println("ArtistsArtworkStaticList---------------------3.2")
if len(artworks.List) == 0 {
service.ResponseList(c, []ArtistArtworkStaticStaticData{}, service.OptionPage(req.Page, req.PageSize, 0))
return
}
fmt.Println("ArtistsArtworkStaticList---------------------3.3")
var artistUids []string
var artworkUids []string
for _, v := range artworks.List {
artistUids = append(artistUids, v.ArtistUuid)
artworkUids = append(artworkUids, v.Uuid)
}
artistUids = utils.ArrayDeduplicate(artistUids)
if len(artistStaticRequest.ArtistUidList) == 0 {
artistStaticRequest.ArtistUidList = artistUids
} else {
artistStaticRequest.ArtistUidList = utils.Intersection(artistStaticRequest.ArtistUidList, artistUids)
}
if len(artistStaticRequest.ArtworkUids) > 0 {
artistStaticRequest.ArtworkUids = utils.Intersection(artistStaticRequest.ArtworkUids, artworkUids)
} else {
artistStaticRequest.ArtworkUids = artworkUids
}
fmt.Println("ArtistsArtworkStaticList---------------------3.4")
if len(artistStaticRequest.ArtworkUids) == 0 {
service.ResponseList(c, []ArtistArtworkStaticStaticData{}, service.OptionPage(req.Page, req.PageSize, 0))
return
}
fmt.Println("new artworkUids1111", artistStaticRequest.ArtworkUids)
fmt.Println("ArtistsArtworkStaticList---------------------3.5")
}
fmt.Println("artistStaticRequest.ArtistUidList1111", artistStaticRequest.ArtistUidList)
if req.RulerStart != nil || req.RulerEnd != nil {
fmt.Println("ArtistsArtworkStaticList---------------------4.1")
var artworkViewListRequest = artistInfoArtwork.ArtworkViewRequest{Page: 1, PageSize: -1, Select: []string{"artist_uid", "artwork_uid"}}
//排除已解锁的画作
artworkViewListRequest.Where = "lock_status<3"
if req.RulerStart != nil {
if artworkViewListRequest.Where != "" {
artworkViewListRequest.Where += " AND "
}
artworkViewListRequest.Where += fmt.Sprintf("ruler >= %d ", *req.RulerStart)
}
if req.RulerEnd != nil {
if artworkViewListRequest.Where != "" {
artworkViewListRequest.Where += " AND "
}
artworkViewListRequest.Where += fmt.Sprintf("ruler <= %d", *req.RulerEnd)
}
fmt.Println("ArtistsArtworkStaticList---------------------4.2")
rulerArtworkResp, err := service.GrpcArtistInfoArtworkImpl.GetArtworkViewList(c, &artworkViewListRequest)
if err != nil {
service.ErrorWithMark(c, e.Failed, err, "ArtistsArtworkStaticList: service.GrpcArtistInfoArtworkImpl.GetArtworkViewList", "查询失败")
return
}
fmt.Println("ArtistsArtworkStaticList---------------------4.3")
if rulerArtworkResp.Total == 0 {
service.ResponseList(c, []ArtistArtworkStaticStaticData{}, service.OptionPage(req.Page, req.PageSize, 0))
return
}
fmt.Println("ArtistsArtworkStaticList---------------------4.4")
var artistUids []string
var artworkUids []string
for _, v := range rulerArtworkResp.Datas {
artistUids = append(artistUids, v.ArtistUid)
artworkUids = append(artworkUids, v.ArtworkUid)
}
artistUids = utils.ArrayDeduplicate(artistUids)
if len(artistStaticRequest.ArtistUidList) == 0 {
artistStaticRequest.ArtistUidList = artistUids
} else {
artistStaticRequest.ArtistUidList = utils.Intersection(artistStaticRequest.ArtistUidList, artistUids)
}
if len(artistStaticRequest.ArtworkUids) > 0 {
artistStaticRequest.ArtworkUids = utils.Intersection(artistStaticRequest.ArtworkUids, artworkUids)
} else {
artistStaticRequest.ArtworkUids = artworkUids
}
fmt.Println("ArtistsArtworkStaticList---------------------3.4")
if len(artistStaticRequest.ArtworkUids) == 0 {
service.ResponseList(c, []ArtistArtworkStaticStaticData{}, service.OptionPage(req.Page, req.PageSize, 0))
return
}
}
fmt.Println("artistStaticRequest.ArtistUidList2222", artistStaticRequest.ArtistUidList)
if queryArtistUidFromArtworkRecords {
fmt.Println("ArtistsArtworkStaticList---------------------5.1")
artworkLockRecordsReq.Where = req.WhereAdd(artworkLockRecordsReq.Where, "status < 3")
artworkLockRecordsReq.Where = req.WhereAdd(artworkLockRecordsReq.Where, fmt.Sprintf("artwork_uid in (%s)", "'"+strings.Join(artistStaticRequest.ArtworkUids, "','")+"'"))
records, err := service.GrpcArtistInfoArtworkImpl.GetArtworkLockRecords(c, artworkLockRecordsReq)
if err != nil {
service.ErrorWithMark(c, e.Failed, err, "ArtistsArtworkStaticList: service.GrpcArtistInfoArtworkImpl.GetArtworkLockRecords", "查询失败")
return
}
fmt.Println("ArtistsArtworkStaticList---------------------5.2")
var artworkUids []string
newArtistUidList := make([]string, 0)
for _, v := range records.Data {
newArtistUidList = append(newArtistUidList, v.ArtistUid)
artworkUids = append(artworkUids, v.ArtworkUid)
}
if len(artistStaticRequest.ArtworkUids) > 0 {
artistStaticRequest.ArtworkUids = utils.Intersection(artistStaticRequest.ArtworkUids, artworkUids)
} else {
artistStaticRequest.ArtworkUids = artworkUids
}
fmt.Println("ArtistsArtworkStaticList---------------------5.3")
if len(artistStaticRequest.ArtworkUids) == 0 {
service.ResponseList(c, []ArtistArtworkStaticStaticData{}, service.OptionPage(records.Page, records.PageSize, records.Total))
return
}
fmt.Println("new artworkUids22222", artistStaticRequest.ArtworkUids)
fmt.Println("newArtistUidList", newArtistUidList)
fmt.Println("ArtistsArtworkStaticList---------------------5.4")
newArtistUidList = utils.ArrayDeduplicate(newArtistUidList)
if len(artistStaticRequest.ArtistUidList) == 0 {
artistStaticRequest.ArtistUidList = newArtistUidList
fmt.Println("artistStaticRequest.ArtistUidList3333_1", artistStaticRequest.ArtistUidList)
} else {
artistStaticRequest.ArtistUidList = utils.Intersection(artistStaticRequest.ArtistUidList, newArtistUidList)
fmt.Println("artistStaticRequest.ArtistUidList3333_2", artistStaticRequest.ArtistUidList)
}
fmt.Println("ArtistsArtworkStaticList---------------------5.5")
if len(artistStaticRequest.ArtistUidList) == 0 {
service.ResponseList(c, []ArtistArtworkStaticStaticData{}, service.OptionPage(records.Page, records.PageSize, records.Total))
return
} else {
fmt.Println("ArtistsArtworkStaticList---------------------5.6")
//统计当前条件下的每个画家的画作数量
for _, v := range artistStaticRequest.ArtistUidList {
artistArtworkTotal[v] = 0
for _, w := range records.Data {
if w.ArtistUid == v {
artistArtworkTotal[v]++
}
}
}
}
}
//===================================画家筛选条件处理==================================================================
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))
artistStaticRequest.Order = strings.Join(order, ",")
}
if req.IsMaster != 0 {
switch req.IsMaster {
case 1:
artistStaticRequest.Where = fmt.Sprintf("IFNULL(caa_cert_num,'') != ''")
case 2:
artistStaticRequest.Where = fmt.Sprintf("IFNULL(caa_cert_num,'') = ''")
}
}
if req.PassedRulerTotalStart != nil {
if artistStaticRequest.Where != "" {
artistStaticRequest.Where += " AND "
}
artistStaticRequest.Where += fmt.Sprintf("passed_ruler_total >= %d ", *req.PassedRulerTotalStart)
}
if req.PassedRulerTotalEnd != nil {
if artistStaticRequest.Where != "" {
artistStaticRequest.Where += " AND "
}
artistStaticRequest.Where += fmt.Sprintf("passed_ruler_total <= %d", *req.PassedRulerTotalEnd)
}
fmt.Println("artistStaticRequest.ArtistUidList444444", artistStaticRequest.ArtistUidList)
fmt.Println("ArtistsArtworkStaticList---------------------6")
datas, err := service.GrpcArtistInfoArtworkImpl.ArtistArtworkStatic(c, artistStaticRequest)
if err != nil {
service.ErrorWithMark(c, e.Failed, err, "ArtistsArtworkStaticList: service.GrpcArtistInfoArtworkImpl.ArtistArtworkStatic", "查询失败")
return
}
fmt.Println("cost1", time.Now().Sub(startTime))
var returnData []ArtistArtworkStaticStaticData
for _, v := range datas.Data {
var lockTime string
lockT, terr := stime.StringToTimeWithFormat(v.LatestLockTime, stime.Format_Normal_YMDhms)
if terr == nil {
lockTime = lockT.Format(stime.Format_Normal_YMDhms)
} else {
lockTime = v.LatestLockTime
}
returnData = append(returnData, ArtistArtworkStaticStaticData{
Idx: v.Idx,
IsLock: v.IsLock,
ArtistUid: v.ArtistUid,
LatestLockTime: lockTime,
PassedArtworkNumber: v.PassedArtworkTotal,
LatestUpdatedAt: v.LatestUpdatedAt,
RealName: v.RealName,
PenName: v.PenName,
StageName: v.StageName,
ArtworkTotal: v.ArtworkTotal,
RulerTotal: v.RulerTotal,
PassedRulerTotal: v.PassedRulerTotal,
PassedArtworkTotal: v.PassedArtworkTotal,
NoAuditArtworkTotal: v.NoAuditArtworkTotal,
IdNum: v.IdNum,
Tnum: v.Tnum,
CaaCertNum: v.CaaCertNum,
IsMaster: v.CaaCertNum != "",
NowConditionArtworkTotal: artistArtworkTotal[v.ArtistUid],
})
}
fmt.Println("cost2", time.Now().Sub(startTime))
// //查询inSource字段值
service.ResponseList(c, returnData, service.OptionPage(datas.Page, datas.PageSize, datas.Total),
service.OptionAddField_ArtshowCount("artistUid"))
}
// 画家导入画家服务
func ImportUserToArtistService(c *gin.Context) {
var req artist.UpdateInsourceReq
if err := c.ShouldBindJSON(&req); err != nil {
service.Error(c, e.InvalidParams, err, "无效参数")
return
}
if req.ArtistUid == "" && len(req.ArtistUids) == 0 {
service.Error(c, e.InvalidParams, nil, "参数不能为空")
return
}
//先更新经纪人字段
var artistUids []string
if req.ArtistUid != "" {
artistUids = append(artistUids, req.ArtistUid)
}
if len(req.ArtistUids) > 0 {
artistUids = append(artistUids, req.ArtistUids...)
}
for _, artistUid := range artistUids {
//更新画家信息
artistInfo, err := service.GrpcArtistImpl.ArtistDetail(c, &artist.DetailRequest{Uid: artistUid})
if err != nil {
service.ErrorWithMark(c, e.InvalidParams, err, "ImportUserToArtistService: GrpcArtistImpl.UpdateInsource Error:"+err.Error(), "查询画家信息失败")
return
}
//获取画家宝用户信息
userInfo, err := service.GrpcArtistInfoUserImpl.FindUser(c, &artistInfoUser.FindUserRequest{MgmtArtistUid: artistUid})
if err != nil {
service.ErrorWithMark(c, e.InvalidParams, err, "ImportUserToArtistService: GrpcArtistInfoUserImpl.FindUser Err:"+err.Error(), "查询画家信息失败")
return
}
inviterRes, err := service.GrpcArtistInfoUserImpl.GetInviterUserList(c, &artistInfoUser.GetInviterUserListRequest{InvitedCode: userInfo.InviteCode})
if err != nil {
service.ErrorWithMark(c, e.InvalidParams, err, "ImportUserToArtistService: GrpcArtistInfoUserImpl.GetInviterUserList Err:"+err.Error(), "邀请人查询失败,无法更新经纪人字段")
return
}
var inviterNames []string
for _, v := range inviterRes.Data {
inviterNames = append(inviterNames, v.RealName)
}
if strings.Contains("test,dev,xjjdev", config.Env) {
time.Sleep(time.Second * 1)
fmt.Println("测试环境等待1秒")
}
artistInfo.ProfileInfo.Agent = strings.Join(inviterNames, ",")
//导入的时候更新性别和年龄
if userInfo.RealName != nil {
var sex int32
if userInfo.RealName.Sex == "男" {
sex = 1
}
artistInfo.ProfileInfo.Age = userInfo.RealName.Age
artistInfo.ProfileInfo.Gender = sex
}
_, err = service.GrpcArtistImpl.UpdateProfile(c, artistInfo.ProfileInfo)
if err != nil {
if strings.Contains(err.Error(), "证书") {
service.ErrorWithMark(c, e.InvalidParams, err, "ImportUserToArtistService: GrpcArtistImpl.UpdateProfile Err:"+err.Error(), "导入失败:美协证书编号不匹配")
} else {
service.ErrorWithMark(c, e.InvalidParams, err, "ImportUserToArtistService: GrpcArtistImpl.UpdateProfile Err:"+err.Error(), "经纪人字段更新失败")
}
return
}
//将当前不在画家宝中展示的画作导入画家宝
if !updateArtworkInsourceAs3(c, artistUid) {
return
}
//记录操作
go asUser.UpdateOperationTime(c, artistinfoArtshow.OdType_artistBaseInfo, userInfo.Id)
}
//再更新insource字段
if req.InSource == artist.InSource_InsourceNone {
req.InSource = artist.InSource_InSourceManagerAndBox
}
_, err := service.GrpcArtistImpl.UpdateInsource(c, &req)
if err != nil {
service.ErrorWithMark(c, e.InvalidParams, err, "ImportUserToArtistService: GrpcArtistImpl.UpdateInsource Error:"+err.Error(), "更新失败")
return
}
//_, err = service.GrpcArtistInfoUserImpl.SyncDynamicUser(c, &artistInfoUser.SyncDynamicUserRequest{ArtistUid: req.ArtistUid, ArtistUidList: req.ArtistUids})
//if err != nil {
// service.ErrorWithMark(c, e.Failed, err, fmt.Sprintf("ImportUserToArtistService: SyncDynamicUser: Error :%v", err.Error()), "更新失败")
// return
//}
////更新物理视图
// if len(artistUids) > 0 {
//go asUser.DynamicUserService.UpdateUserWistArtistUid(artistUids...)
//}
service.Success(c)
}
func updateArtworkInsourceAs3(c *gin.Context, artistUid string) (ok bool) {
//画家所有画作需要在画家宝可见
allartworks, err := service.GrpcArtworkQueryImpl.ArtworkPreviewList(c, &artwork_query.ArtworkPreviewListRequest{
Page: 1,
PageSize: -1,
ArtistUid: artistUid,
})
if err != nil {
service.ErrorWithMark(c, e.InvalidParams, err, "ImportUserToArtistService: GrpcArtistImpl.UpdateInsource Error:"+err.Error(), "更新失败")
return
}
//将管理系统的画作更新到画家宝
var artworkUids []string
for _, v := range allartworks.Data {
if v.InSource != 2 && v.InSource != 3 {
artworkUids = append(artworkUids, v.ArtworkUid)
}
}
if len(artworkUids) > 0 {
_, err = service.GrpcArtworkImpl.UpdateInsource(c, &artwork.UpdateInsourceReq{
ArtworkUids: artworkUids,
InSource: 3,
})
if err != nil {
service.ErrorWithMark(c, e.InvalidParams, err, "GrpcArtworkImpl.UpdateInsource Error:"+err.Error(), "更新失败")
return
}
//生成画作审批记录,如果记录不存在,则默认为暂存状态
//var locktime = time.Now().Format(stime.Format_Normal_YMDhms)
for _, uid := range artworkUids {
_, _ = service.GrpcArtistInfoArtworkImpl.CreateArtworkLockRecord(c, &artistInfoArtwork.CreateArtworkLockRecordReq{
ArtistUid: artistUid,
ArtworkUid: uid,
Status: 1,
//LockTime: locktime,
})
}
}
ok = true
return
}
// 画家导入画家宝
func ImportArtistToArtistinfo(c *gin.Context) {
var req = artistInfoUser.ImportUserRequest{}
if err := c.ShouldBindJSON(&req); err != nil {
service.Error(c, e.InvalidParams, err, err.Error())
return
}
data, err := service.GrpcArtistInfoUserImpl.ImportUser(c, &req)
if err != nil {
fmt.Println("ImportUser: GrpcArtistInfoUserImpl.ImportUser Error:" + err.Error())
service.ErrorWithMark(c, e.Failed, err, "ImportUser: GrpcArtistInfoUserImpl.ImportUser Error:"+err.Error(), err.Error())
return
}
service.Success(c, data)
}