sadjv3_java/src/main/resources/mapper/bl/order/UserPackageDetailDao.xml

226 lines
6.9 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.sqx.modules.bl.order.dao.UserPackageDetailDao">
<select id="findDetailList" resultType="com.sqx.modules.bl.order.entity.UserPackageDetail">
select
id,
main_id,
package_detail_id,
massage_type_id,
status,
package_price,
interval_days,
create_time,
title,
massage_img,
content,
old_price,
price,
duration,
is_sex,
city,
content_img,
labels,
parent_id,
classify_id,
apply_people,
jianjie,
level
from bl_user_package_detail
where main_id = #{mainId}
</select>
<select id="findDetailUsedQuantity" resultType="com.sqx.modules.bl.order.entity.UserPackageDetail">
select
a.massage_type_id,
a.title,
a.massage_img,
a.content_img,
round(avg(a.package_price),2) as package_price,
round(avg(a.price),2) as price,
sum(case a.status when 1 then 1 else 0 end) as usedQuantity,
sum(case a.status when 0 then 1 else 0 end) as unUsedQuantity,
count(*) as service_count
from bl_user_package_detail a
where a.main_id = #{mainId}
group by a.massage_type_id,a.title,a.massage_img,a.content_img
order by a.massage_type_id
</select>
<select id="findLcDetailUsedQuantity" resultType="com.sqx.modules.bl.order.entity.UserPackageDetail">
select
a.massage_type_id,
a.title,
a.massage_img,
a.content_img,
round(avg(a.package_price),2) as package_price,
round(avg(a.price),2) as price,
sum(case a.status when 1 then 1 else 0 end) as usedQuantity,
sum(case a.status when 0 then 1 else 0 end) as unUsedQuantity,
count(*) as service_count,
concat(round(count(massage_type_id)*avg(interval_days)),'天一疗程,每隔',round(avg(interval_days)),'天一次,共',round(count(massage_type_id)),'次') as interval_days_str,
(select max(end_times) from orders o where a.massage_type_id = o.massage_type_id and b.id = o.user_package_id) as max_time
from bl_user_package_detail a
inner join bl_user_package b on a.main_id = b.id
where a.main_id = #{mainId}
group by a.massage_type_id,a.title,a.massage_img,a.content_img
order by a.massage_type_id
</select>
<select id="findMassagePackageDetails" resultType="com.sqx.modules.bl.order.entity.UserPackageDetail">
select
a.service_count,
a.id as package_detail_id,
a.massage_type_id,
0 as status,
a.package_price,
a.interval_days,
b.title,
b.massage_img,
b.content,
b.old_price,
b.price,
b.duration,
b.is_sex,
b.city,
b.content_img,
b.labels,
b.parent_id,
b.classify_id,
b.apply_people,
b.jianjie
from bl_massage_package_detail a inner join massage_type b on a.massage_type_id = b.massage_type_id and b.status = 1
where a.main_id = #{mainId}
order by a.id
</select>
<insert id="insert" parameterType="com.sqx.modules.bl.order.entity.UserPackageDetail">
INSERT INTO bl_user_package_detail(
main_id,
package_detail_id,
massage_type_id,
status,
package_price,
interval_days,
create_time,
title,
massage_img,
content,
old_price,
price,
duration,
is_sex,
city,
content_img,
labels,
parent_id,
classify_id,
apply_people,
jianjie,
level
)values(
#{mainId},
#{packageDetailId},
#{massageTypeId},
#{status},
#{packagePrice},
#{intervalDays},
#{createTime},
#{title},
#{massageImg},
#{content},
#{oldPrice},
#{price},
#{duration},
#{isSex},
#{city},
#{contentImg},
#{labels},
#{parentId},
#{classifyId},
#{applyPeople},
#{jianjie},
#{level}
)
</insert>
<select id="getMyPackageDetail" resultType="com.sqx.modules.bl.order.entity.UserPackageDetail">
select
a.id,
a.main_id,
a.package_detail_id,
a.massage_type_id,
a.status,
a.package_price,
a.interval_days,
a.create_time,
a.title,
a.massage_img,
a.content,
a.old_price,
a.price,
a.duration,
a.is_sex,
a.city,
a.content_img,
a.labels,
a.parent_id,
a.classify_id,
a.apply_people,
a.jianjie,
a.level,
m.sales
from bl_user_package_detail a left join massage_type m on a.massage_type_id = m.massage_type_id
where a.id = #{id}
</select>
<select id="getMyPackageDetailNoId" resultType="com.sqx.modules.bl.order.entity.UserPackageDetail">
select
a.id,
a.main_id,
a.package_detail_id,
a.massage_type_id,
a.status,
a.package_price,
a.interval_days,
a.create_time,
a.title,
a.massage_img,
a.content,
a.old_price,
a.price,
a.duration,
a.is_sex,
a.city,
a.content_img,
a.labels,
a.parent_id,
a.classify_id,
a.apply_people,
a.jianjie,
a.level,
m.sales
from bl_user_package_detail a
left join massage_type m on a.massage_type_id = m.massage_type_id
where a.main_id = #{mainId}
and a.massage_type_id = #{massageTypeId}
and a.status = 0
limit 1
</select>
<select id="findMassagePackageDetailsUsed" resultType="com.sqx.modules.bl.order.entity.UserPackageDetail">
select
sum(case a.status when 1 then 1 else 0 end) as usedQuantity,
count(*) as service_count
from bl_user_package_detail a
where a.main_id = #{mainId}
</select>
<update id="deleteDetailByMain">
DELETE FROM bl_user_package_detail
WHERE main_id = #{mainId}
</update>
</mapper>