<?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.xjrsoft.module.textbook.mapper.TextbookIssueRecordMapper">
    <select id="getPage" parameterType="com.xjrsoft.module.textbook.dto.TextbookIssueRecordPageDto" resultType="com.xjrsoft.module.textbook.vo.TextbookIssueRecordPageVo">
        SELECT t1.id,
        t1.sort_code,
        t3.issn,
        t3.book_name,
        t3.publishing_house,
        t3.editor_in_chief,
        t7.group_name,
        t5.name  AS grade_name,
        ifnull(t6.name, t14.name)  AS class_name,
        t8.name  AS course_name,
        t10.name AS textbook_type_cn,
        t3.specifications_models,
        t11.name AS issue_mode_cn,
        t1.create_date,
        t9.name  AS claim_user,
        t1.issue_number,
        t15.name as baseSemesterIdCn
        FROM textbook_issue_record t1
        LEFT JOIN wf_textbook_claim_item t2 ON t1.data_item_id = t2.id
        LEFT JOIN wf_textbook_claim t4 ON t1.data_id = t4.id
        LEFT JOIN wf_textbook_recede_item t12 ON t12.id = t1.data_item_id
        LEFT JOIN wf_textbook_recede t13 ON t13.id = t1.data_id
        LEFT JOIN textbook t3 ON t3.id = t1.textbook_id
        LEFT JOIN base_grade t5 ON t3.grade_id = t5.id
        LEFT JOIN base_class t6 ON t4.class_id = t6.id
        LEFT JOIN base_class t14 ON t13.class_id = t14.id
        LEFT JOIN subject_group t7 ON t3.subject_group_id = t7.id
        LEFT JOIN base_course_subject t8 ON t3.course_subject_id = t8.id
        LEFT JOIN xjr_user t9 ON t1.receive_user_id = t9.id
        LEFT JOIN xjr_dictionary_detail t10 ON t3.textbook_type = t10.code AND t10.item_id = 1739209191193636865
        LEFT JOIN xjr_dictionary_detail t11 ON t1.issue_mode = t11.code AND t11.item_id = 1739821685805215745
        LEFT JOIN base_semester t15 ON t15.id = t3.base_semester_id
        WHERE t1.delete_mark = 0
        <if test="dto.textbookType != null and dto.textbookType != ''">
            and t3.textbook_type = #{dto.textbookType}
        </if>
        <if test="dto.baseSemesterId != null">
            and t3.base_semester_id = #{dto.baseSemesterId}
        </if>
        <if test="dto.publishingHouse != null">
            and t3.publishing_house = like concat('%',#{dto.publishingHouse}, '%')
        </if>
        <if test="dto.subjectGroupId != null">
            and t3.subject_group_id = #{dto.subjectGroupId}
        </if>
        <if test="dto.courseSubjectId != null">
            and t3.course_subject_id = #{dto.courseSubjectId}
        </if>
        <if test="dto.classId != null">
            and (t4.class_id = #{dto.classId} or t13.class_id = #{dto.classId})
        </if>
        <if test="dto.bookName != null and dto.bookName != ''">
            and t3.book_name like concat('%',#{dto.bookName}, '%')
        </if>
        <if test="dto.issn != null and dto.issn != ''">
            and t3.issn = #{dto.issn}
        </if>
        <if test="dto.specificationsModels != null and dto.specificationsModels != ''">
            and t3.specifications_models like concat('%',#{dto.specificationsModels}, '%')
        </if>
        <if test="dto.isTextbookPlan != null and dto.isTextbookPlan != ''">
            and t3.is_textbook_plan = #{dto.isTextbookPlan}
        </if>
        order by t1.create_date desc
    </select>

    <select id="getList" parameterType="com.xjrsoft.module.textbook.dto.TextbookIssueRecordExportDto" resultType="com.xjrsoft.module.textbook.vo.TextbookIssueRecordPageVo">
        SELECT t1.id,
        t1.sort_code,
        t3.issn,
        t3.book_name,
        t3.publishing_house,
        t3.editor_in_chief,
        t7.group_name,
        t5.name  AS grade_name,
        ifnull(t6.name, t14.name)  AS class_name,
        t8.name  AS course_name,
        t10.name AS textbook_type_cn,
        t3.specifications_models,
        t11.name AS issue_mode_cn,
        t1.create_date,
        t9.name  AS claim_user,
        t1.issue_number,
        t15.name as baseSemesterIdCn
        FROM textbook_issue_record t1
        LEFT JOIN wf_textbook_claim_item t2 ON t1.data_item_id = t2.id
        LEFT JOIN wf_textbook_claim t4 ON t1.data_id = t4.id
        LEFT JOIN wf_textbook_recede_item t12 ON t12.id = t1.data_item_id
        LEFT JOIN wf_textbook_recede t13 ON t13.id = t1.data_id
        LEFT JOIN textbook t3 ON t3.id = t1.textbook_id
        LEFT JOIN base_grade t5 ON t3.grade_id = t5.id
        LEFT JOIN base_class t6 ON t4.class_id = t6.id
        LEFT JOIN base_class t14 ON t13.class_id = t14.id
        LEFT JOIN subject_group t7 ON t3.subject_group_id = t7.id
        LEFT JOIN base_course_subject t8 ON t3.course_subject_id = t8.id
        LEFT JOIN xjr_user t9 ON t1.receive_user_id = t9.id
        LEFT JOIN xjr_dictionary_detail t10 ON t3.textbook_type = t10.code AND t10.item_id = 1739209191193636865
        LEFT JOIN xjr_dictionary_detail t11 ON t1.issue_mode = t11.code AND t11.item_id = 1739821685805215745
        LEFT JOIN base_semester t15 ON t15.id = t3.base_semester_id
        WHERE t1.delete_mark = 0
        <if test="dto.ids != null and dto.ids.size() > 0">
            and t1.id in <foreach item="id" index="index" collection="dto.ids" open="(" close=")"
                                  separator=",">
            #{id}
                        </foreach>
        </if>
        order by t1.create_date desc
    </select>

</mapper>