刷新物料店库存,商品上下架
This commit is contained in:
@@ -888,7 +888,7 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf
|
||||
}
|
||||
}
|
||||
}
|
||||
skuList, err2 := dao.GetSkus(db, nil, []int{nameID}, nil, nil)
|
||||
skuList, err2 := dao.GetSkus(db, nil, []int{nameID}, nil, nil, nil)
|
||||
if err = err2; err == nil {
|
||||
for _, v := range skuList {
|
||||
sku := &v.Sku
|
||||
@@ -959,7 +959,7 @@ func DeleteSkuName(ctx *jxcontext.Context, nameID int, userName string) (num int
|
||||
return 0, err
|
||||
}
|
||||
|
||||
skuList, err2 := dao.GetSkus(db, nil, []int{nameID}, nil, nil)
|
||||
skuList, err2 := dao.GetSkus(db, nil, []int{nameID}, nil, nil, nil)
|
||||
if err = err2; err == nil {
|
||||
for _, v := range skuList {
|
||||
sku := &v.Sku
|
||||
@@ -1407,7 +1407,7 @@ func UpdateSkuNamesExPrefix(ctx *jxcontext.Context, nameIDs []int, exPrefix, fro
|
||||
payload["exPrefixEnd"] = nil
|
||||
_, err = UpdateSkuName(ctx, nameID, payload, false)
|
||||
} else {
|
||||
skuList, err := dao.GetSkus(db, nil, []int{nameID}, nil, nil)
|
||||
skuList, err := dao.GetSkus(db, nil, []int{nameID}, nil, nil, nil)
|
||||
if err == nil && len(skuList) > 0 {
|
||||
if skuList[0].ExPrefixBegin != nil {
|
||||
_, err = UpdateSkuName(ctx, nameID, payload, false)
|
||||
@@ -1440,7 +1440,7 @@ func UpdateSkuNamesExPrefix(ctx *jxcontext.Context, nameIDs []int, exPrefix, fro
|
||||
case 1:
|
||||
if (now.Sub(toTimeP) <= 0 && now.Sub(fromTimeP) >= 0) || (now.Sub(fromTimeP) > 0 && now.Sub(toTimeP) > 0) {
|
||||
var skuIDs []int
|
||||
skuList, err2 := dao.GetSkus(db, nil, nameIDs, nil, nil)
|
||||
skuList, err2 := dao.GetSkus(db, nil, nameIDs, nil, nil, nil)
|
||||
if err = err2; err == nil {
|
||||
if len(skuList) > 0 {
|
||||
for _, v := range skuList {
|
||||
|
||||
@@ -193,6 +193,7 @@ type tUpdateSkuSpecTag struct {
|
||||
|
||||
type MatterStock struct {
|
||||
SkuID int `json:"skuID"`
|
||||
SkuNameID int `json:"skuNameID"`
|
||||
Name string `json:"name"`
|
||||
Stock int `json:"stock"`
|
||||
}
|
||||
@@ -2406,7 +2407,7 @@ func GetTopSkusByCityCode(ctx *jxcontext.Context, cityCode, storeID int) (skuNam
|
||||
var skuList []*model.SkuAndName
|
||||
storeSkuSyncInfo, _ := dao.GetStoreSkusAndSkuName(db, []int{storeID}, nil, []int{v.ID})
|
||||
for _, storeSkuSync := range storeSkuSyncInfo {
|
||||
sku, _ := dao.GetSkus(db, []int{storeSkuSync.ID}, nil, nil, nil)
|
||||
sku, _ := dao.GetSkus(db, []int{storeSkuSync.ID}, nil, nil, nil, nil)
|
||||
sku[0].Price = int(storeSkuSync.Price)
|
||||
skuList = append(skuList, sku...)
|
||||
}
|
||||
@@ -3019,7 +3020,7 @@ func FocusStoreSkusByExcelBin(ctx *jxcontext.Context, reader io.Reader, isAsync,
|
||||
for k, _ := range skuMap {
|
||||
skuIDs = append(skuIDs, k)
|
||||
}
|
||||
skuList, err := dao.GetSkus(db, skuIDs, nil, nil, nil)
|
||||
skuList, err := dao.GetSkus(db, skuIDs, nil, nil, nil, nil)
|
||||
storeList, err := dao.GetStoreList(db, nil, nil, nil, nil, "")
|
||||
if err != nil && len(skuList) == 0 {
|
||||
return result, err
|
||||
@@ -3132,7 +3133,7 @@ func FocusStoreSkusBySku(ctx *jxcontext.Context, skuBindInfos []*StoreSkuBindInf
|
||||
if err != nil {
|
||||
return retVal, err
|
||||
}
|
||||
skuList, err := dao.GetSkus(db, []int{skuID}, nil, nil, nil)
|
||||
skuList, err := dao.GetSkus(db, []int{skuID}, nil, nil, nil, nil)
|
||||
if err != nil {
|
||||
return retVal, err
|
||||
}
|
||||
@@ -3318,7 +3319,7 @@ func AutoFocusStoreSkusWithoutFocus(ctx *jxcontext.Context, skuIDs []int, isSync
|
||||
}
|
||||
var skuBindSkuList []*StoreSkuBindSkuInfo
|
||||
skuMap := make(map[int]int)
|
||||
skuList, _ := dao.GetSkus(db, nil, []int{v.NameID}, nil, nil)
|
||||
skuList, _ := dao.GetSkus(db, nil, []int{v.NameID}, nil, nil, nil)
|
||||
if len(v.Skus) != len(skuList) {
|
||||
for _, skus := range v.Skus {
|
||||
skuMap[skus.SkuID] = 1
|
||||
@@ -3624,7 +3625,7 @@ func RefreshJxPriceByVendor(ctx *jxcontext.Context, jdStoreSkus []*JdStoreSkus,
|
||||
}
|
||||
err = dao.GetRows(db, &cats, sql, sqlParams...)
|
||||
if len(cats) > 0 {
|
||||
skus, err = dao.GetSkus(db, []int{int(cats[0].ThingID)}, nil, nil, nil)
|
||||
skus, err = dao.GetSkus(db, []int{int(cats[0].ThingID)}, nil, nil, nil, nil)
|
||||
if err != nil || len(skus) == 0 {
|
||||
return result, fmt.Errorf("没有找到该京西skuID!,京西skuID :[%v]", cats[0].ThingID)
|
||||
}
|
||||
@@ -3684,7 +3685,7 @@ func RefreshJxPriceByVendor(ctx *jxcontext.Context, jdStoreSkus []*JdStoreSkus,
|
||||
var (
|
||||
pricePercentagePack []*model.PricePercentageItem
|
||||
)
|
||||
skus, _ := dao.GetSkus(db, []int{v.JdSkuID}, nil, nil, nil)
|
||||
skus, _ := dao.GetSkus(db, []int{v.JdSkuID}, nil, nil, nil, nil)
|
||||
if len(skus) == 0 {
|
||||
continue
|
||||
}
|
||||
@@ -3837,7 +3838,7 @@ func getSkuNamePrice(db *dao.DaoDB, skuID int, orgPrice int64) (price int64, nam
|
||||
var (
|
||||
specQuality float64
|
||||
)
|
||||
skuList, _ := dao.GetSkus(db, []int{skuID}, nil, nil, nil)
|
||||
skuList, _ := dao.GetSkus(db, []int{skuID}, nil, nil, nil, nil)
|
||||
for _, v := range skuList {
|
||||
if v.Unit == model.SpecialUnit {
|
||||
if v.SpecUnit == model.SpecUnitNames[1] || v.SpecUnit == model.SpecUnitNames[2] {
|
||||
@@ -3934,7 +3935,74 @@ func ReturnStoreSkuBind(ctx *jxcontext.Context, snapshotAt string, storeIDs, sku
|
||||
return err
|
||||
}
|
||||
|
||||
func RefreshMatterStock(ctx *jxcontext.Context, skuID int) (matterStock []*MatterStock, err error) {
|
||||
// api.JdEclpAPI.SearchShopStock(searchShopStockParam)
|
||||
return matterStock, err
|
||||
func RefreshMatterStock(ctx *jxcontext.Context, skuID int) (err error) {
|
||||
var (
|
||||
db = dao.GetDB()
|
||||
skuBindInfos []*StoreSkuBindInfo
|
||||
)
|
||||
if skuID != 0 {
|
||||
skus, err := dao.GetSkus(db, []int{skuID}, nil, nil, nil, nil)
|
||||
if err != nil || len(skus) == 0 {
|
||||
return err
|
||||
}
|
||||
result, err := api.JdEclpAPI.SearchShopStock(skus[0].EclpID)
|
||||
if err != nil || result == nil {
|
||||
return err
|
||||
}
|
||||
var isSale = 0
|
||||
if utils.Str2Int64(result.Data[0].StockNum) > 0 {
|
||||
isSale = 1
|
||||
} else {
|
||||
isSale = -1
|
||||
}
|
||||
storeSkuList, _ := dao.GetStoresSkusInfo(db, nil, []int{skuID})
|
||||
for _, vv := range storeSkuList {
|
||||
var storeSkuBindSkus []*StoreSkuBindSkuInfo
|
||||
storeSkuBindSku := &StoreSkuBindSkuInfo{
|
||||
SkuID: vv.SkuID,
|
||||
IsSale: isSale,
|
||||
}
|
||||
storeSkuBindSkus = append(storeSkuBindSkus, storeSkuBindSku)
|
||||
storeSkuBind := &StoreSkuBindInfo{
|
||||
StoreID: vv.StoreID,
|
||||
// NameID: v.SkuNameID,
|
||||
Skus: storeSkuBindSkus,
|
||||
}
|
||||
skuBindInfos = append(skuBindInfos, storeSkuBind)
|
||||
}
|
||||
} else {
|
||||
result, err := api.JdEclpAPI.SearchShopStock("")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
for _, v := range result.Data {
|
||||
skus, err := dao.GetSkus(db, nil, nil, nil, nil, []string{v.GoodsNo})
|
||||
if err != nil || len(skus) == 0 {
|
||||
continue
|
||||
}
|
||||
var isSale = 0
|
||||
if utils.Str2Int64(result.Data[0].StockNum) > 0 {
|
||||
isSale = 1
|
||||
} else {
|
||||
isSale = -1
|
||||
}
|
||||
storeSkuList, _ := dao.GetStoresSkusInfo(db, nil, []int{skus[0].ID})
|
||||
for _, vv := range storeSkuList {
|
||||
var storeSkuBindSkus []*StoreSkuBindSkuInfo
|
||||
storeSkuBindSku := &StoreSkuBindSkuInfo{
|
||||
SkuID: vv.SkuID,
|
||||
IsSale: isSale,
|
||||
}
|
||||
storeSkuBindSkus = append(storeSkuBindSkus, storeSkuBindSku)
|
||||
storeSkuBind := &StoreSkuBindInfo{
|
||||
StoreID: vv.StoreID,
|
||||
// NameID: v.SkuNameID,
|
||||
Skus: storeSkuBindSkus,
|
||||
}
|
||||
skuBindInfos = append(skuBindInfos, storeSkuBind)
|
||||
}
|
||||
}
|
||||
}
|
||||
UpdateStoresSkusByBind(ctx, nil, skuBindInfos, true, true)
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -433,7 +433,7 @@ func CompareJxAndVendor(vendorID int, storeIDStr, vendorStoreID, storeName strin
|
||||
func FilterJxDepotUnSaleSkuID() {
|
||||
db := dao.GetDB()
|
||||
filterJxDepotUnSaleSkuIds = filterJxDepotUnSaleSkuIds[0:0]
|
||||
skuList, _ := dao.GetSkus(db, filterVendorDepotUnSaleSkuIds, []int{}, []int{}, []int{})
|
||||
skuList, _ := dao.GetSkus(db, filterVendorDepotUnSaleSkuIds, []int{}, []int{}, []int{}, nil)
|
||||
filterJxSkuInfoMap2 := GetFilterJxSkuInfoMap2(skuList)
|
||||
for skuid, jxSkuInfo := range filterJxSkuInfoMap2 {
|
||||
//过滤掉平台库下架,且京西库下架的商品,为下面比较门店商品用
|
||||
@@ -456,7 +456,7 @@ func CompareJxAndMultiVenderDepot(ctx *jxcontext.Context, vendorMap map[int]bool
|
||||
FilterJxDepotUnSaleSkuID()
|
||||
filterVendorSkuInfoMap := GetFilterVendorSkuInfoMap(skuNameInfoList)
|
||||
skuNameInfoList = skuNameInfoList[0:0]
|
||||
skuList, _ := dao.GetSkus(db, []int{}, []int{}, []int{}, []int{})
|
||||
skuList, _ := dao.GetSkus(db, []int{}, []int{}, []int{}, []int{}, nil)
|
||||
filterJxSkuInfoMap2 := GetFilterJxSkuInfoMap2(skuList)
|
||||
for skuid, jxSkuInfo := range filterJxSkuInfoMap2 {
|
||||
var jxSkuDetailName string
|
||||
|
||||
@@ -133,7 +133,7 @@ func GetStoreSkuSalesInfo(ctx *jxcontext.Context, storeID int) (outStoreSkuSales
|
||||
//输出商品销量统计结果
|
||||
skuAndNameMapData := make(map[int]*model.SkuAndName)
|
||||
if len(storeSkuMapData) < len(citySkuIDs) {
|
||||
skuAndNameList, err := dao.GetSkus(db, citySkuIDs, nil, nil, nil)
|
||||
skuAndNameList, err := dao.GetSkus(db, citySkuIDs, nil, nil, nil, nil)
|
||||
if err == nil {
|
||||
for _, value := range skuAndNameList {
|
||||
skuAndNameMapData[value.ID] = value
|
||||
@@ -149,7 +149,7 @@ func GetStoreSkuSalesInfo(ctx *jxcontext.Context, storeID int) (outStoreSkuSales
|
||||
if storeSkuInfo != nil {
|
||||
skuName := storeSkuInfo.SkuName
|
||||
skuInfo := storeSkuInfo.Skus[0]
|
||||
storeSkuSales.SkuName = jxutils.ComposeSkuName(skuName.Prefix, skuName.Name, skuInfo.Comment, skuName.Unit, skuInfo.SkuSpecQuality, skuInfo.SkuSpecUnit, 0,skuName.ExPrefix,skuName.ExPrefixBegin,skuName.ExPrefixEnd)
|
||||
storeSkuSales.SkuName = jxutils.ComposeSkuName(skuName.Prefix, skuName.Name, skuInfo.Comment, skuName.Unit, skuInfo.SkuSpecQuality, skuInfo.SkuSpecUnit, 0, skuName.ExPrefix, skuName.ExPrefixBegin, skuName.ExPrefixEnd)
|
||||
storeSkuSales.SkuImage = storeSkuInfo.Img
|
||||
storeSkuSales.SkuPrice = jxutils.IntPrice2StandardCurrencyString(int64(storeSkuInfo.Skus[0].BindPrice))
|
||||
} else if skuAndNameInfo != nil {
|
||||
@@ -159,7 +159,7 @@ func GetStoreSkuSalesInfo(ctx *jxcontext.Context, storeID int) (outStoreSkuSales
|
||||
storeSkuSales.SkuImage = skuNameList[0].Img
|
||||
prefix = skuNameList[0].Prefix
|
||||
}
|
||||
storeSkuSales.SkuName = jxutils.ComposeSkuName(prefix, skuAndNameInfo.Name, skuAndNameInfo.Comment, skuAndNameInfo.Unit, skuAndNameInfo.SpecQuality, skuAndNameInfo.SpecUnit, 0,skuAndNameInfo.ExPrefix,skuAndNameInfo.ExPrefixBegin,skuAndNameInfo.ExPrefixEnd)
|
||||
storeSkuSales.SkuName = jxutils.ComposeSkuName(prefix, skuAndNameInfo.Name, skuAndNameInfo.Comment, skuAndNameInfo.Unit, skuAndNameInfo.SpecQuality, skuAndNameInfo.SpecUnit, 0, skuAndNameInfo.ExPrefix, skuAndNameInfo.ExPrefixBegin, skuAndNameInfo.ExPrefixEnd)
|
||||
storeSkuSales.SkuPrice = "N/A"
|
||||
} else {
|
||||
storeSkuSales.SkuName = "N/A"
|
||||
|
||||
@@ -312,7 +312,7 @@ func LoadExcelBinByYongHui(ctx *jxcontext.Context, reader io.Reader, isAsync, is
|
||||
//如果微盟商品里找得到excel中的商品
|
||||
if skuMap[spuCode] != nil {
|
||||
//获取京西库商品
|
||||
skuList, _ := dao.GetSkus(db, nil, []int{int(utils.Str2Int64(goodsDetail.SkuMap.SingleSku.OuterSkuCode))}, nil, nil)
|
||||
skuList, _ := dao.GetSkus(db, nil, []int{int(utils.Str2Int64(goodsDetail.SkuMap.SingleSku.OuterSkuCode))}, nil, nil, nil)
|
||||
if len(skuList) == 0 {
|
||||
outPutData := DataFailed{
|
||||
GoodsID: spuCode,
|
||||
|
||||
@@ -307,7 +307,7 @@ func GetPriceReferSnapshot(db *DaoDB, cityCodes, skuIDs []int, skuNameID int, sn
|
||||
totalCount = GetLastTotalRowCount(db)
|
||||
}
|
||||
for _, v := range priceReferSnapshot {
|
||||
skuList, err2 := GetSkus(db, []int{v.SkuID}, nil, nil, nil)
|
||||
skuList, err2 := GetSkus(db, []int{v.SkuID}, nil, nil, nil, nil)
|
||||
err = err2
|
||||
if len(skuList) > 0 {
|
||||
skuAndName := skuList[0]
|
||||
|
||||
@@ -76,7 +76,7 @@ func GetCategories(db *DaoDB, parentID, level int, catIDs []int, isExd bool) (ca
|
||||
return cats, GetRows(db, &cats, sql, params)
|
||||
}
|
||||
|
||||
func GetSkus(db *DaoDB, skuIDs, nameIDs, statuss, catIDs []int) (skuList []*model.SkuAndName, err error) {
|
||||
func GetSkus(db *DaoDB, skuIDs, nameIDs, statuss, catIDs []int, eclpIDs []string) (skuList []*model.SkuAndName, err error) {
|
||||
sql := `
|
||||
SELECT t1.*, t2.name, t2.unit, t2.prefix, t2.is_spu, t2.ex_prefix, t2.ex_prefix_begin, t2.ex_prefix_end
|
||||
FROM sku t1
|
||||
@@ -110,6 +110,10 @@ func GetSkus(db *DaoDB, skuIDs, nameIDs, statuss, catIDs []int) (skuList []*mode
|
||||
sqlWhere += " OR t3p.id IN (" + GenQuestionMarks(len(catIDs)) + ") )"
|
||||
sqlParams = append(sqlParams, catIDs, catIDs)
|
||||
}
|
||||
if len(eclpIDs) > 0 {
|
||||
sqlWhere += " AND t1.eclp_id IN (" + GenQuestionMarks(len(eclpIDs)) + ") AND t2.status IN (" + GenQuestionMarks(len(statuss)) + ")"
|
||||
sqlParams = append(sqlParams, eclpIDs)
|
||||
}
|
||||
sql += sqlWhere
|
||||
if err = GetRows(db, &skuList, sql, sqlParams...); err == nil {
|
||||
return skuList, nil
|
||||
@@ -137,7 +141,7 @@ func GetSkuNames(db *DaoDB, nameIDs []int) (skuNameList []*model.SkuName, err er
|
||||
}
|
||||
|
||||
func GetSkuIDByNames(db *DaoDB, nameIDs []int) (skuIDs []int, err error) {
|
||||
skuList, err := GetSkus(db, nil, nameIDs, nil, nil)
|
||||
skuList, err := GetSkus(db, nil, nameIDs, nil, nil, nil)
|
||||
if err == nil {
|
||||
for _, sku := range skuList {
|
||||
skuIDs = append(skuIDs, sku.ID)
|
||||
@@ -147,7 +151,7 @@ func GetSkuIDByNames(db *DaoDB, nameIDs []int) (skuIDs []int, err error) {
|
||||
}
|
||||
|
||||
func GetSkuByCats(db *DaoDB, catIDs []int) (skuList []*model.Sku, err error) {
|
||||
skuExList, err := GetSkus(db, nil, nil, nil, catIDs)
|
||||
skuExList, err := GetSkus(db, nil, nil, nil, catIDs, nil)
|
||||
if err == nil {
|
||||
for _, v := range skuExList {
|
||||
skuList = append(skuList, &v.Sku)
|
||||
|
||||
@@ -451,7 +451,7 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64
|
||||
}
|
||||
}
|
||||
|
||||
skuList, err := dao.GetSkus(db, skuIDs, nil, nil, nil)
|
||||
skuList, err := dao.GetSkus(db, skuIDs, nil, nil, nil, nil)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
@@ -613,7 +613,7 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) {
|
||||
return err
|
||||
}
|
||||
for _, v := range goods[0].Skus {
|
||||
skus, err := dao.GetSkus(db, []int{v.SkuID}, nil, nil, nil)
|
||||
skus, err := dao.GetSkus(db, []int{v.SkuID}, nil, nil, nil, nil)
|
||||
if err != nil || len(skus) == 0 {
|
||||
continue
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ func updateFoodRecipeItemAndStep(ctx *jxcontext.Context, db *dao.DaoDB, recipeID
|
||||
if len(v.SkuIDs) == 0 {
|
||||
return fmt.Errorf("SkuIDs必须要有值")
|
||||
}
|
||||
skuIDs, err2 := dao.GetSkus(db, v.SkuIDs, nil, nil, nil)
|
||||
skuIDs, err2 := dao.GetSkus(db, v.SkuIDs, nil, nil, nil, nil)
|
||||
if err = err2; err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -756,7 +756,7 @@ func (c *StoreSkuController) ReturnStoreSkuBind() {
|
||||
// @router /RefreshMatterStock [post]
|
||||
func (c *StoreSkuController) RefreshMatterStock() {
|
||||
c.callRefreshMatterStock(func(params *tStoreSkuRefreshMatterStockParams) (retVal interface{}, errCode string, err error) {
|
||||
retVal, err = cms.RefreshMatterStock(params.Ctx, 0)
|
||||
err = cms.RefreshMatterStock(params.Ctx, 0)
|
||||
return retVal, "", err
|
||||
})
|
||||
}
|
||||
|
||||
@@ -1953,6 +1953,15 @@ func init() {
|
||||
Filters: nil,
|
||||
Params: nil})
|
||||
|
||||
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"],
|
||||
beego.ControllerComments{
|
||||
Method: "RefreshMatterStock",
|
||||
Router: `/RefreshMatterStock`,
|
||||
AllowHTTPMethods: []string{"post"},
|
||||
MethodParams: param.Make(),
|
||||
Filters: nil,
|
||||
Params: nil})
|
||||
|
||||
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"],
|
||||
beego.ControllerComments{
|
||||
Method: "RefreshStoresSkuByVendor",
|
||||
|
||||
Reference in New Issue
Block a user