36 lines
1.8 KiB
XML
36 lines
1.8 KiB
XML
<?xml version="1.0" encoding="UTF-8" ?>
|
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
|
<mapper namespace="com.imyeyu.api.modules.gao.mapper.GaoSalesOrderItemMapper">
|
|
<select id="selectBySalesOrderId" resultType="com.imyeyu.api.modules.gao.entity.GaoSalesOrderItem">
|
|
SELECT * FROM `gao_sales_order_item`
|
|
WHERE `sales_order_id` = #{salesOrderId} AND `deleted_at` IS NULL
|
|
ORDER BY `sort`, `created_at`
|
|
</select>
|
|
<select id="selectBySalesOrderIdList" resultType="com.imyeyu.api.modules.gao.entity.GaoSalesOrderItem">
|
|
SELECT * FROM `gao_sales_order_item`
|
|
WHERE `sales_order_id` IN
|
|
<foreach collection="salesOrderIdList" item="salesOrderId" separator="," open="(" close=")">
|
|
#{salesOrderId}
|
|
</foreach>
|
|
AND `deleted_at` IS NULL
|
|
ORDER BY `sales_order_id`, `sort`, `created_at`
|
|
</select>
|
|
<select id="selectForUpdate" resultType="com.imyeyu.api.modules.gao.entity.GaoSalesOrderItem">
|
|
SELECT * FROM `gao_sales_order_item`
|
|
WHERE `id` = #{id} AND `deleted_at` IS NULL
|
|
FOR UPDATE
|
|
</select>
|
|
<update id="updateReservedBaseQuantity">
|
|
UPDATE `gao_sales_order_item`
|
|
SET `reserved_base_quantity` = `reserved_base_quantity` + #{delta}, `updated_at` = FLOOR(UNIX_TIMESTAMP(NOW(3)) * 1000)
|
|
WHERE `id` = #{id} AND `reserved_base_quantity` + #{delta} >= 0
|
|
AND `fulfilled_base_quantity` + `reserved_base_quantity` + #{delta} <= `base_quantity`
|
|
</update>
|
|
<update id="updateFulfilledBaseQuantity">
|
|
UPDATE `gao_sales_order_item`
|
|
SET `fulfilled_base_quantity` = `fulfilled_base_quantity` + #{delta}, `updated_at` = FLOOR(UNIX_TIMESTAMP(NOW(3)) * 1000)
|
|
WHERE `id` = #{id} AND `fulfilled_base_quantity` + #{delta} >= 0
|
|
AND `fulfilled_base_quantity` + #{delta} <= `base_quantity`
|
|
</update>
|
|
</mapper>
|