feat(service): 批量获取景区和设备信息

- 在 DeviceRepository 中添加批量获取设备信息的方法
- 在 ScenicRepository 中添加批量获取景区信息的方法
- 修改 OrderServiceImpl,使用批量方法获取景区名称
- 移除多个 mapper 文件中冗余的景区信息查询
This commit is contained in:
2025-09-07 01:42:38 +08:00
parent d9a2da49bb
commit 5a89a7c60a
14 changed files with 289 additions and 60 deletions

View File

@@ -110,8 +110,7 @@
oi.order_id AS orderId,
oi.goods_id,
msd.source_id,
sc.id AS scenic_id,
sc.name AS scenic_name,
o.scenic_id AS scenic_id,
CASE oi.goods_type
WHEN '0' THEN mvd.cover_url
WHEN '3' THEN mpd.url
@@ -147,7 +146,6 @@
END AS imgUrl
FROM order_item oi
LEFT JOIN `order` o ON oi.order_id = o.id
LEFT JOIN scenic sc ON o.scenic_id = sc.id
LEFT JOIN member_video_data mvd ON o.face_id = mvd.face_id AND oi.goods_id = mvd.video_id
LEFT JOIN member_source_data msd ON o.face_id = msd.face_id AND oi.goods_id = msd.face_id AND msd.type = oi.goods_type
LEFT JOIN member_photo_data mpd ON oi.goods_id = mpd.id AND mpd.type = oi.goods_type
@@ -238,13 +236,12 @@
delete from `order` where id = #{id}
</delete>
<select id="list" resultMap="PCBaseResultListMap">
select o.id, o.scenic_id, s.name as scenic_name, o.member_id,m.nickname, m.uid, o.type, o.openid, o.face_id, f.face_url, o.price, pay_price, remark, o.broker_id, o.promo_code,
select o.id, o.scenic_id, o.member_id,m.nickname, m.uid, o.type, o.openid, o.face_id, f.face_url, o.price, pay_price, remark, o.broker_id, o.promo_code,
o.coupon_price,
refund_reason, refund_status, o.`status`, refund_at, pay_at, cancel_at, o.create_at
from `order` AS o
left join face f on o.face_id = f.id
left join member m on o.member_id = m.id
left join scenic s on o.scenic_id = s.id
<where>
<if test="id!= null ">
and o.id LIKE CONCAT('%',#{id},'%')
@@ -312,13 +309,12 @@
order by o.create_at desc
</select>
<select id="listDetail" resultMap="PCBaseResultMap">
select o.id, o.scenic_id, s.name as scenic_name, o.member_id,m.nickname, m.uid, o.type, o.openid, o.face_id, f.face_url, o.price, pay_price, remark, o.broker_id, o.promo_code,
select o.id, o.scenic_id, o.member_id,m.nickname, m.uid, o.type, o.openid, o.face_id, f.face_url, o.price, pay_price, remark, o.broker_id, o.promo_code,
o.coupon_price,
refund_reason, refund_status, o.`status`, refund_at, pay_at, cancel_at, o.create_at
from `order` AS o
left join face f on o.face_id = f.id
left join member m on o.member_id = m.id
left join scenic s on o.scenic_id = s.id
<where>
<if test="id!= null ">
and o.id = #{id}
@@ -378,14 +374,13 @@
order by o.create_at desc
</select>
<select id="getById" resultMap="PCBaseResultMap">
select o.id, o.scenic_id, s.name as scenic_name, o.member_id, o.type, o.openid, o.face_id, f.face_url, o.price, o.pay_price, o.remark, o.broker_id, o.promo_code, o.refund_reason,
select o.id, o.scenic_id, o.member_id, o.type, o.openid, o.face_id, f.face_url, o.price, o.pay_price, o.remark, o.broker_id, o.promo_code, o.refund_reason,
o.coupon_price,
o.refund_status, o.status, o.create_at, o.update_at, o.pay_at, o.cancel_at, o.refund_at,
m.nickname, m.uid
from `order` o
left join face f on o.face_id = f.id
left join member m on m.id = o.member_id
left join scenic s on o.scenic_id = s.id
where o.id = #{id}
</select>
<select id="countByUserId" resultType="java.lang.Integer">
@@ -397,10 +392,9 @@
select o.id, o.member_id,o.openid, o.type, o.face_id, f.face_url, o.price, pay_price, remark, o.broker_id, o.promo_code,
o.coupon_price,
refund_reason, refund_status, o.`status`, o.create_at, refund_at, pay_at, cancel_at,
sc.name scenicName
o.scenic_id
from `order` AS o
left join face f on o.face_id = f.id
left join scenic sc on o.scenic_id = sc.id
<where>
<if test="memberId!=null">
and o.member_id=#{memberId}
@@ -412,18 +406,16 @@
select o.id, o.member_id, o.face_id,o.openid, o.type, o.price, o.slash_price, pay_price, remark, o.broker_id, o.promo_code,
o.coupon_price,
refund_reason, refund_status, o.`status`, o.create_at, refund_at, pay_at, cancel_at,
o.scenic_id, sc.name scenicName
o.scenic_id
from `order` AS o
left join member m on o.member_id = m.id
left join scenic sc on o.scenic_id = sc.id
where o.id = #{id}
</select>
<select id="refundList" resultType="com.ycwl.basic.model.pc.order.resp.OrderRespVO">
select o.id, o.scenic_id, s.name as scenic_name, o.member_id,m.nickname,m.uid as memberUid , o.type, o.openid, o.price, pay_price, remark, o.broker_id, o.promo_code,
select o.id, o.scenic_id, o.member_id,m.nickname,m.uid as memberUid , o.type, o.openid, o.price, pay_price, remark, o.broker_id, o.promo_code,
refund_reason, refund_status, o.`status`, refund_at, pay_at, cancel_at, o.create_at
from `order` AS o
left join member m on o.member_id = m.id
left join scenic s on o.scenic_id = s.id
<where>
o.refund_status != 0
<if test="id!= null ">