CrmStatisticsPerformanceTargetMapper.xml 2.27 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 ${@cn.iocoder.yudao.framework.mybatis.core.util.SqlDialectUtils@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 ${@cn.iocoder.yudao.framework.mybatis.core.util.SqlDialectUtils@year('order_date')} = #{year}
         GROUP BY ${@cn.iocoder.yudao.framework.mybatis.core.util.SqlDialectUtils@month('order_date')}
    </select>

    <select id="selectReceivableActualByMonth"
            resultMap="CrmStatisticsPerformanceTargetActualResultMap">
        SELECT ${@cn.iocoder.yudao.framework.mybatis.core.util.SqlDialectUtils@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 ${@cn.iocoder.yudao.framework.mybatis.core.util.SqlDialectUtils@year('return_time')} = #{year}
         GROUP BY ${@cn.iocoder.yudao.framework.mybatis.core.util.SqlDialectUtils@month('return_time')}
    </select>

</mapper>