<?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="com.yuanchu.mom.mapper.DataReportingMapper">
|
|
<resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.DataReporting">
|
<id property="id" column="id" jdbcType="INTEGER"/>
|
<result property="department" column="department" jdbcType="VARCHAR"/>
|
<result property="registrant" column="registrant" jdbcType="VARCHAR"/>
|
<result property="product" column="product" jdbcType="VARCHAR"/>
|
<result property="channel" column="channel" jdbcType="VARCHAR"/>
|
<result property="name" column="name" jdbcType="VARCHAR"/>
|
<result property="showNum" column="show_num" jdbcType="INTEGER"/>
|
<result property="click" column="click" jdbcType="INTEGER"/>
|
<result property="accountConsumption" column="account_consumption" jdbcType="DECIMAL"/>
|
<result property="rebateConsumption" column="rebate_consumption" jdbcType="DECIMAL"/>
|
<result property="consumption" column="consumption" jdbcType="DECIMAL"/>
|
<result property="discountedConsumption" column="discounted_consumption" jdbcType="DECIMAL"/>
|
<result property="fansAdd" column="fans_add" jdbcType="INTEGER"/>
|
<result property="actualCost" column="actual_cost" jdbcType="DECIMAL"/>
|
<result property="internalCosts" column="internal_costs" jdbcType="DECIMAL"/>
|
<result property="customerCosts" column="customer_costs" jdbcType="DECIMAL"/>
|
<result property="profit" column="profit" jdbcType="DECIMAL"/>
|
<result property="agentRebate" column="agent_rebate" jdbcType="DECIMAL"/>
|
<result property="customerRebate" column="customer_rebate" jdbcType="DECIMAL"/>
|
<result property="remark" column="remark" jdbcType="DECIMAL"/>
|
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
|
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
|
<result property="createUser" column="create_user" jdbcType="VARCHAR"/>
|
<result property="updateUser" column="update_user" jdbcType="VARCHAR"/>
|
</resultMap>
|
|
<select id="selectDataReportingDtoPageList" resultType="com.yuanchu.mom.dto.DataReportingPageDto">
|
select * from (
|
select dr.*,u1.name create_user_name,u2.name update_user_name from data_reporting dr
|
left join user u1 on dr.create_user = u1.id
|
left join user u2 on dr.update_user = u2.id
|
) a
|
<if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
|
${ew.customSqlSegment}
|
</if>
|
</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
|
from data_reporting
|
group by product,date_format(create_time, '%Y-%m-%d')
|
) a
|
<if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
|
${ew.customSqlSegment}
|
</if>
|
</select>
|
<select id="selectRegistrantCountDtoPageList" resultType="com.yuanchu.mom.dto.RegistrantCountDto">
|
select * from (
|
select department,
|
registrant,
|
name2,
|
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,
|
date_format(create_time, '%Y-%m-%d') create_time,
|
create_user
|
from data_reporting
|
group by name2,product, date_format(create_time, '%Y-%m-%d')
|
) a
|
<if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
|
${ew.customSqlSegment}
|
</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
|
from data_reporting
|
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
|
FROM data_reporting
|
group by DATE_FORMAT(create_time, '%y-%m-%d')
|
having DATE_SUB(CURDATE(), INTERVAL 7 DAY) < time
|
and time < 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
|
FROM data_reporting
|
group by DATE_FORMAT(create_time, '%y-%m-%d')
|
having DATE_SUB(CURDATE(), INTERVAL 7 DAY) < time
|
and time < 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
|
</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
|
</select>
|
<select id="selectUser" resultType="java.util.Map">
|
select user.department, user.name, user.account
|
from user
|
where id = #{userId}
|
</select>
|
|
<select id="selectDataComparisonDtoPageList" resultType="com.yuanchu.mom.dto.DataComparisonDto">
|
select a.uName account,
|
a.name name,
|
a.account_consumption consumption,
|
a.product,
|
COALESCE(b.uName, #{dataComparisonDto.comparisonName}) comparisonAccount,
|
b.name comparisonName,
|
b.account_consumption comparisonConsumption,
|
b.uDepartment,
|
b.uCompany
|
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 = #{dataComparisonDto.name}) a
|
left join (select dr2.*, user.id uId, user.name uName, user.account,user.department uDepartment,user.company uCompany
|
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 = #{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>
|
<select id="selectDataReportingForCreateUserNames" resultType="java.lang.String">
|
select distinct u1.name from data_reporting dr
|
left join user u1 on dr.create_user = u1.id
|
where dr.create_time like concat('%', #{time}, '%')
|
</select>
|
</mapper>
|