From 23f2a1de9ab6b230fd4d94e0d025425d66a9055e Mon Sep 17 00:00:00 2001 From: denghy Date: Mon, 21 Jan 2019 18:07:23 +0800 Subject: [PATCH] =?UTF-8?q?RD=E8=AE=A2=E5=8D=95=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Real/Commands/Sync/AddedOrderSync.php | 1 + ...9_create_real_added_order_cards_tables.php | 33 ++++-------------- .../create_real_added_order_cards_table.pgsql | 34 +++++++++++++++++++ .../create_virtual_order_cards_table.pgsql | 1 + 4 files changed, 43 insertions(+), 26 deletions(-) create mode 100644 database/migrations/create_real_added_order_cards_table.pgsql diff --git a/app/Domains/Real/Commands/Sync/AddedOrderSync.php b/app/Domains/Real/Commands/Sync/AddedOrderSync.php index 16740ede..ef95d3f2 100644 --- a/app/Domains/Real/Commands/Sync/AddedOrderSync.php +++ b/app/Domains/Real/Commands/Sync/AddedOrderSync.php @@ -39,6 +39,7 @@ class AddedOrderSync extends Command foreach ($orderItems as $key => $value) { $dataOrderCards[$value['type']][] = [ + 'type' => $value['type'], 'sim' => $value['sim'], 'company_id' => $value['company_id'], 'order_id' => $value['order_id'], diff --git a/database/migrations/2018_12_24_164459_create_real_added_order_cards_tables.php b/database/migrations/2018_12_24_164459_create_real_added_order_cards_tables.php index 7ffd5971..e8ef04cf 100644 --- a/database/migrations/2018_12_24_164459_create_real_added_order_cards_tables.php +++ b/database/migrations/2018_12_24_164459_create_real_added_order_cards_tables.php @@ -1,19 +1,13 @@ 'RD卡关联基础订单', - 'real_added_order_renewal_package_cards' => 'RD卡关联续费包订单', - 'real_added_order_flows_package_cards' => 'RD卡关联加油包订单', - 'real_added_order_optional_package_cards' => 'RD卡关联可选包订单', - 'real_added_order_additional_package_cards' => 'RD卡关联附加包订单', - ]; - /** * Run the migrations. * @@ -21,22 +15,11 @@ class CreateRealAddedOrderCardsTables extends Migration */ public function up() { - foreach ($this->tables as $table_name => $table_comment) { - if (Schema::hasTable($table_name)) { - continue; - } - - Schema::create($table_name, function (Blueprint $table) use ($table_comment) { - $table->integer('order_id')->unsigned()->default(0)->comment('订单ID'); - $table->bigInteger('sim')->unsigned()->default(0)->comment('SIM卡号'); - $table->integer('company_id')->unsigned()->default(0)->comment('企业ID'); - $table->integer('package_id')->unsigned()->default(0)->comment('套餐ID'); - $table->integer('counts')->unsigned()->default(1)->comment('数量'); - $table->integer('unit_price')->unsigned()->default(0)->comment('单价'); - $table->primary(['order_id', 'sim']); - $table->comment($table_comment); - }); + if (Schema::hasTable('real_added_order_cards_table_partition')) { + return; } + + DB::unprepared(File::get(__DIR__ . '/create_real_added_order_cards_table.pgsql')); } /** @@ -46,8 +29,6 @@ class CreateRealAddedOrderCardsTables extends Migration */ public function down() { - foreach ($this->tables as $table_name => $table_comment) { - Schema::dropIfExists($table_name); - } + Schema::dropIfExists('real_added_order_cards_table_partition'); } } diff --git a/database/migrations/create_real_added_order_cards_table.pgsql b/database/migrations/create_real_added_order_cards_table.pgsql new file mode 100644 index 00000000..bf419f53 --- /dev/null +++ b/database/migrations/create_real_added_order_cards_table.pgsql @@ -0,0 +1,34 @@ +CREATE TABLE "real_added_order_cards_table_partition" ( + "type" int2 NOT NULL DEFAULT 0, + "sim" int8 NOT NULL DEFAULT 0, + "order_id" int4 NOT NULL DEFAULT 0, + "company_id" int4 NOT NULL DEFAULT 0, + "package_id" int4 NOT NULL DEFAULT 0, + "counts" int4 NOT NULL DEFAULT 1, + "unit_price" int4 NOT NULL DEFAULT 0, + "created_at" timestamp(0), + "updated_at" timestamp(0)) +PARTITION BY + LIST ( + "type" +); + +COMMENT ON COLUMN "real_added_order_cards_table_partition"."type" IS '订单类型(1:套餐续费 2:续费包 3:加油包 4:可选包 5:附加包)'; +COMMENT ON COLUMN "real_added_order_cards_table_partition"."sim" IS 'SIM卡号'; +COMMENT ON COLUMN "real_added_order_cards_table_partition"."order_id" IS '订单ID'; +COMMENT ON COLUMN "real_added_order_cards_table_partition"."company_id" IS '企业ID'; +COMMENT ON COLUMN "real_added_order_cards_table_partition"."package_id" IS '套餐ID'; +COMMENT ON COLUMN "real_added_order_cards_table_partition"."counts" IS '数量'; +COMMENT ON TABLE "real_added_order_cards_table_partition" IS 'RD续费及增值包订单关联卡'; + +CREATE TABLE real_added_order_renewal_cards PARTITION OF real_added_order_cards_table_partition FOR VALUES IN (1); +CREATE TABLE real_added_order_renewal_package_cards PARTITION OF real_added_order_cards_table_partition FOR VALUES IN (2); +CREATE TABLE real_added_order_flows_package_cards PARTITION OF real_added_order_cards_table_partition FOR VALUES IN (3); +CREATE TABLE real_added_order_optional_package_cards PARTITION OF real_added_order_cards_table_partition FOR VALUES IN (4); +CREATE TABLE real_added_order_additional_package_cards PARTITION OF real_added_order_cards_table_partition FOR VALUES IN (5); + +CREATE UNIQUE INDEX "real_added_order_renewal_cards_order_id_sim_deleted_at_unique" ON "real_added_order_renewal_cards" (order_id, sim); +CREATE UNIQUE INDEX "real_added_order_renewal_package_cards_order_id_sim_deleted_at_unique" ON "real_added_order_renewal_package_cards" (order_id, sim); +CREATE UNIQUE INDEX "real_added_order_flows_package_cards_order_id_sim_deleted_at_unique" ON "real_added_order_flows_package_cards" (order_id, sim); +CREATE UNIQUE INDEX "real_added_order_optional_package_cards_order_id_sim_deleted_at_unique" ON "real_added_order_optional_package_cards" (order_id, sim); +CREATE UNIQUE INDEX "real_added_order_additional_package_cards_order_id_sim_deleted_at_unique" ON "real_added_order_additional_package_cards" (order_id, sim); diff --git a/database/migrations/create_virtual_order_cards_table.pgsql b/database/migrations/create_virtual_order_cards_table.pgsql index 4c97cb66..d05775c5 100644 --- a/database/migrations/create_virtual_order_cards_table.pgsql +++ b/database/migrations/create_virtual_order_cards_table.pgsql @@ -23,6 +23,7 @@ PARTITION BY ALTER SEQUENCE "virtual_order_cards_partition_id_seq" OWNED BY "virtual_order_cards_partition"."id"; COMMENT ON COLUMN "virtual_order_cards_partition"."id" IS '关联表ID'; +COMMENT ON COLUMN "virtual_order_cards_partition"."type" IS '订单类型(0:基础套餐 1:套餐续费 2:续费包 3:加油包 4:可选包 5:附加包)'; COMMENT ON COLUMN "virtual_order_cards_partition"."sim" IS 'SIM卡号'; COMMENT ON COLUMN "virtual_order_cards_partition"."order_id" IS '订单ID'; COMMENT ON COLUMN "virtual_order_cards_partition"."company_id" IS '企业ID';