left join (
select bop05.order_id,
SUM(IF(sp05.activity_price < sp05.price, sp05.activity_price, sp05.price)) course05Sum
from buy_order_product bop05
inner join shop_product sp05 on sp05.product_id = bop05.product_id and sp05.goods_type = '05'
group by bop05.order_id
) c05 on c05.order_id = t.order_id
left join (
select bop07.order_id,
IFNULL(SUM(spc_sum.s), 0) cs,
IFNULL(SUM(spb_sum.s), 0) bs
from buy_order_product bop07
inner join shop_product sp07 on sp07.product_id = bop07.product_id and sp07.goods_type = '07'
left join (
select product_id, SUM(IFNULL(product_price, 0)) s
from shop_product_course
where del_flag = 0
group by product_id
) spc_sum on spc_sum.product_id = sp07.product_id
left join (
select product_id, SUM(IFNULL(product_price, 0)) s
from shop_product_book
where del_flag = 0
group by product_id
) spb_sum on spb_sum.product_id = sp07.product_id
group by bop07.order_id
) c07 on c07.order_id = t.order_id
${baseAmount}
- IFNULL(c05.course05Sum, 0)
- IFNULL(ROUND(${baseAmount} * IFNULL(c07.cs, 0) / NULLIF(IFNULL(c07.cs, 0) + IFNULL(c07.bs, 0), 0), 2), 0)
GROUP_CONCAT(
IF(sp.goods_type = '07',
IFNULL((
select GROUP_CONCAT(bk.name SEPARATOR '/')
from shop_product_book spb
inner join book bk on bk.id = spb.book_id
where spb.product_id = sp.product_id and spb.del_flag = 0
), sp.product_name),
sp.product_name
) SEPARATOR ', '
)
select payType,count(1) count,SUM(price) totalPrice from (
select q.*,pzo.trade_no zfbOrder
from (
select t.createTime,t.name,t.tel,t.orderSn,t.orderStatus,t.payType,t.orderPrice,
MAX( ) price,
productName,t.remark
from (
select bo.order_id,DATE_FORMAT(bo.create_time,'%Y-%m-%d %H:%i:%s') createTime,u.name,if(u.tel is null,if(u.email is null,'',u.email),u.tel) tel,bo.order_sn orderSn,
IF(bo.payment_method=1,'微信',IF(bo.payment_method=2,'支付宝',IF(bo.payment_method=4,'天医币','0'))) payType,
IF(bo.order_status = 4,'已删除',IF(bo.order_status = 3,'已完成',IF(bo.order_status = 2,'已发货','已付款'))) orderStatus,bo.real_money orderPrice,if(bo.remark like '%退%',bo.remark,'') remark
from buy_order bo
left join user u on u.id = bo.user_id
left join buy_order_product bop on bop.order_id = bo.order_id
left join shop_product sp on sp.product_id = bop.product_id
where
( u.id not in (select id from user where tester_flag = 1) or (u.id in (select id from user where tester_flag = 1) and (bo.payment_method='1' or bo.payment_method='2') and bo.create_time>='2026-05-06 00:00:00') )
and bo.order_status in (1,2,3,4,6) and sp.goods_type != '05' and bo.real_money > 0
and (bo.payment_method = '1' or (bo.payment_method = '2' and bo.order_id >= 37867))
and bo.order_type = 'lsorder'
and (bo.order_type = 'order'
or (bo.order_type = 'lsorder' and bo.payment_method = '4')
or (bo.order_type = 'lsorder' and bo.payment_method = '2' and bo.order_id < 37867))
and DATE_FORMAT(bo.create_time,'%Y-%m') = SUBSTR(#{date},1,7)
group by bo.order_sn
) t
left join buy_order_product bop on bop.order_id = t.order_id
left join shop_product sp on sp.product_id = bop.product_id
group by t.orderSn
) q
left join pay_zfb_order pzo on pzo.relevanceOid = q.orderSn and pzo.trade_no is not null
) s
group by payType
select payType,count(1) count,SUM(price) totalPrice from (
select q.*,pzo.trade_no zfbOrder
from (
select t.createTime,t.name,t.tel,t.orderSn,t.orderStatus,t.payType,t.refundFee,
MAX( ) price,
productName,t.remark
from (
select bo.order_id,DATE_FORMAT(bor.create_time,'%Y-%m-%d %H:%i:%s') createTime,u.name,if(u.tel is null,if(u.email is null,'',u.email),u.tel) tel,bo.order_sn orderSn,
IF(bo.payment_method=1,'微信',IF(bo.payment_method=2,'支付宝',IF(bo.payment_method=4,'天医币','0'))) payType,
'已退款' orderStatus,bor.fee refundFee,if(bo.remark like '%退%',bo.remark,'') remark
from buy_order_refund bor
inner join buy_order bo on bo.order_id = bor.order_id and bo.del_flag = 0
left join user u on u.id = bo.user_id
left join buy_order_product bop on bop.order_id = bo.order_id
left join shop_product sp on sp.product_id = bop.product_id
where
( u.id not in (select id from user where tester_flag = 1) or (u.id in (select id from user where tester_flag = 1) and (bo.payment_method='1' or bo.payment_method='2') and bo.create_time>='2026-05-06 00:00:00') )
and bo.order_status = '6' and sp.goods_type != '05' and bo.real_money > 0
and (bo.payment_method = '1' or (bo.payment_method = '2' and bo.order_id >= 37867))
and bo.order_type = 'lsorder'
and (bo.order_type = 'order'
or (bo.order_type = 'lsorder' and bo.payment_method = '4')
or (bo.order_type = 'lsorder' and bo.payment_method = '2' and bo.order_id < 37867))
and DATE_FORMAT(bor.create_time,'%Y-%m') = SUBSTR(#{date},1,7)
group by bo.order_sn
) t
left join buy_order_product bop on bop.order_id = t.order_id
left join shop_product sp on sp.product_id = bop.product_id
group by t.orderSn
) q
left join pay_zfb_order pzo on pzo.relevanceOid = q.orderSn and pzo.trade_no is not null
) s
group by payType
select q.*,pzo.trade_no zfbOrder
from (
select t.createTime,t.name,t.tel,t.orderSn,t.orderStatus,t.payType,t.orderPrice,
MAX( ) price,
productName,IF(count(1)=1,bop.quantity,'') quantity,t.remark
from (
select bo.order_id,DATE_FORMAT(bo.create_time,'%Y-%m-%d %H:%i:%s') createTime,u.name,if(u.tel is null,if(u.email is null,'',u.email),u.tel) tel,bo.order_sn orderSn,
IF(bo.payment_method=1,'微信',IF(bo.payment_method=2,'支付宝',IF(bo.payment_method=4,'天医币','0'))) payType,
IF(bo.order_status = 4,'已删除',IF(bo.order_status = 3,'已完成',IF(bo.order_status = 2,'已发货',IF(bo.order_status = 6,'已退款','已付款')))) orderStatus,bo.real_money orderPrice,if(bo.remark like '%退%',bo.remark,'') remark
from buy_order bo
left join user u on u.id = bo.user_id
left join buy_order_product bop on bop.order_id = bo.order_id
left join shop_product sp on sp.product_id = bop.product_id
where
( u.id not in (select id from user where tester_flag = 1) or (u.id in (select id from user where tester_flag = 1) and (bo.payment_method='1' or bo.payment_method='2') and bo.create_time>='2026-05-06 00:00:00') )
and bo.order_status in (1,2,3,4,6) and sp.goods_type != '05' and bo.real_money > 0
and (bo.payment_method = '1' or (bo.payment_method = '2' and bo.order_id >= 37867))
and bo.order_type = 'lsorder'
and (bo.order_type = 'order'
or (bo.order_type = 'lsorder' and bo.payment_method = '4')
or (bo.order_type = 'lsorder' and bo.payment_method = '2' and bo.order_id < 37867))
and DATE_FORMAT(bo.create_time,'%Y-%m') = SUBSTR(#{date},1,7)
group by bo.order_sn
) t
left join buy_order_product bop on bop.order_id = t.order_id
left join shop_product sp on sp.product_id = bop.product_id
group by t.orderSn
) q
left join pay_zfb_order pzo on pzo.relevanceOid = q.orderSn and pzo.trade_no is not null
select q.*,pzo.trade_no zfbOrder
from (
select t.createTime,t.name,t.tel,t.orderSn,t.orderStatus,t.payType,t.orderPrice,
MAX( ) price,
productName,IF(count(1)=1,bop.quantity,'') quantity,t.remark,t.refund_no
from (
select bo.order_id,DATE_FORMAT(bor.create_time,'%Y-%m-%d %H:%i:%s') createTime,u.name,if(u.tel is null,if(u.email is null,'',u.email),u.tel) tel,bo.order_sn orderSn,
IF(bo.payment_method=1,'微信',IF(bo.payment_method=2,'支付宝',IF(bo.payment_method=4,'天医币','0'))) payType,
'已退款' orderStatus,bor.fee orderPrice,if(bo.remark like '%退%',bo.remark,'') remark,IFNULL(bor.wx_refund_no,bor.refund_no) as refund_no
from buy_order_refund bor
inner join buy_order bo on bo.order_id = bor.order_id and bo.del_flag = 0
left join user u on u.id = bo.user_id
left join buy_order_product bop on bop.order_id = bo.order_id
left join shop_product sp on sp.product_id = bop.product_id
where
( u.id not in (select id from user where tester_flag = 1) or (u.id in (select id from user where tester_flag = 1) and (bo.payment_method='1' or bo.payment_method='2') and bo.create_time>='2026-05-06 00:00:00') )
and bo.order_status = '6' and sp.goods_type != '05' and bo.real_money > 0
and (bo.payment_method = '1' or (bo.payment_method = '2' and bo.order_id >= 37867))
and bo.order_type = 'lsorder'
and (bo.order_type = 'order'
or (bo.order_type = 'lsorder' and bo.payment_method = '4')
or (bo.order_type = 'lsorder' and bo.payment_method = '2' and bo.order_id < 37867))
and DATE_FORMAT(bor.create_time,'%Y-%m') = SUBSTR(#{date},1,7)
group by bo.order_sn
) t
left join buy_order_product bop on bop.order_id = t.order_id
left join shop_product sp on sp.product_id = bop.product_id
group by t.orderSn
) q
left join pay_zfb_order pzo on pzo.relevanceOid = q.orderSn and pzo.trade_no is not null
select
*,
buy_order_detail.order_id,
buy_order_detail.product_name,
buy_order_detail.quantity,
buy_order_detail.product_price,
buy_order_detail.weight,
buy_order_detail.remark
from buy_order
left join buy_order_detail on buy_order.order_id = buy_order_detail.order_id
where buy_order.order_id in
#{id}
and del_flag = 0
select *,count(*) as statusNum
from buy_order
where
user_id = #{userId}
and del_flag = 0
and order_status in (0,1,2,3)
group by
order_status
select count(1) from (
select b.*
from buy_order b
left join buy_order_product p on b.order_id = p.order_id
left join
shop_product s on s.product_id = p.product_id
and (b.order_sn like concat('%',concat(#{searchKeyWord},'%'))
or b.shipping_user like concat('%',concat(#{searchKeyWord},'%'))
or b.user_phone like concat('%',concat(#{searchKeyWord},'%')))
and (s.product_name like concat('%',concat(#{productName},'%')))
and b.order_status = #{orderStatus}
and b.create_time >= #{startTime}
and b.create_time <= #{endTime}
and b.order_type = 'order'
and b.del_flag = 0
group by b.order_id
) t
select b.*
from buy_order b
left join buy_order_product p on b.order_id = p.order_id
left join shop_product s on s.product_id = p.product_id
and (b.order_sn like concat('%',concat(#{searchKeyWord},'%'))
or b.shipping_user like concat('%',concat(#{searchKeyWord},'%'))
or b.user_phone like concat('%',concat(#{searchKeyWord},'%')))
and (s.product_name like concat('%',concat(#{productName},'%')))
and b.order_status = #{orderStatus}
and b.create_time >= #{startTime}
and b.create_time <= #{endTime}
and b.order_type = 'order'
and b.del_flag = 0
group by b.order_id
order by b.create_time desc
limit #{index},#{pageSize}