diff --git a/business/jxcallback/orderman/order.go b/business/jxcallback/orderman/order.go index 2d8b815ba..d7e65d064 100644 --- a/business/jxcallback/orderman/order.go +++ b/business/jxcallback/orderman/order.go @@ -21,8 +21,6 @@ type tStoreSkuBindAndVendorSkuID struct { SkuID int `orm:"column(sku_id)"` Weight int Price int - - JoinID int `orm:"column(join_id)"` } func init() { @@ -475,7 +473,7 @@ func (c *OrderManager) loadOrderFinancial(vendorOrderID, vendorOrderID2 string, if err = db.Read(order, keyFields...); err == nil { vendorOrderID = order.VendorOrderID err = utils.CallFuncLogError(func() error { - _, err = db.QueryTable("order_sku_financial").Filter("vendor_order_id", vendorOrderID).Filter("vendor_id", vendorID).All(&order.Skus) + _, err = db.QueryTable("order_sku_financial").Filter("vendor_order_id", vendorOrderID).Filter("vendor_id", vendorID).Filter("is_afs_order", 0).All(&order.Skus) return err }, "LoadOrder orderID:%s", vendorOrderID) } diff --git a/business/jxcallback/orderman/order_afs.go b/business/jxcallback/orderman/order_afs.go index 8b5cec8df..1bd29b603 100644 --- a/business/jxcallback/orderman/order_afs.go +++ b/business/jxcallback/orderman/order_afs.go @@ -78,6 +78,10 @@ func (c *OrderManager) onAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *mode return err } } else { + // 外退都要先全删除再建 + if afsOrder.RefundType == model.AfsTypeFullRefund { + isAdjust = true + } if err = c.SaveAfsOrder(db, afsOrder, isAdjust); err != nil { return err } @@ -106,7 +110,7 @@ func (c *OrderManager) SaveAfsOrder(db *dao.DaoDB, afsOrder *model.AfsOrder, isD }() if isDeleteFirst { err = utils.CallFuncLogError(func() error { - _, err = dao.DeleteEntity(db, afsOrder, "AfsOrderID") + _, err = dao.DeleteEntity(db, afsOrder, "VendorOrderID", "VendorID") return err }, "SaveAfsOrder delete AfsOrder, afsOrderID:%s", afsOrder.AfsOrderID) if err != nil { @@ -114,8 +118,10 @@ func (c *OrderManager) SaveAfsOrder(db *dao.DaoDB, afsOrder *model.AfsOrder, isD } err = utils.CallFuncLogError(func() error { _, err = dao.DeleteEntity(db, &model.OrderSkuFinancial{ - AfsOrderID: afsOrder.AfsOrderID, - }, "AfsOrderID") + VendorOrderID: afsOrder.VendorOrderID, + VendorID: afsOrder.VendorID, + IsAfsOrder: 1, + }, "VendorOrderID", "VendorID", "IsAfsOrder") return err }, "SaveAfsOrder delete OrderSkuFinancial, afsOrderID:%s", afsOrder.AfsOrderID) if err != nil { @@ -243,14 +249,13 @@ func (c *OrderManager) updateAfsOrderSkuOtherInfo(db *dao.DaoDB, order *model.Af } fieldPrefix := dao.ConvertDBFieldPrefix(model.VendorNames[order.VendorID]) sql := ` - SELECT %s.%s_id vendor_sku_id, t1.id sku_id, t2.price, t1.weight, t3.id join_id + SELECT %s.%s_id vendor_sku_id, t1.id sku_id, t2.price, t1.weight FROM sku t1 LEFT JOIN store_sku_bind t2 ON t1.id = t2.sku_id AND t2.deleted_at = ? AND t2.store_id = ? - LEFT JOIN order_sku_financial t3 ON t3.is_afs_order = 1 AND t3.store_id = t2.store_id AND t3.sku_id = t2.sku_id AND t3.vendor_order_id = ? AND t3.vendor_id = ? WHERE t1.deleted_at = ? AND %s.%s_id IN (-1, ` + dao.GenQuestionMarks(len(vendorSkuIDs)) + ")" sql = fmt.Sprintf(sql, tableName, fieldPrefix, tableName, fieldPrefix) var skuInfos []*tStoreSkuBindAndVendorSkuID - if err = dao.GetRows(db, &skuInfos, sql, utils.DefaultTimeValue, jxStoreID, order.VendorOrderID, order.VendorID, utils.DefaultTimeValue, vendorSkuIDs); err != nil { + if err = dao.GetRows(db, &skuInfos, sql, utils.DefaultTimeValue, jxStoreID, utils.DefaultTimeValue, vendorSkuIDs); err != nil { globals.SugarLogger.Errorf("updateAfsOrderSkuOtherInfo can not get sku info for orderID:%s, error:%v", order.VendorOrderID, err) return err } @@ -258,7 +263,6 @@ func (c *OrderManager) updateAfsOrderSkuOtherInfo(db *dao.DaoDB, order *model.Af for _, v := range skuInfos { skumapper[v.VendorSkuID] = v } - var newSkus []*model.OrderSkuFinancial for _, v := range orderSkus { v.AfsOrderID = order.AfsOrderID v.JxStoreID = jxStoreID @@ -268,14 +272,10 @@ func (c *OrderManager) updateAfsOrderSkuOtherInfo(db *dao.DaoDB, order *model.Af if skuBindInfo == nil { globals.SugarLogger.Infof("updateAfsOrderSkuOtherInfo [运营%s]%s订单sku找不到门店价格(或商品映射),orderID:%s, StoreID:%d, VendorSkuID:%s, sku:%v", opNumStr, model.VendorChineseNames[order.VendorID], order.VendorOrderID, jxStoreID, v.VendorSkuID, v) } else { - if skuBindInfo.JoinID == 0 { - newSkus = append(newSkus, v) - v.JxSkuID = skuBindInfo.SkuID - } + v.JxSkuID = skuBindInfo.SkuID } } } - order.Skus = newSkus } return nil }