Merge branch 'jdshop' of https://e.coding.net/rosydev/jx-callback into jdshop

This commit is contained in:
richboo111
2023-07-07 09:46:30 +08:00
3 changed files with 192 additions and 182 deletions

View File

@@ -771,7 +771,6 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
_, err := updateStoreSku(dao.GetDB(), vendorID, successList, model.SyncFlagNewMask) _, err := updateStoreSku(dao.GetDB(), vendorID, successList, model.SyncFlagNewMask)
if err != nil { if err != nil {
globals.SugarLogger.Debugf("20.sth wrong on updateStoreSku: %v", err) globals.SugarLogger.Debugf("20.sth wrong on updateStoreSku: %v", err)
//return nil, 0, err
} }
} }
return nil, len(successList), err return nil, len(successList), err

View File

@@ -36,18 +36,19 @@ func (c *PurchaseHandler) isAfsMsg(orderStatus string, orderId string, orderCall
return true return true
} }
case tao_vegetable.OrderStatusRefundSuccess: case tao_vegetable.OrderStatusRefundSuccess:
success := orderCallback.(*tao_vegetable.RefundOrderFinish)
param := &request591.AlibabaWdkOrderRefundGetRequest{
OrderFrom: utils.Int64ToPointer(utils.Str2Int64(tao_vegetable.TaoVegetableChannelCode)),
ShopId: nil,
StoreId: utils.String2Pointer(success.StoreId),
RefundIds: &[]int64{utils.Str2Int64(success.BizSubRefundId)},
}
refundAfs, _ := getAPI("", 0, success.StoreId).QueryAfsOrderDetail(param)
globals.SugarLogger.Debugf("==============refundAfs.Orders : %s", utils.Format4Output(refundAfs.Orders != nil, false))
if refundAfs.Orders != nil {
return true return true
} //success := orderCallback.(*tao_vegetable.RefundOrderFinish)
//param := &request591.AlibabaWdkOrderRefundGetRequest{
// OrderFrom: utils.Int64ToPointer(utils.Str2Int64(tao_vegetable.TaoVegetableChannelCode)),
// ShopId: nil,
// StoreId: utils.String2Pointer(success.StoreId),
// RefundIds: &[]int64{utils.Str2Int64(success.BizSubRefundId)},
//}
//refundAfs, _ := getAPI("", 0, success.StoreId).QueryAfsOrderDetail(param)
//globals.SugarLogger.Debugf("==============refundAfs.Orders : %s", utils.Format4Output(refundAfs.Orders != nil, false))
//if refundAfs.Orders != nil {
// return true
//}
case tao_vegetable.OrderStatusOnSaleCancel: case tao_vegetable.OrderStatusOnSaleCancel:
order, _ := partner.CurOrderManager.LoadOrder(orderId, model.VendorIDTaoVegetable) order, _ := partner.CurOrderManager.LoadOrder(orderId, model.VendorIDTaoVegetable)
if order != nil { if order != nil {
@@ -70,22 +71,25 @@ func (c *PurchaseHandler) onAfsOrderMsg(status string, msg interface{}) (retVal
var err error var err error
var db = dao.GetDB() var db = dao.GetDB()
orderStatus := c.callbackAfsMsg2Status(status, msg) orderStatus := c.callbackAfsMsg2Status(status, msg)
needCallNew := orderStatus.Status == model.AfsOrderStatusWait4Approve || orderStatus.Status == model.AfsOrderStatusNew //needCallNew := orderStatus.Status == model.AfsOrderStatusWait4Approve || orderStatus.Status == model.AfsOrderStatusNew
if !needCallNew { //if !needCallNew {
_, err := partner.CurOrderManager.LoadAfsOrder(orderStatus.VendorOrderID, orderStatus.VendorID) // _, err := partner.CurOrderManager.LoadAfsOrder(orderStatus.VendorOrderID, orderStatus.VendorID)
if err != nil { // if err != nil {
if dao.IsNoRowsError(err) { // if dao.IsNoRowsError(err) {
needCallNew = true // needCallNew = true
} else { // } else {
return tao_vegetable.CallBackResultInfo(err) // return tao_vegetable.CallBackResultInfo(err)
} // }
} // }
} //}
if needCallNew && orderStatus.Status == model.AfsOrderStatusOnSaleAfs { //if needCallNew && orderStatus.Status == model.AfsOrderStatusOnSaleAfs {
needCallNew = false // needCallNew = false
} //}
// 用户取消售后
switch status {
case tao_vegetable.OrderStatusApplyAfs:
if needCallNew {
refundData := msg.(*tao_vegetable.UserApplyRefundCallBack) refundData := msg.(*tao_vegetable.UserApplyRefundCallBack)
var afsOrder *model.AfsOrder var afsOrder *model.AfsOrder
var api = getAPI("", 0, refundData.StoreId) var api = getAPI("", 0, refundData.StoreId)
@@ -181,9 +185,6 @@ func (c *PurchaseHandler) onAfsOrderMsg(status string, msg interface{}) (retVal
} }
err = partner.CurOrderManager.OnAfsOrderNew(afsOrder, orderStatus) err = partner.CurOrderManager.OnAfsOrderNew(afsOrder, orderStatus)
} }
} else {
// 用户取消售后
switch status {
case tao_vegetable.OrderStatusCancelAfs: case tao_vegetable.OrderStatusCancelAfs:
// 删除售后单 // 删除售后单
afsOrder, err := dao.GetAfsOrders(db, model.VendorIDTaoVegetable, orderStatus.RefVendorOrderID, orderStatus.VendorOrderID) afsOrder, err := dao.GetAfsOrders(db, model.VendorIDTaoVegetable, orderStatus.RefVendorOrderID, orderStatus.VendorOrderID)
@@ -240,7 +241,7 @@ func (c *PurchaseHandler) onAfsOrderMsg(status string, msg interface{}) (retVal
afsOrder = &model.AfsOrder{ afsOrder = &model.AfsOrder{
VendorID: model.VendorIDTaoVegetable, VendorID: model.VendorIDTaoVegetable,
AfsOrderID: orderStatus.VendorOrderID, AfsOrderID: onSaleMsg.PartCancelRequest.IdempotentId,
VendorOrderID: orderStatus.RefVendorOrderID, VendorOrderID: orderStatus.RefVendorOrderID,
VendorStoreID: onSaleMsg.PartCancelRequest.StoreId, VendorStoreID: onSaleMsg.PartCancelRequest.StoreId,
StoreID: 0, StoreID: 0,
@@ -323,8 +324,7 @@ func (c *PurchaseHandler) onAfsOrderMsg(status string, msg interface{}) (retVal
// 取消三方运单 // 取消三方运单
} }
} }
}
globals.SugarLogger.Debugf("=============errr : %v", err)
return tao_vegetable.CallBackResultInfo(err) return tao_vegetable.CallBackResultInfo(err)
} }
@@ -383,15 +383,19 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(status string, msg interface{})
StoreId: utils.String2Pointer(refundData.StoreId), StoreId: utils.String2Pointer(refundData.StoreId),
RefundIds: &[]int64{utils.Str2Int64(refundData.BizSubRefundId)}, RefundIds: &[]int64{utils.Str2Int64(refundData.BizSubRefundId)},
} }
time.Sleep(time.Second * 1)
refundAfs, _ := getAPI("", 0, refundData.StoreId).QueryAfsOrderDetail(param) refundAfs, _ := getAPI("", 0, refundData.StoreId).QueryAfsOrderDetail(param)
if refundAfs.Orders == nil {
globals.SugarLogger.Debugf("================售中退款成功回调查询售后单为空:")
} else {
orderId := *refundAfs.Orders orderId := *refundAfs.Orders
orderStatus.RefVendorOrderID = utils.Int64ToStr(*orderId[0].OriginParentId) orderStatus.RefVendorOrderID = utils.Int64ToStr(*orderId[0].OriginParentId)
orderStatus.VendorStatus = fmt.Sprintf("%s:%s", tao_vegetable.OrderStatusRefundSuccess, "用户售中退款成功") orderStatus.VendorStatus = fmt.Sprintf("%s:%s", tao_vegetable.OrderStatusRefundSuccess, "用户售中退款成功")
orderStatus.Status = c.GetAfsStatusFromVendorStatus(tao_vegetable.OrderStatusRefundSuccess) orderStatus.Status = c.GetAfsStatusFromVendorStatus(tao_vegetable.OrderStatusRefundSuccess)
orderStatus.StatusTime = time.Now() orderStatus.StatusTime = time.Now()
orderStatus.Remark = fmt.Sprintf("QueryTaoAfsOrderId:%s", refundData.BizSubRefundId) orderStatus.Remark = fmt.Sprintf("QueryTaoAfsOrderId:%s", refundData.BizSubRefundId)
orderStatus.VendorOrderID = orderStatus.RefVendorOrderID orderStatus.VendorOrderID = utils.Int64ToStr(*orderId[0].RefundOrderId)
}
} }
} }

View File

@@ -209,8 +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) { func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) {
failedList, err = p.createOrUpdateStoreSkus(ctx, storeID, vendorStoreID, storeSkuList, true) failedList, err = p.createOrUpdateStoreSkus(ctx, storeID, vendorStoreID, storeSkuList, true)
globals.SugarLogger.Debugf("CreateStoreSkus=====err := %v", err)
globals.SugarLogger.Debugf("CreateStoreSkus=====err := %v", failedList)
return failedList, err return failedList, err
} }
@@ -242,12 +240,14 @@ func UpdateTaoVegetable(api *tao_vegetable.API, storeSkuList []*dao.StoreSkuSync
updateSkuList := make([]domain585.AlibabaWdkSkuUpdateSkuDo, 0, 0) updateSkuList := make([]domain585.AlibabaWdkSkuUpdateSkuDo, 0, 0)
totalCount := len(storeSkuList) totalCount := len(storeSkuList)
for index, v := range storeSkuList { for index, v := range storeSkuList {
price := utils.String2Pointer(utils.Float64ToStr(float64(v.VendorPrice) / float64(100)))
updateSku := domain585.AlibabaWdkSkuUpdateSkuDo{ updateSku := domain585.AlibabaWdkSkuUpdateSkuDo{
OuCode: utils.String2Pointer(vendorStoreID), OuCode: utils.String2Pointer(vendorStoreID),
SkuCode: utils.String2Pointer(utils.Int2Str(v.SkuID)), SkuCode: utils.String2Pointer(utils.Int2Str(v.SkuID)),
SkuName: utils.String2Pointer(v.SkuName), SkuName: utils.String2Pointer(v.SkuName),
MemberPrice: utils.String2Pointer(utils.Float64ToStr(float64(v.UnitPrice) / float64(100))), MemberPrice: price,
SkuPrice: utils.String2Pointer(utils.Float64ToStr(float64(v.UnitPrice) / float64(100))), // 优先使用skuPrice 靠后SalePrice SkuPrice: price, // 优先使用skuPrice 靠后SalePrice
SuggestedPrice: price, // 优先使用skuPrice 靠后SalePrice
CategoryCode: utils.String2Pointer(utils.Int2Str(v.CategoryID)), CategoryCode: utils.String2Pointer(utils.Int2Str(v.CategoryID)),
MerchantCatCode: utils.String2Pointer(v.VendorCatID), // 优先使用 靠后 category_code MerchantCatCode: utils.String2Pointer(v.VendorCatID), // 优先使用 靠后 category_code
} }
@@ -285,6 +285,7 @@ func createTaoVegetable(ctx *jxcontext.Context, api *tao_vegetable.API, storeSku
vendorSkuIdMap := make(map[string]string, 0) vendorSkuIdMap := make(map[string]string, 0)
for index, storeSku := range storeSkuList { for index, storeSku := range storeSkuList {
price := utils.String2Pointer(utils.Float64ToStr(utils.Int64ToFloat64(storeSku.VendorPrice) / utils.Int64ToFloat64(100)))
sku := domain585.AlibabaWdkSkuAddSkuDo{ sku := domain585.AlibabaWdkSkuAddSkuDo{
Barcodes: utils.String2Pointer(utils.Int2Str(storeSku.SkuID)), Barcodes: utils.String2Pointer(utils.Int2Str(storeSku.SkuID)),
BrandName: utils.String2Pointer(tao_vegetable.CreateSkuBrandName), BrandName: utils.String2Pointer(tao_vegetable.CreateSkuBrandName),
@@ -295,7 +296,7 @@ func createTaoVegetable(ctx *jxcontext.Context, api *tao_vegetable.API, storeSku
SkuCode: utils.String2Pointer(utils.Int2Str(storeSku.SkuID)), SkuCode: utils.String2Pointer(utils.Int2Str(storeSku.SkuID)),
SkuName: utils.String2Pointer(storeSku.SkuName), SkuName: utils.String2Pointer(storeSku.SkuName),
StorageType: utils.Int64ToPointer(tao_vegetable.CreateSkuStorageType), StorageType: utils.Int64ToPointer(tao_vegetable.CreateSkuStorageType),
SuggestedPrice: utils.String2Pointer(utils.Float64ToStr(utils.Int64ToFloat64(storeSku.UnitPrice) / utils.Int64ToFloat64(100))), SuggestedPrice: price,
Weight: utils.String2Pointer(utils.Float32ToStr(storeSku.SpecQuality)), Weight: utils.String2Pointer(utils.Float32ToStr(storeSku.SpecQuality)),
ShelfLife: utils.Int64ToPointer(tao_vegetable.CreateShelfLife), ShelfLife: utils.Int64ToPointer(tao_vegetable.CreateShelfLife),
NetContent: utils.String2Pointer(utils.Float32ToStr(storeSku.SpecQuality)), NetContent: utils.String2Pointer(utils.Float32ToStr(storeSku.SpecQuality)),
@@ -309,7 +310,7 @@ func createTaoVegetable(ctx *jxcontext.Context, api *tao_vegetable.API, storeSku
//DeliveryUnit: utils.String2Pointer(storeSku.Unit), //DeliveryUnit: utils.String2Pointer(storeSku.Unit),
DeliveryUnit: utils.String2Pointer("份"), DeliveryUnit: utils.String2Pointer("份"),
DeliverySpec: utils.String2Pointer(utils.Int2Str(model.YES)), DeliverySpec: utils.String2Pointer(utils.Int2Str(model.YES)),
MemberPrice: utils.String2Pointer(utils.Float64ToStr(float64(storeSku.UnitPrice) / float64(100))), MemberPrice: price,
Storage: utils.String2Pointer(tao_vegetable.CreateStorage), Storage: utils.String2Pointer(tao_vegetable.CreateStorage),
PickFloatRate: utils.String2Pointer(utils.Int2Str(model.NO)), // ? 0 PickFloatRate: utils.String2Pointer(utils.Int2Str(model.NO)), // ? 0
ForbidReceiveDays: utils.Int64ToPointer(tao_vegetable.CreateShelfLife), // ? 7 ForbidReceiveDays: utils.Int64ToPointer(tao_vegetable.CreateShelfLife), // ? 7
@@ -322,7 +323,7 @@ func createTaoVegetable(ctx *jxcontext.Context, api *tao_vegetable.API, storeSku
PurchaseUnit: utils.String2Pointer("份"), // ? 同上 PurchaseUnit: utils.String2Pointer("份"), // ? 同上
LabelStyleType: utils.String2Pointer(tao_vegetable.CreateLabelStyleType), // 库存单位 LabelStyleType: utils.String2Pointer(tao_vegetable.CreateLabelStyleType), // 库存单位
ItemTypeNew: utils.Int64ToPointer(tao_vegetable.CreateItemTypeNewVegetable), ItemTypeNew: utils.Int64ToPointer(tao_vegetable.CreateItemTypeNewVegetable),
SkuPrice: utils.String2Pointer(utils.Float64ToStr(float64(storeSku.UnitPrice) / float64(100))), // 优先使用skuPrice 靠后SalePrice SkuPrice: price, // 优先使用skuPrice 靠后SalePrice
Period: utils.Int64ToPointer(tao_vegetable.CreateShelfLife), // 优先使用period 靠后shelf_life Period: utils.Int64ToPointer(tao_vegetable.CreateShelfLife), // 优先使用period 靠后shelf_life
FragileFlag: utils.Int64ToPointer(model.YES), FragileFlag: utils.Int64ToPointer(model.YES),
DeliveryStorage: utils.String2Pointer(tao_vegetable.CreateItemDeliveryStorage), DeliveryStorage: utils.String2Pointer(tao_vegetable.CreateItemDeliveryStorage),
@@ -331,6 +332,10 @@ func createTaoVegetable(ctx *jxcontext.Context, api *tao_vegetable.API, storeSku
MerchantCatCode: utils.String2Pointer(storeSku.VendorCatID), // 优先使用 靠后 category_code MerchantCatCode: utils.String2Pointer(storeSku.VendorCatID), // 优先使用 靠后 category_code
} }
sku.SkuPicUrls = uploadImg(api, []string{storeSku.ImgOrigin, storeSku.Img, storeSku.Img2, storeSku.Img3, storeSku.Img4, storeSku.Img5, storeSku.DescImg}) sku.SkuPicUrls = uploadImg(api, []string{storeSku.ImgOrigin, storeSku.Img, storeSku.Img2, storeSku.Img3, storeSku.Img4, storeSku.Img5, storeSku.DescImg})
if sku.SkuPicUrls == nil {
continue
}
if storeSku.MinOrderCount <= model.YES { if storeSku.MinOrderCount <= model.YES {
sku.PurchaseQuantity = utils.Int64ToPointer(model.YES) // 起购单位 sku.PurchaseQuantity = utils.Int64ToPointer(model.YES) // 起购单位
} else { } else {
@@ -524,12 +529,14 @@ func (p *PurchaseHandler) UpdateStoreSkusPrice(ctx *jxcontext.Context, vendorOrg
updateSkuList := make([]domain585.AlibabaWdkSkuUpdateSkuDo, 0, 0) updateSkuList := make([]domain585.AlibabaWdkSkuUpdateSkuDo, 0, 0)
api := getAPI(getStoreVendorOrgCode(storeID), storeID, vendorStoreID) api := getAPI(getStoreVendorOrgCode(storeID), storeID, vendorStoreID)
for index, v := range storeSkuList { for index, v := range storeSkuList {
price := utils.String2Pointer(fmt.Sprintf("%.2f", float64(v.VendorPrice)/float64(100)))
updateSku := domain585.AlibabaWdkSkuUpdateSkuDo{ updateSku := domain585.AlibabaWdkSkuUpdateSkuDo{
OuCode: utils.String2Pointer(vendorStoreID), OuCode: utils.String2Pointer(vendorStoreID),
SkuCode: utils.String2Pointer(utils.Int2Str(v.SkuID)), SkuCode: utils.String2Pointer(utils.Int2Str(v.SkuID)),
SkuPrice: utils.String2Pointer(fmt.Sprintf("%.2f", (float64(1000)/float64(v.SpecQuality))*(float64(v.JxUnitPrice)/float64(100)))), SkuPrice: price,
CleanSkuMemberPrice: utils.Int64ToPointer(model.YES), CleanSkuMemberPrice: utils.Int64ToPointer(model.YES),
SuggestedPrice: utils.String2Pointer(fmt.Sprintf("%.2f", (float64(1000)/float64(v.SpecQuality))*(float64(v.JxUnitPrice)/float64(100)))), SuggestedPrice: price,
MemberPrice: price,
} }
updateSkuList = append(updateSkuList, updateSku) updateSkuList = append(updateSkuList, updateSku)