xin
2025-09-27 db091e95d9e4c83241fb25f14bd9f36b40e0de1e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?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.oying.modules.pc.product.mapper.ProductStockMapper">
 
    <!-- 更新库存 -->
    <update id="updateStock">
        UPDATE pc_product SET
            stock_quantity = #{quantity},
            version = version + 1
        WHERE
            product_id = #{productId} AND version = #{version}
    </update>
 
    <!-- 批量更新库存 -->
    <update id="batchUpdateStock" parameterType="list">
        <foreach collection="list" item="item" index="index" separator=";">
            UPDATE products
            SET stock_quantity = #{item.quantity}, version = version + 1
            WHERE
            product_id = #{item.productId} AND version = #{item.version}
        </foreach>
    </update>
 
    <!-- 增加库存 -->
    <update id="increaseStock">
        UPDATE pc_product SET
            stock_quantity = stock_quantity + #{amount},
            version = version + 1
        WHERE
            product_id = #{productId} AND version = #{version}
    </update>
 
    <!-- 减少库存 -->
    <update id="decreaseStock">
        UPDATE pc_product SET
            stock_quantity = stock_quantity - #{amount},
            version = version + 1
        WHERE
            product_id = #{productId} AND version = #{version}
    </update>
 
    <!-- 查询最低库存商品 -->
    <select id="selectLowStockProducts">
        SELECT * FROM products
        WHERE stock_quantity <![CDATA[ <= ]]> #{threshold}
        ORDER BY stock_quantity ASC
    </select>
 
</mapper>