456 lines
19 KiB
XML
456 lines
19 KiB
XML
|
<?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.hcy.common.mapper.order.OrderMapper">
|
||
|
<!-- 通用查询映射结果 -->
|
||
|
<resultMap id="BaseResultMap" type="com.hcy.common.entity.order.Order">
|
||
|
<!-- <id column="id" property="id"/>
|
||
|
<result column="create_id" property="createId"/>
|
||
|
<result column="create_time" property="createTime"/>
|
||
|
<result column="update_id" property="updateId"/>
|
||
|
<result column="update_time" property="updateTime"/>
|
||
|
<result column="company_id" property="companyId"/>
|
||
|
<result column="account_id" property="accountId"/>
|
||
|
<result column="account_chart_id" property="accountChartId"/>
|
||
|
<result column="is_add_next_level" property="isAddNextLevel"/>
|
||
|
<result column="is_reallocate" property="isReallocate"/>
|
||
|
<result column="tenant_id" property="tenantId"/>-->
|
||
|
</resultMap>
|
||
|
|
||
|
<sql id="base_sql">
|
||
|
id,
|
||
|
sn,
|
||
|
user_id,
|
||
|
transaction_id,
|
||
|
staff_id,
|
||
|
order_type,
|
||
|
order_terminal,
|
||
|
order_status,
|
||
|
pay_status,
|
||
|
pay_way,
|
||
|
goods_price,
|
||
|
order_amount,
|
||
|
total_amount,
|
||
|
total_num,
|
||
|
user_remark,
|
||
|
order_remarks,
|
||
|
verification_code,
|
||
|
verification_status,
|
||
|
contact,
|
||
|
mobile,
|
||
|
province_id,
|
||
|
city_id,
|
||
|
district_id,
|
||
|
address,
|
||
|
is_dispatch,
|
||
|
create_time,
|
||
|
update_time,
|
||
|
pay_time,
|
||
|
delete_time,
|
||
|
cancel_time,
|
||
|
appoint_time_start,
|
||
|
appoint_time_end,
|
||
|
finish_time
|
||
|
</sql>
|
||
|
|
||
|
<select id="page" resultType="com.hcy.common.dto.result.OrderPageResultDto">
|
||
|
select a.id,
|
||
|
a.sn,
|
||
|
a.user_id as userId,
|
||
|
a.transaction_id as transactionId,
|
||
|
a.staff_id as staffId,
|
||
|
a.order_type as orderType,
|
||
|
a.order_terminal as orderTerminal,
|
||
|
a.order_status as orderStatus,
|
||
|
a.pay_status as payStatus,
|
||
|
a.pay_way as payWay,
|
||
|
a.goods_price as goodsPrice,
|
||
|
a.order_amount as orderAmount,
|
||
|
a.total_amount as totalAmount,
|
||
|
a.total_num as totalNum,
|
||
|
a.user_remark as userRemark,
|
||
|
a.order_remarks as orderRemarks,
|
||
|
a.verification_code as verificationCode,
|
||
|
a.verification_status as verificationStatus,
|
||
|
a.contact,
|
||
|
a.mobile,
|
||
|
a.province_id as provinceId,
|
||
|
a.city_id as cityId,
|
||
|
a.district_id as districtId,
|
||
|
a.address,
|
||
|
a.is_dispatch as isDispatch,
|
||
|
a.create_time as createTime,
|
||
|
a.update_time as updateTime,
|
||
|
a.pay_time as payTime,
|
||
|
a.delete_time as deleteTime,
|
||
|
a.cancel_time as cancelTime,
|
||
|
a.appoint_time_start as appointTimeStart,
|
||
|
a.appoint_time_end as appointTimeEnd,
|
||
|
a.finish_time as finishTime,
|
||
|
b.sn as userSn,
|
||
|
b.avatar,
|
||
|
b.nickname,
|
||
|
b.username,
|
||
|
c.goods_id as goodsId,
|
||
|
c.goods_name as goodsName,
|
||
|
c.unit_name as unitName,
|
||
|
d.image as goodsImage,
|
||
|
e.name as staffName
|
||
|
from la_order a
|
||
|
left join la_order_goods c on a.id = c.order_id
|
||
|
left join la_user b on a.user_id = b.id
|
||
|
left join la_goods d on c.goods_id = d.id
|
||
|
left join la_staff e on a.staff_id = e.id
|
||
|
<where>
|
||
|
a.is_delete = 0
|
||
|
<if test="form.orderStatus != null and form.orderStatus == 4">
|
||
|
and a.order_status in (4, 5)
|
||
|
</if>
|
||
|
<if test="form.orderStatus != null and form.orderStatus != 4">
|
||
|
and a.order_status= #{form.orderStatus}
|
||
|
</if>
|
||
|
<if test="form.sn != null and form.sn != ''">
|
||
|
and a.sn like concat('%', #{form.sn}, '%')
|
||
|
</if>
|
||
|
<if test="form.goodsName != null and form.goodsName != ''">
|
||
|
and c.goods_name like concat('%', #{form.goodsName}, '%')
|
||
|
</if>
|
||
|
<if test="form.payStatus != null">
|
||
|
and a.pay_status = #{form.payStatus}
|
||
|
</if>
|
||
|
<if test="form.isDispatch != null">
|
||
|
and a.is_dispatch = #{form.isDispatch}
|
||
|
</if>
|
||
|
<if test="form.userInfo != null and form.userInfo != ''">
|
||
|
and (b.nickname like concat('%', #{form.userInfo}, '%') or
|
||
|
b.sn like concat('%', #{form.userInfo}, '%'))
|
||
|
</if>
|
||
|
<if test="form.orderTimeStart != null">
|
||
|
and a.create_time >= #{form.orderTimeStart}
|
||
|
</if>
|
||
|
<if test="form.orderTimeEnd != null">
|
||
|
and a.create_time <= #{form.orderTimeEnd}
|
||
|
</if>
|
||
|
<if test="form.staffInfo != null and form.staffInfo != ''">
|
||
|
and e.name like concat('%', #{form.staffInfo}, '%') or
|
||
|
e.sn like concat('%', #{form.staffInfo}, '%')
|
||
|
</if>
|
||
|
</where>
|
||
|
order by a.id desc
|
||
|
</select>
|
||
|
|
||
|
<select id="listWaitComment" resultType="com.hcy.common.dto.result.OrderPageResultDto">
|
||
|
select a.id,
|
||
|
a.sn,
|
||
|
a.user_id as userId,
|
||
|
a.transaction_id as transactionId,
|
||
|
a.staff_id as staffId,
|
||
|
a.order_type as orderType,
|
||
|
a.order_terminal as orderTerminal,
|
||
|
a.order_status as orderStatus,
|
||
|
a.pay_status as payStatus,
|
||
|
a.pay_way as payWay,
|
||
|
a.goods_price as goodsPrice,
|
||
|
a.order_amount as orderAmount,
|
||
|
a.total_amount as totalAmount,
|
||
|
a.total_num as totalNum,
|
||
|
a.user_remark as userRemark,
|
||
|
a.order_remarks as orderRemarks,
|
||
|
a.verification_code as verificationCode,
|
||
|
a.verification_status as verificationStatus,
|
||
|
a.contact,
|
||
|
a.mobile,
|
||
|
a.province_id as provinceId,
|
||
|
a.city_id as cityId,
|
||
|
a.district_id as districtId,
|
||
|
a.address,
|
||
|
a.is_dispatch as isDispatch,
|
||
|
a.create_time as createTime,
|
||
|
a.update_time as updateTime,
|
||
|
a.pay_time as payTime,
|
||
|
a.delete_time as deleteTime,
|
||
|
a.cancel_time as cancelTime,
|
||
|
a.appoint_time_start as appointTimeStart,
|
||
|
a.appoint_time_end as appointTimeEnd,
|
||
|
a.finish_time as finishTime,
|
||
|
c.goods_id as goodsId,
|
||
|
c.goods_name as goodsName,
|
||
|
c.unit_name as unitName,
|
||
|
d.image as goodsImage
|
||
|
from la_order a
|
||
|
left join la_order_goods c on a.id = c.order_id
|
||
|
left join la_goods d on c.goods_id = d.id
|
||
|
where a.is_delete = 0
|
||
|
and c.is_comment = 0
|
||
|
and a.user_id = #{form.userId}
|
||
|
and a.order_status = #{form.orderStatus}
|
||
|
order by a.id desc
|
||
|
</select>
|
||
|
|
||
|
<select id="groupSalesAmount" resultType="com.hcy.common.dto.result.OrderGroupResultDto">
|
||
|
select from_unixtime(create_time, '%Y-%m-%d') as orderTime, sum(total_amount) as totalAmount
|
||
|
from la_order
|
||
|
where pay_status = #{form.payStatus}
|
||
|
and create_time <= #{form.endTime}
|
||
|
and create_time >= #{form.startTime}
|
||
|
group by from_unixtime(create_time, '%Y-%m-%d')
|
||
|
order by from_unixtime(create_time, '%Y-%m-%d') asc
|
||
|
</select>
|
||
|
|
||
|
<select id="listFinishOrder" resultType="com.hcy.common.dto.result.OrderPageResultDto">
|
||
|
select a.id,
|
||
|
a.sn,
|
||
|
a.user_id as userId,
|
||
|
a.transaction_id as transactionId,
|
||
|
a.staff_id as staffId,
|
||
|
a.order_type as orderType,
|
||
|
a.order_terminal as orderTerminal,
|
||
|
a.order_status as orderStatus,
|
||
|
a.pay_status as payStatus,
|
||
|
a.pay_way as payWay,
|
||
|
a.goods_price as goodsPrice,
|
||
|
a.order_amount as orderAmount,
|
||
|
a.total_amount as totalAmount,
|
||
|
a.total_num as totalNum,
|
||
|
a.user_remark as userRemark,
|
||
|
a.order_remarks as orderRemarks,
|
||
|
a.verification_code as verificationCode,
|
||
|
a.verification_status as verificationStatus,
|
||
|
a.contact,
|
||
|
a.mobile,
|
||
|
a.province_id as provinceId,
|
||
|
a.city_id as cityId,
|
||
|
a.district_id as districtId,
|
||
|
a.address,
|
||
|
a.is_dispatch as isDispatch,
|
||
|
a.create_time as createTime,
|
||
|
a.update_time as updateTime,
|
||
|
a.pay_time as payTime,
|
||
|
a.delete_time as deleteTime,
|
||
|
a.cancel_time as cancelTime,
|
||
|
a.appoint_time_start as appointTimeStart,
|
||
|
a.appoint_time_end as appointTimeEnd,
|
||
|
a.finish_time as finishTime,
|
||
|
c.is_comment as isComment
|
||
|
from la_order a
|
||
|
left join la_order_goods c on a.id = c.order_id
|
||
|
where a.is_delete = 0
|
||
|
and a.user_id = #{userId}
|
||
|
and a.order_status = 3
|
||
|
</select>
|
||
|
|
||
|
<select id="pageDistributionOrder" resultType="com.hcy.common.dto.result.OrderDistributionResultDto">
|
||
|
select
|
||
|
a.sn,
|
||
|
a.total_amount as totalAmount,
|
||
|
a.order_amount as orderAmount,
|
||
|
a.total_num as totalNum,
|
||
|
a.finish_time as finishTime,
|
||
|
c.name as goodsName,
|
||
|
d.name as categoryName,
|
||
|
e.name as distributorName,
|
||
|
e.dist_num as distNum,
|
||
|
e.group_id as groupId,
|
||
|
dc.goods_commission_rate as goodsCommissionRate,
|
||
|
dc.distributor_commission_rate as distributorCommissionRate,
|
||
|
dc.commission as commission
|
||
|
from la_order a
|
||
|
left join la_order_goods b on a.id = b.order_id
|
||
|
left join la_goods c on b.goods_id = c.id
|
||
|
left join la_goods_category d on c.category_id = d.id
|
||
|
left join la_distributor e on a.distributor_id = e.id
|
||
|
left join la_distributor_commission dc on dc.order_id = a.id and e.id = dc.distributor_id
|
||
|
<where>
|
||
|
a.is_delete = 0
|
||
|
and a.order_status IN ( 1, 2, 3)
|
||
|
and a.distributor_id != 0
|
||
|
<if test="form.distributorName != null and form.distributorName != ''">
|
||
|
and e.name like concat('%', #{form.distributorName}, '%')
|
||
|
</if>
|
||
|
<if test="form.distNum != null and form.distNum != ''">
|
||
|
and e.dist_num like concat('%', #{form.distNum}, '%')
|
||
|
</if>
|
||
|
<if test="form.groupId != null and form.groupId != ''">
|
||
|
and e.group_id = #{form.groupId}
|
||
|
</if>
|
||
|
<if test="form.categoryId != null">
|
||
|
and d.id = #{form.categoryId}
|
||
|
</if>
|
||
|
<if test="form.finishStartTime != null">
|
||
|
and a.finish_time >= #{form.finishStartTime}
|
||
|
</if>
|
||
|
<if test="form.finishEndTime != null">
|
||
|
and a.finish_time <= #{form.finishEndTime}
|
||
|
</if>
|
||
|
</where>
|
||
|
order by a.id desc
|
||
|
</select>
|
||
|
|
||
|
<select id="listDistributionOrder" resultType="com.hcy.common.dto.result.OrderDistributionResultDto">
|
||
|
select
|
||
|
a.sn,
|
||
|
a.order_amount as orderAmount,
|
||
|
a.total_num as totalNum,
|
||
|
a.finish_time as finishTime,
|
||
|
c.name as goodsName,
|
||
|
d.name as categoryName,
|
||
|
e.name as distributorName,
|
||
|
e.dist_num as distNum,
|
||
|
e.group_id as groupId,
|
||
|
a.total_amount as totalAmount,
|
||
|
dc.goods_commission_rate as goodsCommissionRate,
|
||
|
dc.commission as commission
|
||
|
from la_order a
|
||
|
left join la_order_goods b on a.id = b.order_id
|
||
|
left join la_goods c on b.goods_id = c.id
|
||
|
left join la_goods_category d on c.category_id = d.id
|
||
|
left join la_distributor e on a.distributor_id = e.id
|
||
|
left join la_distributor_commission as dc on dc.order_id = a.id and e.id = dc.distributor_id
|
||
|
<where>
|
||
|
a.is_delete = 0
|
||
|
and a.order_status = 3
|
||
|
and a.distributor_id != 0
|
||
|
<if test="form.distributorName != null and form.distNum != ''">
|
||
|
and e.name like concat('%', #{form.distributorName}, '%')
|
||
|
</if>
|
||
|
<if test="form.distNum != null and form.distNum != ''">
|
||
|
and e.dist_num like concat('%', #{form.distNum}, '%')
|
||
|
</if>
|
||
|
<if test="form.groupId != null and form.groupId != ''">
|
||
|
and e.group_id = #{form.groupId}
|
||
|
</if>
|
||
|
<if test="form.categoryId != null">
|
||
|
and d.id = #{form.categoryId}
|
||
|
</if>
|
||
|
<if test="form.finishStartTime != null">
|
||
|
and a.finish_time >= #{form.finishStartTime}
|
||
|
</if>
|
||
|
<if test="form.finishEndTime != null">
|
||
|
and a.finish_time <= #{form.finishEndTime}
|
||
|
</if>
|
||
|
</where>
|
||
|
order by a.id desc
|
||
|
</select>
|
||
|
|
||
|
|
||
|
<select id="sumAmountByDistribution" resultType="com.hcy.common.dto.OrderDto">
|
||
|
select
|
||
|
sum(a.total_amount ) as totalOrderAmount,
|
||
|
sum(a.order_amount ) as actualPaymentTotal,
|
||
|
sum(dc.commission ) as totalCommissionAmount
|
||
|
from la_order a
|
||
|
left join la_order_goods b on a.id = b.order_id
|
||
|
left join la_goods c on b.goods_id = c.id
|
||
|
left join la_goods_category d on c.category_id = d.id
|
||
|
left join la_distributor e on a.distributor_id = e.id
|
||
|
left join la_distributor_commission dc on a.id = dc.order_id
|
||
|
<where>
|
||
|
a.is_delete = 0
|
||
|
and a.order_status = 3
|
||
|
and a.distributor_id != 0
|
||
|
<if test="form.distributorName != null and form.distributorName != ''">
|
||
|
and e.name like concat('%', #{form.distributorName}, '%')
|
||
|
</if>
|
||
|
<if test="form.distNum != null and form.distNum != ''">
|
||
|
and e.dist_num like concat('%', #{form.distNum}, '%')
|
||
|
</if>
|
||
|
<if test="form.groupId != null and form.groupId != ''">
|
||
|
and e.group_id = #{form.groupId}
|
||
|
</if>
|
||
|
<if test="form.categoryId != null">
|
||
|
and d.id = #{form.categoryId}
|
||
|
</if>
|
||
|
<if test="form.finishStartTime != null">
|
||
|
and a.finish_time >= #{form.finishStartTime}
|
||
|
</if>
|
||
|
<if test="form.finishEndTime != null">
|
||
|
and a.finish_time <= #{form.finishEndTime}
|
||
|
</if>
|
||
|
</where>
|
||
|
</select>
|
||
|
|
||
|
<select id="getGoodsNameAndGoodsCategoryNameByOrderId" resultType="com.hcy.common.dto.OrderDto">
|
||
|
SELECT
|
||
|
og.goods_name as goodsName,gc.`name` as goodsCategoryName
|
||
|
FROM
|
||
|
la_order_goods AS og
|
||
|
LEFT JOIN la_goods AS g ON g.id = og.goods_id
|
||
|
LEFT JOIN la_goods_category AS gc ON gc.id = g.category_id
|
||
|
WHERE
|
||
|
og.order_id = #{orderId}
|
||
|
</select>
|
||
|
|
||
|
<select id="getOrderByStaffId" resultType="com.hcy.common.dto.OrderDto">
|
||
|
SELECT
|
||
|
o.*,og.goods_name as goodsName,og.staff_commission_rate as staffCommissionRate
|
||
|
FROM
|
||
|
la_order AS o
|
||
|
LEFT JOIN la_order_goods AS og ON o.id = og.order_id
|
||
|
LEFT JOIN la_goods AS g ON g.id = og.goods_id
|
||
|
AND g.is_delete = 0
|
||
|
WHERE
|
||
|
o.order_status = 1
|
||
|
AND o.is_delete = 0
|
||
|
AND o.staff_id IS NULL
|
||
|
<if test="cityId != null">
|
||
|
AND o.city_id = #{cityId}
|
||
|
</if>
|
||
|
AND FIND_IN_SET(g.id,(SELECT goods_ids FROM la_staff WHERE id = #{staffId} AND is_delete = 0))
|
||
|
</select>
|
||
|
|
||
|
<select id="getAllOrder" resultType="com.hcy.common.dto.OrderDto">
|
||
|
SELECT
|
||
|
o.*,og.goods_name as goodsName,og.staff_commission_rate as staffCommissionRate
|
||
|
FROM
|
||
|
la_order AS o
|
||
|
LEFT JOIN la_order_goods AS og ON o.id = og.order_id
|
||
|
WHERE
|
||
|
o.order_status = 1
|
||
|
AND o.is_delete = 0
|
||
|
AND o.staff_id IS NULL
|
||
|
<if test="cityId != null">
|
||
|
AND o.city_id = #{cityId}
|
||
|
</if>
|
||
|
</select>
|
||
|
|
||
|
<select id="getOrderDetailByOrderId" resultType="com.hcy.common.dto.OrderDto">
|
||
|
SELECT
|
||
|
o.*,g.name as goodsName,g.staff_commission_rate as staffCommissionRate,og.id as orderGoodsId
|
||
|
FROM
|
||
|
la_order AS o
|
||
|
LEFT JOIN la_order_goods AS og ON o.id = og.order_id
|
||
|
LEFT JOIN la_goods AS g ON g.id = og.goods_id
|
||
|
AND g.is_delete = 0
|
||
|
WHERE
|
||
|
o.is_delete = 0
|
||
|
AND o.id = #{orderId}
|
||
|
</select>
|
||
|
|
||
|
<select id="getNoCommentOrder" resultType="com.hcy.common.dto.OrderDto">
|
||
|
SELECT
|
||
|
o.*,og.goods_id as goodsId,og.id as orderGoodsId
|
||
|
FROM
|
||
|
la_order AS o
|
||
|
LEFT JOIN la_order_goods AS og ON o.id = og.order_id
|
||
|
LEFT JOIN la_goods_comment AS gc ON og.id = gc.order_goods_id
|
||
|
WHERE
|
||
|
o.is_delete = 0
|
||
|
AND o.order_status = 3
|
||
|
AND gc.id is null
|
||
|
</select>
|
||
|
|
||
|
<select id="getDistributorOrderNoByDate" resultType="com.hcy.common.dto.OrderDto">
|
||
|
SELECT
|
||
|
o.*
|
||
|
FROM
|
||
|
la_order AS o
|
||
|
LEFT JOIN la_order_goods AS og ON og.order_id = o.id
|
||
|
WHERE
|
||
|
o.is_delete = 0
|
||
|
AND order_status IN ( 1, 2, 3, 4)
|
||
|
AND o.distributor_id = #{distributorId}
|
||
|
AND DATE_FORMAT( from_unixtime( o.create_time ), '%Y-%m' ) = #{date}
|
||
|
ORDER BY
|
||
|
from_unixtime( o.create_time ) DESC
|
||
|
</select>
|
||
|
</mapper>
|