247 lines
8.8 KiB
Go
247 lines
8.8 KiB
Go
|
package asArtshow
|
|||
|
|
|||
|
import (
|
|||
|
"dubbo.apache.org/dubbo-go/v3/common/logger"
|
|||
|
"encoding/json"
|
|||
|
"fmt"
|
|||
|
"github.com/fonchain_enterprise/fonchain-main/api/artistInfoUser"
|
|||
|
"github.com/fonchain_enterprise/fonchain-main/pkg/common"
|
|||
|
"github.com/fonchain_enterprise/fonchain-main/pkg/model"
|
|||
|
"github.com/fonchain_enterprise/fonchain-main/pkg/service/artistInfo/asUser"
|
|||
|
"golang.org/x/net/context"
|
|||
|
"strconv"
|
|||
|
"time"
|
|||
|
|
|||
|
"github.com/fonchain_enterprise/fonchain-main/api/artistinfoArtshow"
|
|||
|
"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"
|
|||
|
)
|
|||
|
|
|||
|
func ArtshowHistoryGroup(c *gin.Context) {
|
|||
|
var req = artistinfoArtshow.GetArtshowHistroyListRequest{}
|
|||
|
if err := c.ShouldBindJSON(&req); err != nil {
|
|||
|
service.Error(c, e.InvalidParams, err, err.Error())
|
|||
|
return
|
|||
|
}
|
|||
|
if req.ArtistUid == "" {
|
|||
|
userInfo, err, code := asUser.GetUserInfoWithToken(c)
|
|||
|
if err != nil {
|
|||
|
service.Error(c, code, err, err.Error())
|
|||
|
return
|
|||
|
}
|
|||
|
req.ArtistUid = userInfo.MgmtArtistUid
|
|||
|
}
|
|||
|
|
|||
|
res, err := service.GrpcArtistInfoArtshowImpl.GetArtshowHistroyList(c, &req)
|
|||
|
if err != nil {
|
|||
|
service.ErrorWithMark(c, e.Failed, err, "GrpcArtshowImpl.GetArtshowHistroyList Error", "查询错误")
|
|||
|
}
|
|||
|
if req.PageSize == -1 {
|
|||
|
req.PageSize = int64(len(res.Data))
|
|||
|
}
|
|||
|
fmt.Printf("%+v\n", res.Data)
|
|||
|
var returnData = []*TimeGroup{}
|
|||
|
if err = copier.Copy(&returnData, res.Data); err != nil {
|
|||
|
service.ErrorWithMark(c, e.Failed, err, "ArtshowHistoryGroup:copier.Copy Error", "查询错误")
|
|||
|
}
|
|||
|
//优化空指针
|
|||
|
for i, v := range returnData {
|
|||
|
if v.ArtistIndexList == nil {
|
|||
|
returnData[i].ArtistIndexList = []*ArtistIndexData{}
|
|||
|
}
|
|||
|
if v.ArtistSupplementList == nil {
|
|||
|
returnData[i].ArtistSupplementList = []*ArtistSupplementData{}
|
|||
|
}
|
|||
|
if v.ArtistVideoList == nil {
|
|||
|
returnData[i].ArtistVideoList = []*ArtistVideoData{}
|
|||
|
}
|
|||
|
if v.ArtworkSupplementList == nil {
|
|||
|
returnData[i].ArtworkSupplementList = []*ArtworkSupplementData{}
|
|||
|
}
|
|||
|
}
|
|||
|
service.ResponseList(c, returnData, service.OptionPage(req.Page, req.PageSize, len(res.Data)))
|
|||
|
}
|
|||
|
|
|||
|
func UpdateRecomend(c *gin.Context) {
|
|||
|
var req artistInfoUser.UpdateRecommendReq
|
|||
|
if err := c.ShouldBindJSON(&req); err != nil {
|
|||
|
service.Error(c, e.InvalidParams, err, err.Error())
|
|||
|
return
|
|||
|
}
|
|||
|
resp, err := service.GrpcArtistInfoUserImpl.UpdateRecommend(context.Background(), &req)
|
|||
|
if err != nil {
|
|||
|
service.ResponseQuickMsg(c, e.Failed, err.Error(), nil)
|
|||
|
return
|
|||
|
}
|
|||
|
service.ResponseQuickMsg(c, e.Ok, resp.Msg, nil)
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
func ArtshowList(c *gin.Context) {
|
|||
|
var err error
|
|||
|
var req = artistInfoUser.ArtshowListReq{}
|
|||
|
if err := c.ShouldBindJSON(&req); err != nil {
|
|||
|
service.Error(c, e.InvalidParams, err, err.Error())
|
|||
|
return
|
|||
|
}
|
|||
|
var resp *artistInfoUser.ArtshowListResp
|
|||
|
resp, err = service.GrpcArtistInfoUserImpl.ArtshowList(context.Background(), &req)
|
|||
|
if err != nil {
|
|||
|
service.ResponseQuickMsg(c, e.Failed, err.Error(), nil)
|
|||
|
return
|
|||
|
}
|
|||
|
// 遍历画家artistUuids
|
|||
|
var artistUuids []string
|
|||
|
for _, v := range resp.Data {
|
|||
|
if v.ArtistUuid != "" {
|
|||
|
artistUuids = append(artistUuids, v.ArtistUuid)
|
|||
|
}
|
|||
|
}
|
|||
|
artistUuids = common.DistinctSliceString(artistUuids)
|
|||
|
if len(artistUuids) == 0 {
|
|||
|
service.ResponseQuickMsg(c, e.Failed, "没有画家信息", nil)
|
|||
|
return
|
|||
|
}
|
|||
|
var findUsersReq artistInfoUser.FindUsersRequest
|
|||
|
findUsersReq.Page = 1
|
|||
|
findUsersReq.PageSize = 999
|
|||
|
findUsersReq.MgmtArtistUids = artistUuids
|
|||
|
// 批量查询画家信息
|
|||
|
findUsersResp, errS := service.GrpcArtistInfoUserImpl.FindUsersUserView(context.Background(), &findUsersReq)
|
|||
|
if errS != nil {
|
|||
|
service.ResponseQuickMsg(c, e.Failed, errS.Error(), nil)
|
|||
|
return
|
|||
|
}
|
|||
|
var artistSupperMap map[string]map[string]map[string]interface{}
|
|||
|
artistSupperMap = map[string]map[string]map[string]interface{}{}
|
|||
|
//查询推荐人信息和画展补充发起时间
|
|||
|
for _, artistUuid := range artistUuids {
|
|||
|
var artshowReq artistinfoArtshow.GetBrokerSupplementListRequest
|
|||
|
artshowReq.ArtistUid = artistUuid
|
|||
|
artshowReq.Page = 1
|
|||
|
artshowReq.PageSize = 999
|
|||
|
artshowResp, errs := service.GrpcArtistInfoArtshowImpl.GetBrokerSupplementList(context.Background(), &artshowReq)
|
|||
|
if errs != nil {
|
|||
|
service.ResponseQuickMsg(c, e.Failed, errs.Error(), nil)
|
|||
|
return
|
|||
|
}
|
|||
|
// 查询每个画家、画展包的绑定信息
|
|||
|
for _, v := range artshowResp.List {
|
|||
|
if artistSupperMap[v.ArtistUid] == nil {
|
|||
|
artistSupperMap[v.ArtistUid] = map[string]map[string]interface{}{}
|
|||
|
}
|
|||
|
if artistSupperMap[v.ArtistUid][v.ArtPackageUid] == nil {
|
|||
|
artistSupperMap[v.ArtistUid][v.ArtPackageUid] = map[string]interface{}{}
|
|||
|
}
|
|||
|
artistSupperMap[v.ArtistUid][v.ArtPackageUid]["artshow_ext_time"] = v.CreatedAt
|
|||
|
artistSupperMap[v.ArtistUid][v.ArtPackageUid]["recomment_id"] = fmt.Sprintf("%v", v.BrokerId)
|
|||
|
artistSupperMap[v.ArtistUid][v.ArtPackageUid]["recomment_name"] = fmt.Sprintf("%v", v.BrokerName)
|
|||
|
}
|
|||
|
}
|
|||
|
// 组装画家信息
|
|||
|
var findUsersInfo map[string]map[string]interface{}
|
|||
|
findUsersInfo = map[string]map[string]interface{}{}
|
|||
|
var artistInvite map[string][]*artistInfoUser.ArtshowListResp_Info_InviteInfo
|
|||
|
artistInvite = map[string][]*artistInfoUser.ArtshowListResp_Info_InviteInfo{}
|
|||
|
for _, v := range findUsersResp.Data {
|
|||
|
var temp map[string]interface{}
|
|||
|
temp = map[string]interface{}{}
|
|||
|
temp["sex"] = v.Sex
|
|||
|
temp["age"] = v.Age
|
|||
|
temp["phone"] = v.TelNum
|
|||
|
temp["name"] = v.RealName
|
|||
|
temp["invite_code"] = v.InviteCode
|
|||
|
// 根据邀请码查询画家的邀请人信息
|
|||
|
inviterList, errs := service.GrpcArtistInfoUserImpl.GetInviterUserList(context.Background(), &artistInfoUser.GetInviterUserListRequest{
|
|||
|
InvitedCode: v.InviteCode,
|
|||
|
Page: 1,
|
|||
|
PageSize: -1,
|
|||
|
})
|
|||
|
if errs != nil {
|
|||
|
service.ResponseQuickMsg(c, e.Failed, errs.Error(), nil)
|
|||
|
return
|
|||
|
}
|
|||
|
for _, vv := range inviterList.Data {
|
|||
|
//inviterNames = append(inviterNames, vv.RealName)
|
|||
|
//inviterIds = append(inviterIds, fmt.Sprintf("%d", vv.UserId))
|
|||
|
if artistInvite[v.ArtistUid] == nil {
|
|||
|
artistInvite[v.ArtistUid] = []*artistInfoUser.ArtshowListResp_Info_InviteInfo{}
|
|||
|
}
|
|||
|
var ttInvite *artistInfoUser.ArtshowListResp_Info_InviteInfo
|
|||
|
ttInvite = &artistInfoUser.ArtshowListResp_Info_InviteInfo{}
|
|||
|
ttInvite.Realname = vv.RealName
|
|||
|
ttInvite.UserId = int32(vv.UserId)
|
|||
|
artistInvite[v.ArtistUid] = append(artistInvite[v.ArtistUid], ttInvite)
|
|||
|
}
|
|||
|
//temp["invite_name"] = strings.Join(inviterNames, ",")
|
|||
|
//temp["invite_id"] = strings.Join(inviterIds, ",")
|
|||
|
findUsersInfo[v.ArtistUid] = temp
|
|||
|
}
|
|||
|
for _, v := range resp.Data {
|
|||
|
if findUsersInfo[v.ArtistUuid] != nil {
|
|||
|
//v.ArtistName = fmt.Sprintf("%v", findUsersInfo[v.ArtistUuid]["name"])
|
|||
|
v.Sex = fmt.Sprintf("%v", findUsersInfo[v.ArtistUuid]["sex"])
|
|||
|
age, _ := strconv.Atoi(fmt.Sprintf("%v", findUsersInfo[v.ArtistUuid]["age"]))
|
|||
|
v.Age = int32(age)
|
|||
|
v.Phone = fmt.Sprintf("%v", findUsersInfo[v.ArtistUuid]["phone"])
|
|||
|
//v.InviteUsers = fmt.Sprintf("%v", findUsersInfo[v.ArtistUuid]["invite_name"])
|
|||
|
//v.InviteUserId = fmt.Sprintf("%v", findUsersInfo[v.ArtistUuid]["invite_id"])
|
|||
|
|
|||
|
}
|
|||
|
if artistInvite[v.ArtistUuid] != nil {
|
|||
|
v.InviteData = artistInvite[v.ArtistUuid]
|
|||
|
}
|
|||
|
if v.ArtshowId != "" && artistSupperMap[v.ArtistUuid] != nil && artistSupperMap[v.ArtistUuid][v.ArtshowId] != nil {
|
|||
|
v.ArtshowExtTime = fmt.Sprintf("%v", artistSupperMap[v.ArtistUuid][v.ArtshowId]["artshow_ext_time"])
|
|||
|
recommendId, _ := strconv.Atoi(fmt.Sprintf("%v", artistSupperMap[v.ArtistUuid][v.ArtshowId]["recomment_id"]))
|
|||
|
v.RecommendUser = int32(recommendId)
|
|||
|
}
|
|||
|
// 如果画展包是空,根据supplement保存的broker来展示
|
|||
|
if v.ArtshowId == "" {
|
|||
|
v.ArtshowExtTime = ""
|
|||
|
v.RecommendUser = int32(v.BrokerId)
|
|||
|
}
|
|||
|
if v.ArtshowExtTime != "" {
|
|||
|
t, errs := time.Parse(time.RFC3339, v.ArtshowExtTime)
|
|||
|
if errs != nil {
|
|||
|
logger.Error("time.RFC3339 err", errs)
|
|||
|
service.ResponseQuickMsg(c, e.Failed, errs.Error(), nil)
|
|||
|
}
|
|||
|
v.ArtshowExtTime = t.Format(model.DateTimeFormat)
|
|||
|
}
|
|||
|
/*
|
|||
|
* 第一次 可能会先有推荐人ID 再有画展包ID ,没有画展包ID即使有推荐人ID,推荐人ID强制为空 2023-06-05
|
|||
|
* 第二次 只要有推荐人ID就展示出来 2023-11-23
|
|||
|
*/
|
|||
|
/*if v.ArtshowId == "" {
|
|||
|
v.RecommendUser = 0
|
|||
|
}*/
|
|||
|
}
|
|||
|
//service.ResponseQuickMsg(c, e.Ok, "", resp)
|
|||
|
jsonBytes, _ := json.Marshal(resp.Data)
|
|||
|
var mapList []map[string]any
|
|||
|
json.Unmarshal(jsonBytes, &mapList)
|
|||
|
service.FillArtshowCount(mapList, "ArtistUuid")
|
|||
|
var newResp = map[string]any{
|
|||
|
"Data": mapList,
|
|||
|
"Count": resp.Count,
|
|||
|
"Page": resp.Page,
|
|||
|
"PageSize": resp.PageSize,
|
|||
|
"Msg": "",
|
|||
|
}
|
|||
|
service.ResponseQuickMsg(c, e.Ok, "", newResp)
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
func GetAuditUnfinishedStatistics(c *gin.Context) {
|
|||
|
resp, err := service.GrpcArtistInfoArtshowImpl.GetAuditUnfinishedStatistics(context.Background(), &artistinfoArtshow.AuditUnfinishedStatisticsRequest{})
|
|||
|
if err != nil {
|
|||
|
service.ResponseQuickMsg(c, e.Failed, err.Error(), nil)
|
|||
|
return
|
|||
|
}
|
|||
|
service.ResponseData(c, resp)
|
|||
|
return
|
|||
|
}
|