This commit is contained in:
邹宗楠
2024-03-05 18:32:46 +08:00
parent 6013b3f9c0
commit dd88849710
4 changed files with 82 additions and 84 deletions

View File

@@ -1,85 +1,89 @@
package cms
import (
"fmt"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
"git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/partner"
"git.rosy.net.cn/jx-callback/business/partner/purchase/mtwm"
)
//
//// GetMtSkuDetailInfo 获取美团商品信息,暂时只支持美团
//func GetMtSkuDetailInfo(ctx *jxcontext.Context, vendorOrderID string, vendorSkuName string) (outSkuNameExt *model.SkuNameExt, err error) {
// orderDetail, err := partner.CurOrderManager.LoadOrder(vendorOrderID, model.VendorIDMTWM)
// if err != nil {
// return nil, err
// }
//
// // 获取订单详情
// mtApi := mtwm.GetAPI(orderDetail.VendorOrgCode, orderDetail.JxStoreID, orderDetail.VendorStoreID)
// mtOrderDetail, err := mtApi.OrderGetOrderDetail(utils.Str2Int64(vendorOrderID), false)
// if err != nil {
// return nil, err
// }
// var detail []map[string]interface{}
// if err = utils.UnmarshalUseNumber([]byte(mtOrderDetail["detail"].(string)), &detail); err != nil {
// return nil, err
// }
//
// mtCode := ""
// for _, product := range detail {
// if product["food_name"].(string) == vendorSkuName {
// if product["app_food_code"].(string) == "" {
// return nil, fmt.Errorf("[%s] 未获取到商品的美团code,无法创建商品", vendorSkuName)
// }
// mtCode = product["app_food_code"].(string)
// break
// }
// }
// if mtCode == "" {
// return nil, fmt.Errorf("[%s] 未获取到商品的美团code,无法创建商品", vendorSkuName)
// }
//
// // 获取美团商品详情
// mtSkuDetail, err := mtApi.RetailGet(orderDetail.VendorStoreID, mtCode)
// if err != nil {
// return nil, err
// }
//
// skuName := &model.SkuNameExt{
// SkuName: model.SkuName{
// Prefix: "",
// Name: mtSkuDetail.Name,
// Upc: utils.String2Pointer(mtSkuDetail.UpcCode),
// Status: 1,
// CategoryID: 291, // ?
// IsGlobal: 1,
// Unit: mtSkuDetail.Unit,
// Price: utils.Float64TwoInt(mtSkuDetail.Price * float64(100)),
// DescImg: mtSkuDetail.PictureContents,
// },
// Skus: nil,
// }
//
// skus := make([]*model.SkuWithVendor, 0, 0)
// for _, mtSks := range mtSkuDetail.SkuList {
// sku := &model.SkuWithVendor{
// Sku: &model.Sku{
// MinOrderCount: utils.Str2Int(mtSks.MinOrderCount),
// LadderBoxNum: utils.Str2Int(mtSks.LadderBoxNum),
// LadderBoxPrice: utils.Float64TwoInt(utils.Str2Float64(mtSks.Price) * float64(100)),
// SpecQuality: utils.Str2Int(mtSks.Weight),
// Weight: utils.Str2Int(mtSks.Weight),
// SpecUnit: mtSks.Unit,
// Status: 1,
// Comment: "",
// EclpID: "",
// },
// }
// skus = append(skus, sku)
// }
// skuName.Skus = skus
//
// mTImg2Jx(skuName, mtSkuDetail.PictureList)
// return AddSkuName(ctx, skuName, ctx.GetUserName())
//}
// GetMtSkuDetailInfo 获取美团商品信息,暂时只支持美团
func GetMtSkuDetailInfo(ctx *jxcontext.Context, vendorOrderID string, vendorSkuName string) (outSkuNameExt *model.SkuNameExt, err error) {
orderDetail, err := partner.CurOrderManager.LoadOrder(vendorOrderID, model.VendorIDMTWM)
if err != nil {
return nil, err
}
// 获取订单详情
mtApi := mtwm.GetAPI(orderDetail.VendorOrgCode, orderDetail.JxStoreID, orderDetail.VendorStoreID)
mtOrderDetail, err := mtApi.OrderGetOrderDetail(utils.Str2Int64(vendorOrderID), false)
if err != nil {
return nil, err
}
var detail []map[string]interface{}
if err = utils.UnmarshalUseNumber([]byte(mtOrderDetail["detail"].(string)), &detail); err != nil {
return nil, err
}
mtCode := ""
for _, product := range detail {
if product["food_name"].(string) == vendorSkuName {
if product["app_food_code"].(string) == "" {
return nil, fmt.Errorf("[%s] 未获取到商品的美团code,无法创建商品", vendorSkuName)
}
mtCode = product["app_food_code"].(string)
break
}
}
if mtCode == "" {
return nil, fmt.Errorf("[%s] 未获取到商品的美团code,无法创建商品", vendorSkuName)
}
// 获取美团商品详情
mtSkuDetail, err := mtApi.RetailGet(orderDetail.VendorStoreID, mtCode)
if err != nil {
return nil, err
}
skuName := &model.SkuNameExt{
SkuName: model.SkuName{
Prefix: "",
Name: mtSkuDetail.Name,
Upc: utils.String2Pointer(mtSkuDetail.UpcCode),
Status: 1,
CategoryID: 291, // ?
IsGlobal: 1,
Unit: mtSkuDetail.Unit,
Price: utils.Float64TwoInt(mtSkuDetail.Price * float64(100)),
DescImg: mtSkuDetail.PictureContents,
},
Skus: nil,
}
skus := make([]*model.SkuWithVendor, 0, 0)
for _, mtSks := range mtSkuDetail.SkuList {
sku := &model.SkuWithVendor{
Sku: &model.Sku{
MinOrderCount: utils.Str2Int(mtSks.MinOrderCount),
LadderBoxNum: utils.Str2Int(mtSks.LadderBoxNum),
LadderBoxPrice: utils.Float64TwoInt(utils.Str2Float64(mtSks.Price) * float64(100)),
SpecQuality: float32(utils.Str2Float64(mtSks.Weight)),
Weight: utils.Str2Int(mtSks.Weight),
SpecUnit: mtSks.Unit,
Status: 1,
Comment: "",
EclpID: "",
},
}
skus = append(skus, sku)
}
skuName.Skus = skus
mTImg2Jx(skuName, mtSkuDetail.PictureList)
return AddSkuName(ctx, skuName, ctx.GetUserName())
}
func mTImg2Jx(sku *model.SkuNameExt, pictureList []string) {
switch len(pictureList) {

View File

@@ -2,8 +2,6 @@ package jd
import (
"git.rosy.net.cn/baseapi/platformapi/jdapi"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/globals"
)
func OnOrderMsg(msg *jdapi.CallbackOrderMsg, a *jdapi.API) (retVal *jdapi.CallbackResponse) {
@@ -23,7 +21,6 @@ func OnWaybillMsg(msg *jdapi.CallbackDeliveryStatusMsg) (retVal *jdapi.CallbackR
func OnStoreMsg(msg *jdapi.CallbackOrderMsg) (retVal *jdapi.CallbackResponse) {
if CurPurchaseHandler != nil {
retVal = CurPurchaseHandler.OnStoreMsg(AppKey2OrgCode(msg.AppKey), msg)
globals.SugarLogger.Debugf("retVal========= %s", utils.Format4Output(retVal, false))
}
return retVal
}

View File

@@ -230,7 +230,6 @@ func (p *PurchaseHandler) DeleteStore(db *dao.DaoDB, storeID int, userName strin
}
func (p *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName string) (err error) {
globals.SugarLogger.Debugf("=========storeID := %s", utils.Format4Output(storeID, false))
if db == nil {
db = dao.GetDB()
}
@@ -280,9 +279,7 @@ func (p *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin
params["address"] = storeDetail.YbStorePrefix
}
globals.SugarLogger.Debugf("=========data := %s", utils.Format4Output(params, false))
if globals.EnableMtwmStoreWrite {
globals.SugarLogger.Debugf("=========data := %s", utils.Format4Output(1111111, false))
errList.AddErr(mtapi.PoiSave(storeDetail.VendorStoreID, params))
}
if storeDetail.SyncStatus&(model.SyncFlagNewMask|model.SyncFlagStoreStatus) != 0 {

View File

@@ -207,14 +207,14 @@ func (c *SkuController) AddSkuName() {
// @Title 获取美团商品信息添加到本地
// @Description 获取美团商品信息添加到本地
// @Param token header string true "认证token"
// @Param orderSkuID formData int true "本地商品存储id"
// @Param vendorSkuName formData string true "平台商品名称"
// @Param vendorOrderID formData string true "订单id"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /MTSku2Local [post]
func (c *SkuController) MTSku2Local() {
c.callMTSku2Local(func(params *tSkuMTSku2LocalParams) (retVal interface{}, errCode string, err error) {
retVal, err = cms.GetMtSkuDetailInfo(params.Ctx, params.VendorOrderID, params.VendorSkuName)
return retVal, "", err
})
}