1
phpcjl
2024-12-18 a0faedd9ffe5f8f3ee8623dbf2d1c178799b3930
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
50
51
52
53
54
55
56
57
58
59
60
61
62
<?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.ruoyi.other.mapper.ShopBalanceStatementMapper">
 
    <select id="findLatestChangeByType" resultType="com.ruoyi.other.api.domain.ShopBalanceStatement">
        SELECT
            id,
            shop_id,
            type,
            historical_balance,
            variable_amount,
            balance,
            create_time,
            create_user_id,
            object_id
        FROM
            (
            SELECT
                id,
                shop_id,
                type,
                historical_balance,
                variable_amount,
                balance,
                create_time,
                create_user_id,
                object_id,
                ROW_NUMBER() OVER ( PARTITION BY type, create_user_id ORDER BY create_time DESC ) AS rn
            FROM
                t_shop_balance_statement
            ) AS subquery
        WHERE
            rn = 1
    </select>
    <select id="queryShopBalanceStatementPage" resultType="com.ruoyi.other.api.domain.ShopBalanceStatement">
        SELECT
            tsbs.*,
            ts.`name` shopName,
            ts.shop_manager shopManagerName,
            ts.phone
        FROM
            t_shop_balance_statement tsbs
                INNER JOIN t_shop ts ON ts.id = tsbs.shop_id AND ts.del_flag = 0
        <where>
            <if test="bs.shopName != null and bs.shopName != ''">
                AND ts.`name` like concat('%', #{bs.shopName}, '%')
            </if>
            <if test="bs.shopManagerName != null and bs.shopManagerName != ''">
                AND ts.shop_manager like concat('%', #{bs.shopManagerName}, '%')
            </if>
            <if test="bs.phone != null and bs.phone != ''">
                AND ts.phone like concat('%', #{bs.phone}, '%')
            </if>
            <if test="bs.type != null">
                AND tsbs.type = #{bs.type}
            </if>
            <if test="bs.startTime != null and bs.endTime != null">
                AND tsbs.create_time BETWEEN #{bs.startTime} AND #{bs.endTime}
            </if>
        </where>
    </select>
</mapper>