guohongjin
2024-05-01 1901fceb6ddaa56a57f3131191454554c3e77e68
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
<?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="cn.stylefeng.guns.modular.business.mapper.CourseOrderMapper">
 
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="cn.stylefeng.guns.modular.business.entity.CourseOrder">
        <id column="id" property="id" />
        <result column="course_id" property="courseId" />
        <result column="user_id" property="userId" />
        <result column="course_user_id" property="courseUserId" />
        <result column="tutoring_user_id" property="tutoringUserId" />
        <result column="phone" property="phone" />
        <result column="effective_begin_time" property="effectiveBeginTime" />
        <result column="effective_end_time" property="effectiveEndTime" />
        <result column="total_time" property="totalTime" />
        <result column="learned_time" property="learnedTime" />
        <result column="status_flag" property="statusFlag" />
        <result column="is_delete" property="isDelete" />
        <result column="create_time" property="createTime" />
        <result column="create_user" property="createUser" />
        <result column="order_no" property="orderNo" />
        <result column="order_amount" property="orderAmount" />
        <result column="pay_amount" property="payAmount" />
        <result column="pay_time" property="payTime" />
        <result column="pay_type" property="payType" />
        <result column="transaction_no" property="transactionNo" />
        <result column="refund_amount" property="refundAmount" />
        <result column="refund_time" property="refundTime" />
        <result column="course_json" property="courseJson" />
        <result column="update_user" property="updateUser"/>
        <result column="update_time" property="updateTime"/>
    </resultMap>
    <resultMap id="BaseDtoMap" type="cn.stylefeng.guns.modular.business.dto.CourseOrderResponseDTO">
        <result column="tutoringUserName" property="tutoringUserName"/>
        <result column="userName" property="userName"/>
        <result column="courseName" property="courseName"/>
        <result column="courseUserName" property="courseUserName"/>
        <result column="listingStatus" property="listingStatus"/>
    </resultMap>
 
    <!-- 通用查询结果列 -->
    <sql id="Base_Column_List">
        id, course_id, user_id, course_user_id, tutoring_user_id, phone, effective_begin_time, effective_end_time, total_time, learned_time, status_flag, is_delete, create_time, create_user, order_no, order_amount, pay_amount, pay_time, pay_type, transaction_no, refund_amount, refund_time, course_json
    </sql>
 
    <select id="findCounseOrderPage" resultMap="BaseDtoMap">
        SELECT
        tco.*,toc1.nick_name userName,toc2.nick_name courseUserName,toc3.nick_name tutoringUserName,tc.course_name courseName,tc.listing_status listingStatus
        FROM t_course_order tco
        LEFT JOIN toc_customer toc1 ON toc1.customer_id = tco.user_id
        LEFT JOIN toc_customer toc2 ON toc2.customer_id = tco.course_user_id
        LEFT JOIN toc_customer toc3 ON toc3.customer_id = tco.tutoring_user_id
        LEFT JOIN t_course tc ON  tc.id = tco.course_id
        <where>
            AND tco.is_delete = 0
 
            <if test="param.userName != null and param.userName != ''">
                AND  toc1.nick_name LIKE CONCAT('%',#{param.userName},'%')
            </if>
            <if test="param.courseUserName != null and param.courseUserName != ''">
                AND  toc2.nick_name LIKE CONCAT('%',#{param.courseUserName},'%')
            </if>
            <if test="param.tutoringUserName != null and param.tutoringUserName != ''">
                AND  toc3.nick_name LIKE CONCAT('%',#{param.tutoringUserName},'%')
            </if>
            <if test="param.phone != null and param.phone != ''">
 
                AND tco.phone LIKE CONCAT('%',#{param.phone},'%')
            </if>
            <if test="param.statusFlag != null">
                AND tco.status_flag =  #{param.statusFlag}
            </if>
            <if test="param.userId != null">
                AND tco.user_id =  #{param.userId}
            </if>
            <if test="param.courseName != null and param.courseName != ''">
 
                AND tc.course_name  LIKE CONCAT('%',#{param.courseName},'%')
            </if>
            <if test="param.showState != null">
              <choose>
                  <when test="param.showState == 0">
                      AND tco.status_flag = 0
                  </when>
                  <when test="param.showState == 2">
                      AND tco.status_flag = 1 AND NOW() &lt; tco.effective_end_time
                  </when>
                  <when test="param.showState == 1">
                      AND tco.status_flag = 2
                  </when>
                  <otherwise>
                      AND tco.status_flag =  #{param.showState}
                  </otherwise>
              </choose>
            </if>
            <if test="param.statuFlags != null and param.statuFlags != ''">
                AND tco.status_flag IN (${param.statuFlags})
            </if>
        </where>
 
        ORDER BY tco.create_time DESC
 
    </select>
 
</mapper>