<?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.ruoyi.mapper.ReviewDetailsMapper">


    <select id="findByKeyPointList" resultType="com.ruoyi.domain.ReviewDetails">

        SELECT id, text, review_keypoint_id FROM t_review_details WHERE review_keypoint_id IN
        <foreach collection="reviewKeyPointList" item="keyPoint" open="(" separator="," close=")">
            #{keyPoint.id}
        </foreach>

    </select>

    <select id="findNoResult" resultType="com.ruoyi.domain.ReviewDetails">
        SELECT * FROM t_review_details trd
                          LEFT JOIN t_review_keypoint trk ON trd.review_keypoint_id = trk.id
                          LEFT JOIN t_review_standard trs ON trk.review_standard_id = trs.id
        WHERE trd.id NOT IN (SELECT review_details_id FROM t_review_details_result WHERE task_id = #{taskId})
        AND trs.type = #{type}
    </select>

    <select id="count" resultType="double">
        SELECT
        IFNULL((SELECT COUNT(*) FROM t_review_details_result WHERE task_id = #{taskId}), 0) /
        IFNULL((SELECT COUNT(*) FROM t_review_details trd
        INNER JOIN t_review_keypoint trk ON trk.id = trd.review_keypoint_id
        INNER JOIN t_review_standard trs ON trs.id = trk.review_standard_id
        WHERE trs.type = #{type}), 1) AS resultOverSum
    </select>
    <select id="systemAnswerCount" resultType="com.ruoyi.web.response.ResultCountResponse">
        <foreach item="task" collection="systemReviewTaskList" separator="UNION ALL">
            SELECT
            #{task.id} AS taskId,
            (IFNULL(
            (SELECT COUNT(*) FROM t_review_details_result WHERE task_id = #{task.id}),
            0
            ) /
            IFNULL(
            (SELECT COUNT(*) FROM t_review_details trd
            INNER JOIN t_review_keypoint trk ON trk.id = trd.review_keypoint_id
            INNER JOIN t_review_standard trs ON trs.id = trk.review_standard_id
            WHERE trs.type = #{type}),
            1
            )) * 90 AS schedule,
            ts.task_status AS taskStatus
            from t_system_review_task ts where ts.id = #{task.id}
        </foreach>
        group by taskId
    </select>
    <select id="carAnswerCount" resultType="com.ruoyi.web.response.ResultCountResponse">
        <foreach item="task" collection="carReviewTaskList" separator="UNION ALL">
            SELECT
            #{task.id} AS taskId,
            (IFNULL(
            (SELECT COUNT(*) FROM t_review_details_result WHERE task_id = #{task.id}),
            0
            ) /
            IFNULL(
            (SELECT COUNT(*) FROM t_review_details trd
            INNER JOIN t_review_keypoint trk ON trk.id = trd.review_keypoint_id
            INNER JOIN t_review_standard trs ON trs.id = trk.review_standard_id
            WHERE trs.type = #{type}),
            1
            )) * 90 AS schedule,
            tc.task_status AS taskStatus
            from t_car_review_task tc where tc.id = #{task.id}
        </foreach>
        group by taskId
    </select>
    <select id="findByKeyPointId" resultType="com.ruoyi.domain.ReviewDetails">
        SELECT id, text, review_keypoint_id FROM t_review_details
        WHERE review_keypoint_id = #{keyPointId}
    </select>
    <select id="findDetailsList" resultType="com.ruoyi.domain.ReviewDetails">
        SELECT id, text, review_keypoint_id
        FROM t_review_details
        <where>
            <if test="text != null and text != ''">
                text like concat('%',#{text},'%')
            </if>
        </where>
    </select>
</mapper>