“zhuo”
2024-01-08 b83bf6316bc81ba3e0eda5e934636bd8ee4c8304
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
<?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 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
        <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()
    </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) &lt; time
        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
        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()
    </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.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
              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
              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
    </select>
</mapper>