CrmStatisticsPerformanceTargetMapper.xml 1.88 KB
<?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.statistics.CrmStatisticsPerformanceTargetMapper">

    <resultMap id="CrmStatisticsPerformanceTargetActualResultMap"
               type="cn.iocoder.yudao.module.crm.controller.admin.statistics.vo.performance.CrmStatisticsPerformanceTargetActualRespVO">
        <result property="month" column="month"/>
        <result property="currentPrice" column="current_price"/>
    </resultMap>

    <select id="selectContractActualByMonth"
            resultMap="CrmStatisticsPerformanceTargetActualResultMap">
        SELECT MONTH(order_date) AS month,
               COALESCE(SUM(total_price), 0) AS current_price
          FROM crm_contract
         WHERE deleted = 0
           AND audit_status = ${@cn.iocoder.yudao.module.crm.enums.common.CrmAuditStatusEnum@APPROVE.status}
           AND owner_user_id IN
                <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
                    #{userId}
                </foreach>
           AND YEAR(order_date) = #{year}
         GROUP BY MONTH(order_date)
    </select>

    <select id="selectReceivableActualByMonth"
            resultMap="CrmStatisticsPerformanceTargetActualResultMap">
        SELECT MONTH(return_time) AS month,
               COALESCE(SUM(price), 0) AS current_price
          FROM crm_receivable
         WHERE deleted = 0
           AND audit_status = ${@cn.iocoder.yudao.module.crm.enums.common.CrmAuditStatusEnum@APPROVE.status}
           AND owner_user_id IN
                <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
                    #{userId}
                </foreach>
           AND YEAR(return_time) = #{year}
         GROUP BY MONTH(return_time)
    </select>

</mapper>