<?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.rest.modular.mall.dao.MallOrderMapper">
|
|
<!-- 通用查询映射结果 -->
|
<resultMap id="BaseResultMap" type="com.sinata.rest.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="goods_money" property="goodsMoney"/>
|
<result column="freight_money" property="freightMoney"/>
|
<result column="coupon_id" property="couponId"/>
|
<result column="coupon_money" property="couponMoney"/>
|
<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="transaction_no" property="transactionNo"/>
|
<result column="pay_type" property="payType"/>
|
<result column="pay_time" property="payTime"/>
|
<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="out_trade_no" property="outTradeNo"/>
|
<result column="pay_total_fee" property="payTotalFee"/>
|
<result column="use_user_id" property="useUserId"/>
|
<result column="sale_user_id" property="saleUserId"/>
|
<result column="order_type" property="orderType"/>
|
<result column="city_code" property="cityCode"/>
|
<result column="start_time" property="startTime"/>
|
<result column="end_time" property="endTime"/>
|
<result column="goods_id" property="goodsId"/>
|
<result column="is_trading_dividend" property="isTradingDividend"/>
|
</resultMap>
|
|
<select id="getOrderByUserIdList" resultType="com.sinata.rest.modular.mall.controller.vo.VoMallOrder">
|
SELECT
|
mo.*,
|
ms.goods_name, ms.goods_image
|
FROM
|
mall_order mo
|
LEFT JOIN `mall_order_detail` md ON md.order_no = mo.order_no
|
LEFT JOIN mall_goods ms ON ms.id = md.goods_id
|
LEFT JOIN mem_user u ON mo.user_id = u.id
|
<where>mo.is_delete = 0
|
<if test="userId != null">
|
and (mo.user_id = #{userId} or mo.use_user_id = #{userId})
|
</if>
|
<if test="saleUserId != null">
|
and mo.sale_user_id = #{saleUserId}
|
</if>
|
<if test="state != null">
|
and mo.state = #{state}
|
</if>
|
</where>
|
group by mo.order_no
|
order by mo.order_no desc
|
</select>
|
|
<select id="getOrderDetailByUserIdList" resultType="com.sinata.rest.modular.mall.controller.vo.VoMallOrderDetail">
|
SELECT
|
order_detail.*,
|
o.order_no, o.create_time, o.number, o.pay_money, o.coupon_id, o.coupon_money, o.goods_money, o.state
|
FROM mall_order o
|
RIGHT JOIN mall_order_detail order_detail ON order_detail.order_no = o.order_no
|
WHERE o.is_delete=0
|
<if test="userId != null">
|
and o.user_id = #{userId}
|
</if>
|
<if test="stateArray != null">
|
AND o.state IN
|
<foreach collection="stateArray" open="(" separator="," close=")" item="ids">
|
#{ids}
|
</foreach>
|
</if>
|
ORDER BY o.order_no DESC
|
</select>
|
|
<select id="getOrderListByOrderNo" resultType="com.sinata.rest.modular.mall.controller.vo.VoMallOrder">
|
SELECT
|
o.*,
|
merchant.id merchant_id,
|
merchant.merchant_name,
|
merchant.logo
|
<if test="orderNo != null">
|
,tab.*
|
</if>
|
FROM
|
mall_order o
|
LEFT JOIN mem_merchant merchant ON merchant.id = o.merchant_id
|
<if test="orderNo != null">
|
LEFT JOIN (
|
SELECT
|
md.goods_name,
|
md.goods_image,
|
md.start_time,
|
md.end_time,
|
mo.use_time,
|
order_no,
|
(SELECT GROUP_CONCAT( mt.`tag_name` ) FROM mall_tag mt WHERE FIND_IN_SET( mt.id, md.tag_ids)) tagName
|
FROM
|
mall_order_detail mo
|
LEFT JOIN mall_goods md ON md.id = mo.goods_id
|
WHERE
|
mo.order_no = #{orderNo}
|
) tab ON tab.order_no = o.order_no
|
</if>
|
WHERE
|
o.is_delete = 0
|
<if test="orderNo != null">
|
and o.order_no = #{orderNo}
|
</if>
|
ORDER BY o.order_no DESC
|
</select>
|
|
<select id="getOrderDetailByOrderNoList" resultType="com.sinata.rest.modular.mall.controller.vo.VoMallOrderDetail">
|
SELECT
|
order_detail.*,
|
o.order_no, o.create_time, o.number, o.pay_money, o.coupon_id, o.coupon_money, o.goods_money, o.state
|
FROM mall_order o
|
RIGHT JOIN mall_order_detail order_detail ON order_detail.order_no = o.order_no
|
WHERE o.is_delete=0
|
<if test="orderNo != null">
|
and o.order_no = #{orderNo}
|
</if>
|
ORDER BY o.order_no DESC
|
</select>
|
|
<!-- 待评价订单 -->
|
<select id="getOrderWaitEvaluate" resultType="java.util.Map">
|
SELECT
|
order_detail.order_detail_no, order_detail.goods_id,
|
o.order_no, o.merchant_id, o.user_id
|
FROM mall_order o
|
RIGHT JOIN mall_order_detail order_detail ON order_detail.order_no = o.order_no
|
WHERE o.is_delete=0
|
AND (order_detail.is_evaluate = 0 OR order_detail.is_evaluate IS NULL)
|
<if test="outTime != null">
|
AND o.take_time <![CDATA[ <= ]]> #{outTime}
|
</if>
|
</select>
|
|
<!-- 获取订单支付信息 -->
|
<select id="getOrderPayInfoByOrderDetailNo"
|
resultType="com.sinata.rest.modular.mall.controller.vo.VoMallOrderPayInfo">
|
SELECT o.order_no,
|
o.pay_money,
|
o.coupon_id,
|
o.coupon_money,
|
o.pay_type,
|
o.transaction_no,
|
o.out_trade_no,
|
o.pay_total_fee,
|
od.order_detail_no,
|
od.goods_num,
|
od.refund_num,
|
od.refund_money
|
FROM mall_order o
|
LEFT JOIN mall_order_detail od
|
ON o.order_no = od.order_no
|
WHERE od.order_detail_no = #{orderDetailNo}
|
</select>
|
|
<!-- 默认评价订单 -->
|
<update id="defaultOrderEvaluate">
|
UPDATE mall_order_detail SET is_evaluate = 1
|
WHERE (is_evaluate = 0 OR is_evaluate IS NULL)
|
AND order_no IN
|
(
|
SELECT o.order_no FROM mall_order o
|
WHERE o.is_delete=0
|
<if test="outTime != null">
|
AND o.take_time <![CDATA[ <= ]]> #{outTime}
|
</if>
|
)
|
</update>
|
|
<select id="getSumMoneyBySaleUser" resultType="java.math.BigDecimal">
|
SELECT
|
IFNULL(SUM( pay_money ), 0) sumMoney
|
FROM
|
mall_order
|
<where>
|
<if test="saleUserIdList != null and saleUserIdList.size != 0">
|
AND sale_user_id IN
|
<foreach collection="saleUserIdList" open="(" separator="," close=")" item="item">
|
#{item}
|
</foreach>
|
</if>
|
<if test="stateList != null and stateList.size != 0">
|
AND state IN
|
<foreach collection="stateList" open="(" separator="," close=")" item="item">
|
#{item}
|
</foreach>
|
</if>
|
<if test="beginTime != null and beginTime != ''">
|
AND create_time <![CDATA[ >= ]]> #{beginTime}
|
</if>
|
<if test="endTime != null and endTime != ''">
|
AND create_time <![CDATA[ <= ]]> #{endTime}
|
</if>
|
</where>
|
</select>
|
|
<select id="getNotCommissionSettlementOrderList" resultType="com.sinata.rest.modular.mall.controller.vo.VoMallOrder">
|
SELECT
|
o.*
|
FROM mall_order o
|
LEFT JOIN mall_commission_settlement cs ON cs.order_no = o.order_no
|
WHERE
|
(o.state = 3 OR o.state = 4)
|
AND cs.order_no IS NULL
|
</select>
|
|
</mapper>
|