From c49b95fc3576f9a5dad5bcaa6874157d5091f6e0 Mon Sep 17 00:00:00 2001
From: luliqiang <kidgrow>
Date: Thu, 27 Aug 2020 09:19:27 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev

---
 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ProductOrderDetailMapper.xml |  264 ++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 224 insertions(+), 40 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 c85a2ae..62b425d 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,7 +4,7 @@
 <mapper namespace="com.kidgrow.oprationcenter.mapper.ProductOrderDetailMapper">
     <!--定义查询列-->
     <sql id="Column_List">
-	   *
+	   DISTINCT *
 	</sql>
 
     <!--sql查询片段-->
@@ -12,72 +12,256 @@
         <where>
             <!--查询条件自行添加-->
             is_del=0
-                                    <if test="id != null and id !=''">
-                and  id =  #{id}
+            <if test="p.id != null and p.id !=''">
+                and id = #{p.id}
             </if>
-                                                <if test="orderId != null and orderId !=''">
-                and  order_id =  #{orderId}
+            <if test="p.orderId != null and p.orderId !=''">
+                and order_id = #{p.orderId}
             </if>
-                                                <if test="proId != null and proId !=''">
-                and  pro_id =  #{proId}
+            <if test="p.proId != null and p.proId !=''">
+                and pro_id = #{p.proId}
             </if>
-                                                <if test="proName != null and proName !=''">
-                and  pro_name =  #{proName}
+            <if test="p.proName != null and p.proName !=''">
+                and pro_name = #{p.proName}
             </if>
-                                                <if test="isShare != null and isShare !=''">
-                and  is_share =  #{isShare}
+            <if test="p.isShare != null and p.isShare !=''">
+                and is_share = #{p.isShare}
             </if>
-                                                <if test="isDel != null and isDel !=''">
-                and  is_del =  #{isDel}
+            <if test="p.isDel != null and p.isDel !=''">
+                and is_del = #{p.isDel}
             </if>
-                                                <if test="ailightCount != null and ailightCount !=''">
-                and  ailight_count =  #{ailightCount}
+            <if test="p.ailightCount != null and p.ailightCount !=''">
+                and ailight_count = #{p.ailightCount}
             </if>
-                                                <if test="recordCount != null and recordCount !=''">
-                and  record_count =  #{recordCount}
+            <if test="p.recordCount != null and p.recordCount !=''">
+                and record_count = #{p.recordCount}
             </if>
-                                                <if test="proBegintime != null and proBegintime !=''">
-                and  pro_begintime =  #{proBegintime}
+            <if test="p.proBegintime != null and p.proBegintime !=''">
+                and pro_begintime = #{p.proBegintime}
             </if>
-                                                <if test="proEndtime != null and proEndtime !=''">
-                and  pro_endtime =  #{proEndtime}
+            <if test="p.proEndtime != null and p.proEndtime !=''">
+                and pro_endtime = #{p.proEndtime}
             </if>
-                                                <if test="enabled != null and enabled !=''">
-                and  enabled =  #{enabled}
+            <if test="p.enabled != null and p.enabled !=''">
+                and enabled = #{p.enabled}
             </if>
-                                                <if test="createUserId != null and createUserId !=''">
-                and  create_user_id =  #{createUserId}
+            <if test="p.createUserId != null and p.createUserId !=''">
+                and create_user_id = #{p.createUserId}
             </if>
-                                                <if test="createUserName != null and createUserName !=''">
-                and  create_user_name =  #{createUserName}
+            <if test="p.createUserName != null and p.createUserName !=''">
+                and create_user_name = #{p.createUserName}
             </if>
-                                                <if test="updateUserId != null and updateUserId !=''">
-                and  update_user_id =  #{updateUserId}
+            <if test="p.updateUserId != null and p.updateUserId !=''">
+                and update_user_id = #{p.updateUserId}
             </if>
-                                                <if test="updateTime != null and updateTime !=''">
-                and  update_time =  #{updateTime}
+            <if test="p.updateTime != null and p.updateTime !=''">
+                and update_time = #{p.updateTime}
             </if>
-                                                <if test="updateUserName != null and updateUserName !=''">
-                and  update_user_name =  #{updateUserName}
+            <if test="p.updateUserName != null and p.updateUserName !=''">
+                and update_user_name = #{p.updateUserName}
             </if>
-                                                <if test="createTime != null and createTime !=''">
-                and  create_time =  #{createTime}
+            <if test="p.createTime != null and p.createTime !=''">
+                and create_time = #{p.createTime}
             </if>
-                                </where>
+        </where>
     </sql>
-
     <!--定义根据-ProductOrderDetail当作查询条件返回对象-->
-    <select id="findByObject"  resultType="com.kidgrow.oprationcenter.model.ProductOrderDetail">
-        select <include refid="Column_List"/>
+    <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"/>
+        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.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
+	create_time DESC
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0