fonchain-fiee/pkg/service/artwork_shop.go

153 lines
4.7 KiB
Go
Raw Normal View History

2025-02-19 06:24:15 +00:00
package service
import (
"context"
"dubbo.apache.org/dubbo-go/v3/common/logger"
"fmt"
artShow "github.com/fonchain_enterprise/fonchain-main/api/artShow"
"github.com/fonchain_enterprise/fonchain-main/api/artwork_query"
"github.com/fonchain_enterprise/fonchain-main/api/artwork_shop"
"github.com/fonchain_enterprise/fonchain-main/pkg/e"
"github.com/fonchain_enterprise/fonchain-main/pkg/model"
"github.com/fonchain_enterprise/fonchain-main/pkg/model/model_artwork_shop"
"github.com/fonchain_enterprise/fonchain-main/pkg/serializer"
"github.com/gin-gonic/gin"
"github.com/jinzhu/copier"
"go.uber.org/zap"
"google.golang.org/protobuf/types/known/wrapperspb"
)
func AwShopList(c *gin.Context) {
var detailRequest artwork_query.ArtworkListRequest
var awReq model.AwListReq
if err := c.ShouldBind(&awReq); err != nil {
logger.Errorf("AwShopList ShouldBind err", err)
ResponseMsg(c, e.SUCCESS, serializer.Response{
Msg: err.Error(),
Status: e.Failed,
})
return
}
if err := copier.Copy(&detailRequest, awReq); err != nil {
ResponseQuickMsg(c, e.Failed, err.Error(), nil)
return
}
if awReq.StorageStatus == nil {
detailRequest.StorageStatus = nil
} else {
detailRequest.StorageStatus = &wrapperspb.Int32Value{Value: *awReq.StorageStatus}
}
if awReq.SaleStatus == nil {
detailRequest.SaleStatus = nil
} else {
detailRequest.SaleStatus = &wrapperspb.Int32Value{Value: *awReq.SaleStatus}
}
resp, err := GrpcArtworkQueryImpl.ArtworkList(context.Background(), &detailRequest)
if err != nil {
ResponseMsg(c, e.SUCCESS, serializer.Response{
Msg: err.Error(),
Status: e.Failed,
})
return
}
if len(resp.Data) == 0 {
resp.Data = []*artwork_query.ArtworkListResponse_Info{}
}
var data []*model_artwork_shop.ArtworkOrderInfo
var tfnumData = make([]string, 0, len(resp.Data))
for _, v := range resp.Data {
if v.Tfnum != "" {
tfnumData = append(tfnumData, v.Tfnum)
}
if v.BlackListStatus == 2 {
v.ArtistName = fmt.Sprintf("#%s", v.ArtistName)
}
}
var orderReq artwork_shop.OrderListReq
orderReq.Tfnums = tfnumData
shopResp, errS := GrpcArtworkShopImpl.OrderList(context.Background(), &orderReq)
if errS != nil {
ResponseQuickMsg(c, e.Failed, errS.Error(), nil)
return
}
var tfnumShopData map[string][]*model_artwork_shop.OrderInfo = map[string][]*model_artwork_shop.OrderInfo{}
// 遍历组装
if len(shopResp.Data) > 0 {
for _, v := range shopResp.Data {
if tfnumShopData[v.Tfnum] == nil {
tfnumShopData[v.Tfnum] = []*model_artwork_shop.OrderInfo{}
}
var temp model_artwork_shop.OrderInfo
err := copier.Copy(&temp, v)
if err != nil {
return
}
tfnumShopData[v.Tfnum] = append(tfnumShopData[v.Tfnum], &temp)
}
}
var artistUuids []string
for _, v := range resp.Data {
var temp model_artwork_shop.ArtworkOrderInfo
_ = copier.Copy(&temp, v)
var orderData []*model_artwork_shop.OrderInfo
orderData = tfnumShopData[v.Tfnum]
//查询画作订单
if len(orderData) > 0 {
for _, vv := range orderData {
var orderTmp model_artwork_shop.OrderInfo
if vv.ConsignerCardId != "" && len(vv.ConsignerCardId) >= 8 {
vv.ConsignerCardId = vv.ConsignerCardId[len(vv.ConsignerCardId)-8:]
}
if vv.BuyerCardId != "" && len(vv.BuyerCardId) >= 8 {
vv.BuyerCardId = vv.BuyerCardId[len(vv.BuyerCardId)-8:]
}
_ = copier.Copy(&orderTmp, vv)
temp.OrderData = append(temp.OrderData, &orderTmp)
}
}
temp.ArtistUuid = v.ArtistUuid
temp.ArtistShowCount = fmt.Sprintf("%s0", v.ArtistName)
artistUuids = append(artistUuids, v.ArtistUuid)
data = append(data, &temp)
}
artshowResp, _err := GrpcArtShowImpl.ArtistExhibitionCount(context.Background(), &artShow.ArtistExhibitionCountReq{ArtistUid: artistUuids})
if _err != nil {
zap.L().Error("artist ArtistExhibitionCount err", zap.Error(_err))
}
if artshowResp != nil && len(artshowResp.ArtistShowCount) > 0 {
for k, v := range data {
for _, v1 := range artshowResp.ArtistShowCount {
if v.ArtistUuid == v1.ArtistUid {
data[k].ArtistShowCount = fmt.Sprintf("%s%d", v.ArtistName, v1.ShowCount)
break
}
}
}
}
var respData model_artwork_shop.AwListShop
respData.Data = data
respData.Count = resp.Count
ResponseQuickMsg(c, e.Ok, resp.Msg, respData)
return
}
func SyncOrder(c *gin.Context) {
var req artwork_shop.SyncHistoryReq
//if err := c.ShouldBind(&req); err != nil {
// ResponseQuickMsg(c, e.Failed, err.Error(), nil)
// return
//}
//if err := req.Validate(); err != nil {
// err = common.SubstrError(err)
// ResponseQuickMsg(c, e.Failed, err.Error(), nil)
// return
//}
resp, err := GrpcArtworkShopImpl.SyncHistory(context.Background(), &req)
if err != nil {
ResponseQuickMsg(c, e.Failed, err.Error(), nil)
return
}
ResponseQuickMsg(c, e.Ok, resp.Msg, resp)
return
}