203 lines
7.9 KiB
XML
Raw Normal View History

2026-03-10 16:40:19 +08:00
<?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._3e.dao.LessonDao">
<select id= "findGoodBooks" parameterType="int" resultType="com._3e.entity.Lesson" >
SELECT * FROM Lesson
WHERE parentid = #{parentid} and status = 1
ORDER BY orderid ASC
</select>
<select id= "findBookByID" parameterType="int" resultType="com._3e.entity.Lesson" >
SELECT * FROM Lesson
WHERE lessonid = #{lessonid} and status = 1
</select>
<select id= "findUnitsByBookID" parameterType="int" resultType="com._3e.entity.Lesson" >
SELECT * FROM Lesson
WHERE parentid = #{parentid} and status = 1
ORDER BY orderid ASC
</select>
<select id= "findBookLessonsByBookID" parameterType="int" resultType="com._3e.entity.Lesson" >
SELECT a.* FROM Lesson a
INNER JOIN Lesson b on a.parentId = b.lessonId
WHERE b.parentId =#{bookid} and a.status = 1
order by orderid asc
</select>
<select id= "findUnitLessonsByUnitID" parameterType="int" resultType="com._3e.entity.Lesson" >
SELECT * FROM Lesson
WHERE parentid = #{parentid} and status = 1
ORDER BY orderid ASC
</select>
<select id= "findLessonByLessonID" parameterType="int" resultType="com._3e.entity.Lesson" >
SELECT * FROM Lesson
WHERE lessonid = #{lessonid} and status = 1
</select>
<select id= "findLessonByLessonIDS" parameterType="list" resultType="com._3e.entity.Lesson" >
SELECT * FROM Lesson
WHERE lessonid in
<foreach item="lessonid" index="index" collection="list"
open="(" separator="," close=")">
#{lessonid}
</foreach>
and status = 1
</select>
<select id= "findBookByLessonIDS" parameterType="list" resultType="java.lang.Object" >
SELECT A.lessonid, A.lessonname,A.lessontype, b.lessonid as unitid,
b.lessonname as unitname, C .lessonid as bookid, C.lessonname as bookname
FROM ( SELECT * FROM lesson WHERE lessontype != 'C' ) A
LEFT JOIN ( SELECT * FROM lesson WHERE lessontype != 'C' ) b ON A .parentid = b.lessonid
LEFT JOIN ( SELECT * FROM lesson WHERE lessontype != 'C' ) C ON b.parentid = C .lessonid
where a.lessonid in
<foreach item="lessonid" index="index" collection="list"
open="(" separator="," close=")">
#{lessonid}
</foreach>
</select>
<select id= "findBookIdByLessonID" parameterType="int" resultType="com._3e.entity.Lesson" >
SELECT C.lessonid
FROM ( SELECT * FROM lesson WHERE lessontype != 'C' ) A
LEFT JOIN ( SELECT * FROM lesson WHERE lessontype != 'C' ) b ON A .parentid = b.lessonid and A.status=1
LEFT JOIN ( SELECT * FROM lesson WHERE lessontype != 'C' ) C ON b.parentid = C .lessonid and b.status =1 and c.status =1
where a.lessonid = #{lessonId}
</select>
<select id= "findUnitWordsByUnitID" parameterType="int" resultType="com._3e.entity.Words" >
SELECT * FROM words
WHERE lessonid = #{lessonid}
ORDER BY content ASC
</select>
<!-- 取出结果后去外层组装Map -->
<select id= "findUnitLessByLessonID" parameterType="int" resultType="com._3e.entity.Lesson" >
select B.* from lesson B
where EXISTS(
SELECT C.lessonid
from lesson C
where C.parentid = #{parentid} and C.status = 1 and B.parentid = C.lessonid
)
and B.status = 1
order by parentid,orderid
</select>
<!-- 同上 -->
<select id= "findRolesByLessonID" parameterType="int" resultType="com._3e.entity.LessonRole" >
SELECT * FROM lessonrole A
where EXISTS (
select B.lessonid from lesson B
where EXISTS(
SELECT C.lessonid from lesson C
where C.parentid = #{parentid} and C.status = 1 and B.parentid = C.lessonid
)
and B.status = 1 and A.lessonid = B.lessonid
)
ORDER BY A.lessonid
</select>
<!-- 同上 -->
<select id= "findPartsByLessonID" parameterType="int" resultType="com._3e.entity.LessonPart" >
SELECT * FROM lessonpart A
where EXISTS (
select B.lessonid from lesson B
where EXISTS(
SELECT C.lessonid from lesson C
where C.parentid = #{parentid} and C.status = 1 and B.parentid = C.lessonid
)
and B.status = 1 and A.lessonid = B.lessonid
)
ORDER BY A.lessonid,A.orderid
</select>
<!-- 通上 -->
<select id= "findSentencesByLessonID" parameterType="int" resultType="com._3e.entity.Sentence" >
SELECT * FROM sentence Z
where EXISTS(
SELECT * FROM lessonpart A
where EXISTS (
select B.lessonid from lesson B
where EXISTS(
SELECT C.lessonid from lesson C
where C.parentid = #{parentid} and C.status = 1 and B.parentid = C.lessonid
)
and B.status = 1 and A.lessonid = B.lessonid
) and status = 1 and Z.lessonpartid = A.lessonpartid
)
order by Z.lessonpartid ,Z.orderid
</select>
<select id= "findAllLessonPack" resultType="com._3e.entity.ResPackage" >
SELECT * FROM resPackage
WHERE packagename != ''
</select>
<resultMap id="UnitUrlMap" type="com._3e.http.achivement.dto._3EResUnitUrl">
<result column="unitId" property="unitId"></result>
<result column="unitName" property="unitName"></result>
<result column="unitUrl" property="unitUrl"></result>
<collection property="lessons" ofType="com._3e.http.achivement.dto.LessonUrl">
<result column="lessonid" property="lessonId"></result>
<result column="lessonname" property="lessonName"></result>
<result column="lessonUrl" property="lessonUrl"></result>
</collection>
</resultMap>
<select id= "findUnitUrlByLessonId" resultMap="UnitUrlMap" >
select u.lessonid unitId,u.lessonname unitName,u.url unitUrl,l.lessonid,l.lessonname,l.url lessonUrl
from lesson u INNER JOIN lesson l on u.lessonid = l.parentid
where u.parentid = #{lessonid} and u.status = 1 and l.status = 1 ORDER BY u.orderid,l.orderid
</select>
<resultMap id="UnitUrlMapV2" type="com._3e.http.achivement.dto._3EResUnitUrlV2">
<id property="unitId" column="unitId"/>
<result property="unitName" column="unitName"/>
<result property="unitUrl" column="unitUrl"/>
<result property="orderId" column="orderId"/>
<collection property="lessons" ofType="com._3e.http.achivement.dto.LessonUrlV2" resultMap="lessonMapV2"/>
</resultMap>
<resultMap id="lessonMapV2" type="com._3e.http.achivement.dto.LessonUrlV2">
<id property="lessonId" column="lessonId"/>
<result property="lessonName" column="lessonName"/>
<result property="lessonUrl" column="lessonUrl"/>
<result property="orderId" column="orderId"/>
<collection property="lessonParts" ofType="com._3e.http.achivement.dto.LessonPartUrlV2" resultMap="lessonPartMapV2"/>
</resultMap>
<resultMap id="lessonPartMapV2" type="com._3e.http.achivement.dto.LessonPartUrlV2">
<id property="lessonPartId" column="lessonPartId"/>
<result property="lessonPartName" column="lessonPartName"/>
<result property="orderId" column="orderId"/>
<collection property="sentences" ofType="com._3e.http.achivement.dto.SentenceUrlV2" resultMap="sentenceMapV2"/>
</resultMap>
<resultMap id="sentenceMapV2" type="com._3e.http.achivement.dto.SentenceUrlV2">
<id property="sentenceId" column="sentenceId"/>
<result property="content" column="content"/>
<result property="translate" column="translate"/>
<result property="url" column="url"/>
<result property="orderId" column="orderId"/>
</resultMap>
<select id= "findUnitUrlByLessonIdV2" resultMap="UnitUrlMapV2" >
SELECT
u.lessonid unitId,u.lessonname unitName,u.url unitUrl,u.orderId,
l.lessonid lessonId,l.lessonname lessonName,l.url lessonUrl,l.orderId,
lp.lessonpartid lessonPartId,lp.title lessonPartName,lp.orderId,
s.sentenceid sentenceId,s.content,s.translate,s.url,s.orderId
FROM lesson u
INNER JOIN lesson l ON u.lessonid = l.parentid AND l.status = 1
left JOIN lessonpart lp ON l.lessonid = lp.lessonid AND lp.status = 1
left JOIN sentence s ON lp.lessonpartid = s.lessonpartid AND s.status = 1
WHERE u.parentid = #{lessonid}
AND u.status = 1
ORDER BY u.orderid, l.orderid, lp.orderid, s.orderid
</select>
<select id= "findUnitWordUrlByLessonId" resultType="com._3e.http.achivement.dto._3EResUnitUrl" >
select u.lessonid unitId,u.lessonname unitName,u.url unitUrl
from lesson u
where u.parentid = #{lessonid} and u.status = 1 ORDER BY u.orderid
</select>
</mapper>