From b7265cdd6f3e1fbb0d428c27e5b5e29e34d56953 Mon Sep 17 00:00:00 2001 From: zhaoxiaohao <279049017@qq.com> Date: Tue, 17 Nov 2020 17:55:21 +0800 Subject: [PATCH] Merge branch 'dev' --- kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ProductOrderDetailMapper.xml | 281 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 278 insertions(+), 3 deletions(-) diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ProductOrderDetailMapper.xml b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ProductOrderDetailMapper.xml index 6a0222c..c419e42 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ProductOrderDetailMapper.xml +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ProductOrderDetailMapper.xml @@ -4,14 +4,14 @@ <mapper namespace="com.kidgrow.oprationcenter.mapper.ProductOrderDetailMapper"> <!--定义查询列--> <sql id="Column_List"> - * + DISTINCT * </sql> <!--sql查询片段--> <sql id="where"> <where> <!--查询条件自行添加--> - p.is_del=0 + is_del=0 <if test="p.id != null and p.id !=''"> and id = #{p.id} </if> @@ -65,7 +65,6 @@ </if> </where> </sql> - <!--定义根据-ProductOrderDetail当作查询条件返回对象--> <select id="findByObject" resultType="com.kidgrow.oprationcenter.model.ProductOrderDetail"> select @@ -73,6 +72,7 @@ from product_order_detail <include refid="where"/> order by id desc + limit 1 </select> <!--定义根据-ProductOrderDetail当作查询条件返回对象集合--> @@ -83,4 +83,279 @@ <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 >= #{p.startTime} + </if> + <if test="p.endTime!= null and p.endTime !=''"> + and DE.create_time <= #{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() >= pod.pro_begintime + AND NOW() <=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 <=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.pro_begintime 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 sys_product 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.datatype==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.datatype==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> + <select id="proCountChart" resultType="com.kidgrow.oprationcenter.vo.OrderChartVo"> + SELECT + count( pro_id ) ccount, + pro_name units +FROM + product_order_record +WHERE + is_del = 0 + AND enabled = 1 + AND pro_id IN ( SELECT id FROM sys_product WHERE is_del = 0 AND enabled = 1 ) +GROUP BY + pro_id, + pro_name +ORDER BY + ccount DESC + LIMIT 10 + </select> + <select id="departmentProductDetail" resultType="com.kidgrow.oprationcenter.model.ProductOrderDetail"> + SELECT + * +FROM + product_order_detail +WHERE + order_id IN ( SELECT id FROM product_order WHERE hospital_id = #{hospitalId} AND department_id = #{departmentId} AND is_del = 0 AND enabled = 1 ) + AND is_del = 0 + AND enabled = 1 +ORDER BY id DESC + </select> + <select id="getUserdProduct" resultType="int"> + SELECT + sum(total) + FROM + ( + SELECT + count(*) total + FROM + `product_order` order_order + LEFT JOIN product_order_record record ON order_order.id = record.order_id + WHERE + order_order.hospital_id = #{hospitalId} + AND order_order.department_id = #{departmentId} + and record.pro_id!=1000000000000000000 + AND order_order.is_del = 0 + AND order_order.enabled = 1 + AND record.is_del = 0 + AND record.enabled = 1 + AND record.pro_endtime>now() + UNION ALL + SELECT + count(*) total + FROM + `product_order` order_order + LEFT JOIN product_order_record record ON order_order.id = record.order_id + WHERE + order_order.hospital_id = #{hospitalId} + AND record.is_share = 1 + and record.pro_id!=1000000000000000000 + AND order_order.is_del = 0 + AND order_order.enabled = 1 + AND record.is_del = 0 + AND record.enabled = 1 + AND record.pro_endtime>now() + ) cc + </select> + <select id="productEndList" resultType="com.kidgrow.oprationcenter.vo.ProductEndVo"> + SELECT + id, + pro_id, + pro_begintime beginTime, + MIN( T2.pro_endtime ) endTime, + MIN( T2.ailight_count ) ailight_count, + pro_type, + pro_name, + T2.hospital_id, + hospital_name, + T2.department_id, + department_name + FROM + ( + SELECT + details.id id, + details.pro_id, + details.pro_begintime pro_begintime, + details.pro_endtime pro_endtime, + details.ailight_count, + details.pro_name pro_name, + details.pro_type pro_type, + orders.hospital_id hospital_id, + orders.hospital_name hospital_name, + orders.department_id department_id, + orders.department_name department_name + FROM + product_order_detail details + LEFT JOIN product_order orders ON orders.id = details.order_id + WHERE + details.is_del = 0 + AND details.enabled = 1 + AND orders.is_del = 0 + AND orders.enabled = 1 + AND pro_endtime BETWEEN now() AND DATE_ADD(NOW(), INTERVAL ${monthPar} MONTH) + AND ailight_count BETWEEN 1 AND ${aiCountPar} + AND pro_type=1 + ORDER BY + ailight_count, + pro_endtime + ) AS T2 + GROUP BY + department_id, + hospital_id, + department_name, + hospital_name, + id, + pro_id, + pro_type, + pro_name, + ailight_count, + pro_endtime, + pro_begintime + ORDER BY + ailight_count, + pro_endtime, + department_id + </select> </mapper> \ No newline at end of file -- Gitblit v1.8.0