forked from kidgrow-microservices-platform

zhaoxiaohao
2020-05-22 f21c78ae0e3c410c6ba5be77277b5b491aca3af1
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
<?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.kidgrow.oprationcenter.mapper.ProductOrderDetailMapper">
    <!--定义查询列-->
    <sql id="Column_List">
       *
    </sql>
 
    <!--sql查询片段-->
    <sql id="where">
        <where>
            <!--查询条件自行添加-->
            is_del=0
            <if test="p.id != null and p.id !=''">
                and id = #{p.id}
            </if>
            <if test="p.orderId != null and p.orderId !=''">
                and order_id = #{p.orderId}
            </if>
            <if test="p.proId != null and p.proId !=''">
                and pro_id = #{p.proId}
            </if>
            <if test="p.proName != null and p.proName !=''">
                and pro_name = #{p.proName}
            </if>
            <if test="p.isShare != null and p.isShare !=''">
                and is_share = #{p.isShare}
            </if>
            <if test="p.isDel != null and p.isDel !=''">
                and is_del = #{p.isDel}
            </if>
            <if test="p.ailightCount != null and p.ailightCount !=''">
                and ailight_count = #{p.ailightCount}
            </if>
            <if test="p.recordCount != null and p.recordCount !=''">
                and record_count = #{p.recordCount}
            </if>
            <if test="p.proBegintime != null and p.proBegintime !=''">
                and pro_begintime = #{p.proBegintime}
            </if>
            <if test="p.proEndtime != null and p.proEndtime !=''">
                and pro_endtime = #{p.proEndtime}
            </if>
            <if test="p.enabled != null and p.enabled !=''">
                and enabled = #{p.enabled}
            </if>
            <if test="p.createUserId != null and p.createUserId !=''">
                and create_user_id = #{p.createUserId}
            </if>
            <if test="p.createUserName != null and p.createUserName !=''">
                and create_user_name = #{p.createUserName}
            </if>
            <if test="p.updateUserId != null and p.updateUserId !=''">
                and update_user_id = #{p.updateUserId}
            </if>
            <if test="p.updateTime != null and p.updateTime !=''">
                and update_time = #{p.updateTime}
            </if>
            <if test="p.updateUserName != null and p.updateUserName !=''">
                and update_user_name = #{p.updateUserName}
            </if>
            <if test="p.createTime != null and p.createTime !=''">
                and create_time = #{p.createTime}
            </if>
        </where>
    </sql>
 
    <!--定义根据-ProductOrderDetail当作查询条件返回对象-->
    <select id="findByObject" resultType="com.kidgrow.oprationcenter.model.ProductOrderDetail">
        select
        <include refid="Column_List"/>
        from product_order_detail
        <include refid="where"/>
        order by id desc
        limit 1
    </select>
 
    <!--定义根据-ProductOrderDetail当作查询条件返回对象集合-->
    <select id="findList" resultType="com.kidgrow.oprationcenter.model.ProductOrderDetail">
        select
        <include refid="Column_List"/>
        from product_order_detail
        <include refid="where"/>
        order by id desc
    </select>
    <!--sql查询片段-->
    <sql id="wherelimit">
        <where>
            <!--查询条件自行添加-->
            DE.is_del=0
            <if test="p.id != null and p.id !=''">
                and id = #{p.id}
            </if>
            <if test="p.proType != null and p.proType !=''">
                and pro_type = #{p.proType}
            </if>
            <if test="p.hospitalName != null and p.hospitalName !=''">
                and PRO.hospital_name like concat ('%',#{p.hospitalName},'%')
            </if>
            <if test="p.proName != null and p.proName !=''">
                and DE.pro_name like concat ('%',#{p.proName},'%')
            </if>
            <if test="p.createTime != null and p.createTime !='' and p.updateTime != null and p.updateTime !=''">
                and (DE.create_time between #{p.createTime} and #{p.updateTime})
            </if>
            <include refid="com.kidgrow.oprationcenter.mapper.SysProductMapper.Role_Organization"></include>
        </where>
    </sql>
    <!--查询产品的消费记录-->
    <select id="findAllList" resultType="com.kidgrow.oprationcenter.vo.ProductOrderJoinDetail">
        SELECT
        DE.id,
        DE.ailight_count,
        DE.order_id,
        DE.pro_name,
        DE.record_count,
        DE.is_share,
        DE.pro_begintime,
        DE.pro_endtime,
        DE.pro_id,
        DE.create_time,
        DE.is_del,
        DE.enabled,
        PRO.hospital_name,
        PRO.department_name,
        DE.pro_type
        FROM
        product_order_detail DE
        LEFT JOIN product_order PRO ON DE.order_id = PRO.id
        <include refid="wherelimit"/>
        order by DE.id desc
    </select>
    <select id="groupProductDetail" resultType="com.kidgrow.oprationcenter.vo.GroupProductDetail">
        select
        COUNT(DE.pro_id) pro_count,
        max(DE.pro_name) pro_name
        from product_order_detail AS DE
        <include refid="wherelimit"/>
        GROUP BY DE.pro_id
        order by pro_count desc
    </select>
    <select id="getTypeByUser" resultType="com.kidgrow.oprationcenter.vo.ProductOrderJoinDetail" parameterType="long">
        SELECT
        pod.*
        FROM
        `product_order` po
        INNER JOIN product_order_detail pod ON po.id = pod.order_id
        WHERE
        po.hospital_id = #{id}
        AND NOW() &gt;= pod.pro_begintime
        AND NOW() &lt;=pod.pro_endtime
        AND pod.enabled = 1
        AND pod.is_del = 0
        AND po.enabled = 1
        AND po.is_del = 0
        ORDER BY
        pod.pro_type desc,pod.pro_endtime desc
    </select>
</mapper>