add gao product SKU
This commit is contained in:
@@ -81,7 +81,7 @@
|
||||
|
||||
<select id="selectCustomerProductRank" resultType="com.imyeyu.api.modules.gao.vo.GaoCustomerOrderProductRankView">
|
||||
SELECT
|
||||
i.`product_id` AS `productId`,
|
||||
i.`product_id_snapshot` AS `productId`,
|
||||
MAX(i.`product_name_snapshot`) AS `productName`,
|
||||
COUNT(DISTINCT o.`id`) AS `orderCount`,
|
||||
COALESCE(SUM(CASE WHEN i.`item_type` = 'DIRECT_PRODUCT' THEN i.`quantity` ELSE 0 END), 0) AS `directQuantity`,
|
||||
@@ -89,10 +89,15 @@
|
||||
COALESCE(SUM(i.`reserved_quantity`), 0) AS `reservedQuantity`,
|
||||
COALESCE(SUM(i.`fulfilled_quantity`), 0) AS `fulfilledQuantity`,
|
||||
COALESCE(SUM(i.`quantity` - i.`reserved_quantity` - i.`fulfilled_quantity`), 0) AS `availableQuantity`,
|
||||
COALESCE(SUM(CASE WHEN i.`item_type` = 'DIRECT_PRODUCT' THEN i.`quantity` * COALESCE(i.`base_quantity_per_unit_snapshot`, 1) ELSE 0 END), 0) AS `directBaseQuantity`,
|
||||
COALESCE(SUM(CASE WHEN i.`item_type` = 'PACKAGE_ENTITLEMENT' THEN i.`quantity` * COALESCE(i.`base_quantity_per_unit_snapshot`, 1) ELSE 0 END), 0) AS `packageBaseQuantity`,
|
||||
COALESCE(SUM(i.`reserved_quantity` * COALESCE(i.`base_quantity_per_unit_snapshot`, 1)), 0) AS `reservedBaseQuantity`,
|
||||
COALESCE(SUM(i.`fulfilled_quantity` * COALESCE(i.`base_quantity_per_unit_snapshot`, 1)), 0) AS `fulfilledBaseQuantity`,
|
||||
COALESCE(SUM((i.`quantity` - i.`reserved_quantity` - i.`fulfilled_quantity`) * COALESCE(i.`base_quantity_per_unit_snapshot`, 1)), 0) AS `availableBaseQuantity`,
|
||||
COALESCE(SUM(CASE WHEN i.`item_type` = 'DIRECT_PRODUCT' THEN COALESCE(i.`line_amount`, 0) ELSE 0 END), 0) AS `directSaleAmount`
|
||||
FROM `gao_sales_order_item` i
|
||||
INNER JOIN `gao_sales_order` o ON o.`id` = i.`sales_order_id`
|
||||
INNER JOIN `gao_product` p ON p.`id` = i.`product_id` AND p.`store_id` = o.`store_id`
|
||||
INNER JOIN `gao_product` p ON p.`id` = i.`product_id_snapshot` AND p.`store_id` = o.`store_id`
|
||||
WHERE o.`store_id` = #{storeId}
|
||||
AND o.`customer_id` = #{customerId}
|
||||
AND o.`deleted_at` IS NULL
|
||||
@@ -100,11 +105,45 @@
|
||||
AND o.`status` <> 'CANCELLED'
|
||||
AND o.`purchased_at` >= #{beginAt}
|
||||
AND o.`purchased_at` <= #{endAt}
|
||||
GROUP BY i.`product_id`
|
||||
ORDER BY (SUM(CASE WHEN i.`item_type` = 'DIRECT_PRODUCT' THEN i.`quantity` ELSE 0 END)
|
||||
+ SUM(CASE WHEN i.`item_type` = 'PACKAGE_ENTITLEMENT' THEN i.`quantity` ELSE 0 END)) DESC,
|
||||
<if test="productId != null and productId != ''">AND i.`product_id_snapshot` = #{productId}</if>
|
||||
<if test="skuId != null and skuId != ''">AND i.`sku_id` = #{skuId}</if>
|
||||
GROUP BY i.`product_id_snapshot`
|
||||
ORDER BY (SUM(CASE WHEN i.`item_type` = 'DIRECT_PRODUCT' THEN i.`quantity` * COALESCE(i.`base_quantity_per_unit_snapshot`, 1) ELSE 0 END)
|
||||
+ SUM(CASE WHEN i.`item_type` = 'PACKAGE_ENTITLEMENT' THEN i.`quantity` * COALESCE(i.`base_quantity_per_unit_snapshot`, 1) ELSE 0 END)) DESC,
|
||||
directSaleAmount DESC,
|
||||
i.`product_id` ASC
|
||||
i.`product_id_snapshot` ASC
|
||||
LIMIT #{topN}
|
||||
</select>
|
||||
|
||||
<select id="selectCustomerSkuRank" resultType="com.imyeyu.api.modules.gao.vo.GaoCustomerOrderSkuRankView">
|
||||
SELECT
|
||||
i.`sku_id` AS `skuId`,
|
||||
MAX(i.`sku_code_snapshot`) AS `skuCode`,
|
||||
MAX(i.`sku_name_snapshot`) AS `skuName`,
|
||||
MAX(i.`spec_summary_snapshot`) AS `specSummary`,
|
||||
i.`product_id_snapshot` AS `productId`,
|
||||
MAX(i.`product_name_snapshot`) AS `productName`,
|
||||
COUNT(DISTINCT o.`id`) AS `orderCount`,
|
||||
COALESCE(SUM(CASE WHEN i.`item_type` = 'DIRECT_PRODUCT' THEN i.`quantity` * COALESCE(i.`base_quantity_per_unit_snapshot`, 1) ELSE 0 END), 0) AS `directBaseQuantity`,
|
||||
COALESCE(SUM(CASE WHEN i.`item_type` = 'PACKAGE_ENTITLEMENT' THEN i.`quantity` * COALESCE(i.`base_quantity_per_unit_snapshot`, 1) ELSE 0 END), 0) AS `packageBaseQuantity`,
|
||||
COALESCE(SUM(i.`reserved_quantity` * COALESCE(i.`base_quantity_per_unit_snapshot`, 1)), 0) AS `reservedBaseQuantity`,
|
||||
COALESCE(SUM(i.`fulfilled_quantity` * COALESCE(i.`base_quantity_per_unit_snapshot`, 1)), 0) AS `fulfilledBaseQuantity`,
|
||||
COALESCE(SUM((i.`quantity` - i.`reserved_quantity` - i.`fulfilled_quantity`) * COALESCE(i.`base_quantity_per_unit_snapshot`, 1)), 0) AS `availableBaseQuantity`,
|
||||
COALESCE(SUM(CASE WHEN i.`item_type` = 'DIRECT_PRODUCT' THEN COALESCE(i.`line_amount`, 0) ELSE 0 END), 0) AS `directSaleAmount`
|
||||
FROM `gao_sales_order_item` i
|
||||
INNER JOIN `gao_sales_order` o ON o.`id` = i.`sales_order_id`
|
||||
INNER JOIN `gao_product` p ON p.`id` = i.`product_id_snapshot` AND p.`store_id` = o.`store_id`
|
||||
WHERE o.`store_id` = #{storeId}
|
||||
AND o.`customer_id` = #{customerId}
|
||||
AND o.`deleted_at` IS NULL
|
||||
AND i.`deleted_at` IS NULL
|
||||
AND o.`status` <> 'CANCELLED'
|
||||
AND o.`purchased_at` >= #{beginAt}
|
||||
AND o.`purchased_at` <= #{endAt}
|
||||
<if test="productId != null and productId != ''">AND i.`product_id_snapshot` = #{productId}</if>
|
||||
<if test="skuId != null and skuId != ''">AND i.`sku_id` = #{skuId}</if>
|
||||
GROUP BY i.`sku_id`, i.`product_id_snapshot`
|
||||
ORDER BY `availableBaseQuantity` DESC, `fulfilledBaseQuantity` DESC, `directSaleAmount` DESC, i.`sku_id` ASC
|
||||
LIMIT #{topN}
|
||||
</select>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user