<?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="cn.iocoder.yudao.module.crm.dal.mysql.crmrecord.CrmRecordMapper">

    <!--
        一般情况下，尽可能使用 Mapper 进行 CRUD 增删改查即可。
        无法满足的场景，例如说多表关联查询，才使用 XML 编写 SQL。
        代码生成器暂时只生成 Mapper XML 文件本身，更多推荐 MybatisX 快速开发插件来生成查询。
        文档可见：https://www.yixiang.co/MyBatis/x-plugins/
     -->

    <select id="selectStatistics" resultType="cn.iocoder.yudao.module.crm.controller.admin.crmrecord.vo.RecordStatisticsRespVO">
        SELECT
        b.user_id AS creator,
        COUNT( a.id ) AS count,
        SUM( CASE WHEN a.types = 'business' THEN 1 ELSE 0 END ) AS businessCount,
        SUM( CASE WHEN a.types = 'customer' THEN 1 ELSE 0 END ) AS customerCount,
        SUM( CASE WHEN a.types = 'clues' THEN 1 ELSE 0 END ) AS cluesCount
        FROM
        crm_record as a
        LEFT JOIN crm_record_user as b on a.id = b.record_id
        <where>
            a.deleted = 0
            and b.deleted = 0
            AND b.user_id IN
            <foreach item="userId" collection="userIds" separator="," open="(" close=")" index="">
                #{userId}
            </foreach>
            <if test="createTime != null and createTime.length > 0">
                <if test="createTime[0] != null">
                    AND b.create_time &gt;= #{createTime[0]}
                </if>
                <if test="createTime[1] != null">
                    AND b.create_time &lt;= #{createTime[1]}
                </if>
            </if>
            GROUP BY b.user_id
        </where>
    </select>
</mapper>
