This commit is contained in:
苏尹岚
2021-03-22 11:57:54 +08:00
parent cc9f5d77b9
commit c4fe124508
2 changed files with 56 additions and 30 deletions

View File

@@ -2946,6 +2946,29 @@ func UpdateVendorCategoryMap(ctx *jxcontext.Context, ID int, vendorCategoryMap *
}
}
}
var countInfos []*struct{ Ct int }
db := dao.GetDB()
if err = dao.GetRows(db, &countInfos, `
SELECT COUNT(*) ct
FROM sku t1
WHERE t1.category_id = ? AND t1.deleted_at = ?
UNION ALL
SELECT COUNT(*) ct
FROM sku_name t1
WHERE t1.category_id = ? AND t1.deleted_at = ?
UNION ALL
SELECT COUNT(*) ct
FROM sku_category t1
WHERE t1.parent_id = ? AND t1.deleted_at = ?
`, vendorCategoryMap2.CategoryID, utils.DefaultTimeValue, vendorCategoryMap2.CategoryID, utils.DefaultTimeValue, vendorCategoryMap2.CategoryID, utils.DefaultTimeValue, &countInfos); err == nil {
if countInfos[0].Ct != 0 {
return 0, errors.New("还有商品使用此类别,不能删除")
} else if countInfos[1].Ct != 0 {
return 0, errors.New("还有商品名使用此类别,不能删除")
} else if countInfos[2].Ct != 0 {
return 0, errors.New("还有商品类别使用此类别,不能删除")
}
}
}
vendorOrgCodes, err := dao.GetVendorOrgCode(db, vendorCategoryMap2.VendorID, vendorCategoryMap2.VendorOrgCode, model.VendorOrgTypePlatform)
dao.Begin(db)
@@ -3016,6 +3039,9 @@ func LoadStoreVendorCategories(ctx *jxcontext.Context, vendorOrgCode string, ven
return fmt.Errorf("未查询到该门店有门店分类,请重新选择! [%v]", storeID)
}
vendorOrgCodes, _ := dao.GetVendorOrgCode(db, vendorID, vendorOrgCode, model.VendorOrgTypePlatform)
if vendorCatMap, _ := dao.GetVendorCategoryMap(db, -1, 0, vendorID, vendorOrgCode, 0); len(vendorCatMap) > 0 {
return fmt.Errorf("该账号下已有分类,请在这里修改!")
}
dao.Begin(db)
defer func() {
if r := recover(); r != nil {

View File

@@ -3267,36 +3267,36 @@ func UpdateStoreCategoryMap(ctx *jxcontext.Context, ID int, storeCategoryMap *mo
}
}
}
// var storeSkus []*model.StoreSkuBind
// sql := `
// SELECT a.*
// FROM store_sku_bind a
// JOIN sku b ON a.sku_id = b.id
// JOIN sku_name c ON c.id = b.name_id
// WHERE a.deleted_at = ? AND b.deleted_at = ? AND c.deleted_at = ?
// AND c.category_id = ? AND a.store_id = ?
// UNION ALL
// SELECT a.*
// FROM store_sku_bind a
// JOIN sku b ON a.sku_id = b.id
// JOIN sku_name c ON c.id = b.name_id
// JOIN sku_category d ON d.id = c.category_id
// JOIN sku_category e ON e.id = d.parent_id
// WHERE a.deleted_at = ? AND b.deleted_at = ? AND c.deleted_at = ?
// AND e.id = ? AND a.store_id = ?
// `
// sqlParams := []interface{}{
// utils.DefaultTimeValue, utils.DefaultTimeValue, utils.DefaultTimeValue,
// storeCategoryMap2.CategoryID, storeCategoryMap2.StoreID,
// utils.DefaultTimeValue, utils.DefaultTimeValue, utils.DefaultTimeValue,
// storeCategoryMap2.CategoryID, storeCategoryMap2.StoreID,
// }
// if err = dao.GetRows(db, &storeSkus, sql, sqlParams); err != nil {
// return 0, err
// }
// if len(storeSkus) > 0 {
// return 0, fmt.Errorf("该分类下或该分类的子分类下有关注的商品,不可删除!分类名:[%v]", storeCategoryMap2.StoreCategoryName)
// }
var storeSkus []*model.StoreSkuBind
sql := `
SELECT a.*
FROM store_sku_bind a
JOIN sku b ON a.sku_id = b.id
JOIN sku_name c ON c.id = b.name_id
WHERE a.deleted_at = ? AND b.deleted_at = ? AND c.deleted_at = ?
AND c.category_id = ? AND a.store_id = ?
UNION ALL
SELECT a.*
FROM store_sku_bind a
JOIN sku b ON a.sku_id = b.id
JOIN sku_name c ON c.id = b.name_id
JOIN sku_category d ON d.id = c.category_id
JOIN sku_category e ON e.id = d.parent_id
WHERE a.deleted_at = ? AND b.deleted_at = ? AND c.deleted_at = ?
AND e.id = ? AND a.store_id = ?
`
sqlParams := []interface{}{
utils.DefaultTimeValue, utils.DefaultTimeValue, utils.DefaultTimeValue,
storeCategoryMap2.CategoryID, storeCategoryMap2.StoreID,
utils.DefaultTimeValue, utils.DefaultTimeValue, utils.DefaultTimeValue,
storeCategoryMap2.CategoryID, storeCategoryMap2.StoreID,
}
if err = dao.GetRows(db, &storeSkus, sql, sqlParams); err != nil {
return 0, err
}
if len(storeSkus) > 0 {
return 0, fmt.Errorf("该分类下或该分类的子分类下有关注的商品,不可删除!分类名:[%v]", storeCategoryMap2.StoreCategoryName)
}
catIDs = append(catIDs, storeCategoryMap.CategoryID)
SetStoreCategorySyncStatus2(db, []int{storeCategoryMap2.StoreID}, catIDs, model.SyncFlagModifiedMask)
} else {