charging_pile/common/target/classes/mapper/OrderMapper.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 &gt;= #{form.orderTimeStart}
</if>
<if test="form.orderTimeEnd != null">
and a.create_time &lt;= #{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 &lt;= #{form.endTime}
and create_time &gt;= #{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 &gt;= #{form.finishStartTime}
</if>
<if test="form.finishEndTime != null">
and a.finish_time &lt;= #{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 &gt;= #{form.finishStartTime}
</if>
<if test="form.finishEndTime != null">
and a.finish_time &lt;= #{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 &gt;= #{form.finishStartTime}
</if>
<if test="form.finishEndTime != null">
and a.finish_time &lt;= #{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>