vd_old_orders

This commit is contained in:
邓皓元 2019-03-28 18:29:50 +08:00
parent f62736ba84
commit 33f97749f6

View File

@ -3,7 +3,7 @@
-- 第一步:复制旧平台 ckb_custom 与 ckb_custom_handle_log 两表至新数据库
-- 第二步:建立物化视图
CREATE MATERIALIZED VIEW logs AS
CREATE MATERIALIZED VIEW vd_old_orders AS
SELECT
ckb_custom_handle_log.custom_no,
min((ckb_custom.card_number)::text) AS sim,
@ -124,7 +124,7 @@ INSERT INTO vd.virtual_orders ("type", sn, "source", company_id, package_id, pay
MIN(created_at) AS created_at,
MIN(created_at) AS updated_at
FROM
logs
vd_old_orders
GROUP BY
order_type, order_sn
) ON CONFLICT (sn, COALESCE(deleted_at::TIMESTAMP, '1970-01-01 08:00:00'::TIMESTAMP)) DO UPDATE SET counts = excluded.counts, total_price = excluded.total_price, custom_price = excluded.custom_price;
@ -133,84 +133,84 @@ INSERT INTO vd.virtual_orders ("type", sn, "source", company_id, package_id, pay
INSERT INTO vd.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,
vd_old_orders.order_type AS "type",
vd_old_orders.sim::BIGINT AS sim,
virtual_orders.ID AS order_id,
logs.company_id,
logs.package_id,
logs.counts,
logs.unit_price,
logs.service_start_at,
logs.service_end_at,
logs.created_at AS created_at,
logs.created_at AS updated_at
vd_old_orders.company_id,
vd_old_orders.package_id,
vd_old_orders.counts,
vd_old_orders.unit_price,
vd_old_orders.service_start_at,
vd_old_orders.service_end_at,
vd_old_orders.created_at AS created_at,
vd_old_orders.created_at AS updated_at
FROM
logs
LEFT JOIN vd.virtual_orders ON virtual_orders.sn = logs.order_sn
vd_old_orders
LEFT JOIN vd.virtual_orders ON virtual_orders.sn = vd_old_orders.order_sn
WHERE
logs.order_type = 0
vd_old_orders.order_type = 0
) ON CONFLICT (sim, order_id, COALESCE(deleted_at::TIMESTAMP, '1970-01-01 08:00:00'::TIMESTAMP)) DO UPDATE SET counts = excluded.counts, service_start_at = excluded.service_start_at, service_end_at = excluded.service_end_at;
INSERT INTO vd.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,
vd_old_orders.order_type AS "type",
vd_old_orders.sim::BIGINT AS sim,
virtual_orders.ID AS order_id,
logs.company_id,
logs.package_id,
logs.counts,
logs.unit_price,
logs.service_start_at,
logs.service_end_at,
logs.created_at AS created_at,
logs.created_at AS updated_at
vd_old_orders.company_id,
vd_old_orders.package_id,
vd_old_orders.counts,
vd_old_orders.unit_price,
vd_old_orders.service_start_at,
vd_old_orders.service_end_at,
vd_old_orders.created_at AS created_at,
vd_old_orders.created_at AS updated_at
FROM
logs
LEFT JOIN vd.virtual_orders ON virtual_orders.sn = logs.order_sn
vd_old_orders
LEFT JOIN vd.virtual_orders ON virtual_orders.sn = vd_old_orders.order_sn
WHERE
logs.order_type = 1
vd_old_orders.order_type = 1
) ON CONFLICT (sim, order_id, COALESCE(deleted_at::TIMESTAMP, '1970-01-01 08:00:00'::TIMESTAMP)) DO UPDATE SET counts = excluded.counts, service_start_at = excluded.service_start_at, service_end_at = excluded.service_end_at;
INSERT INTO vd.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,
vd_old_orders.order_type AS "type",
vd_old_orders.sim::BIGINT AS sim,
virtual_orders.ID AS order_id,
logs.company_id,
logs.package_id,
logs.counts,
logs.unit_price,
logs.service_start_at,
logs.service_end_at,
logs.created_at AS created_at,
logs.created_at AS updated_at
vd_old_orders.company_id,
vd_old_orders.package_id,
vd_old_orders.counts,
vd_old_orders.unit_price,
vd_old_orders.service_start_at,
vd_old_orders.service_end_at,
vd_old_orders.created_at AS created_at,
vd_old_orders.created_at AS updated_at
FROM
logs
LEFT JOIN vd.virtual_orders ON virtual_orders.sn = logs.order_sn
vd_old_orders
LEFT JOIN vd.virtual_orders ON virtual_orders.sn = vd_old_orders.order_sn
WHERE
logs.order_type = 2
vd_old_orders.order_type = 2
) ON CONFLICT (sim, order_id, COALESCE(deleted_at::TIMESTAMP, '1970-01-01 08:00:00'::TIMESTAMP)) DO UPDATE SET counts = excluded.counts, service_start_at = excluded.service_start_at, service_end_at = excluded.service_end_at;
INSERT INTO vd.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,
vd_old_orders.order_type AS "type",
vd_old_orders.sim::BIGINT AS sim,
virtual_orders.ID AS order_id,
logs.company_id,
logs.package_id,
logs.counts,
logs.unit_price,
logs.service_start_at,
logs.service_end_at,
logs.created_at AS created_at,
logs.created_at AS updated_at
vd_old_orders.company_id,
vd_old_orders.package_id,
vd_old_orders.counts,
vd_old_orders.unit_price,
vd_old_orders.service_start_at,
vd_old_orders.service_end_at,
vd_old_orders.created_at AS created_at,
vd_old_orders.created_at AS updated_at
FROM
logs
LEFT JOIN vd.virtual_orders ON virtual_orders.sn = logs.order_sn
vd_old_orders
LEFT JOIN vd.virtual_orders ON virtual_orders.sn = vd_old_orders.order_sn
WHERE
logs.order_type = 3
vd_old_orders.order_type = 3
) ON CONFLICT (sim, order_id, COALESCE(deleted_at::TIMESTAMP, '1970-01-01 08:00:00'::TIMESTAMP)) DO UPDATE SET counts = excluded.counts, service_start_at = excluded.service_start_at, service_end_at = excluded.service_end_at;