diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 307832df8..11f6656f5 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -1090,21 +1090,23 @@ func refreshStoreSkuPrice(ctx *jxcontext.Context, db *dao.DaoDB, skuID int) (err } } }() - for vendorID := range partner.PurchasePlatformHandlers { - storeSkuList, err := dao.GetStoreSkus2(db, vendorID, 0, []int{skuID}, false) - if err == nil { - for _, v := range storeSkuList { - v.Price = int64(jxutils.CaculateSkuPrice(int(v.UnitPrice), v.SpecQuality, v.SpecUnit, v.Unit)) - storeSku := &model.StoreSkuBind{} - storeSku.ID = v.BindID - if _, err = dao.UpdateEntityLogically(db, storeSku, map[string]interface{}{ - "Price": v.Price, - dao.GetSyncStatusStructField(model.VendorNames[vendorID]): v.SkuSyncStatus | model.SyncFlagPriceMask, - }, ctx.GetUserName(), nil); err != nil { - return err - } - } + list, err := dao.GetStoreSkusAndSkuName(db, nil, []int{skuID}, nil) + for _, v := range list { + storeID := v.StoreID + storeDetail, err := dao.GetStoreDetail(db, storeID, model.VendorIDJX) + if err != nil { + return err } + storeSku := &model.StoreSkuBind{} + storeSku.ID = v.BindID + storeSku.JdSyncStatus = v.JdSyncStatus | model.SyncFlagPriceMask + storeSku.MtwmSyncStatus = v.MtwmSyncStatus | model.SyncFlagPriceMask + storeSku.EbaiSyncStatus = v.EbaiSyncStatus | model.SyncFlagPriceMask + storeSku.Price = jxutils.CaculateSkuPrice(int(v.UnitPrice), v.SpecQuality, v.SpecUnit, v.Unit) + storeSku.JxPrice = jxutils.CaculatePriceByPricePack(storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage), int(storeSku.Price)) + storeSku.LastOperator = ctx.GetUserName() + storeSku.UpdatedAt = time.Now() + dao.UpdateEntity(db, storeSku, "Price", "JdSyncStatus", "MtwmSyncStatus", "EbaiSyncStatus", "JxPrice") } dao.Commit(db) return err diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 8748e04fc..b29731c77 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3100,8 +3100,8 @@ func AutoFocusStoreSkusWithoutFocus(ctx *jxcontext.Context, skuIDs []int, isSync }) } else { skuBindInfo := &StoreSkuBindInfo{ - UnitPrice: vv.UnitPrice, - NameID: vv.ID, + UnitPrice: int(vv.UnitPrice), + NameID: vv.NameID, StoreID: v.ID, Skus: []*StoreSkuBindSkuInfo{}, } diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index 6e2fb863e..d010b5b2d 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -99,6 +99,9 @@ type StoreSkuSyncInfo struct { SkuName string StatusSaleBegin int16 `json:"statusSaleBegin"` //商品可售时间范围 StatusSaleEnd int16 `json:"statusSaleEnd"` + JdSyncStatus int8 `orm:"default(2)"` + MtwmSyncStatus int8 `orm:"default(2)"` + EbaiSyncStatus int8 `orm:"default(2)"` } type MissingStoreSkuInfo struct { @@ -1517,9 +1520,10 @@ func GetPriceReferPrice(db *DaoDB, cityCode int, skuID int, snapDate time.Time) return priceRefer, err } -func GetStoreSkusAndSkuName(db *DaoDB, storeIDs, skuIDs, nameIDs []int) (storeSkuNameExt []*StoreSkuNameExt, err error) { +func GetStoreSkusAndSkuName(db *DaoDB, storeIDs, skuIDs, nameIDs []int) (storeSkuSyncInfo []*StoreSkuSyncInfo, err error) { sql := ` - SELECT a.*,c.id + SELECT a.id bind_id, a.store_id, a.jd_sync_status, a.mtwm_sync_status, a.ebai_sync_status, a.unit_price, + c.id name_id, c.unit, b.* FROM store_sku_bind a JOIN sku b ON b.id = a.sku_id AND b.deleted_at = ? JOIN sku_name c ON c.id = b.name_id AND c.deleted_at = ? @@ -1542,6 +1546,6 @@ func GetStoreSkusAndSkuName(db *DaoDB, storeIDs, skuIDs, nameIDs []int) (storeSk sql += " AND b.name_id IN (" + GenQuestionMarks(len(nameIDs)) + ")" sqlParams = append(sqlParams, nameIDs) } - err = GetRows(db, &storeSkuNameExt, sql, sqlParams...) - return storeSkuNameExt, err + err = GetRows(db, &storeSkuSyncInfo, sql, sqlParams...) + return storeSkuSyncInfo, err }