support split fulfillment by base unit

This commit is contained in:
Timi
2026-09-09 01:49:40 +08:00
parent ea44dd5c0e
commit 00bb300755
13 changed files with 320 additions and 189 deletions
@@ -20,16 +20,16 @@
WHERE `id` = #{id} AND `deleted_at` IS NULL
FOR UPDATE
</select>
<update id="updateReservedQuantity">
<update id="updateReservedBaseQuantity">
UPDATE `gao_sales_order_item`
SET `reserved_quantity` = `reserved_quantity` + #{delta}, `updated_at` = FLOOR(UNIX_TIMESTAMP(NOW(3)) * 1000)
WHERE `id` = #{id} AND `reserved_quantity` + #{delta} &gt;= 0
AND `fulfilled_quantity` + `reserved_quantity` + #{delta} &lt;= `quantity`
SET `reserved_base_quantity` = `reserved_base_quantity` + #{delta}, `updated_at` = FLOOR(UNIX_TIMESTAMP(NOW(3)) * 1000)
WHERE `id` = #{id} AND `reserved_base_quantity` + #{delta} &gt;= 0
AND `fulfilled_base_quantity` + `reserved_base_quantity` + #{delta} &lt;= `base_quantity`
</update>
<update id="updateFulfilledQuantity">
<update id="updateFulfilledBaseQuantity">
UPDATE `gao_sales_order_item`
SET `fulfilled_quantity` = `fulfilled_quantity` + #{delta}, `updated_at` = FLOOR(UNIX_TIMESTAMP(NOW(3)) * 1000)
WHERE `id` = #{id} AND `fulfilled_quantity` + #{delta} &gt;= 0
AND `fulfilled_quantity` + #{delta} &lt;= `quantity`
SET `fulfilled_base_quantity` = `fulfilled_base_quantity` + #{delta}, `updated_at` = FLOOR(UNIX_TIMESTAMP(NOW(3)) * 1000)
WHERE `id` = #{id} AND `fulfilled_base_quantity` + #{delta} &gt;= 0
AND `fulfilled_base_quantity` + #{delta} &lt;= `base_quantity`
</update>
</mapper>