Merge branch 'jdshop' of https://e.coding.net/rosydev/jx-callback into jdshop
This commit is contained in:
@@ -86,7 +86,7 @@ func (c *DeliveryHandler) CancelWaybill(bill *model.Waybill, cancelReasonID int,
|
||||
}
|
||||
|
||||
func (c *DeliveryHandler) ComplaintRider(bill *model.Waybill, resonID int, resonContent string) (err error) {
|
||||
err = api.FnAPI.ComplaintRider(bill.VendorOrderID, complaintReson2FnResonMap[resonID])
|
||||
err = api.FnAPI.ComplaintRider(bill.VendorOrderID, bill.VendorWaybillID, complaintReson2FnResonMap[resonID], resonContent)
|
||||
return err
|
||||
}
|
||||
|
||||
|
||||
@@ -523,14 +523,14 @@ func (c *DeliveryHandler) GetDeliverLiquidatedDamages(orderId string, deliverId
|
||||
return 0, err
|
||||
}
|
||||
|
||||
isMerchantCancel := false
|
||||
// 获取发起取消的人员
|
||||
for _, v := range statusList {
|
||||
if v.VendorStatus == utils.Int64ToStr(model.WaybillStatusCancel) {
|
||||
isMerchantCancel = true // 商户取消
|
||||
break
|
||||
}
|
||||
}
|
||||
//isMerchantCancel := false
|
||||
//// 获取发起取消的人员
|
||||
//for _, v := range statusList {
|
||||
// if v.VendorStatus == utils.Int64ToStr(model.WaybillStatusCancel) {
|
||||
// isMerchantCancel = true // 商户取消
|
||||
// break
|
||||
// }
|
||||
//}
|
||||
|
||||
bill, err := partner.CurOrderManager.LoadWaybill(deliverId, model.VendorIDMTPS)
|
||||
if err != nil {
|
||||
@@ -549,17 +549,17 @@ func (c *DeliveryHandler) GetDeliverLiquidatedDamages(orderId string, deliverId
|
||||
}
|
||||
// 到店
|
||||
if statusList[i].VendorStatus == utils.Int2Str(mtpsapi.OrderStatusPickedUp) {
|
||||
if isMerchantCancel {
|
||||
return bill.DesiredFee, nil
|
||||
}
|
||||
return 0, nil
|
||||
//if isMerchantCancel {
|
||||
return bill.DesiredFee, nil
|
||||
//}
|
||||
//return 0, nil
|
||||
}
|
||||
// 接单
|
||||
if statusList[i].VendorStatus == utils.Int2Str(mtpsapi.OrderStatusAccepted) {
|
||||
if isMerchantCancel {
|
||||
return 200, nil
|
||||
}
|
||||
return 0, nil
|
||||
//if isMerchantCancel {
|
||||
return 200, nil
|
||||
//}
|
||||
//return 0, nil
|
||||
}
|
||||
// 待调度
|
||||
if statusList[i].VendorStatus == utils.Int2Str(mtpsapi.OrderStatusWaitingForSchedule) {
|
||||
|
||||
@@ -96,14 +96,14 @@ func GetOrderRiderInfoToPlatform(orderId string, wayBillStatus int) {
|
||||
continue
|
||||
}
|
||||
|
||||
if (v.WaybillVendorID == model.YES || v.WaybillVendorID == -1) && v.VendorID == model.VendorIDMTWM {
|
||||
continue
|
||||
}
|
||||
//if (v.WaybillVendorID == model.YES || v.WaybillVendorID == -1) && v.VendorID == model.VendorIDMTWM {
|
||||
// continue
|
||||
//}
|
||||
|
||||
if orderId == "" { // 订单id为空是,是定时轮询操作,不做此状态
|
||||
waybillList, _ := dao.GetWaybills(dao.GetDB(), v.VendorOrderID, nil)
|
||||
if len(waybillList) > 0 && waybillList[0].Status > model.WaybillStatusEndBegin {
|
||||
globals.SugarLogger.Debugf("订单物流状态结束,不在推送订单状态:orderID[%s],wayBillId[%s]", v.VendorOrderID, waybillList[0].VendorWaybillID)
|
||||
globals.SugarLogger.Debug("订单物流状态结束,不在推送订单状态:orderID[%s],wayBillId[%s]", v.VendorOrderID, waybillList[0].VendorWaybillID)
|
||||
continue
|
||||
}
|
||||
}
|
||||
@@ -409,7 +409,14 @@ func UpdateFakeWayBillToTiktok() {
|
||||
|
||||
// 设置骑手和下一状态时间
|
||||
makeRiderInfo(fakeWayBill[i], riderInfo)
|
||||
|
||||
if riderInfo.CourierName == "" && fakeWayBill[i].CourierName != "" {
|
||||
riderInfo.CourierName = fakeWayBill[i].CourierName
|
||||
riderInfo.CourierPhone = fakeWayBill[i].CourierMobile
|
||||
}
|
||||
if riderInfo.CourierName == "" && fakeWayBill[i].CourierName == "" {
|
||||
riderInfo.CourierName = "石锋"
|
||||
riderInfo.CourierPhone = "18048531223"
|
||||
}
|
||||
if riderInfo.LogisticsContext != model.RiderGetOrderDeliverFailed && riderInfo.LogisticsContext != model.RiderGetOrderDeliverOther && riderInfo.LogisticsContext != model.RiderWaitRider {
|
||||
riderInfo.LogisticsContext = fmt.Sprintf(riderInfo.LogisticsContext, riderInfo.CourierName, riderInfo.CourierPhone)
|
||||
}
|
||||
@@ -452,7 +459,7 @@ func UpdateFakeWayBillToTiktok() {
|
||||
globals.SugarLogger.Debugf("UPDATA goods_order Err :%s", err.Error())
|
||||
}
|
||||
// 饿百订单推送订单送达
|
||||
if fakeWayBill[i].OrderVendorID == model.VendorIDEBAI || fakeWayBill[i].OrderVendorID == model.VendorIDMTWM {
|
||||
if fakeWayBill[i].OrderVendorID == model.VendorIDEBAI || fakeWayBill[i].OrderVendorID == model.VendorIDTaoVegetable || fakeWayBill[i].OrderVendorID == model.VendorIDMTWM {
|
||||
if err := handler.Swtich2SelfDelivered(order, "JingXiAdmin"); err != nil {
|
||||
globals.SugarLogger.Errorf("Swtich2SelfDelivered err := %v", err)
|
||||
}
|
||||
|
||||
@@ -399,7 +399,7 @@ func (p *PurchaseHandler) Swtich2SelfDeliver(order *model.GoodsOrder, userName s
|
||||
err = nil
|
||||
case ebaiapi.WaybillStatusDeliveryCancled:
|
||||
p.trySyncCancelStatus(order.VendorOrderID)
|
||||
case ebaiapi.WaybillStatusNew, ebaiapi.WaybillStatusRequestDelivery, ebaiapi.WaybillStatusWait4Courier:
|
||||
case ebaiapi.WaybillStatusNew, ebaiapi.WaybillStatusEvent, ebaiapi.WaybillStatusRequestDelivery, ebaiapi.WaybillStatusWait4Courier:
|
||||
err = api.EbaiAPI.OrderCancelDelivery(order.VendorOrderID) // 取消呼叫众包骑手
|
||||
case ebaiapi.WaybillStatusCourierAccepted:
|
||||
err = errors.New("骑手已接单,无法转自送")
|
||||
|
||||
@@ -132,17 +132,20 @@ func (p *PurchaseHandler) getOrder(vendorOrgCode string, vendorOrderID int64, ve
|
||||
// 渠道活动
|
||||
if v.ChannelActivityId != nil {
|
||||
activityId = append(activityId, utils.Str2Int64WithDefault(*v.ChannelActivityId, 999))
|
||||
activityName = append(activityName, *v.ChannelActivityId+":"+*v.ActivityName)
|
||||
//activityName = append(activityName, *v.ChannelActivityId+":"+*v.ActivityName)
|
||||
activityName = append(activityName, *v.ChannelActivityId)
|
||||
}
|
||||
// 业务活动
|
||||
if v.BizActivityId != nil {
|
||||
activityId = append(activityId, utils.Str2Int64WithDefault(*v.BizActivityId, 999))
|
||||
activityName = append(activityName, *v.BizActivityId+":"+*v.ActivityName)
|
||||
//activityName = append(activityName, *v.BizActivityId+":"+*v.ActivityName)
|
||||
activityName = append(activityName, *v.BizActivityId)
|
||||
}
|
||||
// 商家erp活动
|
||||
if v.MerchantActivityId != nil {
|
||||
activityId = append(activityId, utils.Str2Int64WithDefault(*v.MerchantActivityId, 999))
|
||||
activityName = append(activityName, *v.MerchantActivityId+":"+*v.ActivityName)
|
||||
//activityName = append(activityName, *v.MerchantActivityId+":"+*v.ActivityName)
|
||||
activityName = append(activityName, *v.MerchantActivityId)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -189,17 +192,6 @@ func (p *PurchaseHandler) getOrder(vendorOrgCode string, vendorOrderID int64, ve
|
||||
}
|
||||
// 抖音订单手机号和收货地址是否同城(虚拟号,无法获取到正确地址)
|
||||
order.PhoneAscription = model.PhoneAscriptionAddressNo + "-" + "归属信息不匹配:" + "虚拟电话号码"
|
||||
//ascription, err := ascription_place.Find(order.ConsigneeMobile)
|
||||
//if err != nil {
|
||||
// order.PhoneAscription = model.PhoneAscriptionAddressNo + "-" + err.Error()
|
||||
// err = nil
|
||||
//} else {
|
||||
// if strings.Contains(order.ConsigneeAddress, ascription.Province) && strings.Contains(order.ConsigneeAddress, ascription.City) {
|
||||
// order.PhoneAscription = model.PhoneAscriptionAddressYes + "-" + ascription.Province + ascription.City
|
||||
// } else {
|
||||
// order.PhoneAscription = model.PhoneAscriptionAddressNo + "-" + "归属信息不匹配:" + ascription.Province + ascription.City
|
||||
// }
|
||||
//}
|
||||
|
||||
// 本地获取订单记录
|
||||
orderSeq, _ := dao.GetVendorOrderNumber(dao.GetDB(), model.VendorIDTaoVegetable, order.VendorStoreID)
|
||||
@@ -215,7 +207,6 @@ func (p *PurchaseHandler) getOrder(vendorOrgCode string, vendorOrderID int64, ve
|
||||
order.StoreName = "未获取到" // 真实门店名称
|
||||
}
|
||||
|
||||
globals.SugarLogger.Debugf("=====order : %s", utils.Format4Output(order, false))
|
||||
return order, orderMap, err
|
||||
}
|
||||
|
||||
|
||||
@@ -71,10 +71,10 @@ func (c *PurchaseHandler) onAfsOrderMsg(status string, msg interface{}) (retVal
|
||||
var err error
|
||||
var db = dao.GetDB()
|
||||
orderStatus, scarceGoods := c.callbackAfsMsg2Status(status, msg)
|
||||
// 用户取消售后
|
||||
switch status {
|
||||
case tao_vegetable.OrderStatusApplyAfs:
|
||||
refundData := msg.(*tao_vegetable.UserApplyRefundCallBack)
|
||||
globals.SugarLogger.Debugf("================OrderStatusApplyAfs : %s", utils.Format4Output(msg, false))
|
||||
var afsOrder *model.AfsOrder
|
||||
var api = getAPI("", 0, refundData.StoreId)
|
||||
|
||||
@@ -287,60 +287,96 @@ func (c *PurchaseHandler) onAfsOrderMsg(status string, msg interface{}) (retVal
|
||||
case tao_vegetable.OrderStatusRefundSuccess:
|
||||
// 用户退款成功回调,缺货拣货时,送达回触发.此时并没有售后单
|
||||
if scarceGoods != nil {
|
||||
var afsOrder *model.AfsOrder
|
||||
refundSuccess := msg.(*tao_vegetable.RefundOrderFinish)
|
||||
var afsOrder *model.AfsOrder
|
||||
var api = getAPI("", 0, refundSuccess.StoreId)
|
||||
|
||||
afsOrder = &model.AfsOrder{
|
||||
VendorID: model.VendorIDTaoVegetable,
|
||||
AfsOrderID: refundSuccess.OutMainRefundId,
|
||||
VendorOrderID: orderStatus.RefVendorOrderID,
|
||||
VendorStoreID: refundSuccess.StoreId,
|
||||
StoreID: 0,
|
||||
AfsCreatedAt: orderStatus.StatusTime,
|
||||
VendorAppealType: status, // 原始售后方式
|
||||
AppealType: model.AfsAppealTypeUserCancel, // 淘宝这个接口下发的只有用户取消
|
||||
VendorReasonType: tao_vegetable.OrderStatusOnSaleCancel,
|
||||
ReasonType: 0,
|
||||
ReasonDesc: "缺货调整,退款成功通知",
|
||||
VendorOrgCode: api.GetVendorOrgCode(),
|
||||
var isCreate = true
|
||||
var outMainRefundIds = make(map[string]int64, 0)
|
||||
detail, err := api.QueryAfsOrderDetail(&request591.AlibabaWdkOrderRefundGetRequest{
|
||||
OrderFrom: utils.Int64ToPointer(tao_vegetable.ChannelCome),
|
||||
ShopId: nil,
|
||||
StoreId: utils.String2Pointer(refundSuccess.StoreId),
|
||||
RefundIds: &[]int64{utils.Str2Int64(refundSuccess.BizSubRefundId)},
|
||||
})
|
||||
if err != nil {
|
||||
return tao_vegetable.CallBackResultInfo(err)
|
||||
}
|
||||
finalList, _ := dao.GetOrderRefundSkuList(db, []string{refundSuccess.OutMainRefundId})
|
||||
if len(finalList) != model.NO {
|
||||
for _, f := range finalList {
|
||||
for _, a := range *detail.Orders {
|
||||
if f.SkuID == utils.Str2Int(*a.ItemCode) {
|
||||
isCreate = false // 本地已经存在了记录
|
||||
outMainRefundIds[*a.OutMainRefundId] = *a.RefundAmount
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
afsOrder.FreightUserMoney = 0 // 订单运费
|
||||
afsOrder.AfsFreightMoney = 0 // 暂时未发现退货取件费用
|
||||
afsOrder.BoxMoney = 0 // 餐盒费
|
||||
afsOrder.TongchengFreightMoney = 0 // 同城配送费
|
||||
afsOrder.SkuBoxMoney = 0 // 商品包装费
|
||||
afsOrder.VendorStatus = orderStatus.VendorStatus // 退货状态
|
||||
|
||||
for _, v := range *scarceGoods {
|
||||
var refundFee int64 = 0
|
||||
skuDetail := tao_vegetable.GoodsScarceRefund{}
|
||||
if err := json.Unmarshal([]byte(*v.Attributes), &skuDetail); err != nil {
|
||||
return tao_vegetable.CallBackResultInfo(err)
|
||||
// 本地已经存在了售后记录,直接修改售后状态,否则创建售后记录
|
||||
if !isCreate {
|
||||
for afsOrderId, afsMoney := range outMainRefundIds {
|
||||
afs, _ := partner.CurOrderManager.LoadAfsOrder(afsOrderId, model.VendorIDTaoVegetable)
|
||||
afs.VendorOrderID2 = refundSuccess.BizSubRefundId
|
||||
afs.AfsFinishedAt = time.Now()
|
||||
afs.Status = model.AfsOrderStatusFinished
|
||||
afs.AfsTotalShopMoney = afsMoney
|
||||
dao.UpdateEntity(db, afs, "VendorOrderID2", "AfsFinishedAt", "Status", "AfsTotalShopMoney")
|
||||
}
|
||||
} else {
|
||||
afsOrder = &model.AfsOrder{
|
||||
VendorID: model.VendorIDTaoVegetable,
|
||||
AfsOrderID: refundSuccess.OutMainRefundId,
|
||||
VendorOrderID: orderStatus.RefVendorOrderID,
|
||||
VendorOrderID2: refundSuccess.BizSubRefundId,
|
||||
VendorStoreID: refundSuccess.StoreId,
|
||||
StoreID: 0,
|
||||
AfsCreatedAt: orderStatus.StatusTime,
|
||||
VendorAppealType: status, // 原始售后方式
|
||||
AppealType: model.AfsAppealTypeUserCancel, // 淘宝这个接口下发的只有用户取消
|
||||
VendorReasonType: tao_vegetable.OrderStatusOnSaleCancel,
|
||||
ReasonType: 0,
|
||||
ReasonDesc: "缺货调整,退款成功通知",
|
||||
VendorOrgCode: api.GetVendorOrgCode(),
|
||||
}
|
||||
afsOrder.FreightUserMoney = 0 // 订单运费
|
||||
afsOrder.AfsFreightMoney = 0 // 暂时未发现退货取件费用
|
||||
afsOrder.BoxMoney = 0 // 餐盒费
|
||||
afsOrder.TongchengFreightMoney = 0 // 同城配送费
|
||||
afsOrder.SkuBoxMoney = 0 // 商品包装费
|
||||
afsOrder.VendorStatus = orderStatus.VendorStatus // 退货状态
|
||||
|
||||
for _, v := range *scarceGoods {
|
||||
var refundFee int64 = 0
|
||||
skuDetail := tao_vegetable.GoodsScarceRefund{}
|
||||
if err := json.Unmarshal([]byte(*v.Attributes), &skuDetail); err != nil {
|
||||
return tao_vegetable.CallBackResultInfo(err)
|
||||
}
|
||||
|
||||
orderSku := &model.OrderSkuFinancial{
|
||||
Count: utils.Float64TwoInt(utils.Str2Float64(*v.RefundQuantity)),
|
||||
VendorSkuID: *v.SkuCode,
|
||||
SkuID: utils.Str2Int(*v.SkuCode),
|
||||
Name: skuDetail.SkuName,
|
||||
UserMoney: *v.RefundAmount,
|
||||
PmSkuSubsidyMoney: 0, // 平台补贴商品
|
||||
VendorOrderID: orderStatus.VendorOrderID,
|
||||
VendorSubOrderID: *v.OutOrderId,
|
||||
}
|
||||
afsOrder.PmSkuSubsidyMoney += orderSku.PmSkuSubsidyMoney
|
||||
afsOrder.Skus = append(afsOrder.Skus, orderSku)
|
||||
refundFee += *v.RefundAmount
|
||||
|
||||
afsOrder.SkuUserMoney += refundFee
|
||||
afsOrder.RefundType = model.AfsTypePartRefund
|
||||
if afsOrder != nil {
|
||||
//直接就来一个新的售后单,并且还是售后完成的
|
||||
afsOrder.AfsFinishedAt = afsOrder.AfsCreatedAt
|
||||
afsOrder.Flag = model.AfsOrderFlagAgreeUserRefund
|
||||
err = partner.CurOrderManager.OnAfsOrderNew(afsOrder, orderStatus)
|
||||
}
|
||||
}
|
||||
|
||||
orderSku := &model.OrderSkuFinancial{
|
||||
Count: utils.Float64TwoInt(utils.Str2Float64(*v.RefundQuantity)),
|
||||
VendorSkuID: *v.SkuCode,
|
||||
SkuID: utils.Str2Int(*v.SkuCode),
|
||||
Name: skuDetail.SkuName,
|
||||
UserMoney: *v.RefundAmount,
|
||||
PmSkuSubsidyMoney: 0, // 平台补贴商品
|
||||
VendorOrderID: orderStatus.VendorOrderID,
|
||||
VendorSubOrderID: *v.OutOrderId,
|
||||
}
|
||||
afsOrder.PmSkuSubsidyMoney += orderSku.PmSkuSubsidyMoney
|
||||
afsOrder.Skus = append(afsOrder.Skus, orderSku)
|
||||
refundFee += *v.RefundAmount
|
||||
|
||||
afsOrder.SkuUserMoney += refundFee
|
||||
afsOrder.RefundType = model.AfsTypePartRefund
|
||||
if afsOrder != nil {
|
||||
//直接就来一个新的售后单,并且还是售后完成的
|
||||
afsOrder.AfsFinishedAt = afsOrder.AfsCreatedAt
|
||||
afsOrder.Flag = model.AfsOrderFlagAgreeUserRefund
|
||||
err = partner.CurOrderManager.OnAfsOrderNew(afsOrder, orderStatus)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -209,7 +209,6 @@ func (p *PurchaseHandler) UpdateStoreSkus(ctx *jxcontext.Context, storeID int, v
|
||||
}
|
||||
|
||||
func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) {
|
||||
globals.SugarLogger.Debugf("len CreateStoreSkus := %d", len(storeSkuList))
|
||||
failedList, err = p.createOrUpdateStoreSkus(ctx, storeID, vendorStoreID, storeSkuList, true)
|
||||
return failedList, err
|
||||
}
|
||||
@@ -236,39 +235,26 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI
|
||||
func UpdateTaoVegetable(api *tao_vegetable.API, storeSkuList []*dao.StoreSkuSyncInfo, vendorStoreID string, storeID int, syncType string) (failedList []*partner.StoreSkuInfoWithErr, err error) {
|
||||
param := &request585.AlibabaWdkSkuUpdateRequest{}
|
||||
updateSkuList := make([]domain585.AlibabaWdkSkuUpdateSkuDo, 0, 0)
|
||||
//totalCount := len(storeSkuList)
|
||||
for _, v := range storeSkuList {
|
||||
price := utils.String2Pointer(utils.Float64ToStr(float64(v.VendorPrice) / float64(100)))
|
||||
updateSku := domain585.AlibabaWdkSkuUpdateSkuDo{
|
||||
OuCode: utils.String2Pointer(vendorStoreID),
|
||||
SkuCode: utils.String2Pointer(utils.Int2Str(v.SkuID)),
|
||||
SkuName: utils.String2Pointer(checkNameLength(v.SkuName)),
|
||||
MemberPrice: price,
|
||||
SkuPrice: price, // 优先使用skuPrice 靠后SalePrice
|
||||
SuggestedPrice: price, // 优先使用skuPrice 靠后SalePrice
|
||||
CategoryCode: utils.String2Pointer(utils.Int2Str(v.CategoryID)),
|
||||
MerchantCatCode: utils.String2Pointer(v.VendorCatID), // 优先使用 靠后 category_code
|
||||
OuCode: utils.String2Pointer(vendorStoreID),
|
||||
SkuCode: utils.String2Pointer(utils.Int2Str(v.SkuID)),
|
||||
SkuName: utils.String2Pointer(checkNameLength(v.SkuName, v.Weight, v.Unit)),
|
||||
SkuPrice: price, // 优先使用skuPrice 靠后SalePrice
|
||||
CategoryCode: utils.String2Pointer(utils.Int2Str(v.CategoryID)),
|
||||
MerchantCatCode: utils.String2Pointer(v.VendorCatID), // 优先使用 靠后 category_code
|
||||
CleanSkuMemberPrice: utils.Int64ToPointer(model.YES),
|
||||
SubTitle: utils.String2Pointer("小时达"),
|
||||
}
|
||||
if v.MinOrderCount <= model.YES {
|
||||
updateSku.PurchaseQuantity = utils.Int64ToPointer(model.YES) // 起购单位
|
||||
} else {
|
||||
updateSku.PurchaseQuantity = utils.Int64ToPointer(int64(v.MinOrderCount)) // 起购单位
|
||||
}
|
||||
updateSku.SkuPicUrls = uploadImg(api, []string{v.Img, v.Img2, v.Img3, v.Img4, v.Img5, v.DescImg})
|
||||
// 修改暂时不修改图片,保持效率
|
||||
//updateSku.SkuPicUrls = uploadImg(api, []string{v.Img, v.Img2, v.Img3, v.Img4, v.Img5, v.DescImg})
|
||||
updateSkuList = append(updateSkuList, updateSku)
|
||||
//if (index+model.YES)%tao_vegetable.MAXHandleCount == model.NO || index+model.YES == totalCount {
|
||||
// param.ParamList = &updateSkuList
|
||||
// result, err := api.UpdateStoreSku(param)
|
||||
// if err != nil {
|
||||
// globals.SugarLogger.Debugf("UpdateStoreSku Tao Vegetable err : %s", err.Error())
|
||||
// }
|
||||
// // 记录失败的同步数据
|
||||
// createFailedList, _ := SelectStoreSkuListByFoodList(storeSkuList, *result, storeID, model.VendorChineseNames[model.VendorIDTaoVegetable], syncType)
|
||||
// failedList = append(failedList, createFailedList...)
|
||||
// // 记录同步成功的数据
|
||||
// param.ParamList = nil
|
||||
// updateSkuList = make([]domain585.AlibabaWdkSkuUpdateSkuDo, 0, 0)
|
||||
//}
|
||||
}
|
||||
|
||||
param.ParamList = &updateSkuList
|
||||
@@ -286,10 +272,8 @@ func UpdateTaoVegetable(api *tao_vegetable.API, storeSkuList []*dao.StoreSkuSync
|
||||
func createTaoVegetable(ctx *jxcontext.Context, api *tao_vegetable.API, storeSkuList []*dao.StoreSkuSyncInfo, vendorStoreID string, storeID int, syncType string) (failedList []*partner.StoreSkuInfoWithErr, err error) {
|
||||
createPram := &request585.AlibabaWdkSkuAddRequest{}
|
||||
param := make([]domain585.AlibabaWdkSkuAddSkuDo, 0, 0)
|
||||
//totalCount := len(storeSkuList)
|
||||
vendorSkuIdMap := make(map[string]string, 0)
|
||||
|
||||
globals.SugarLogger.Debugf("storeSkuList := %d", len(storeSkuList))
|
||||
for _, storeSku := range storeSkuList {
|
||||
price := utils.String2Pointer(utils.Float64ToStr(utils.Int64ToFloat64(storeSku.VendorPrice) / utils.Int64ToFloat64(100)))
|
||||
sku := domain585.AlibabaWdkSkuAddSkuDo{
|
||||
@@ -308,14 +292,13 @@ func createTaoVegetable(ctx *jxcontext.Context, api *tao_vegetable.API, storeSku
|
||||
SaleUnit: utils.String2Pointer("份"),
|
||||
LifeStatus: utils.String2Pointer(tao_vegetable.CreateSkuLeafStatus),
|
||||
SaleSpec: utils.String2Pointer(fmt.Sprintf("%d %s*1%s", storeSku.Weight, "g", storeSku.Unit)),
|
||||
StepQuantity: utils.Int64ToPointer(model.YES), // 每次购买至少增加一个购买单位
|
||||
SubTitle: utils.String2Pointer("同城包邮"),
|
||||
SubTitle1: utils.String2Pointer("一小时速达"),
|
||||
StepQuantity: utils.Int64ToPointer(model.YES), // 每次购买至少增加一个购买单位
|
||||
OnlineSaleFlag: utils.Int64ToPointer(tao_vegetable.CreateOnlineSaleFlag), // 门店控制是否可见
|
||||
SubTitle: utils.String2Pointer("小时达"),
|
||||
SubTitle1: utils.String2Pointer("一小时速达"),
|
||||
//DeliveryUnit: utils.String2Pointer(storeSku.Unit),
|
||||
DeliveryUnit: utils.String2Pointer("份"),
|
||||
DeliverySpec: utils.String2Pointer(utils.Int2Str(model.YES)),
|
||||
MemberPrice: price,
|
||||
Storage: utils.String2Pointer(tao_vegetable.CreateStorage),
|
||||
PickFloatRate: utils.String2Pointer(utils.Int2Str(model.NO)), // ? 0
|
||||
ForbidReceiveDays: utils.Int64ToPointer(tao_vegetable.CreateShelfLife), // ? 7
|
||||
@@ -341,7 +324,7 @@ func createTaoVegetable(ctx *jxcontext.Context, api *tao_vegetable.API, storeSku
|
||||
if sku.SkuPicUrls == nil {
|
||||
continue
|
||||
}
|
||||
sku.SkuName = utils.String2Pointer(checkNameLength(storeSku.Name))
|
||||
sku.SkuName = utils.String2Pointer(checkNameLength(storeSku.Name, storeSku.Weight, storeSku.Unit))
|
||||
|
||||
if storeSku.MinOrderCount <= model.YES {
|
||||
sku.PurchaseQuantity = utils.Int64ToPointer(model.YES) // 起购单位
|
||||
@@ -370,28 +353,14 @@ func createTaoVegetable(ctx *jxcontext.Context, api *tao_vegetable.API, storeSku
|
||||
},
|
||||
}
|
||||
param = append(param, sku)
|
||||
//if (index+model.YES)%tao_vegetable.MAXHandleCount == model.NO || index+model.YES == totalCount {
|
||||
// createPram.ParamList = ¶m
|
||||
// result, err := api.AddStoreSku(createPram)
|
||||
// if err != nil {
|
||||
// globals.SugarLogger.Debugf("创建淘鲜达商品异常:%s", err.Error())
|
||||
// }
|
||||
// // 记录失败的同步数据
|
||||
// failedList2, vendorSkuIdMap2 := SelectStoreSkuListByFoodList(storeSkuList, *result, storeID, model.VendorChineseNames[model.VendorIDTaoVegetable], syncType)
|
||||
// failedList = append(failedList, failedList2...)
|
||||
// for k, v := range vendorSkuIdMap2 {
|
||||
// vendorSkuIdMap[k] = v
|
||||
// }
|
||||
//
|
||||
// createPram.ParamList = nil
|
||||
// param = make([]domain585.AlibabaWdkSkuAddSkuDo, 0, 0)
|
||||
//}
|
||||
}
|
||||
createPram.ParamList = ¶m
|
||||
result, err := api.AddStoreSku(createPram)
|
||||
if err != nil {
|
||||
globals.SugarLogger.Debugf("创建淘鲜达商品异常:%s", err.Error())
|
||||
}
|
||||
//ddmsg.SendUserMessage(dingdingapi.MsgTyeText, "2452A93EEB9111EC9B06525400E86DC0", fmt.Sprintf("定时创建商品[门店id:%d],出入商品个数[%d]", storeID, len(storeSkuList)), utils.Format4Output(result, false))
|
||||
|
||||
// 记录失败的同步数据
|
||||
failedList2, vendorSkuIdMap2 := SelectStoreSkuListByFoodList(storeSkuList, *result, storeID, model.VendorChineseNames[model.VendorIDTaoVegetable], syncType)
|
||||
failedList = append(failedList, failedList2...)
|
||||
@@ -411,13 +380,14 @@ func createTaoVegetable(ctx *jxcontext.Context, api *tao_vegetable.API, storeSku
|
||||
}
|
||||
failedListStock := updateStoreSkusStockByCreate(ctx, api, storeID, vendorStoreID, successSku)
|
||||
failedList = append(failedList, failedListStock...)
|
||||
globals.SugarLogger.Debugf("failedList := %s", utils.Format4Output(failedList, false))
|
||||
globals.SugarLogger.Debugf("storeSkuList := %s", utils.Format4Output(storeSkuList, false))
|
||||
return failedList, nil
|
||||
}
|
||||
|
||||
func checkNameLength(name string) string {
|
||||
func checkNameLength(name string, weight int, uint string) string {
|
||||
lastName := ""
|
||||
if !strings.Contains(name, uint) {
|
||||
name = fmt.Sprintf("%s %d/%s", name, weight, uint)
|
||||
}
|
||||
if strings.Contains(name, "其它") {
|
||||
name = strings.ReplaceAll(name, "其它", "")
|
||||
}
|
||||
@@ -465,7 +435,7 @@ func checkNameLength(name string) string {
|
||||
return lastName
|
||||
}
|
||||
}
|
||||
return name[0:60]
|
||||
return lastName[0:60]
|
||||
}
|
||||
|
||||
func uploadImg(api *tao_vegetable.API, imgs []string) *string {
|
||||
@@ -510,19 +480,6 @@ func (p *PurchaseHandler) DeleteStoreSkus(ctx *jxcontext.Context, storeID int, v
|
||||
OnlineSaleFlag: utils.Int64ToPointer(tao_vegetable.CreateOfflineSaleFlag),
|
||||
}
|
||||
updateSkuList = append(updateSkuList, updateSku)
|
||||
|
||||
//if (index+model.YES)%tao_vegetable.MAXHandleCount == model.NO || (index+1) == len(storeSkuList) {
|
||||
// param.ParamList = &updateSkuList
|
||||
// result, err := api.UpdateStoreSku(param)
|
||||
// if err != nil {
|
||||
// globals.SugarLogger.Debugf("UpdateStoreSku Tao Vegetable err : %s", err.Error())
|
||||
// }
|
||||
// // 记录失败的同步数据
|
||||
// createFailedList, _ := SelectStoreSkuListByFoodList(storeSkuList, *result, storeID, model.VendorChineseNames[model.VendorIDTaoVegetable], "删除商品(暂无接口,下架处理)")
|
||||
// failedList = append(failedList, createFailedList...)
|
||||
// param.ParamList = nil
|
||||
// updateSkuList = make([]domain585.AlibabaWdkSkuUpdateSkuDo, 0, 0)
|
||||
//}
|
||||
}
|
||||
|
||||
param.ParamList = &updateSkuList
|
||||
@@ -534,28 +491,6 @@ func (p *PurchaseHandler) DeleteStoreSkus(ctx *jxcontext.Context, storeID int, v
|
||||
createFailedList, _ := SelectStoreSkuListByFoodList(storeSkuList, *result, storeID, model.VendorChineseNames[model.VendorIDTaoVegetable], "删除商品(暂无接口,下架处理)")
|
||||
failedList = append(failedList, createFailedList...)
|
||||
return failedList, err
|
||||
//param := &request.AlibabaAxChannelSkuStatusUpdateRequest{ChannelSkuUpdateStatusReq: &domain.AlibabaAxChannelSkuStatusUpdateChannelSkuUpdateStatusReq{
|
||||
// StoreId: utils.String2Pointer(vendorStoreID),
|
||||
// ChannelCode: utils.String2Pointer(tao_vegetable.TaoVegetableChannelCode),
|
||||
// OnlineSaleFlag: utils.Int64ToPointer(tao_vegetable.CreateIsOnline),
|
||||
//}}
|
||||
//var updateOffShelf = make([]tao_vegetable.VegetableResultList, 0, len(storeSkuList))
|
||||
//for _, v := range storeSkuList {
|
||||
// param.ChannelSkuUpdateStatusReq.SkuCode = utils.String2Pointer(utils.Int2Str(v.SkuID))
|
||||
// // StoreSkuUpdateOffShelf 这个接口暂时有问题使用更新接口上下架
|
||||
// if err = getAPI(getStoreVendorOrgCode(storeID), storeID, vendorStoreID).StoreSkuUpdateOffShelf(param); err != nil {
|
||||
// updateOffShelf = append(updateOffShelf, tao_vegetable.VegetableResultList{
|
||||
// ProductID: v.VendorSkuID,
|
||||
// SkuID: utils.Int2Str(v.SkuID),
|
||||
// ErrMsg: err.Error(),
|
||||
// })
|
||||
// }
|
||||
//}
|
||||
//failedList, _ = SelectStoreSkuListByFoodList(storeSkuList, updateOffShelf, storeID, model.VendorChineseNames[model.VendorIDTaoVegetable], "批量删除商品(暂时下架,无删除接口)")
|
||||
//if len(failedList) > 0 {
|
||||
// err = nil
|
||||
//}
|
||||
//return failedList, err
|
||||
}
|
||||
|
||||
// UpdateStoreSkusStatus 批量更新商品上下架状态
|
||||
@@ -569,21 +504,10 @@ func (p *PurchaseHandler) UpdateStoreSkusStatus(ctx *jxcontext.Context, vendorOr
|
||||
OuCode: utils.String2Pointer(vendorStoreID),
|
||||
SkuCode: utils.String2Pointer(utils.Int2Str(v.SkuID)),
|
||||
OnlineSaleFlag: utils.Int64ToPointer(onlineStatus),
|
||||
SubTitle: utils.String2Pointer("小时达"),
|
||||
//CleanSkuMemberPrice: utils.Int64ToPointer(model.YES),
|
||||
}
|
||||
updateSkuList = append(updateSkuList, updateSku)
|
||||
|
||||
//if (index+model.YES)%tao_vegetable.MAXHandleCount == model.NO || (index+1) == len(storeSkuList) {
|
||||
// param.ParamList = &updateSkuList
|
||||
// result, err := api.UpdateStoreSku(param)
|
||||
// if err != nil {
|
||||
// globals.SugarLogger.Debugf("UpdateStoreSku Tao Vegetable err : %s", err.Error())
|
||||
// }
|
||||
// // 记录失败的同步数据
|
||||
// createFailedList, _ := SelectStoreSkuListByFoodList(storeSkuList, *result, storeID, model.VendorChineseNames[model.VendorIDTaoVegetable], "批量更新商品上下架")
|
||||
// failedList = append(failedList, createFailedList...)
|
||||
// param.ParamList = nil
|
||||
// updateSkuList = make([]domain585.AlibabaWdkSkuUpdateSkuDo, 0, 0)
|
||||
//}
|
||||
}
|
||||
|
||||
param.ParamList = &updateSkuList
|
||||
@@ -608,23 +532,9 @@ func (p *PurchaseHandler) UpdateStoreSkusPrice(ctx *jxcontext.Context, vendorOrg
|
||||
SkuCode: utils.String2Pointer(utils.Int2Str(v.SkuID)),
|
||||
SkuPrice: price,
|
||||
CleanSkuMemberPrice: utils.Int64ToPointer(model.YES),
|
||||
SuggestedPrice: price,
|
||||
MemberPrice: price,
|
||||
SubTitle: utils.String2Pointer("小时达"),
|
||||
}
|
||||
updateSkuList = append(updateSkuList, updateSku)
|
||||
|
||||
//if (index+model.YES)%tao_vegetable.MAXHandleCount == model.NO || (index+1) == len(storeSkuList) {
|
||||
// param.ParamList = &updateSkuList
|
||||
// result, err := api.UpdateStoreSku(param)
|
||||
// if err != nil {
|
||||
// globals.SugarLogger.Debugf("UpdateStoreSku Tao Vegetable err : %s", err.Error())
|
||||
// }
|
||||
// // 记录失败的同步数据
|
||||
// createFailedList, _ := SelectStoreSkuListByFoodList(storeSkuList, *result, storeID, model.VendorChineseNames[model.VendorIDTaoVegetable], "修改商品价格")
|
||||
// failedList = append(failedList, createFailedList...)
|
||||
// param.ParamList = nil
|
||||
// updateSkuList = make([]domain585.AlibabaWdkSkuUpdateSkuDo, 0, 0)
|
||||
//}
|
||||
}
|
||||
param.ParamList = &updateSkuList
|
||||
result, err := api.UpdateStoreSku(param)
|
||||
@@ -926,21 +836,6 @@ func (p *PurchaseHandler) UpdateStoreSkusSpecTag(ctx *jxcontext.Context, vendorO
|
||||
}
|
||||
updateSkuList = append(updateSkuList, updateSku)
|
||||
|
||||
//if (index+model.YES)%tao_vegetable.MAXHandleCount == model.NO || (index+1) == len(storeSkuList) {
|
||||
// param.ParamList = &updateSkuList
|
||||
// result, err := api.UpdateStoreSku(param)
|
||||
// if err != nil {
|
||||
// globals.SugarLogger.Debugf("UpdateStoreSku Tao Vegetable err : %s", err.Error())
|
||||
// }
|
||||
// // 记录失败的同步数据
|
||||
// for _, v := range *result {
|
||||
// if v.ErrMsg != "" {
|
||||
// errList = append(errList, v.ErrMsg)
|
||||
// }
|
||||
// }
|
||||
// param.ParamList = nil
|
||||
// updateSkuList = make([]domain585.AlibabaWdkSkuUpdateSkuDo, 0, 0)
|
||||
//}
|
||||
}
|
||||
param.ParamList = &updateSkuList
|
||||
result, err := api.UpdateStoreSku(param)
|
||||
|
||||
Reference in New Issue
Block a user