|
|
@@ -337,6 +337,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|
|
<if test="endEndTime != null">
|
|
|
AND po.finish_time <= #{endEndTime}
|
|
|
</if>
|
|
|
+ <!-- 训练营条件 -->
|
|
|
+ <if test="trainingCampId != null">
|
|
|
+ AND EXISTS (
|
|
|
+ SELECT 1 FROM fs_user_company_user ucu
|
|
|
+ JOIN fs_user_course_training_camp camp ON ucu.company_user_id = camp.user_id
|
|
|
+ WHERE ucu.company_id = po.company_id
|
|
|
+ AND camp.training_camp_id = #{trainingCampId}
|
|
|
+ )
|
|
|
+ </if>
|
|
|
</where>
|
|
|
GROUP BY po.company_id
|
|
|
)
|
|
|
@@ -400,31 +409,55 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|
|
FROM company c
|
|
|
LEFT JOIN (
|
|
|
-- 合并三个查询,只扫描一次
|
|
|
- SELECT company_id, 'inquiry' AS order_type, COUNT(*) AS order_count, COALESCE(SUM(pay_money), 0) AS order_amount
|
|
|
- FROM fs_inquiry_order
|
|
|
- WHERE status = 3
|
|
|
+ SELECT inquiry.company_id, 'inquiry' AS order_type, COUNT(*) AS order_count, COALESCE(SUM(pay_money), 0) AS order_amount
|
|
|
+ FROM fs_inquiry_order inquiry
|
|
|
+ WHERE inquiry.status = 3
|
|
|
<if test="stTime != null and endEndTime != null">
|
|
|
- AND create_time BETWEEN #{stTime} AND #{endEndTime}
|
|
|
+ AND inquiry.create_time BETWEEN #{stTime} AND #{endEndTime}
|
|
|
</if>
|
|
|
- GROUP BY company_id
|
|
|
+ <if test="trainingCampId != null">
|
|
|
+ AND EXISTS (
|
|
|
+ SELECT 1 FROM fs_user_company_user ucu
|
|
|
+ JOIN fs_user_course_training_camp camp ON ucu.company_user_id = camp.user_id
|
|
|
+ WHERE ucu.company_id = inquiry.company_id
|
|
|
+ AND camp.training_camp_id = #{trainingCampId}
|
|
|
+ )
|
|
|
+ </if>
|
|
|
+ GROUP BY inquiry.company_id
|
|
|
UNION ALL
|
|
|
- SELECT company_id, 'integral' AS order_type, COUNT(*) AS order_count, COALESCE(SUM(pay_money), 0) AS order_amount
|
|
|
- FROM fs_integral_order
|
|
|
- WHERE status = 3 AND pay_money IS NOT NULL
|
|
|
+ SELECT integral.company_id, 'integral' AS order_type, COUNT(*) AS order_count, COALESCE(SUM(pay_money), 0) AS order_amount
|
|
|
+ FROM fs_integral_order integral
|
|
|
+ WHERE integral.status = 3 AND pay_money IS NOT NULL
|
|
|
<if test="stTime != null and endEndTime != null">
|
|
|
- AND create_time BETWEEN #{stTime} AND #{endEndTime}
|
|
|
+ AND integral.create_time BETWEEN #{stTime} AND #{endEndTime}
|
|
|
</if>
|
|
|
- GROUP BY company_id
|
|
|
+ <if test="trainingCampId != null">
|
|
|
+ AND EXISTS (
|
|
|
+ SELECT 1 FROM fs_user_company_user ucu
|
|
|
+ JOIN fs_user_course_training_camp camp ON ucu.company_user_id = camp.user_id
|
|
|
+ WHERE ucu.company_id = integral.company_id
|
|
|
+ AND camp.training_camp_id = #{trainingCampId}
|
|
|
+ )
|
|
|
+ </if>
|
|
|
+ GROUP BY integral.company_id
|
|
|
|
|
|
UNION ALL
|
|
|
|
|
|
- SELECT company_id, 'package' AS order_type, COUNT(*) AS order_count, COALESCE(SUM(pay_money), 0) AS order_amount
|
|
|
- FROM fs_package_order
|
|
|
- WHERE status = 3
|
|
|
+ SELECT package.company_id, 'package' AS order_type, COUNT(*) AS order_count, COALESCE(SUM(pay_money), 0) AS order_amount
|
|
|
+ FROM fs_package_order package
|
|
|
+ WHERE package.status = 3
|
|
|
<if test="stTime != null and endEndTime != null">
|
|
|
- AND create_time BETWEEN #{stTime} AND #{endEndTime}
|
|
|
+ AND package.create_time BETWEEN #{stTime} AND #{endEndTime}
|
|
|
</if>
|
|
|
- GROUP BY company_id
|
|
|
+ <if test="trainingCampId != null">
|
|
|
+ AND EXISTS (
|
|
|
+ SELECT 1 FROM fs_user_company_user ucu
|
|
|
+ JOIN fs_user_course_training_camp camp ON ucu.company_user_id = camp.user_id
|
|
|
+ WHERE ucu.company_id = package.company_id
|
|
|
+ AND camp.training_camp_id = #{trainingCampId}
|
|
|
+ )
|
|
|
+ </if>
|
|
|
+ GROUP BY package.company_id
|
|
|
) AS all_orders ON c.company_id = all_orders.company_id
|
|
|
WHERE 1=1
|
|
|
<if test="companyId != null and companyId != ''">
|
|
|
@@ -446,39 +479,80 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|
|
FROM company_dept d
|
|
|
LEFT JOIN company c ON d.company_id = c.company_id
|
|
|
LEFT JOIN (
|
|
|
- -- 合并三个查询,只扫描一次
|
|
|
- SELECT company_id, 'inquiry' AS order_type, COUNT(*) AS order_count, COALESCE(SUM(pay_money), 0) AS order_amount
|
|
|
+ <!-- 问诊订单 -->
|
|
|
+ SELECT
|
|
|
+ company_id,
|
|
|
+ 'inquiry' AS order_type,
|
|
|
+ COUNT(*) AS order_count,
|
|
|
+ COALESCE(SUM(pay_money), 0) AS order_amount
|
|
|
FROM fs_inquiry_order
|
|
|
WHERE status = 3
|
|
|
<if test="stTime != null and endEndTime != null">
|
|
|
AND create_time BETWEEN #{stTime} AND #{endEndTime}
|
|
|
</if>
|
|
|
+ <if test="trainingCampId != null">
|
|
|
+ AND EXISTS (
|
|
|
+ SELECT 1 FROM fs_user_company_user ucu
|
|
|
+ JOIN fs_user_course_training_camp camp ON ucu.company_user_id = camp.user_id
|
|
|
+ WHERE ucu.company_id = fs_inquiry_order.company_id
|
|
|
+ AND camp.training_camp_id = #{trainingCampId}
|
|
|
+ )
|
|
|
+ </if>
|
|
|
GROUP BY company_id
|
|
|
|
|
|
UNION ALL
|
|
|
|
|
|
- SELECT company_id, 'integral' AS order_type, COUNT(*) AS order_count, COALESCE(SUM(pay_money), 0) AS order_amount
|
|
|
+ <!-- 积分订单 -->
|
|
|
+ SELECT
|
|
|
+ company_id,
|
|
|
+ 'integral' AS order_type,
|
|
|
+ COUNT(*) AS order_count,
|
|
|
+ COALESCE(SUM(pay_money), 0) AS order_amount
|
|
|
FROM fs_integral_order
|
|
|
WHERE status = 3 AND pay_money IS NOT NULL
|
|
|
<if test="stTime != null and endEndTime != null">
|
|
|
AND create_time BETWEEN #{stTime} AND #{endEndTime}
|
|
|
</if>
|
|
|
+ <if test="trainingCampId != null">
|
|
|
+ AND EXISTS (
|
|
|
+ SELECT 1 FROM fs_user_company_user ucu
|
|
|
+ JOIN fs_user_course_training_camp camp ON ucu.company_user_id = camp.user_id
|
|
|
+ WHERE ucu.company_id = fs_integral_order.company_id
|
|
|
+ AND camp.training_camp_id = #{trainingCampId}
|
|
|
+ )
|
|
|
+ </if>
|
|
|
GROUP BY company_id
|
|
|
|
|
|
UNION ALL
|
|
|
|
|
|
- SELECT company_id, 'package' AS order_type, COUNT(*) AS order_count, COALESCE(SUM(pay_money), 0) AS order_amount
|
|
|
+ <!-- 套餐订单 -->
|
|
|
+ SELECT
|
|
|
+ company_id,
|
|
|
+ 'package' AS order_type,
|
|
|
+ COUNT(*) AS order_count,
|
|
|
+ COALESCE(SUM(pay_money), 0) AS order_amount
|
|
|
FROM fs_package_order
|
|
|
WHERE status = 3
|
|
|
<if test="stTime != null and endEndTime != null">
|
|
|
AND create_time BETWEEN #{stTime} AND #{endEndTime}
|
|
|
</if>
|
|
|
+ <if test="trainingCampId != null">
|
|
|
+ AND EXISTS (
|
|
|
+ SELECT 1 FROM fs_user_company_user ucu
|
|
|
+ JOIN fs_user_course_training_camp camp ON ucu.company_user_id = camp.user_id
|
|
|
+ WHERE ucu.company_id = fs_package_order.company_id
|
|
|
+ AND camp.training_camp_id = #{trainingCampId}
|
|
|
+ )
|
|
|
+ </if>
|
|
|
GROUP BY company_id
|
|
|
) AS all_orders ON c.company_id = all_orders.company_id
|
|
|
WHERE 1=1
|
|
|
<if test="deptId != null and deptId != ''">
|
|
|
AND d.dept_id = #{deptId}
|
|
|
</if>
|
|
|
+ <if test="companyId != null">
|
|
|
+ AND d.company_id = #{companyId}
|
|
|
+ </if>
|
|
|
GROUP BY d.dept_id, d.dept_name
|
|
|
HAVING inquiryOrderCount > 0 OR integralOrderCount > 0 OR packageOrderCount > 0
|
|
|
ORDER BY inquiryOrderCount DESC, integralOrderCount DESC, packageOrderCount DESC
|