文件
mashangyoujiu/alcohol_category_hierarchy.php

265 行
9.4 KiB
PHP

<?php
/**
* 酒类商品两级分类层级数据生成器
* 基于现有分类结构,生成标准的两级分类数据
*/
// 数据库配置
$host = '127.0.0.1';
$dbname = 'mss_nahaichuan_c';
$username = 'mss_nahaichuan_c';
$password = 'MyNmyAaRj9yWKPKH';
// 酒类两级分类层级数据结构
$alcohol_categories = [
// 一级分类:白酒
[
'id' => 1001,
'class_name' => '白酒',
'pid' => 0,
'type' => 1, // 1表示一级分类
'status' => 1,
'code' => 1001,
'is_recommend' => 1,
'subcategories' => [
['id' => 1101, 'class_name' => '浓香型白酒', 'pid' => 1001, 'type' => 2, 'code' => 1101],
['id' => 1102, 'class_name' => '酱香型白酒', 'pid' => 1001, 'type' => 2, 'code' => 1102],
['id' => 1103, 'class_name' => '清香型白酒', 'pid' => 1001, 'type' => 2, 'code' => 1103],
['id' => 1104, 'class_name' => '米香型白酒', 'pid' => 1001, 'type' => 2, 'code' => 1104],
['id' => 1105, 'class_name' => '兼香型白酒', 'pid' => 1001, 'type' => 2, 'code' => 1105]
]
],
// 一级分类:红酒
[
'id' => 1002,
'class_name' => '红酒',
'pid' => 0,
'type' => 1,
'status' => 1,
'code' => 1002,
'is_recommend' => 1,
'subcategories' => [
['id' => 1201, 'class_name' => '干红葡萄酒', 'pid' => 1002, 'type' => 2, 'code' => 1201],
['id' => 1202, 'class_name' => '半干红葡萄酒', 'pid' => 1002, 'type' => 2, 'code' => 1202],
['id' => 1203, 'class_name' => '半甜红葡萄酒', 'pid' => 1002, 'type' => 2, 'code' => 1203],
['id' => 1204, 'class_name' => '甜红葡萄酒', 'pid' => 1002, 'type' => 2, 'code' => 1204]
]
],
// 一级分类:啤酒
[
'id' => 1003,
'class_name' => '啤酒',
'pid' => 0,
'type' => 1,
'status' => 1,
'code' => 1003,
'is_recommend' => 1,
'subcategories' => [
['id' => 1301, 'class_name' => '淡色啤酒', 'pid' => 1003, 'type' => 2, 'code' => 1301],
['id' => 1302, 'class_name' => '浓色啤酒', 'pid' => 1003, 'type' => 2, 'code' => 1302],
['id' => 1303, 'class_name' => '黑啤酒', 'pid' => 1003, 'type' => 2, 'code' => 1303],
['id' => 1304, 'class_name' => '小麦啤酒', 'pid' => 1003, 'type' => 2, 'code' => 1304],
['id' => 1305, 'class_name' => '精酿啤酒', 'pid' => 1003, 'type' => 2, 'code' => 1305]
]
],
// 一级分类:洋酒
[
'id' => 1004,
'class_name' => '洋酒',
'pid' => 0,
'type' => 1,
'status' => 1,
'code' => 1004,
'is_recommend' => 1,
'subcategories' => [
['id' => 1401, 'class_name' => '威士忌', 'pid' => 1004, 'type' => 2, 'code' => 1401],
['id' => 1402, 'class_name' => '白兰地', 'pid' => 1004, 'type' => 2, 'code' => 1402],
['id' => 1403, 'class_name' => '伏特加', 'pid' => 1004, 'type' => 2, 'code' => 1403],
['id' => 1404, 'class_name' => '朗姆酒', 'pid' => 1004, 'type' => 2, 'code' => 1404]
]
],
// 一级分类:黄酒
[
'id' => 1005,
'class_name' => '黄酒',
'pid' => 0,
'type' => 1,
'status' => 1,
'code' => 1005,
'is_recommend' => 0,
'subcategories' => [
['id' => 1501, 'class_name' => '绍兴黄酒', 'pid' => 1005, 'type' => 2, 'code' => 1501],
['id' => 1502, 'class_name' => '客家黄酒', 'pid' => 1005, 'type' => 2, 'code' => 1502],
['id' => 1503, 'class_name' => '福建老酒', 'pid' => 1005, 'type' => 2, 'code' => 1503],
['id' => 1504, 'class_name' => '江西封缸酒', 'pid' => 1005, 'type' => 2, 'code' => 1504]
]
],
// 一级分类:果酒
[
'id' => 1006,
'class_name' => '果酒',
'pid' => 0,
'type' => 1,
'status' => 1,
'code' => 1006,
'is_recommend' => 0,
'subcategories' => [
['id' => 1601, 'class_name' => '苹果酒', 'pid' => 1006, 'type' => 2, 'code' => 1601],
['id' => 1602, 'class_name' => '梅子酒', 'pid' => 1006, 'type' => 2, 'code' => 1602],
['id' => 1603, 'class_name' => '桃花酒', 'pid' => 1006, 'type' => 2, 'code' => 1603],
['id' => 1604, 'class_name' => '荔枝酒', 'pid' => 1006, 'type' => 2, 'code' => 1604],
['id' => 1605, 'class_name' => '葡萄果酒', 'pid' => 1006, 'type' => 2, 'code' => 1605]
]
]
];
// 生成数据统计
function generateCategoryStats($categories) {
$stats = [
'total_level1' => count($categories),
'total_level2' => 0,
'total_categories' => 0,
'category_details' => []
];
foreach ($categories as $category) {
$subcategory_count = count($category['subcategories']);
$stats['total_level2'] += $subcategory_count;
$stats['category_details'][] = [
'name' => $category['class_name'],
'subcategory_count' => $subcategory_count
];
}
$stats['total_categories'] = $stats['total_level1'] + $stats['total_level2'];
return $stats;
}
// 生成SQL插入语句
function generateInsertSQL($categories) {
$sql_statements = [];
foreach ($categories as $category) {
// 一级分类SQL
$level1_sql = sprintf(
"INSERT INTO ls_retail_goods_class (id, class_name, pid, type, status, code, is_recommend, addtime, merchantid, store_id, industry_id, add_type, banner_id) VALUES (%d, '%s', %d, %d, %d, %d, %d, %d, 1, 0, 0, 1, 0);",
$category['id'],
$category['class_name'],
$category['pid'],
$category['type'],
$category['status'],
$category['code'],
$category['is_recommend'],
time()
);
$sql_statements[] = $level1_sql;
// 二级分类SQL
foreach ($category['subcategories'] as $subcategory) {
$level2_sql = sprintf(
"INSERT INTO ls_retail_goods_class (id, class_name, pid, type, status, code, is_recommend, addtime, merchantid, store_id, industry_id, add_type, banner_id) VALUES (%d, '%s', %d, %d, 1, %d, 0, %d, 1, 0, 0, 1, 0);",
$subcategory['id'],
$subcategory['class_name'],
$subcategory['pid'],
$subcategory['type'],
$subcategory['code'],
time()
);
$sql_statements[] = $level2_sql;
}
}
return $sql_statements;
}
// 生成JSON格式数据
function generateJSONData($categories) {
$json_data = [];
foreach ($categories as $category) {
$category_data = [
'id' => $category['id'],
'class_name' => $category['class_name'],
'pid' => $category['pid'],
'type' => $category['type'],
'status' => $category['status'],
'code' => $category['code'],
'is_recommend' => $category['is_recommend'],
'children' => []
];
foreach ($category['subcategories'] as $subcategory) {
$category_data['children'][] = [
'id' => $subcategory['id'],
'class_name' => $subcategory['class_name'],
'pid' => $subcategory['pid'],
'type' => $subcategory['type'],
'status' => 1,
'code' => $subcategory['code'],
'is_recommend' => 0
];
}
$json_data[] = $category_data;
}
return $json_data;
}
// 输出结果
echo "=== 酒类商品两级分类层级数据 ===\n\n";
// 统计信息
$stats = generateCategoryStats($alcohol_categories);
echo "📊 分类统计:\n";
echo "- 一级分类数量: {$stats['total_level1']}\n";
echo "- 二级分类数量: {$stats['total_level2']}\n";
echo "- 分类总数量: {$stats['total_categories']}\n\n";
echo "📋 分类详情:\n";
foreach ($stats['category_details'] as $detail) {
echo "- {$detail['name']}: {$detail['subcategory_count']} 个子分类\n";
}
echo "\n=== 数据结构展示 ===\n\n";
// 展示层级结构
foreach ($alcohol_categories as $category) {
echo "🍷 {$category['class_name']} (ID: {$category['id']}, Code: {$category['code']})\n";
foreach ($category['subcategories'] as $subcategory) {
echo " └── {$subcategory['class_name']} (ID: {$subcategory['id']}, Code: {$subcategory['code']})\n";
}
echo "\n";
}
echo "=== SQL插入语句 ===\n\n";
$sql_statements = generateInsertSQL($alcohol_categories);
foreach ($sql_statements as $sql) {
echo $sql . "\n";
}
echo "\n=== JSON格式数据 ===\n\n";
$json_data = generateJSONData($alcohol_categories);
echo json_encode($json_data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
echo "\n\n=== 数据表字段说明 ===\n";
echo "- id: 分类唯一标识\n";
echo "- class_name: 分类名称\n";
echo "- pid: 父级分类ID (0表示一级分类)\n";
echo "- type: 分类层级 (1=一级分类, 2=二级分类)\n";
echo "- status: 状态 (1=启用, 0=禁用)\n";
echo "- code: 分类编码\n";
echo "- is_recommend: 是否推荐 (1=是, 0=否)\n";
echo "- addtime: 添加时间戳\n";
echo "- merchantid: 商户ID\n";
echo "- store_id: 店铺ID\n";
echo "- industry_id: 行业ID\n";
echo "- add_type: 添加类型\n";
echo "- banner_id: 横幅ID\n";
?>