123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234 |
- <?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.yonge.cooleshow.admin.dao.OmsOrderDao">
- <resultMap id="orderDetailResultMap" type="com.yonge.cooleshow.admin.dto.OmsOrderDetail" extends="com.yonge.cooleshow.mbg.mapper.OmsOrderMapper.BaseResultMap">
- <collection property="orderItemList" resultMap="com.yonge.cooleshow.mbg.mapper.OmsOrderItemMapper.BaseResultMap" columnPrefix="item_"/>
- <collection property="historyList" resultMap="com.yonge.cooleshow.mbg.mapper.OmsOrderOperateHistoryMapper.BaseResultMap" columnPrefix="history_"/>
- </resultMap>
- <resultMap id="orderResultMap" type="com.yonge.cooleshow.admin.dto.OrderVo" extends="com.yonge.cooleshow.mbg.mapper.OmsOrderMapper.BaseResultMap">
- <result column="userId" property="userId" />
- <result column="username" property="username" />
- <result column="phone" property="phone" />
- <result column="userType" property="userType" />
- </resultMap>
- <select id="getList" resultMap="orderResultMap">
- SELECT o.*,
- um.id as userId,
- um.username as username,
- um.phone as phone,
- o.platform_type as userType
- FROM
- oms_order o
- left join ums_member um on um.id = member_id
- WHERE
- o.delete_status = 0
- <if test="queryParam.orderSn!=null and queryParam.orderSn!=''">
- AND o.order_sn = #{queryParam.orderSn}
- </if>
- <if test="queryParam.orderSns != null and queryParam.orderSns.size > 0">
- AND o.order_sn IN
- <foreach collection="queryParam.orderSns" item="orderSn" separator="," open="(" close=")">
- #{orderSn}
- </foreach>
- </if>
- <if test="queryParam.status!=null">
- AND o.`status` = #{queryParam.status}
- </if>
- <if test="queryParam.sourceType!=null">
- AND o.source_type = #{queryParam.sourceType}
- </if>
- <if test="queryParam.orderType!=null">
- AND o.order_type = #{queryParam.orderType}
- </if>
- <if test="queryParam.createTime!=null and queryParam.createTime!=''">
- AND DATE_FORMAT(o.create_time, '%Y-%m-%d') BETWEEN #{queryParam.createTime} AND #{queryParam.endTime}
- </if>
- <if test="queryParam.receiverKeyword!=null and queryParam.receiverKeyword!=''">
- AND (
- o.receiver_name LIKE concat("%",#{queryParam.receiverKeyword},"%")
- OR o.receiver_phone LIKE concat("%",#{queryParam.receiverKeyword},"%")
- )
- </if>
- order by o.id desc
- </select>
- <update id="delivery">
- UPDATE oms_order
- SET
- delivery_sn = CASE id
- <foreach collection="list" item="item">
- WHEN #{item.orderId} THEN #{item.deliverySn}
- </foreach>
- END,
- delivery_company = CASE id
- <foreach collection="list" item="item">
- WHEN #{item.orderId} THEN #{item.deliveryCompany}
- </foreach>
- END,
- delivery_time = CASE id
- <foreach collection="list" item="item">
- WHEN #{item.orderId} THEN now()
- </foreach>
- END,
- `status` = CASE id
- <foreach collection="list" item="item">
- WHEN #{item.orderId} THEN 2
- </foreach>
- END
- WHERE
- id IN
- <foreach collection="list" item="item" separator="," open="(" close=")">
- #{item.orderId}
- </foreach>
- AND `status` = 1
- </update>
- <select id="getDetail" resultMap="orderDetailResultMap">
- SELECT o.*,
- oi.id item_id,
- oi.product_id item_product_id,
- oi.product_sn item_product_sn,
- oi.product_pic item_product_pic,
- oi.product_name item_product_name,
- oi.product_brand item_product_brand,
- oi.product_price item_product_price,
- oi.product_quantity item_product_quantity,
- oi.product_attr item_product_attr,
- oh.id history_id,
- oh.operate_man history_operate_man,
- oh.create_time history_create_time,
- oh.order_status history_order_status,
- oh.note history_note
- FROM
- oms_order o
- LEFT JOIN oms_order_item oi ON o.id = oi.order_id
- LEFT JOIN oms_order_operate_history oh ON o.id = oh.order_id
- WHERE
- o.id = #{id}
- ORDER BY oi.id ASC,oh.create_time DESC
- </select>
- <select id="getUserOrderInfoList" resultType="java.util.Map">
- select
- member_id as userId,
- min(payment_time) as receiveTime
- from oms_order
- <where>
- <if test="startTime != null and startTime !=''">
- and payment_time >= #{startTime}
- </if>
- <if test="endTime != null and endTime != ''">
- and payment_time <= #{endTime}
- </if>
- <if test="userIdList != null and userIdList.size() != 0">
- and member_id in
- <foreach collection="userIdList" separator="," close=")" open="(" item="item">
- #{item}
- </foreach>
- </if>
- </where>
- group by member_id
- </select>
- <select id="selectOrderStatusNum" resultType="com.yonge.cooleshow.admin.dto.HomeStatistical">
- select
- sum(if(status = 0 or status = 6,1,0)) as waitPayOrder,
- sum(if(status = 1,1,0)) as waitOutOrder,
- sum(if(status = 2,1,0)) as outOrder,
- sum(if(status = 3,1,0)) as successOrder,
- sum(if(status = 2 and confirm_status = 0,1,0)) as waitReceiptOrder
- from oms_order where delete_status = 0
- </select>
- <select id="selectOrderCountAndAmount" resultType="com.yonge.cooleshow.admin.dto.OrderStatistical">
- select
- <choose>
- <when test="dateFormat == 'DAY'">
- date_format(create_time,'%Y-%m-%d') as date,
- </when>
- <when test="dateFormat == 'WEEK'">
- YEARWEEK(date_format(create_time,'%Y-%m-%d'),7) as date,
- </when>
- <when test="dateFormat == 'MONTH'">
- date_format(create_time,'%Y-%m') as date,
- </when>
- </choose>
- count(1) as orderNum,
- sum(pay_amount) as orderAmount
- from oms_order
- where status in (1,2,3) and create_time between #{startTime} and #{endTime}
- group by
- <choose>
- <when test="dateFormat == 'DAY'">
- date_format(create_time,'%Y-%m-%d')
- </when>
- <when test="dateFormat == 'WEEK'">
- YEARWEEK(date_format(create_time,'%Y-%m-%d'),7)
- </when>
- <when test="dateFormat == 'MONTH'">
- date_format(create_time,'%Y-%m')
- </when>
- </choose>
- order by
- <choose>
- <when test="dateFormat == 'DAY'">
- date_format(create_time,'%Y-%m-%d')
- </when>
- <when test="dateFormat == 'WEEK'">
- YEARWEEK(date_format(create_time,'%Y-%m-%d'),7)
- </when>
- <when test="dateFormat == 'MONTH'">
- date_format(create_time,'%Y-%m')
- </when>
- </choose>
- </select>
- <select id="queryOrderDetail" resultType="com.yonge.cooleshow.admin.dto.OrderDetailVo">
- select o.name_ organName,oo.member_id memberId,oo.member_username memberUsername,spo.trans_no_ transNo,oo.order_sn orderSn,
- uop.open_type_ openTypeEnum,spo.mer_nos_ merNos,spo.expect_amount_ expectAmount,oo.payment_time paymentTime,
- pp.product_sn productSn,ooi.product_name productName,ooi.product_quantity productQuantity,oo.receiver_name receiverName,oo.receiver_phone receiverPhone,
- CONCAT(oo.receiver_province,oo.receiver_city,oo.receiver_region,oo.receiver_detail_address) receiverDetailAddress,
- oo.delivery_company deliveryCompany,oo.delivery_sn deliverySn,oo.note,ooi.product_attr productAttr
- from oms_order oo
- left join mec_pro.student_payment_order spo ON spo.order_no_ = oo.order_sn
- left join mec_pro.organization o ON o.id_ = spo.organ_id_
- left join user_order_payment uop ON uop.order_no_ = oo.order_sn AND uop.status_ = 'succeeded'
- left join oms_order_item ooi ON ooi.order_id = oo.id
- left join pms_product pp ON pp.id = ooi.product_sku_id
- <where>
- oo.delete_status = 0
- <if test="queryParam.orderSn!=null and queryParam.orderSn!=''">
- AND oo.order_sn = #{queryParam.orderSn}
- </if>
- <if test="queryParam.status!=null">
- AND oo.`status` = #{queryParam.status}
- </if>
- <if test="queryParam.sourceType!=null">
- AND oo.source_type = #{queryParam.sourceType}
- </if>
- <if test="queryParam.orderType!=null">
- AND oo.order_type = #{queryParam.orderType}
- </if>
- <if test="queryParam.createTime!=null and queryParam.createTime!=''">
- AND oo.create_time LIKE concat(#{queryParam.createTime},"%")
- </if>
- <if test="queryParam.receiverKeyword!=null and queryParam.receiverKeyword!=''">
- AND (
- oo.receiver_name LIKE concat("%",#{queryParam.receiverKeyword},"%")
- OR o.receiver_phone LIKE concat("%",#{queryParam.receiverKeyword},"%")
- )
- </if>
- </where>
- order by oo.id desc
- </select>
- <select id="getDeliveryList" resultType="java.lang.String">
- select order_sn from oms_order where status != 1 AND id IN
- <foreach collection="orderIds" item="item" separator="," open="(" close=")">
- #{item}
- </foreach>
- </select>
- </mapper>
|