|
|
@@ -22,10 +22,8 @@
|
|
|
FROM company_user cu
|
|
|
LEFT JOIN company_dept d ON cu.dept_id = d.dept_id AND d.del_flag = '0'
|
|
|
|
|
|
- -- 进粉统计(始终关联,内部按条件动态过滤)
|
|
|
LEFT JOIN (
|
|
|
- SELECT
|
|
|
- qu.company_user_id,
|
|
|
+ SELECT qu.company_user_id,
|
|
|
COUNT(DISTINCT ec.id) AS fans_count
|
|
|
FROM qw_user qu
|
|
|
INNER JOIN qw_external_contact ec ON ec.qw_user_id = qu.id
|
|
|
@@ -36,27 +34,21 @@
|
|
|
GROUP BY qu.company_user_id
|
|
|
) fc ON fc.company_user_id = cu.user_id
|
|
|
|
|
|
- -- 订单统计(始终关联,内部按条件动态过滤)
|
|
|
LEFT JOIN (
|
|
|
- SELECT
|
|
|
- log.company_user_id,
|
|
|
+ SELECT log.company_user_id,
|
|
|
SUM(o.pay_price) AS total_amount,
|
|
|
COUNT(DISTINCT o.order_code) AS order_count,
|
|
|
COUNT(DISTINCT o.user_id) AS buyer_count
|
|
|
FROM fs_store_order o
|
|
|
INNER JOIN (
|
|
|
- SELECT DISTINCT
|
|
|
- package_order_code,
|
|
|
- company_user_id,
|
|
|
- user_id
|
|
|
+ SELECT DISTINCT package_order_code, company_user_id, user_id
|
|
|
FROM fs_user_information_collection_personal_log
|
|
|
WHERE 1 = 1
|
|
|
<if test="param.startOrderTime != null and param.endOrderTime != null">
|
|
|
AND order_time BETWEEN #{param.startOrderTime} AND #{param.endOrderTime}
|
|
|
</if>
|
|
|
) log ON o.order_code = log.package_order_code
|
|
|
- WHERE o.is_pay = 1
|
|
|
- AND o.refund_status = 0
|
|
|
+ WHERE o.is_pay = 1 AND o.refund_status = 0
|
|
|
GROUP BY log.company_user_id
|
|
|
) oc ON oc.company_user_id = cu.user_id
|
|
|
|
|
|
@@ -78,6 +70,38 @@
|
|
|
AND cu.nick_name LIKE CONCAT('%', #{param.companyUserNickName}, '%')
|
|
|
</if>
|
|
|
GROUP BY cu.user_id, cu.nick_name, d.dept_name
|
|
|
- ORDER BY cu.user_id
|
|
|
+ -- 动态排序 ↓
|
|
|
+ <if test="param.orderByColumn != null and param.orderByColumn != ''">
|
|
|
+ ORDER BY ${param.orderByColumn} ${param.isAsc}
|
|
|
+ </if>
|
|
|
+ <if test="param.orderByColumn == null or param.orderByColumn == ''">
|
|
|
+ ORDER BY cu.user_id
|
|
|
+ </if>
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <select id="getSalesUserDetailCID" resultType="com.fs.company.vo.SalesUserDetailCIDVO">
|
|
|
+ SELECT
|
|
|
+ log.user_id AS userId,
|
|
|
+ fu.nickname AS nickName,
|
|
|
+ COUNT(DISTINCT o.order_code) AS orderCount,
|
|
|
+ SUM(o.pay_price) AS totalAmount
|
|
|
+ FROM (
|
|
|
+ SELECT DISTINCT user_id, package_order_code
|
|
|
+ FROM fs_user_information_collection_personal_log
|
|
|
+ WHERE company_user_id = #{param.companyUserId}
|
|
|
+ <if test="param.startOrderTime != null and param.endOrderTime != null">
|
|
|
+ AND order_time BETWEEN #{param.startOrderTime} AND #{param.endOrderTime}
|
|
|
+ </if>
|
|
|
+ ) log
|
|
|
+ INNER JOIN fs_store_order o ON o.order_code = log.package_order_code
|
|
|
+ AND o.is_pay = 1 AND o.refund_status = 0
|
|
|
+ LEFT JOIN fs_user fu ON fu.user_id = log.user_id
|
|
|
+ GROUP BY log.user_id, fu.nickname
|
|
|
+ <if test="param.orderByColumn != null and param.orderByColumn != ''">
|
|
|
+ ORDER BY ${param.orderByColumn} ${param.isAsc}
|
|
|
+ </if>
|
|
|
+ <if test="param.orderByColumn == null or param.orderByColumn == ''">
|
|
|
+ ORDER BY totalAmount DESC
|
|
|
+ </if>
|
|
|
</select>
|
|
|
</mapper>
|