<?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 <= #{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 <= #{endTime}
|
ORDER BY mou.use_time asc )tab GROUP BY tab.time
|
</select>
|
|
</mapper>
|