1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
3 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
4
5 <!--提供基本版,依据业务情况,酌情添加-->
6 <!--author XiJun.Gong-->
7
8 <mapper namespace="com.qunar.qexam2.course.dao.CourseDao">
9
10 <insert id="insertCourse" parameterType="com.qunar.qexam2.course.model.CourseDomain"
11 useGeneratedKeys="true" keyProperty="id">
12 INSERT INTO
13 course
14 (
15 classification_id,
16 course_name,
17 create_time,
18 create_user,
19 update_time,
20 update_user,
21 is_delete
22 )
23 VALUES
24 (
25 #{classificationId},
26 #{name},
27 #{createTime},
28 #{creatorTalkId},
29 #{modifyTime},
30 #{menderTalkId},
31 #{isDelete}
32 )
33 </insert>
34 <!--批量插入数据-->
35 <insert id="insertCourseBatch" parameterType="com.qunar.qexam2.course.model.CourseDomain">
36 INSERT INTO
37 course
38 (
39 classification_id ,
40 course_name ,
41 create_time ,
42 create_user,
43 update_time,
44 update_user,
45 is_delete
46 )
47 VALUES
48 <foreach collection="list" item="item" index="index" separator=",">
49 (
50 #{item.classificationId},
51 #{item.name} ,
52 #{item.createTime} ,
53 #{item.creatorTalkId},
54 #{item.modifyTime},
55 #{item.menderTalkId},
56 #{item.isDelete}
57 )
58 </foreach>
59
60 </insert>
61
62 <!--物理删除-->
63 <delete id="deleteCourse">
64
65 DELETE course1 , question1
66 FROM course course1
67 JOIN question question1
68 ON course1.id = question1.course_id
69 AND question1.use_count = 0
70
71 WHERE
72 course1.id = #{CourseId};
73
74 </delete>
75
76
77 <update id="updateCourse" parameterType="com.qunar.qexam2.course.model.CourseDomain">
78
79 UPDATE course
80 <set>
81
82 <if test="classificationId != null and classificationId !='' ">
83 course.classification_id = #{classificationId} ,
84 </if>
85
86 <if test=" name != null and name != '' ">
87 course.course_name = #{name} ,
88 </if>
89
90 <if test="createTime != null and createTime !='' ">
91 course.create_time = #{createTime} ,
92 </if>
93
94 <if test="creatorTalkId != null and creatorTalkId!='' ">
95 course.create_user = #{creatorTalkId} ,
96 </if>
97
98 <if test="modifyTime != null and modifyTime != '' ">
99 course.update_time = #{modifyTime} ,
100 </if>
101
102 <if test="menderTalkId != null and menderTalkId !='' ">
103 course.update_user = #{menderTalkId} ,
104 </if>
105
106 <if test="isDelete != null and isDelete != '' ">
107 course.is_delete = #{isDelete}
108 </if>
109
110 </set>
111 WHERE course.id =#{id}
112
113 </update>
114
115 <!--逻辑删除-->
116 <update id="updateCourseStatus">
117 UPDATE course AS course1
118 JOIN question AS question1
119 ON course1.id = question1.course_id
120 AND question1.use_count = 0
121 SET
122 course1.is_delete = 1,
123 question1.is_delete = 1
124 WHERE
125 course1.id = #{CourseId}
126
127 </update>
128
129 <!--分类逻辑删除-->
130 <!--逻辑删除-->
131 <update id="updateBatchCourseStatus">
132
133 UPDATE course As course1
134 JOIN question As question1
135 ON
136 course1.id = question1.course_id
137 AND question1.use_count = 0
138 SET course1.is_delete = 1,
139 question1.is_delete = 1
140 WHERE
141 course.classification_id = #{classificationId}
142 </update>
143
144 <!--逻辑添加-->
145 <update id="updateCourseOnline">
146 UPDATE course
147 SET course.is_delete = 0
148 WHERE
149 course.id = #{CourseId}
150 </update>
151
152 <select id="selectCourses" resultType="com.qunar.qexam2.course.model.CourseDomain">
153
154 SELECT
155 course.id as id ,
156 course.classification_id as classificationId ,
157 course.course_name as name ,
158 course.create_time as createTime ,
159 course.create_user as creatorTalkId ,
160 course.update_time as modifyTime ,
161 course.update_user as menderTalkId ,
162 course.is_delete as isDelete
163
164 FROM course
165
166 <where>
167
168 <if test="classificationId != null and classificationId != '' ">
169 AND
170 course.classification_id = #{classificationId}
171 </if>
172 <if test="isDelete != null and isDelete != '' ">
173 AND
174 course.is_delete = #{isDelete}
175 </if>
176
177 </where>
178 order by course.create_time desc
179 </select>
180
181 <select id="selectCourseVoAll" resultType="com.qunar.qexam2.course.vo.CourseVo">
182 SELECT
183 course.id AS id,
184 course.course_name AS name
185 FROM course
186 WHERE
187 course.is_delete = 0
188 ORDER BY course.create_time DESC
189 </select>
190
191
192 <select id="CountCourses" resultType="com.qunar.qexam2.course.model.CourseDomain">
193 SELECT COUNT(*)
194 FROM course
195 <where>
196 <if test="classificationId != null and classificationId != '' ">
197 AND
198 course.classification_id = #{classificationId}
199 </if>
200 AND
201 course.is_delete = 0
202 </where>
203 </select>
204
205 <!--统计未进行逻辑删除的课程-->
206 <select id="CountCoursesByCourseId" resultType="java.lang.Integer">
207 SELECT count(*)
208 FROM course
209 WHERE course.is_delete = 0
210 </select>
211
212 <!--统计多个分类下的课程数目-->
213 <select id="CountCoursesByCategoryId" resultType="Integer">
214 SELECT COUNT(*)
215 FROM course
216 WHERE
217 course.is_delete = 0
218 AND course.classification_id IN
219 <foreach item="classificationId" index="index" collection="classificationIdList"
220 open="(" separator="," close=")">
221 #{classificationId}
222 </foreach>
223 </select>
224
225
226 <select id="selectCourseByName" resultType="com.qunar.qexam2.course.model.CourseDomain">
227
228 SELECT
229 course.id as id ,
230 course.classification_id as classificationId ,
231 course.course_name as name ,
232 course.create_time as createTime ,
233 course.create_user as creatorTalkId ,
234 course.update_time as modifyTime ,
235 course.update_user as menderTalkId ,
236 course.is_delete as isDelete
237
238 FROM course
239 <where>
240 <if test="CourseName != null and CourseName != '' ">
241 AND
242 course.course_name like #{CourseName}
243 </if>
244 <if test="isDelete != null and isDelete != '' ">
245 AND
246 course.is_delete = #{isDelete}
247 </if>
248 </where>
249
250 order by course.create_time desc
251 </select>
252
253 <select id="selectCourse" resultType="com.qunar.qexam2.course.model.CourseDomain">
254
255 SELECT
256 course.id as id ,
257 course.classification_id as classificationId ,
258 course.course_name as name ,
259 course.create_time as createTime ,
260 course.create_user as creatorTalkId ,
261 course.update_time as modifyTime ,
262 course.update_user as menderTalkId ,
263 course.is_delete as isDelete
264
265 FROM course
266 <where>
267 <if test="CourseId != null and CourseId != '' ">
268 AND
269 course.id = #{CourseId}
270 </if>
271 <if test="isDelete != null and isDelete !='' ">
272 AND
273 course.is_delete = #{isDelete}
274 </if>
275 </where>
276 order by course.create_time desc
277 </select>
278
279
280 <select id="selectCourseWithoutLimit"
281 resultType="com.qunar.qexam2.course.model.CourseDomain">
282
283 SELECT
284 course.id AS id,
285 course.classification_id AS classificationId,
286 course.course_name AS name,
287 course.create_time AS createTime,
288 course.create_user AS creatorTalkId,
289 course.update_time AS modifyTime,
290 course.update_user AS menderTalkId,
291 course.is_delete AS isDelete
292 FROM course
293
294 WHERE course.is_delete = 0
295 ORDER BY course.create_time DESC
296 </select>
297
298 <select id="selectCourseByAuthor" resultType="com.qunar.qexam2.course.model.CourseDomain">
299
300 SELECT
301 course.id as id ,
302 course.classification_id as classificationId ,
303 course.course_name as name ,
304 course.create_time as createTime ,
305 course.create_user as creatorTalkId ,
306 course.update_time as modifyTime ,
307 course.update_user as menderTalkId ,
308 course.is_delete as isDelete
309
310 FROM course
311 <where>
312 <if test="creatorTalkId != null and creatorTalkId != '' ">
313 AND
314 course.create_user = #{creatorTalkId}
315 </if>
316
317 <if test="isDelete != null and isDelete != '' ">
318 AND
319 course.is_delete = #{isDelete}
320 </if>
321 </where>
322 order by course.create_time desc
323 </select>
324
325 <select id="selectClassificationName" resultType="java.lang.String">
326 SELECT classification.tag_name
327 FROM course
328 LEFT JOIN classification
329 ON course.classification_id = classification.id
330 <where>
331 <if test="courseId != null and courseId !='' ">
332 AND
333 course.id = courseId
334 </if>
335 </where>
336 </select>
337
338 <select id="queryCourseVoByCategoryId" resultType="com.qunar.qexam2.course.vo.CourseVo">
339 SELECT
340 course.id AS id ,
341 course.course_name AS name,
342 FROM course
343 <where>
344 <if test="classificationId != null and classificationId != '' ">
345 AND
346 course.classification_id = #{classificationId}
347 </if>
348 </where>
349 </select>
350
351
352 <!--依照分类来返回课程列表信息-->
353 <select id="queryCourseInfVoByCategoryId" resultType="com.qunar.qexam2.course.vo.CourseInfoVo">
354
355 SELECT
356 course.id AS id ,
357 course.course_name AS courseName,
358 course.create_user AS createUser,
359 course.create_time As createTime
360 FROM course
361
362 <where>
363 <if test="classificationId != null and classificationId != '' ">
364 AND
365 course.classification_id = #{classificationId}
366 </if>
367 </where>
368
369 </select>
370
371 <!--依照分类来返回课程列表信息-->
372 <select id="queryCourseInfVoByCategoryIdList" resultType="com.qunar.qexam2.course.vo.CourseInfoVo">
373 SELECT
374 course.id AS id ,
375 course.course_name AS courseName,
376 course.create_user AS createUser,
377 course.create_time As createTime
378 FROM course
379 WHERE course.classification_id IN
380 <foreach item="classificationId" index="index" collection="classificationIdList"
381 open="(" separator="," close=")">
382 #{classificationId}
383 </foreach>
384 </select>
385
386 <!--
387 <!–给予课程Id查询课程所属的一二级部门部门–>
388 <select id="queryCourseAffiliation" resultType="com.qunar.qexam2.course.vo.CourseAffiliation">
389
390 SELECT
391 course1.course_name AS courseName ,
392 category1.tag_name As firstDepart ,
393 category2.tag_name AS secondDepart
394
395 FROM
396 course course1
397
398 JOIN classification category2 ON
399 category2.id = course1.classification_id
400
401 JOIN classification category1 ON
402 category1.id = category2.parent_id
403
404 WHERE course1.id = #{courseId}
405
406 </select>
407 -->
408
409 <!--依照分类来返回课程列表信息-->
410 <select id="queryCategoryIdByCourseId" resultType="java.lang.Integer">
411 SELECT
412 course.classification_id AS classificationId
413 FROM course
414 WHERE course.id IN
415 <foreach item="courseId" index="index" collection="courseIdList"
416 open="(" separator="," close=")">
417 #{courseId}
418 </foreach>
419 </select>
420
421
422 <!--依照分类Id来返回课程Id列表信息-->
423 <select id="queryCourseIdByCategoryId" resultType="java.lang.Integer">
424 SELECT
425 course.id
426 FROM course
427 WHERE course.classification_id IN
428 <foreach item="classificationId" index="index" collection="categoryIdList"
429 open="(" separator="," close=")">
430 #{classificationId}
431 </foreach>
432 </select>
433
434
435 </mapper>