liyong
6 天以前 1c518e10a50050d383e714b581c94dea58ec4d67
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
<?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.account.mapper.AccountStatementMapper">
 
    <select id="listPageAccountStatement" resultType="com.ruoyi.account.bean.vo.StatementAccountVo">
    SELECT lj.*,
        <choose>
        <when test="req.accountType == 1">
            c.customer_name as customerName
        </when>
        <when test="req.accountType == 2">
            s.supplier_name as customerName
        </when>
        <otherwise>
            '' as customerName
        </otherwise>
    </choose>
    FROM account_statement AS lj
            <!-- 动态 LEFT JOIN -->
            <choose>
        <when test="req.accountType == 1">
            LEFT JOIN customer AS c
                ON lj.customer_id = c.id
        </when>
        <when test="req.accountType == 2">
            LEFT JOIN supplier_manage AS s
                ON lj.customer_id = s.id
        </when>
    </choose>
    WHERE 1=1
            <if test="req.accountType != null">
                 AND lj.account_type = #{req.accountType}
            </if>
            <if test="req.customerId != null">
                 AND lj.customer_id = #{req.customerId}
            </if>
            <if test="req.startDate != null and req.endDate != null">
                  AND DATE_FORMAT(CONCAT(lj.statement_month, '-01'), '%Y-%m-%d')
                    BETWEEN #{req.startDate} AND #{req.endDate}
            </if>
    ORDER BY lj.statement_month DESC
    </select>
</mapper>