mitao
2024-04-30 ab4ea7b8f10c9b66aed9c2ea161a08b25c3851a7
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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
<?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.sinata.shop.modular.mall.dao.MallOrderMapper">
 
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.sinata.shop.modular.mall.model.MallOrder">
        <id column="order_no" property="orderNo"/>
        <result column="order_main_no" property="orderMainNo"/>
        <result column="merchant_id" property="merchantId"/>
        <result column="user_id" property="userId"/>
        <result column="sale_user_id" property="saleUserId"/>
        <result column="goods_money" property="goodsMoney"/>
        <result column="freight_money" property="freightMoney"/>
        <result column="pay_money" property="payMoney"/>
        <result column="take_name" property="takeName"/>
        <result column="phone" property="phone"/>
        <result column="address" property="address"/>
        <result column="number" property="number"/>
        <result column="express_company" property="expressCompany"/>
        <result column="waybill_no" property="waybillNo"/>
        <result column="mark" property="mark"/>
        <result column="send_time" property="sendTime"/>
        <result column="take_time" property="takeTime"/>
        <result column="cancel_type" property="cancelType"/>
        <result column="cancel_time" property="cancelTime"/>
        <result column="cause" property="cause"/>
        <result column="cancel_describe" property="cancelDescribe"/>
        <result column="state" property="state"/>
        <result column="is_delete" property="isDelete"/>
        <result column="cms_delete" property="cmsDelete"/>
        <result column="create_time" property="createTime"/>
        <result column="is_after_sale" property="isAfterSale"/>
        <result column="user_nickname" property="userNickname"/>
        <result column="user_phone" property="userPhone"/>
        <result column="user_show_id" property="userShowId"/>
        <result column="goods_num" property="goodsNum"/>
        <result column="merchant_name" property="merchantName"/>
        <result column="order_type" property="orderType"/>
        <result column="goods_name" property="goodsName"/>
        <result column="grep_name" property="grepName"/>
        <result column="useNum" property="useNum"/>
        <result column="refund_time" property="refundTime"/>
        <result column="sale_user_name" property="saleUserName" />
        <result column="sale_show_id" property="saleShowId" />
    </resultMap>
 
    <!-- 通用查询结果列 -->
    <sql id="Base_Column_List">
        order_no, order_main_no, merchant_id, user_id, goods_money, freight_money, pay_money, take_name, phone, address, number, express_company, waybill_no, mark, send_time, take_time, cancel_type, cancel_time, cause, cancel_describe, state, is_delete, cms_delete, create_time, is_after_sale
    </sql>
 
    <select id="orderIndex" resultType="com.sinata.shop.modular.mall.dto.OrderClassPriceVo">
        select
            mco.classify_name classifyName ,sum(IFNULL(mo.pay_money,0)) orderPrice
        FROM mall_classify_one mco
        left join mall_goods mds on mds.classify_id_one    =  mco.id
        left join mall_goods_set mdt on mdt.id = mds.id
        left join mall_order mo on mo.goods_id =  mds.id
        and  mo.state not in (0,10,12)
        and mo.merchant_id =  #{merchantId}
        where mco.is_delete = 0
        GROUP BY mco.id
    </select>
 
    <select id="orderPriceIndex" resultType="com.sinata.shop.modular.mall.dto.OrderPriceVo">
        SELECT count(1) countOrder,sum(ifnull(mall_order.pay_money,0) ) orderPrice
        FROM `mall_order`
        LEFT JOIN mall_goods on mall_goods.id = mall_order.goods_id
        LEFT JOIN mall_goods_set on mall_goods_set.id  = mall_goods.id
        where
            mall_order.merchant_id = #{merchantId}
            and mall_order.state not in (0,10,12)
    </select>
 
    <select id="orderUse" resultType="java.lang.Integer">
        SELECT
            COUNT(1)
        FROM `mall_order_detail_use`
        join mall_order on  mall_order.order_no =     mall_order_detail_use.order_no
        where mall_order.merchant_id = #{merchantId}
    </select>
 
    <select id="findList" resultMap="BaseResultMap">
        SELECT
        `order`.*,
        user.nick_name as user_nickname,
        user.phone as user_phone,
        user.show_id as user_show_id,
        order_goods.goods_num as goods_num,
        order_goods.goods_name as goods_name,
        order_goods.grep_name as grep_name,
        mm.merchant_name,
        user2.nick_name as sale_user_name,
        user2.show_id as sale_show_id,
        (select count(1) from mall_order_detail_use where order_no = `order`.order_no) useNum
        FROM mall_order `order`
        LEFT JOIN mem_user user ON order.user_id = user.id
        LEFT JOIN mem_user user2 ON order.sale_user_id = user2.id
        left join mem_merchant mm on mm.id= `order`.merchant_id
        LEFT JOIN (SELECT order_no,goods_name,grep_name,COUNT(1)as goods_num FROM mall_order_detail GROUP BY order_no) order_goods on
        order_goods.order_no = order.order_no
        <where>order.cms_delete = false ${ew.sqlSegment}</where>
    </select>
 
    <select id="countOrderIncome" resultType="java.util.Map">
        SELECT  ${ew.sqlSelect} from (
        SELECT o.order_no,o.merchant_id,o.state,o.pay_money,o.pay_time,SUM(service_fee) AS service_fee  FROM mall_order o
        LEFT JOIN mall_order_detail  deatil on o.order_no = deatil.order_no
        GROUP BY o.order_no)a
        <where>${ew.sqlSegment}</where>
    </select>
 
    <select id="getDataTrend" resultType="java.util.Map">
        select tab.time
             <if test="dataType == 1">
                 ,count(1) num
             </if>
            <if test="dataType == 3">
                ,sum(goods_money) num
            </if>
        from (SELECT
        DATE_FORMAT(mall_order.create_time,#{dateFormat}) time,
        ifnull(mall_order.goods_money,0) * mall_goods_set.buy_coef goods_money
        FROM `mall_order`
        LEFT JOIN mall_goods on mall_goods.id = mall_order.goods_id
        LEFT JOIN mall_goods_set on mall_goods_set.id  = mall_goods.id
        WHERE  mall_order.state  not in (0,10,12)
        and mall_order.merchant_id = #{merchantId}
        and mall_order.create_time >= #{startTime} and mall_order.create_time &lt;= #{endTime}
        ORDER BY mall_order.create_time  asc)tab
        GROUP BY tab.time
    </select>
 
    <select id="getDataTrend2" resultType="java.util.Map">
        select tab.time ,count(1) num from (
            SELECT  DATE_FORMAT(create_time,#{dateFormat}) time
             FROM mall_order_detail_use mou
             join mall_order mo on mo.order_no = mou.order_no
             where mo.merchant_id  = #{merchantId}
             and mou.use_time >= #{startTime} and mou.use_time &lt;= #{endTime}
             ORDER BY mou.use_time  asc )tab GROUP BY tab.time
    </select>
 
</mapper>