- 修复ordersku中取门店价错误使用unitPrice的问题

- 同步美团外卖时,将MtwmID设置为京西SKUID
This commit is contained in:
gazebo
2019-04-02 22:59:02 +08:00
parent 77aa71577f
commit 53d0e98a66
2 changed files with 12 additions and 8 deletions

View File

@@ -20,7 +20,7 @@ type tStoreSkuBindAndVendorSkuID struct {
VendorSkuID int64 `orm:"column(vendor_sku_id)"`
SkuID int `orm:"column(sku_id)"`
Weight int
UnitPrice int
Price int
}
func init() {
@@ -245,7 +245,7 @@ func (c *OrderManager) updateOrderSkuOtherInfo(order *model.GoodsOrder, db orm.O
}
fieldPrefix := dao.ConvertDBFieldPrefix(model.VendorNames[order.VendorID])
sql := `
SELECT %s.%s_id vendor_sku_id, t1.id sku_id, t2.unit_price, t1.weight
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 = ?
WHERE t1.deleted_at = ? AND %s.%s_id IN (-1, ` + dao.GenQuestionMarks(len(vendorSkuIDs)) + ")"
@@ -269,10 +269,10 @@ func (c *OrderManager) updateOrderSkuOtherInfo(order *model.GoodsOrder, db orm.O
globals.SugarLogger.Infof("updateOrderSkuOtherInfo [运营%s]%s订单sku找不到门店价格或商品映射orderID:%s, StoreID:%d, VendorSkuID:%s, sku:%v", opNumStr, model.VendorChineseNames[order.VendorID], order.VendorOrderID, jxStoreID, v.VendorSkuID, v)
} else {
v.JxSkuID = skuBindInfo.SkuID
v.ShopPrice = int64(skuBindInfo.UnitPrice)
v.ShopPrice = int64(skuBindInfo.Price)
v.Weight = skuBindInfo.Weight // 以本地信息中的WEIGHT为准
order.ShopPrice += v.ShopPrice * int64(v.Count)
if skuBindInfo.UnitPrice == 0 {
if skuBindInfo.Price == 0 {
globals.SugarLogger.Infof("updateOrderSkuOtherInfo [运营%s]%s订单sku门店价格为零一般原因为没有门店价格信息orderID:%s, StoreID:%d, SkuID:%d, sku:%v", opNumStr, model.VendorChineseNames[order.VendorID], order.VendorOrderID, jxStoreID, v.JxSkuID, v)
}
}

View File

@@ -244,6 +244,9 @@ func (p *PurchaseHandler) SyncStoreSkus(ctx *jxcontext.Context, parentTask tasks
// for k, v := range batchItemList {
v := batchItemList[0]
skuItem := v.(*dao.StoreSkuSyncInfo)
updateFields := []string{model.FieldMtwmSyncStatus}
storeSkuBind := &model.StoreSkuBind{}
storeSkuBind.ID = skuItem.BindID
if skuItem.SkuSyncStatus&model.SyncFlagDeletedMask != 0 {
if skuItem.SkuSyncStatus&model.SyncFlagNewMask == 0 {
err = api.MtwmAPI.RetailDelete(vendorStoreID, utils.Int2Str(skuItem.ID))
@@ -281,13 +284,14 @@ func (p *PurchaseHandler) SyncStoreSkus(ctx *jxcontext.Context, parentTask tasks
}
foodData["skus"] = skus
if globals.EnableStoreWrite && globals.EnableMtwmStoreWrite {
err = api.MtwmAPI.RetailBatchInitData(vendorStoreID, foodDataList)
if err = api.MtwmAPI.RetailBatchInitData(vendorStoreID, foodDataList); err == nil {
storeSkuBind.MtwmID = int64(skuItem.ID)
updateFields = append(updateFields, model.FieldMtwmID)
}
}
}
if err == nil {
storeSkuBind := &model.StoreSkuBind{}
storeSkuBind.ID = skuItem.BindID
_, err = dao.UpdateEntity(nil, storeSkuBind, model.FieldMtwmSyncStatus)
_, err = dao.UpdateEntity(db, storeSkuBind, updateFields...)
}
return nil, err
}, skus)