<?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.matrix.system.shopXcx.dao.ShopDeliveryInfoDao">
|
<!-- 定义ShopDeliveryInfo 的复杂关联map -->
|
<resultMap type="com.matrix.system.shopXcx.bean.ShopDeliveryInfo" id="ShopDeliveryInfoMap">
|
<id property="id" column="id" />
|
<result property="createBy" column="create_by" />
|
<result property="createTime" column="create_time" />
|
<result property="updateBy" column="update_by" />
|
<result property="updateTime" column="update_time" />
|
<result property="waybillNo" column="waybill_no" />
|
<result property="deliveryWay" column="delivery_way" />
|
<result property="receiveAddress" column="receive_address" />
|
<result property="logisticsCompany" column="logistics_company" />
|
<result property="orderId" column="order_id" />
|
<result property="userId" column="user_id" />
|
<result property="orderNo" column="order_no" />
|
<result property="remarks" column="remarks" />
|
<result property="logisticsCompanyCode" column="logistics_company_code" />
|
<result property="logisticsStatus" column="logistics_status" />
|
<result property="deliveryTime" column="delivery_time" />
|
<result property="pickUpStatus" column="pick_up_status"/>
|
</resultMap>
|
|
|
<!-- 定义ShopDeliveryInfo 的简单map ,本map不添加其他的关联属性 -->
|
<resultMap type="com.matrix.system.shopXcx.bean.ShopDeliveryInfo" id="ShopDeliveryInfoSimpleMap">
|
<id property="id" column="id" />
|
<result property="createBy" column="create_by" />
|
<result property="createTime" column="create_time" />
|
<result property="updateBy" column="update_by" />
|
<result property="updateTime" column="update_time" />
|
<result property="waybillNo" column="waybill_no" />
|
<result property="deliveryWay" column="delivery_way" />
|
<result property="receiveAddress" column="receive_address" />
|
<result property="logisticsCompany" column="logistics_company" />
|
<result property="orderId" column="order_id" />
|
<result property="userId" column="user_id" />
|
<result property="orderNo" column="order_no" />
|
<result property="remarks" column="remarks" />
|
<result property="logisticsCompanyCode" column="logistics_company_code" />
|
<result property="logisticsStatus" column="logistics_status" />
|
<result property="deliveryTime" column="delivery_time" />
|
<result property="pickUpStatus" column="pick_up_status"/>
|
</resultMap>
|
|
<!-- 字段sql -->
|
<sql id="columns">
|
create_by,
|
create_time,
|
update_by,
|
update_time,
|
id,
|
waybill_no,
|
delivery_way,
|
receive_address,
|
logistics_company,
|
order_id,
|
user_id,
|
order_no,
|
remarks,
|
logistics_company_code,
|
logistics_status,
|
delivery_time,
|
pick_up_status,
|
receive_id,
|
shop_id
|
</sql>
|
|
<!-- 属性sql -->
|
<sql id="propertys">
|
#{item.createBy},
|
now(),
|
#{item.updateBy},
|
now(),
|
#{item.id},
|
#{item.waybillNo},
|
#{item.deliveryWay},
|
#{item.receiveAddress},
|
#{item.logisticsCompany},
|
#{item.orderId},
|
#{item.userId},
|
#{item.orderNo},
|
#{item.remarks},
|
#{item.logisticsCompanyCode},
|
#{item.logisticsStatus},
|
#{item.deliveryTime},
|
#{item.pickUpStatus},
|
#{item.receiveId},
|
#{item.shopId}
|
</sql>
|
|
<!-- where sql -->
|
<sql id="where_sql">
|
|
<if test="record!=null">
|
<if test="(record.id!=null and record.id!='') or (record.id!='' and record.id==0) ">
|
and id = #{record.id}
|
</if>
|
<if test="(record.waybillNo!=null and record.waybillNo!='') or (record.waybillNo!='' and record.waybillNo==0) ">
|
and waybill_no like concat('%',#{record.waybillNo},'%')
|
|
</if>
|
<if test="(record.deliveryWay!=null and record.deliveryWay!='') or (record.deliveryWay!='' and record.deliveryWay==0) ">
|
and delivery_way = #{record.deliveryWay}
|
</if>
|
<if test="(record.receiveAddress!=null and record.receiveAddress!='') or (record.receiveAddress!='' and record.receiveAddress==0) ">
|
and receive_address = #{record.receiveAddress}
|
</if>
|
<if test="(record.logisticsCompany!=null and record.logisticsCompany!='') or (record.logisticsCompany!='' and record.logisticsCompany==0) ">
|
and logistics_company = #{record.logisticsCompany}
|
</if>
|
<if test="(record.orderId!=null and record.orderId!='') or (record.orderId!='' and record.orderId==0) ">
|
and order_id = #{record.orderId}
|
</if>
|
<if test="(record.userId!=null and record.userId!='') or (record.userId!='' and record.userId==0) ">
|
and user_id = #{record.userId}
|
</if>
|
<if test="(record.orderNo!=null and record.orderNo!='') or (record.orderNo!='' and record.orderNo==0) ">
|
and order_no like concat('%',#{record.orderNo},'%')
|
</if>
|
<if test="(record.remarks!=null and record.remarks!='') or (record.remarks!='' and record.remarks==0) ">
|
and remarks = #{record.remarks}
|
</if>
|
<if test="(record.logisticsCompanyCode!=null and record.logisticsCompanyCode!='') or (record.logisticsCompanyCode!='' and record.logisticsCompanyCode==0) ">
|
and logistics_company_code = #{record.logisticsCompanyCode}
|
</if>
|
<if test="(record.logisticsStatus!=null and record.logisticsStatus!='') or (record.logisticsStatus!='' and record.logisticsStatus==0) ">
|
and logistics_status = #{record.logisticsStatus}
|
</if>
|
<if test="(record.startTime!=null and record.startTime!='') or (record.startTime!='' and record.startTime==0) ">
|
and date_format(delivery_time,'%Y-%m-%d') >= #{record.startTime}
|
</if>
|
<if test="(record.endTime!=null and record.endTime!='') or (record.endTime!='' and record.endTime==0) ">
|
and date_format(delivery_time,'%Y-%m-%d') <= #{record.endTime}
|
</if>
|
<if test="(record.deliveryTime!=null and record.deliveryTime!='') or (record.deliveryTime!='' and record.deliveryTime==0) ">
|
and delivery_time = #{record.deliveryTime}
|
</if>
|
<if test="(record.pickUpStatus!=null and record.pickUpStatus!='') or (record.pickUpStatus!='' and record.pickUpStatus==0) ">
|
and pick_up_status = #{record.pickUpStatus}
|
</if>
|
<if test="(record.shopId!=null and record.shopId!='') or (record.shopId!='' and record.shopId==0) ">
|
and shop_id = #{record.shopId}
|
</if>
|
<if test="(record.companyId!=null and record.companyId!='') or (record.companyId!='' and record.companyId==0) ">
|
and company_id = #{record.companyId}
|
</if>
|
</if>
|
|
</sql>
|
|
<!-- 插入方法 -->
|
<insert id="insert" parameterType="com.matrix.system.shopXcx.bean.ShopDeliveryInfo"
|
useGeneratedKeys="true" keyProperty="item.id">
|
INSERT INTO shop_delivery_info (
|
<include refid="columns"></include>
|
)
|
VALUES (
|
<include refid="propertys"></include>
|
)
|
</insert>
|
|
|
|
<!-- 批量插入 -->
|
<insert id="batchInsert" parameterType="java.util.List">
|
INSERT INTO shop_delivery_info (
|
<include refid="columns"></include>
|
)
|
VALUES
|
<foreach collection="list" item="item" index="index" separator=",">(
|
<include refid="propertys"></include>
|
)</foreach>
|
</insert>
|
|
|
|
|
|
<!-- 根据Map更新 部分更新 -->
|
<update id="updateByMap" parameterType="java.util.HashMap" >
|
UPDATE shop_delivery_info
|
<set>
|
<if test="_parameter.containsKey('waybillNo')">
|
waybill_no = #{waybillNo},
|
</if>
|
<if test="_parameter.containsKey('deliveryWay')">
|
delivery_way = #{deliveryWay},
|
</if>
|
<if test="_parameter.containsKey('receiveAddress')">
|
receive_address = #{receiveAddress},
|
</if>
|
<if test="_parameter.containsKey('logisticsCompany')">
|
logistics_company = #{logisticsCompany},
|
</if>
|
<if test="_parameter.containsKey('orderId')">
|
order_id = #{orderId},
|
</if>
|
<if test="_parameter.containsKey('userId')">
|
user_id = #{userId},
|
</if>
|
<if test="_parameter.containsKey('orderNo')">
|
order_no = #{orderNo},
|
</if>
|
<if test="_parameter.containsKey('remarks')">
|
remarks = #{remarks},
|
</if>
|
<if test="_parameter.containsKey('logisticsCompanyCode')">
|
logistics_company_code = #{logisticsCompanyCode},
|
</if>
|
<if test="_parameter.containsKey('logisticsStatus')">
|
logistics_status = #{logisticsStatus},
|
</if>
|
<if test="_parameter.containsKey('deliveryTime')">
|
delivery_time = #{deliveryTime},
|
</if>
|
<if test="_parameter.containsKey('pickUpStatus')">
|
pick_up_status = #{pickUpStatus},
|
</if>
|
</set>
|
WHERE id=#{id}
|
</update>
|
|
|
<!-- 根据对象更新 部分更新 -->
|
<update id="updateByModel" parameterType="Integer">
|
UPDATE shop_delivery_info
|
<set>
|
<if test="record.waybillNo != null and record.waybillNo != '' ">
|
waybill_no = #{record.waybillNo},
|
</if>
|
<if test="record.deliveryWay != null and record.deliveryWay != '' ">
|
delivery_way = #{record.deliveryWay},
|
</if>
|
<if test="record.receiveAddress != null and record.receiveAddress != '' ">
|
receive_address = #{record.receiveAddress},
|
</if>
|
<if test="record.logisticsCompany != null and record.logisticsCompany != '' ">
|
logistics_company = #{record.logisticsCompany},
|
</if>
|
<if test="record.orderId != null ">
|
order_id = #{record.orderId},
|
</if>
|
<if test="record.receiveId != null ">
|
receive_id = #{record.receiveId},
|
</if>
|
<if test="record.userId != null and record.userId != '' ">
|
user_id = #{record.userId},
|
</if>
|
<if test="record.orderNo != null and record.orderNo != '' ">
|
order_no = #{record.orderNo},
|
</if>
|
<if test="record.remarks != null and record.remarks != '' ">
|
remarks = #{record.remarks},
|
</if>
|
<if test="record.logisticsCompanyCode != null and record.logisticsCompanyCode != '' ">
|
logistics_company_code = #{record.logisticsCompanyCode},
|
</if>
|
<if test="record.logisticsStatus != null ">
|
logistics_status = #{record.logisticsStatus},
|
</if>
|
<if test="record.deliveryTime != null ">
|
delivery_time = #{record.deliveryTime},
|
</if>
|
<if test="record.pickUpStatus != null ">
|
pick_up_status = #{record.pickUpStatus},
|
</if>
|
<if test="record.shopId != null ">
|
shop_id = #{record.shopId},
|
</if>
|
<if test="record.companyId != null ">
|
company_id = #{record.companyId},
|
</if>
|
</set>
|
WHERE id=#{record.id}
|
</update>
|
|
<!-- 批量删除 -->
|
<delete id="deleteByIds" parameterType="java.util.List">
|
delete from shop_delivery_info where id in
|
<foreach collection="list" index="index" item="item" open="("
|
separator="," close=")">
|
#{item}
|
</foreach>
|
</delete>
|
|
<!-- 根据id删除-->
|
<delete id="deleteById" parameterType="Integer">
|
DELETE FROM shop_delivery_info
|
where id=#{id}
|
</delete>
|
|
<!-- 根据对象删除-->
|
<delete id="deleteByModel" parameterType="com.matrix.system.shopXcx.bean.ShopDeliveryInfo">
|
DELETE FROM shop_delivery_info
|
<where>
|
<include refid="where_sql" ></include>
|
</where>
|
</delete>
|
|
|
|
<!-- 分页查询 -->
|
<select id="selectInPage" resultMap="ShopDeliveryInfoMap">
|
select
|
<include refid="columns" ></include>
|
from shop_delivery_info
|
<where>
|
<include refid="where_sql"></include>
|
</where>
|
<if test="pageVo !=null"><!-- 判断pageVo对象是否为空 -->
|
<if test="pageVo.sort !=null and pageVo.order !=null">
|
order by
|
${pageVo.sort} ${pageVo.order}
|
</if>
|
<if test="pageVo.offset >=0 and pageVo.limit >0">
|
limit
|
#{pageVo.offset},#{pageVo.limit}
|
</if>
|
</if>
|
</select>
|
|
<!-- 查询总条数 -->
|
<select id="selectTotalRecord" parameterType="long" resultType="java.lang.Integer">
|
select count(*)
|
from shop_delivery_info
|
<where>
|
<include refid="where_sql"></include>
|
</where>
|
</select>
|
|
<!-- 根据id查询-->
|
<select id="selectById" resultMap="ShopDeliveryInfoMap">
|
select
|
<include refid="columns" ></include>
|
from shop_delivery_info
|
where id=#{id}
|
</select>
|
|
<!-- 查询发货后15天待收货的数据-->
|
<select id="selectAutomaticReceive" resultMap="ShopDeliveryInfoMap">
|
select
|
i.id,
|
i.waybill_no,
|
i.delivery_way,
|
i.receive_address,
|
i.logistics_company,
|
i.order_id,
|
i.user_id,
|
i.order_no,
|
i.remarks,
|
i.logistics_company_code,
|
i.logistics_status,
|
i.delivery_time,
|
i.pick_up_status
|
from shop_delivery_info i
|
LEFT JOIN shop_order o on i.order_id = o.id
|
WHERE DATE_ADD(i.delivery_time,INTERVAL 15 DAY) < now()
|
and o.del_flag = 2
|
and o.order_status = 3
|
</select>
|
|
<!-- 根据订单id查询-->
|
<select id="selectByOrderId" resultMap="ShopDeliveryInfoMap">
|
select
|
<include refid="columns" ></include>
|
from shop_delivery_info
|
where order_id=#{orderId}
|
</select>
|
|
<!-- 根据订单id查询最新物流信息-->
|
<select id="selectDescribeByOrderId" resultType ="java.lang.String">
|
SELECT
|
b.`describe`
|
FROM
|
shop_delivery_info a
|
LEFT JOIN
|
shop_logistics_info b ON a.id = b.deliery_id
|
where order_id=#{orderId}
|
ORDER BY
|
b.logistics_time DESC
|
LIMIT 1
|
</select>
|
|
|
<!-- 根据id 锁表查询-->
|
<select id="selectForUpdate" resultMap="ShopDeliveryInfoMap">
|
select
|
<include refid="columns" ></include>
|
from shop_delivery_info
|
where id=#{id}
|
for update
|
</select>
|
|
|
|
<!-- 根据对象查询-->
|
<select id="selectByModel" resultMap="ShopDeliveryInfoMap">
|
select
|
<include refid="columns" ></include>
|
from shop_delivery_info
|
<where>
|
<include refid="where_sql"></include>
|
</where>
|
</select>
|
|
</mapper>
|