153 lines
4.7 KiB
Go
153 lines
4.7 KiB
Go
|
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("%s(0)", 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
|
|||
|
}
|