perf: 数据同步
This commit is contained in:
@@ -60,24 +60,27 @@ class DataMigration extends Command
|
|||||||
// $this->migrateProductPurchaseLinks();
|
// $this->migrateProductPurchaseLinks();
|
||||||
|
|
||||||
// 迁移文章
|
// 迁移文章
|
||||||
// $this->migrateArticle([
|
$this->migrateArticle([
|
||||||
// 68 => 10,
|
16 => 7,
|
||||||
// 69 => 11,
|
31 => 9,
|
||||||
// 70 => 12,
|
32 => 8,
|
||||||
// 71 => 13,
|
// 68 => 10,
|
||||||
// 72 => 14,
|
// 69 => 11,
|
||||||
// 73 => 15,
|
// 70 => 12,
|
||||||
// 74 => 16,
|
// 71 => 13,
|
||||||
// 75 => 17,
|
// 72 => 14,
|
||||||
// 78 => 19,
|
// 73 => 15,
|
||||||
// 79 => 20,
|
// 74 => 16,
|
||||||
// 80 => 21,
|
// 75 => 17,
|
||||||
// 81 => 22,
|
// 78 => 19,
|
||||||
// 82 => 23,
|
// 79 => 20,
|
||||||
// 83 => 24,
|
// 80 => 21,
|
||||||
// 84 => 25,
|
// 81 => 22,
|
||||||
// 85 => 26
|
// 82 => 23,
|
||||||
// ]);
|
// 83 => 24,
|
||||||
|
// 84 => 25,
|
||||||
|
// 85 => 26
|
||||||
|
]);
|
||||||
|
|
||||||
// 迁移faq
|
// 迁移faq
|
||||||
// $this->migrateFaq();
|
// $this->migrateFaq();
|
||||||
@@ -290,14 +293,15 @@ class DataMigration extends Command
|
|||||||
$old_db = Db::connect('old');
|
$old_db = Db::connect('old');
|
||||||
|
|
||||||
$success_map = [];
|
$success_map = [];
|
||||||
$success_arr = include_once(runtime_path() . 'product_success.php');
|
$success_arr = []; // include_once(runtime_path() . 'product_success.php');
|
||||||
foreach ($success_arr as $so) {
|
foreach ($success_arr as $so) {
|
||||||
$success_map['p_' . $so['cod_product_id']] = $so;
|
$success_map['p_' . $so['cod_product_id']] = $so;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$arr = include_once(runtime_path() . 'product_ids.php');
|
||||||
$products = $old_db->name('product')
|
$products = $old_db->name('product')
|
||||||
->where('country_code', 'in', ['ZH', 'US'])
|
->where('country_code', 'in', ['ZH', 'US'])
|
||||||
->where('id', '>', 15789)
|
->where('id', 'in', array_unique(array_column($arr, 'cod_product_id')))
|
||||||
->order(['id' => 'asc'])
|
->order(['id' => 'asc'])
|
||||||
->cursor();
|
->cursor();
|
||||||
|
|
||||||
@@ -374,7 +378,16 @@ class DataMigration extends Command
|
|||||||
'deleted_at' => $v['stat'] == -1 ? date('Y-m-d H:i:s') : null,
|
'deleted_at' => $v['stat'] == -1 ? date('Y-m-d H:i:s') : null,
|
||||||
];
|
];
|
||||||
// 保存产品数据
|
// 保存产品数据
|
||||||
$id = Db::name('product')->insertGetId($item);
|
$prod = Db::name('product')
|
||||||
|
->where('language_id', '=', $item['language_id'])
|
||||||
|
->where('spu', '=', $item['spu'])
|
||||||
|
->find();
|
||||||
|
if (!empty($prod)) {
|
||||||
|
$id = $prod['id'];
|
||||||
|
Db::name('product')->where('id', '=', $prod['id'])->update($item);
|
||||||
|
} else {
|
||||||
|
$id = Db::name('product')->insertGetId($item);
|
||||||
|
}
|
||||||
|
|
||||||
// 保存产品参数数据
|
// 保存产品参数数据
|
||||||
if (!empty($v['product_view'])) {
|
if (!empty($v['product_view'])) {
|
||||||
@@ -387,7 +400,21 @@ class DataMigration extends Command
|
|||||||
'value' => $p['desc_desc']
|
'value' => $p['desc_desc']
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
Db::name('product_params')->insertAll($prarms);
|
$old_params = Db::name('product_params')
|
||||||
|
->where('product_id', '=', $id)
|
||||||
|
->select();
|
||||||
|
if ($old_params->isEmpty()) {
|
||||||
|
Db::name('product_params')->insertAll($prarms);
|
||||||
|
} else {
|
||||||
|
foreach ($old_params as $op) {
|
||||||
|
Db::name('product_params')
|
||||||
|
->where('product_id', '=', $id)
|
||||||
|
->where('name', '=', $op['name'])
|
||||||
|
->update([
|
||||||
|
'value' => $op['value']
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 保存sku数据
|
// 保存sku数据
|
||||||
@@ -444,7 +471,7 @@ class DataMigration extends Command
|
|||||||
if ($k != 'sort') {
|
if ($k != 'sort') {
|
||||||
$attr_value = $at;
|
$attr_value = $at;
|
||||||
if (in_array($k, ['颜色', 'Color'])) {
|
if (in_array($k, ['颜色', 'Color'])) {
|
||||||
if ($k == 'Color') $k = '颜色';
|
// if ($k == 'Color') $k = '颜色';
|
||||||
$attr_value = '/static/common/images/colors/' . $at . '.png';
|
$attr_value = '/static/common/images/colors/' . $at . '.png';
|
||||||
}
|
}
|
||||||
$images[$pkey]['color'] = $at;
|
$images[$pkey]['color'] = $at;
|
||||||
@@ -468,7 +495,7 @@ class DataMigration extends Command
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
$attr_arr = [
|
$attr_arr = [
|
||||||
'attr_id' => $attrs_map[$v['country_code']]['颜色'],
|
'attr_id' => $attrs_map[$v['country_code']][$v['country_code'] == 'ZH' ? '颜色' : 'Color'],
|
||||||
'attr_value' => $attr_value,
|
'attr_value' => $attr_value,
|
||||||
];
|
];
|
||||||
if (
|
if (
|
||||||
@@ -514,7 +541,7 @@ class DataMigration extends Command
|
|||||||
$skus[] = [
|
$skus[] = [
|
||||||
'main_image' => $ti['image_url'],
|
'main_image' => $ti['image_url'],
|
||||||
'attrs' => [[
|
'attrs' => [[
|
||||||
'attr_id' => $attrs_map[$v['country_code']]['颜色'],
|
'attr_id' => $attrs_map[$v['country_code']][$v['country_code'] == 'ZH' ? '颜色' : 'Color'],
|
||||||
'attr_value' => $ti['image_color'],
|
'attr_value' => $ti['image_color'],
|
||||||
]],
|
]],
|
||||||
'pkey' => $tpkey
|
'pkey' => $tpkey
|
||||||
@@ -575,6 +602,7 @@ class DataMigration extends Command
|
|||||||
}
|
}
|
||||||
|
|
||||||
foreach ($skus as $sku) {
|
foreach ($skus as $sku) {
|
||||||
|
Db::name('product_sku')->where('product_id', '=', $sku['product_id'])->delete();
|
||||||
$sku_id = Db::name('product_sku')->insertGetId([
|
$sku_id = Db::name('product_sku')->insertGetId([
|
||||||
'product_id' => $sku['product_id'],
|
'product_id' => $sku['product_id'],
|
||||||
'sku' => $sku['sku']??'',
|
'sku' => $sku['sku']??'',
|
||||||
@@ -584,6 +612,7 @@ class DataMigration extends Command
|
|||||||
if (!empty($sku['attrs'])) {
|
if (!empty($sku['attrs'])) {
|
||||||
foreach ($sku['attrs'] as $attr) {
|
foreach ($sku['attrs'] as $attr) {
|
||||||
if (!empty($sku_id)) {
|
if (!empty($sku_id)) {
|
||||||
|
Db::name('product_sku_attr')->where('sku_id', '=', $sku_id)->delete();
|
||||||
Db::name('product_sku_attr')->insert([
|
Db::name('product_sku_attr')->insert([
|
||||||
'sku_id' => $sku_id,
|
'sku_id' => $sku_id,
|
||||||
'attr_id' => $attr['attr_id'],
|
'attr_id' => $attr['attr_id'],
|
||||||
@@ -601,7 +630,7 @@ class DataMigration extends Command
|
|||||||
sprintf('["ow_product_id" => %d, "cod_product_id" => %d]'.PHP_EOL, $id, $v['id']),
|
sprintf('["ow_product_id" => %d, "cod_product_id" => %d]'.PHP_EOL, $id, $v['id']),
|
||||||
FILE_APPEND
|
FILE_APPEND
|
||||||
);
|
);
|
||||||
$this->println(sprintf('迁移产品ID:%s => %s 【耗时:%s】', $v['id'], 0, round(microtime(true) - $start, 2) . 's'));
|
$this->println(sprintf('迁移产品ID:%s => %s 【耗时:%s】', $v['id'], $id, round(microtime(true) - $start, 2) . 's'));
|
||||||
} catch (\Throwable $th) {
|
} catch (\Throwable $th) {
|
||||||
Db::rollback();
|
Db::rollback();
|
||||||
file_put_contents(
|
file_put_contents(
|
||||||
@@ -694,9 +723,12 @@ class DataMigration extends Command
|
|||||||
throw new \Exception('请确认分类ID');
|
throw new \Exception('请确认分类ID');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 1634
|
||||||
$article = Db::connect('old')
|
$article = Db::connect('old')
|
||||||
->name('article')
|
->name('article')
|
||||||
|
->where('country_code', 'in', ['ZH', 'US'])
|
||||||
->where('cid', 'in', array_keys($category_map))
|
->where('cid', 'in', array_keys($category_map))
|
||||||
|
->where('id', '=', 351)
|
||||||
->order(['id' => 'asc'])
|
->order(['id' => 'asc'])
|
||||||
->cursor();
|
->cursor();
|
||||||
|
|
||||||
@@ -745,7 +777,16 @@ class DataMigration extends Command
|
|||||||
'release_time' => date('Y-m-d H:i:s', $v['createtime']),
|
'release_time' => date('Y-m-d H:i:s', $v['createtime']),
|
||||||
'deleted_at' => $v['stat'] == -1 ? date('Y-m-d H:i:s') : null
|
'deleted_at' => $v['stat'] == -1 ? date('Y-m-d H:i:s') : null
|
||||||
];
|
];
|
||||||
$id = Db::name('article')->insertGetId($item);
|
$ret = Db::name('article')
|
||||||
|
->where('language_id', '=', $item['language_id'])
|
||||||
|
->where('title', '=', $item['title'])
|
||||||
|
->find();
|
||||||
|
if (empty($ret)) {
|
||||||
|
$id = Db::name('article')->insertGetId($item);
|
||||||
|
} else {
|
||||||
|
$id = $ret['id'];
|
||||||
|
Db::name('article')->where('id', '=', $ret['id'])->update($item);
|
||||||
|
}
|
||||||
|
|
||||||
$this->println(sprintf('迁移文章ID:%s => %s', $v['id'], $id));
|
$this->println(sprintf('迁移文章ID:%s => %s', $v['id'], $id));
|
||||||
}
|
}
|
||||||
@@ -779,7 +820,15 @@ class DataMigration extends Command
|
|||||||
'recommend' => $val['is_home'],
|
'recommend' => $val['is_home'],
|
||||||
'sort' => $val['sort'] == 9999 ? 0 : $val['sort']
|
'sort' => $val['sort'] == 9999 ? 0 : $val['sort']
|
||||||
];
|
];
|
||||||
Db::name('faq')->insert($item);
|
$ret = Db::name('faq')
|
||||||
|
->where('language_id', '=', $item['language_id'])
|
||||||
|
->where('question', '=', $item['question'])
|
||||||
|
->find();
|
||||||
|
if (empty($ret)) {
|
||||||
|
Db::name('faq')->insert($item);
|
||||||
|
} else {
|
||||||
|
Db::name('faq')->where('id', '=', $ret['id'])->update($item);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -929,7 +978,7 @@ class DataMigration extends Command
|
|||||||
|
|
||||||
class UploadMannager
|
class UploadMannager
|
||||||
{
|
{
|
||||||
const UPLOAD_BASE_API = 'http://dev.ow.f2b211.com';
|
const UPLOAD_BASE_API = 'http://ow.f2b211.com';
|
||||||
const DOWNLOAD_BASE_API = 'http://www.orico.com.cn';
|
const DOWNLOAD_BASE_API = 'http://www.orico.com.cn';
|
||||||
const DOWNLOAD_TEMP_PATH = '/var/www/html/orico-official-website/public/migrate_temp_images';
|
const DOWNLOAD_TEMP_PATH = '/var/www/html/orico-official-website/public/migrate_temp_images';
|
||||||
private $username = 'admin';
|
private $username = 'admin';
|
||||||
@@ -942,7 +991,7 @@ class UploadMannager
|
|||||||
{
|
{
|
||||||
// 登录获取token
|
// 登录获取token
|
||||||
$this->token = $this->getAuthorization();
|
$this->token = $this->getAuthorization();
|
||||||
$this->maps = include_once(runtime_path() . 'fiber_product_image_mapping.php');
|
$this->maps = []; // include_once(runtime_path() . 'fiber_product_image_mapping.php');
|
||||||
}
|
}
|
||||||
|
|
||||||
// 下载图片
|
// 下载图片
|
||||||
@@ -1062,6 +1111,7 @@ class UploadMannager
|
|||||||
print($http_code . PHP_EOL);
|
print($http_code . PHP_EOL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
file_put_contents(runtime_path() . 'upload.txt', $response . PHP_EOL, FILE_APPEND);
|
||||||
$ret = json_decode($response, true);
|
$ret = json_decode($response, true);
|
||||||
if (empty($ret)) {
|
if (empty($ret)) {
|
||||||
throw new \Exception($response);
|
throw new \Exception($response);
|
||||||
|
|||||||
Reference in New Issue
Block a user