forked from kidgrow-microservices-platform

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
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
<?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">
       DISTINCT *
    </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 DE.pro_type = #{p.proType}
            </if>
            <if test="p.enabled != null and p.enabled !=''">
                and DE.enabled = #{p.enabled}
            </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>
            <if test="p.startTime!= null and p.startTime !=''">
                and DE.create_time &gt;= #{p.startTime}
            </if>
            <if test="p.endTime!= null and p.endTime !=''">
                and DE.create_time &lt;= #{p.endTime}
            </if>
            <include refid="com.kidgrow.oprationcenter.mapper.SysProductMapper.Role_Organization"></include>
        </where>
    </sql>
    <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>
    <!--sql查询片段-->
    <sql id="whereforall">
        <where>
            <!--查询条件自行添加-->
            DE.is_del=0 and DE.ailight_count>0 and DE.pro_begintime &lt;=now() and DE.pro_endtime >=now() and
            DE.enabled=1
            <if test="p.hospitalId != null and p.hospitalId !=''">
                and PRO.hospital_id = #{p.hospitalId}
            </if>
        </where>
    </sql>
    <!--查询产品的购买记录-->
    <select id="findAllList" resultType="com.kidgrow.oprationcenter.vo.ProductOrderJoinDetail">
        SELECT
        DE.id,
        DE.ailight_count,
        DE.record_count,
        DE.is_share,
        DE.pro_begintime,
        DE.pro_endtime,
        PRO.hospital_Id,
        PRO.department_id,
        DE.pro_type
        FROM
        product_order_detail DE
        LEFT JOIN product_order PRO ON DE.order_id = PRO.id
        <include refid="whereforall"/>
        order by DE.pro_endtime asc,DE.id asc
    </select>
 
    <select id="getEnabledCount" resultType="int" parameterType="long">
        SELECT
    COUNT(*)
FROM
    product_order_record
WHERE
pro_type=0 AND is_del=0 AND enabled=1 AND
    order_id IN (
    SELECT
        id
    FROM
        product_order
WHERE
    department_id = #{departmentId})
    </select>
    <select id="oprationChart" resultType="int" parameterType="int">
        <if test="datatype==0">
            -- 试用审核
            SELECT count(*) FROM product_order_detail WHERE enabled=0 AND is_del=0 and pro_type=0
        </if>
        <if test="datatype==1">
            -- 套餐总量
            SELECT count(*) FROM product_order WHERE is_del=0 and enabled=1
        </if>
        <if test="datatype==2">
            -- 未处理用户反馈
            SELECT count(*) FROM sys_feedback WHERE is_del=0 and enabled=0
        </if>
        <if test="datatype==3">
            -- 未处理数据需求
            SELECT count(*) FROM data_need WHERE is_del=0 and enabled=0
        </if>
    </select>
 
    <select id="productOrderChart" resultType="com.kidgrow.oprationcenter.vo.OrderChartVo">
        <if test="p.units==1">
            -- 按年统计
            SELECT COUNT(t.id) ccount,t.units FROM
            (select id,DATE_FORMAT(contract_time,'%Y/%m') units,contract_time from product_order
            <include refid="whereorderchart"/>
            ) AS t
            GROUP BY t.units
        </if>
        <if test="p.units==2">
            -- 按月统计
            SELECT COUNT(t.id) ccount,t.units FROM
            (select id,DATE_FORMAT(contract_time,'%Y') units,contract_time from product_order
            <include refid="whereorderchart"/>
            ) AS t
            GROUP BY t.units
        </if>
    </select>
    <sql id="whereorderchart">
        <where>
            <!--查询条件自行添加-->
            is_del=0 and enabled=1
            <if test="p.startTime != null and p.endTime !=''">
                and contract_time between #{p.startTime} and #{p.endTime}
            </if>
        </where>
    </sql>
</mapper>