diff --git a/database/migrations/2018_12_31_170946_create_virtual_order_cards_tables.php b/database/migrations/2018_12_31_170946_create_virtual_order_cards_tables.php index 88847bfd..90c5fd83 100644 --- a/database/migrations/2018_12_31_170946_create_virtual_order_cards_tables.php +++ b/database/migrations/2018_12_31_170946_create_virtual_order_cards_tables.php @@ -30,6 +30,9 @@ class CreateVirtualOrderCardsTables extends Migration $table->integer('company_id')->unsigned()->default(0)->comment('企业ID'); $table->integer('package_id')->unsigned()->default(0)->comment('套餐ID'); $table->integer('counts')->unsigned()->default(0)->comment('数量'); + $table->integer('unit_price')->unsigned()->default(0)->comment('单价'); + $table->timestamp('service_start_at')->nullable()->comment('服务开始时间'); + $table->timestamp('service_end_at')->nullable()->comment('服务结束时间'); $table->timestamps(); $table->softDeletes(); diff --git a/order.pgsql b/order.pgsql index 76988721..12908571 100644 --- a/order.pgsql +++ b/order.pgsql @@ -48,6 +48,8 @@ SELECT NULL::text END AS pay_channel, ((ckb_custom_handle_log.order_account)::integer * 100) AS unit_price, + CASE MIN(ckb_custom_handle_log.valid_start_time) WHEN '' THEN NULL WHEN NULL THEN NULL ELSE date_trunc('month', to_timestamp(MIN(ckb_custom_handle_log.valid_start_time)::double precision)) END AS service_start_at, + CASE MAX(ckb_custom_handle_log.valid_end_time) WHEN '' THEN NULL WHEN NULL THEN NULL ELSE date_trunc('month', to_timestamp(MAX(ckb_custom_handle_log.valid_end_time)::double precision)) + interval '1 month' - interval '1 second' END AS service_end_at, to_timestamp((ckb_custom_handle_log.create_time)::double precision) AS created_at, count(*) AS counts FROM ((((vd_old.ckb_custom_handle_log @@ -92,7 +94,7 @@ INSERT INTO virtual_orders ("type", sn, "source", company_id, package_id, produc COALESCE(deleted_at::TIMESTAMP, '1970-01-01 08:00:00'::TIMESTAMP)) DO NOTHING; -INSERT INTO virtual_order_cards ("type", sim, order_id, company_id, package_id, counts, created_at, updated_at) ( +INSERT INTO virtual_order_cards ("type", sim, order_id, company_id, package_id, counts, unit_price, service_start_at, service_end_at, created_at, updated_at) ( SELECT logs.order_type AS "type", logs.sim::BIGINT AS sim, @@ -100,6 +102,9 @@ INSERT INTO virtual_order_cards ("type", sim, order_id, company_id, package_id, logs.company_id, logs.package_id, logs.counts, + logs.unit_price, + CASE logs.service_start_at WHEN '1970-01-01 08:00:00'::TIMESTAMP THEN NULL ELSE logs.service_start_at END AS service_start_at, + CASE logs.service_end_at WHEN '1970-01-31 23:59:59'::TIMESTAMP THEN NULL ELSE logs.service_end_at END AS service_end_at, logs.created_at AS created_at, logs.created_at AS updated_at FROM @@ -109,7 +114,7 @@ WHERE logs.order_type = 0) ON CONFLICT (sim, order_id, COALESCE(deleted_at::TIMESTAMP, '1970-01-01 08:00:00'::TIMESTAMP)) DO NOTHING; -INSERT INTO virtual_order_renewal_cards ("type", sim, order_id, company_id, package_id, counts, created_at, updated_at) ( +INSERT INTO virtual_order_renewal_cards ("type", sim, order_id, company_id, package_id, counts, unit_price, service_start_at, service_end_at, created_at, updated_at) ( SELECT logs.order_type AS "type", logs.sim::BIGINT AS sim, @@ -117,6 +122,9 @@ INSERT INTO virtual_order_renewal_cards ("type", sim, order_id, company_id, pack logs.company_id, logs.package_id, logs.counts, + logs.unit_price, + CASE logs.service_start_at WHEN '1970-01-01 08:00:00'::TIMESTAMP THEN NULL ELSE logs.service_start_at END AS service_start_at, + CASE logs.service_end_at WHEN '1970-01-31 23:59:59'::TIMESTAMP THEN NULL ELSE logs.service_end_at END AS service_end_at, logs.created_at AS created_at, logs.created_at AS updated_at FROM @@ -126,7 +134,7 @@ WHERE logs.order_type = 1) ON CONFLICT (sim, order_id, COALESCE(deleted_at::TIMESTAMP, '1970-01-01 08:00:00'::TIMESTAMP)) DO NOTHING; -INSERT INTO virtual_order_renewal_package_cards ("type", sim, order_id, company_id, package_id, counts, created_at, updated_at) ( +INSERT INTO virtual_order_renewal_package_cards ("type", sim, order_id, company_id, package_id, counts, unit_price, service_start_at, service_end_at, created_at, updated_at) ( SELECT logs.order_type AS "type", logs.sim::BIGINT AS sim, @@ -134,6 +142,9 @@ INSERT INTO virtual_order_renewal_package_cards ("type", sim, order_id, company_ logs.company_id, logs.package_id, logs.counts, + logs.unit_price, + CASE logs.service_start_at WHEN '1970-01-01 08:00:00'::TIMESTAMP THEN NULL ELSE logs.service_start_at END AS service_start_at, + CASE logs.service_end_at WHEN '1970-01-31 23:59:59'::TIMESTAMP THEN NULL ELSE logs.service_end_at END AS service_end_at, logs.created_at AS created_at, logs.created_at AS updated_at FROM @@ -143,7 +154,7 @@ WHERE logs.order_type = 2) ON CONFLICT (sim, order_id, COALESCE(deleted_at::TIMESTAMP, '1970-01-01 08:00:00'::TIMESTAMP)) DO NOTHING; -INSERT INTO virtual_order_flows_package_cards ("type", sim, order_id, company_id, package_id, counts, created_at, updated_at) ( +INSERT INTO virtual_order_flows_package_cards ("type", sim, order_id, company_id, package_id, counts, unit_price, service_start_at, service_end_at, created_at, updated_at) ( SELECT logs.order_type AS "type", logs.sim::BIGINT AS sim, @@ -151,6 +162,9 @@ INSERT INTO virtual_order_flows_package_cards ("type", sim, order_id, company_id logs.company_id, logs.package_id, logs.counts, + logs.unit_price, + CASE logs.service_start_at WHEN '1970-01-01 08:00:00'::TIMESTAMP THEN NULL ELSE logs.service_start_at END AS service_start_at, + CASE logs.service_end_at WHEN '1970-01-31 23:59:59'::TIMESTAMP THEN NULL ELSE logs.service_end_at END AS service_end_at, logs.created_at AS created_at, logs.created_at AS updated_at FROM @@ -159,4 +173,3 @@ INSERT INTO virtual_order_flows_package_cards ("type", sim, order_id, company_id WHERE logs.order_type = 3) ON CONFLICT (sim, order_id, COALESCE(deleted_at::TIMESTAMP, '1970-01-01 08:00:00'::TIMESTAMP)) DO NOTHING; -