SELECT ckb_custom_handle_log.custom_no, min((ckb_custom.card_number)::text) AS sim, CASE ckb_custom_handle_log.type WHEN 13 THEN 0 WHEN 11 THEN 1 WHEN 14 THEN 2 WHEN 15 THEN 3 ELSE NULL::integer END AS order_type, concat(to_char(to_timestamp((ckb_custom_handle_log.create_time)::double precision), 'YYYYMMDDHHMISS'::text), CASE ckb_custom_handle_log.type WHEN 13 THEN 0 WHEN 11 THEN 1 WHEN 14 THEN 2 WHEN 15 THEN 3 ELSE NULL::integer END, CASE ckb_custom_handle_log.pay_type WHEN 10 THEN 2 WHEN 11 THEN 3 WHEN 12 THEN 0 ELSE NULL::integer END, lpad((virtual_companies.id)::text, 3, '0'::text), lpad((virtual_packages.id)::text, 4, '0'::text), lpad((((ckb_custom_handle_log.order_account)::integer * 100))::text, 6, '0'::text)) AS order_sn, COALESCE(virtual_companies.id, 0) AS company_id, COALESCE(virtual_packages.id, 0) AS package_id, COALESCE(min(virtual_products.id), 0) AS product_id, CASE ckb_custom_handle_log.pay_type WHEN 10 THEN 'wx'::text WHEN 11 THEN 'alipay'::text WHEN 12 THEN 'bank'::text ELSE NULL::text END AS pay_channel, ((ckb_custom_handle_log.order_account)::integer * 100) AS unit_price, to_timestamp((ckb_custom_handle_log.create_time)::double precision) AS created_at, count(*) AS counts FROM ((((vd_old.ckb_custom_handle_log LEFT JOIN vd_old.ckb_custom ON (((ckb_custom.custom_no)::text = (ckb_custom_handle_log.custom_no)::text))) LEFT JOIN virtual_companies ON ((((virtual_companies.sn)::text = concat('No', lpad((ckb_custom_handle_log.company)::text, 11, '0'::text))) AND (virtual_companies.deleted_at IS NULL)))) LEFT JOIN virtual_packages ON ((((virtual_packages.sn)::text = (ckb_custom_handle_log.content)::text) AND (virtual_packages.deleted_at IS NULL)))) LEFT JOIN virtual_products ON (((virtual_products.sn)::text = concat(ckb_custom_handle_log.content, '_', virtual_companies.id, '_', ((ckb_custom_handle_log.order_account)::integer * 100))))) WHERE (ckb_custom_handle_log.type = ANY (ARRAY[11, 13, 14, 15])) GROUP BY ckb_custom_handle_log.create_time, virtual_companies.id, virtual_packages.id, ckb_custom_handle_log.order_account, ckb_custom_handle_log.custom_no, ckb_custom_handle_log.type, ckb_custom_handle_log.pay_type; 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(order_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.order_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.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) ( SELECT logs.order_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.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) ( SELECT logs.order_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.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) ( SELECT logs.order_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.order_type = 3) ON CONFLICT (sim, order_id, COALESCE(deleted_at::TIMESTAMP, '1970-01-01 08:00:00'::TIMESTAMP)) DO NOTHING;