vd/order.pgsql
2019-02-11 09:46:56 +08:00

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;