<?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.oying.modules.sh.mapper.OrderMapper">
|
<resultMap id="BaseResultMap" type="com.oying.modules.sh.domain.Order">
|
<id column="order_id" property="orderId"/>
|
<result column="order_num" property="orderNum"/>
|
<result column="order_store_num" property="orderStoreNum"/>
|
<result column="order_status" property="orderStatus"/>
|
<result column="order_status_describe" property="orderStatusDescribe"/>
|
<result column="order_remark" property="orderRemark"/>
|
<result column="order_time" property="orderTime"/>
|
<result column="send_price" property="sendPrice"/>
|
<result column="send_type" property="sendType"/>
|
<result column="user_id" property="userId"/>
|
<result column="username" property="username"/>
|
<result column="store_id" property="storeId"/>
|
<result column="store_name" property="storeName"/>
|
<result column="store_logo" property="storeLogo"/>
|
<result column="order_describe" property="orderDescribe"/>
|
<result column="order_original_price" property="originalPrice"/>
|
<result column="order_paid_price" property="paidPrice"/>
|
<result column="order_actually_pay_price" property="actuallyPayPrice"/>
|
<result column="order_pay_state" property="payState"/>
|
<result column="pay_message" property="payMessage"/>
|
<result column="pay_type" property="payType"/>
|
<result column="pay_time" property="payTime"/>
|
<result column="expire_time" property="expireTime"/>
|
<result column="openid" property="openid"/>
|
<result column="app_id" property="appId"/>
|
<result column="timestamp" property="timestamp"/>
|
<result column="nonce_str" property="nonceStr"/>
|
<result column="package_val" property="packageVal"/>
|
<result column="sign_type" property="signType"/>
|
<result column="pay_sign" property="paySign"/>
|
<result column="create_by" property="createBy"/>
|
<result column="create_time" property="createTime"/>
|
<result column="update_by" property="updateBy"/>
|
<result column="update_time" property="updateTime"/>
|
<result column="rider_id" property="riderId"/>
|
<result column="rider_phone" property="riderPhone"/>
|
<result column="rider_name" property="riderName"/>
|
<collection property="productSnapshots" ofType="com.oying.modules.sh.domain.OrderProductSnapshot">
|
<id column="snapshot_id" property="snapshotId"/>
|
<result column="product_id" property="productId"/>
|
<result column="product_code" property="productCode"/>
|
<result column="product_barcode" property="productBarcode"/>
|
<result column="product_name" property="productName"/>
|
<result column="product_title" property="productTitle"/>
|
<result column="product_main_image" property="productMainImage"/>
|
<result column="product_description" property="productDescription"/>
|
<result column="param_data" property="paramData"/>
|
<result column="unit_price" property="unitPrice"/>
|
<result column="detail_count" property="detailCount"/>
|
<result column="original_price" property="originalPrice"/>
|
<result column="paid_price" property="paidPrice"/>
|
<result column="actually_pay_price" property="actuallyPayPrice"/>
|
<result column="pay_state" property="payState"/>
|
</collection>
|
</resultMap>
|
|
<sql id="Base_Column_List">
|
o.order_id, o.order_num, o.order_store_num, o.order_status, o.order_status_describe,
|
o.order_remark, o.order_time, o.send_price, o.send_type, o.user_id, o.username, o.store_id,
|
o.store_name, o.store_logo, o.order_describe, o.original_price order_original_price, o.paid_price order_paid_price,
|
o.actually_pay_price order_actually_pay_price, o.pay_state order_pay_state, o.pay_message, o.pay_type, o.pay_time, o.expire_time,
|
o.openid, o.app_id, o.timestamp, o.nonce_str, o.package_val, o.sign_type, o.pay_sign,
|
o.create_by, o.create_time, o.update_by, o.update_time, o.rider_id, o.rider_phone, o.rider_name
|
</sql>
|
|
<sql id="product_Column_List">
|
p.snapshot_id, p.product_id, p.product_code, p.product_barcode, p.product_name, p.product_title,
|
p.product_main_image, p.product_description, p.param_data, p.unit_price, p.detail_count, p.original_price, p.paid_price,
|
p.actually_pay_price, p.pay_state
|
</sql>
|
|
<sql id="Where_Sql">
|
<where>
|
<if test="criteria.orderNum != null and criteria.orderNum != ''">
|
and o.order_num like concat('%',#{criteria.orderNum},'%')
|
</if>
|
<if test="criteria.orderStatus != null and criteria.orderStatus.size() > 0">
|
and o.order_status IN
|
<foreach collection="criteria.orderStatus" item="item" open="(" separator="," close=")">
|
#{item}
|
</foreach>
|
</if>
|
<if test="criteria.userId != null and criteria.userId != ''">
|
and o.user_id = #{criteria.userId}
|
</if>
|
<if test="criteria.username != null and criteria.username != ''">
|
and o.username like concat('%',#{criteria.username},'%')
|
</if>
|
<if test="criteria.storeId != null and criteria.storeId != ''">
|
and o.store_id = #{criteria.storeId}
|
</if>
|
<if test="criteria.orderDescribe != null and criteria.orderDescribe != ''">
|
and o.order_describe like concat('%',#{criteria.orderDescribe},'%')
|
</if>
|
<if test="criteria.payState != null and criteria.payState != ''">
|
and o.pay_state = #{criteria.payState}
|
</if>
|
<if test="criteria.payType != null and criteria.payType != ''">
|
and o.pay_type = #{criteria.payType}
|
</if>
|
<if test="criteria.payTime != null and criteria.payTime.size() > 0">
|
AND o.pay_time BETWEEN #{criteria.payTime[0]} AND #{criteria.payTime[1]}
|
</if>
|
<if test="criteria.createTime != null and criteria.createTime.size() > 0">
|
AND o.create_time BETWEEN #{criteria.createTime[0]} AND #{criteria.createTime[1]}
|
</if>
|
</where>
|
</sql>
|
|
<sql id="Where_Sql_Product">
|
<where>
|
<if test="blurry != null and blurry != ''">
|
and (p.product_code like concat('%',#{blurry},'%')
|
or p.product_barcode like concat('%',#{blurry},'%')
|
or p.product_name like concat('%',#{blurry},'%')
|
or p.product_title like concat('%',#{blurry},'%')
|
or p.product_description like concat('%',#{blurry},'%')
|
or o.orderNum like concat('%',#{blurry},'%')
|
or o.order_describe like concat('%',#{blurry},'%')
|
or o.username like concat('%',#{blurry},'%'))
|
</if>
|
</where>
|
</sql>
|
|
<update id="updatePayStatus">
|
update sh_order
|
set pay_state = #{payState},
|
pay_message = #{payMessage},
|
pay_time = #{payTime}
|
where order_num = #{orderNum}
|
</update>
|
|
<update id="updateCloseStatus">
|
update sh_order
|
set pay_state = #{payState},
|
pay_message = #{payMessage}
|
where order_num = #{orderNum}
|
</update>
|
|
<update id="updateOrderStatus">
|
update sh_order
|
set order_status = #{key},
|
order_status_describe = #{value}
|
where order_num = #{orderNum}
|
</update>
|
|
<select id="findAll" resultMap="BaseResultMap">
|
select o.*,
|
<include refid="product_Column_List"/>
|
from (
|
select
|
<include refid="Base_Column_List"/>
|
from sh_order as o
|
<include refid="Where_Sql"/>
|
order by o.order_id desc
|
<if test="criteria.offset != null">
|
limit #{criteria.offset}, #{criteria.size}
|
</if>
|
) o
|
left join sh_order_product_snapshot as p on p.order_num = o.order_num
|
<include refid="Where_Sql_Product"/>
|
order by o.order_id desc
|
</select>
|
<select id="getByOrderNum" resultMap="BaseResultMap">
|
select o.*,
|
<include refid="product_Column_List"/>
|
from (
|
select
|
<include refid="Base_Column_List"/>
|
from sh_order as o
|
) o
|
left join sh_order_product_snapshot as p on p.order_num = o.order_num
|
where o.order_num = #{orderNum}
|
order by o.order_id desc
|
</select>
|
<select id="countAll" resultType="java.lang.Long">
|
select count(1)
|
from ( select distinct o.*,
|
p.product_code,
|
p.product_barcode,
|
p.product_name,
|
p.product_title,
|
p.product_description
|
from (
|
select
|
<include refid="Base_Column_List"/>
|
from sh_order as o
|
<include refid="Where_Sql"/>
|
) o
|
left join sh_order_product_snapshot as p on p.order_num = o.order_num
|
<include refid="Where_Sql_Product"/>
|
) t
|
</select>
|
</mapper>
|