94 lines
3.2 KiB
PL/PgSQL
94 lines
3.2 KiB
PL/PgSQL
INSERT INTO virtual_orders ("type", sn, "source", company_id, package_id, product_id, pay_channel, unit_price, counts, total_price, custom_price, order_at, order_status, transaction_status, created_at, updated_at) (
|
|
SELECT
|
|
MIN("type"),
|
|
order_sn,
|
|
1,
|
|
MIN(company_id),
|
|
MIN(package_id),
|
|
MIN(product_id),
|
|
MIN(pay_channel),
|
|
MIN(unit_price),
|
|
COUNT(*) AS counts,
|
|
MIN(unit_price) * COUNT(*) AS total_price,
|
|
MIN(unit_price) * COUNT(*) AS custom_price,
|
|
MIN(created_at) AS order_at,
|
|
4,
|
|
1,
|
|
MIN(created_at) AS created_at,
|
|
MIN(created_at) AS updated_at
|
|
FROM
|
|
logs
|
|
GROUP BY
|
|
order_sn) ON CONFLICT (sn,
|
|
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) (
|
|
SELECT
|
|
logs. "type" AS "type",
|
|
logs.sim::BIGINT AS sim,
|
|
virtual_orders.ID AS order_id,
|
|
logs.company_id,
|
|
logs.package_id,
|
|
logs.counts,
|
|
logs.created_at AS created_at,
|
|
logs.created_at AS updated_at
|
|
FROM
|
|
logs
|
|
LEFT JOIN virtual_orders ON virtual_orders.sn = logs.order_sn
|
|
WHERE
|
|
logs. "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) (
|
|
SELECT
|
|
logs. "type" AS "type",
|
|
logs.sim::BIGINT AS sim,
|
|
virtual_orders.ID AS order_id,
|
|
logs.company_id,
|
|
logs.package_id,
|
|
logs.counts,
|
|
logs.created_at AS created_at,
|
|
logs.created_at AS updated_at
|
|
FROM
|
|
logs
|
|
LEFT JOIN virtual_orders ON virtual_orders.sn = logs.order_sn
|
|
WHERE
|
|
logs. "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) (
|
|
SELECT
|
|
logs. "type" AS "type",
|
|
logs.sim::BIGINT AS sim,
|
|
virtual_orders.ID AS order_id,
|
|
logs.company_id,
|
|
logs.package_id,
|
|
logs.counts,
|
|
logs.created_at AS created_at,
|
|
logs.created_at AS updated_at
|
|
FROM
|
|
logs
|
|
LEFT JOIN virtual_orders ON virtual_orders.sn = logs.order_sn
|
|
WHERE
|
|
logs. "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) (
|
|
SELECT
|
|
logs. "type" AS "type",
|
|
logs.sim::BIGINT AS sim,
|
|
virtual_orders.ID AS order_id,
|
|
logs.company_id,
|
|
logs.package_id,
|
|
logs.counts,
|
|
logs.created_at AS created_at,
|
|
logs.created_at AS updated_at
|
|
FROM
|
|
logs
|
|
LEFT JOIN virtual_orders ON virtual_orders.sn = logs.order_sn
|
|
WHERE
|
|
logs. "type" = 3) ON CONFLICT (sim, order_id, COALESCE(deleted_at::TIMESTAMP, '1970-01-01 08:00:00'::TIMESTAMP))
|
|
DO NOTHING;
|
|
|