李林
2024-01-09 d0c3258ed4871f2b9f03357bfd39b6caeff156b0
data-server/src/main/resources/mapper/DataReportingMapper.xml
@@ -43,7 +43,8 @@
    </select>
    <select id="selectProductCountDtoPageList" resultType="com.yuanchu.mom.dto.ProductCountDto">
        select * from (
        select update_time, create_time, product, sum(consumption) consumption, sum(fans_add) fans_add, sum(customer_costs) customer_costs, create_user
        select update_time, create_time, product, sum(consumption) consumption, sum(fans_add) fans_add,
        sum(customer_costs) customer_costs, create_user
        from data_reporting
        group by product,date_format(create_time, '%Y-%m-%d')
        ) a
@@ -53,7 +54,12 @@
    </select>
    <select id="selectRegistrantCountDtoPageList" resultType="com.yuanchu.mom.dto.RegistrantCountDto">
        select * from (
        select id, department, registrant, product, name, sum(show_num) show_num, sum(click) click, sum(account_consumption)account_consumption, sum(rebate_consumption) rebate_consumption,(sum(rebate_consumption)+sum(remark)) rebate_consumption2, sum(discounted_consumption) discounted_consumption, sum(fans_add) fans_add, sum(actual_cost) actual_cost, sum(customer_costs) customer_costs, sum(profit) profit, sum(agent_rebate) agent_rebate, sum(customer_rebate) customer_rebate, sum(remark) remark, create_time, update_time, create_user
        select id, department, registrant, product, name, sum(show_num) show_num, sum(click) click,
        sum(account_consumption)account_consumption, sum(rebate_consumption)
        rebate_consumption,(sum(rebate_consumption)+sum(remark)) rebate_consumption2, sum(discounted_consumption)
        discounted_consumption, sum(fans_add) fans_add, sum(actual_cost) actual_cost, sum(customer_costs)
        customer_costs, sum(profit) profit, sum(agent_rebate) agent_rebate, sum(customer_rebate) customer_rebate,
        sum(remark) remark, create_time, update_time, create_user
        from data_reporting
        group by registrant,date_format(create_time, '%Y-%m-%d')
        ) a
@@ -62,38 +68,48 @@
        </if>
    </select>
    <select id="getDataFor1" resultType="java.util.Map">
        select COALESCE(sum(account_consumption), 0) data1, COALESCE(sum(consumption), 0) data2, COALESCE(sum(customer_costs),0) data3, COALESCE(sum(actual_cost), 0) data4
        select COALESCE(sum(account_consumption), 0) data1,
               COALESCE(sum(consumption), 0)         data2,
               COALESCE(sum(customer_costs), 0)      data3,
               COALESCE(sum(actual_cost), 0)         data4
        from data_reporting
        where date(create_time) like CURDATE()
        where date(create_time) like (CURDATE() - INTERVAL 1 DAY)
    </select>
    <select id="getDataFor2" resultType="java.util.Map">
        SELECT sum(account_consumption) account_consumptions, DATE_FORMAT(create_time, '%m-%d') `date`, DATE_FORMAT(create_time, '%y-%m-%d') time
        SELECT sum(account_consumption)             account_consumptions,
               DATE_FORMAT(create_time, '%m-%d')    `date`,
               DATE_FORMAT(create_time, '%y-%m-%d') time
        FROM data_reporting
        group by DATE_FORMAT(create_time, '%y-%m-%d')
        having DATE_SUB(CURDATE(), INTERVAL 7 DAY) &lt; time
        and time &lt;= CURDATE()
           and time &lt; CURDATE()
    </select>
    <select id="getDataFor3" resultType="java.util.Map">
        SELECT sum(consumption) consumption, DATE_FORMAT(create_time, '%m-%d') `date`, DATE_FORMAT(create_time, '%y-%m-%d') time
        SELECT sum(consumption)                     consumption,
               DATE_FORMAT(create_time, '%m-%d')    `date`,
               DATE_FORMAT(create_time, '%y-%m-%d') time
        FROM data_reporting
        group by DATE_FORMAT(create_time, '%y-%m-%d')
        having DATE_SUB(CURDATE(), INTERVAL 7 DAY) &lt; time
        and time &lt;= CURDATE()
           and time &lt; CURDATE()
    </select>
    <select id="getDataFor4" resultType="java.util.Map">
        select product, sum(customer_costs) customerCosts
        from data_reporting
        group by product
        order by customerCosts desc limit 7
        order by customerCosts desc
        limit 7
    </select>
    <select id="getDataFor5" resultType="java.util.Map">
        select product, sum(actual_cost) actualCost
        from data_reporting
        group by product
        order by actualCost desc limit 7
        order by actualCost desc
        limit 7
    </select>
    <select id="selectUser" resultType="java.util.Map">
        select user.department, user.name, user.account from user
        select user.department, user.name, user.account
        from user
        where id = #{userId}
    </select>
@@ -101,27 +117,24 @@
        select a.account account,
               a.name name,
               a.account_consumption consumption,
               a.create_time createTime,
               b.account comparisonAccount,
               b.name comparisonName,
               b.account_consumption comparisonConsumption,
               b.create_time comparisonCreateTime
        from (select user.account,
                     user.name,
                     dr1.account_consumption,
                     dr1.create_time
               b.account_consumption comparisonConsumption
        from (select dr1.*, user.id uId, user.name uName, user.account
              from data_reporting dr1
                       join user on dr1.create_user = user.id
              where date_format(dr1.create_time, '%Y-%m-%d') = date_format(#{dataComparisonDto.createTime}, '%Y-%m-%d')
                and user.name like concat('%', #{dataComparisonDto.name}, '%')) a,
             (select user.account,
                     user.name,
                     dr2.account_consumption,
                     dr2.create_time
                where date_format(dr1.create_time, '%Y-%m-%d') =
                      date_format(#{dataComparisonDto.createTime}, '%Y-%m-%d')
                and user.name = #{dataComparisonDto.name}) a
        left join (select dr2.*, user.id uId, user.name uName, user.account
              from data_reporting dr2
                       join user on dr2.create_user = user.id
              where date_format(dr2.create_time, '%Y-%m-%d') = date_format(#{dataComparisonDto.createTime}, '%Y-%m-%d')
                and user.name like concat('%', #{dataComparisonDto.comparisonName}, '%')) b
        where a.account_consumption != b.account_consumption
                    where date_format(dr2.create_time, '%Y-%m-%d') =
                          date_format(#{dataComparisonDto.createTime}, '%Y-%m-%d')
                    and user.name = #{dataComparisonDto.comparisonName}) b
                    on a.name = b.name
                    and a.product = b.product
        where (a.account_consumption != b.account_consumption
            or b.account_consumption is null)
    </select>
</mapper>