Files
FrameTour-BE/src/main/resources/mapper/ProfitSharingRecordMapper.xml
Jerry Yan 5a89a7c60a feat(service): 批量获取景区和设备信息
- 在 DeviceRepository 中添加批量获取设备信息的方法
- 在 ScenicRepository 中添加批量获取景区信息的方法
- 修改 OrderServiceImpl,使用批量方法获取景区名称
- 移除多个 mapper 文件中冗余的景区信息查询
2025-09-07 01:42:38 +08:00

75 lines
3.1 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.ycwl.basic.profitsharing.mapper.ProfitSharingRecordMapper" >
<insert id="batchInsert">
INSERT INTO profit_sharing_record (scenic_id, order_id, user_id, user_name, amount, wx_amount, manual_amount, rate_mode, wx_rate, real_rate, order_amount, create_time)
VALUES
<foreach collection="records" item="record" separator=",">
(#{record.scenicId}, #{record.orderId}, #{record.userId}, #{record.userName}, #{record.amount}, #{record.wxAmount}, #{record.manualAmount}, #{record.rateMode}, #{record.wxRate}, #{record.realRate}, #{record.orderAmount}, #{record.createTime})
</foreach>
</insert>
<update id="deleteByScenicIdAndOrderId">
UPDATE profit_sharing_record
SET delete_time = now(), delete_reason = #{reason}
WHERE scenic_id = #{scenicId} AND order_id = #{orderId}
</update>
<select id="list" resultType="com.ycwl.basic.profitsharing.dto.ProfitSharingRecordRespVO">
SELECT r.*
FROM profit_sharing_record r
<where>
<if test="withDeleted != true">
delete_time is null
</if>
<if test="scenicId != null">
AND r.scenic_id = #{scenicId}
</if>
<if test="status != null">
AND r.status = #{status}
</if>
<if test="rateMode != null">
AND r.rate_mode = #{rateMode}
</if>
<if test="startTime != null">
AND r.create_time >= #{startTime}
</if>
<if test="endTime != null">
AND r.create_time &lt;= #{endTime}
</if>
</where>
ORDER BY r.create_time desc
</select>
<select id="listGroupByOrderId" resultType="com.ycwl.basic.profitsharing.dto.ProfitSharingRecordGroupVO">
SELECT order_id, min(create_time) as create_time
FROM profit_sharing_record r
<where>
<if test="withDeleted != true">
delete_time is null
</if>
<if test="scenicId != null">
AND r.scenic_id = #{scenicId}
</if>
<if test="status != null">
AND r.status = #{status}
</if>
<if test="rateMode != null">
AND r.rate_mode = #{rateMode}
</if>
<if test="startTime != null">
AND r.create_time >= #{startTime}
</if>
<if test="endTime != null">
AND r.create_time &lt;= #{endTime}
</if>
</where>
GROUP BY order_id
</select>
<select id="listByOrderIds" resultType="com.ycwl.basic.profitsharing.dto.ProfitSharingRecordRespVO">
SELECT r.*
FROM profit_sharing_record r
WHERE r.order_id IN
<foreach collection="orderIds" item="orderId" open="(" close=")" separator=",">
#{orderId}
</foreach>
ORDER BY r.create_time desc
</select>
</mapper>