<?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.bgt.mapper.BgtProjectRecruitApplyMapper">

    <resultMap type="com.ruoyi.bgt.domain.BgtProjectRecruitApply" id="BgtProjectRecruitApplyResult">
        <result property="id" column="id"/>
        <result property="recruitId" column="recruit_id"/>
        <result property="userId" column="user_id"/>
        <result property="delFlag" column="del_flag"/>
        <result property="createBy" column="create_by"/>
        <result property="createTime" column="create_time"/>
        <result property="updateBy" column="update_by"/>
        <result property="updateTime" column="update_time"/>
        <result property="remark" column="remark"/>
    </resultMap>

    <select id="appQueryList" resultType="com.ruoyi.bgt.domain.vo.BgtProjectRecruitApplyVO">
        select  bpra.id,
                bpra.entry_time,
                wu.user_id,
                wu.phone,
                wu.score,
                wu.avatar_name,
                wu.username,
                bpra.status,
                wu.type_of_work,
                bpr.recruit_name,
                fpt.task_name
        from bgt_project_recruit_apply bpra
            left join wgz_user wu on bpra.user_id = wu.user_id
            left join bgt_project_recruit bpr on bpr.id = bpra.recruit_id
            left join fbs_project_task fpt on fpt.id = bpr.task_id
        <where>
            <if test="dto.username !=null and dto.username !='' ">
                and wu.username like concat('%', #{dto.username}, '%')
            </if>
            <if test="dto.recruitIds != null and dto.recruitIds.size() > 0">
                AND bpra.recruit_id IN
                <foreach collection="dto.recruitIds" item="recruitId" open="(" separator="," close=")">
                    #{recruitId}
                </foreach>
            </if>
            <if test="dto.status != null and dto.status.size() > 0">
                AND bpra.status IN
                <foreach collection="dto.status" item="item" open="(" separator="," close=")">
                    #{item}
                </foreach>
            </if>
        </where>
        order by  bpra.create_time desc,bpra.status asc
    </select>

    <select id="todayAttendanceList" resultType="com.ruoyi.bgt.domain.vo.BgtProjectRecruitApplyVO">
        select bpra.id,
               bpra.entry_time,
               wu.user_id,
               wu.phone,
               wu.score,
               wu.avatar_name,
               wu.username,
               wu.type_of_work,
               bpr.recruit_name,
               fpt.task_name
        from wgz_attendance wa
                  left join wgz_user wu on wa.user_id = wu.user_id
                  left join bgt_project_recruit_apply bpra on wa.recruit_id = bpra.recruit_id and bpra.user_id = wa.user_id
                  left join bgt_project_recruit bpr on bpr.id = bpra.recruit_id
                  left join fbs_project_task fpt on fpt.id = bpr.task_id
        where wa.date  = #{dto.date}
        <if test="dto.attendanceType !=null and dto.attendanceType ==1 ">
            and (wa.missed_in =0 or missed_out = 0 )
        </if>
        <if test="dto.attendanceType !=null and dto.attendanceType ==2 ">
            and (wa.missed_in =1 and  missed_out = 1 )
        </if>
        <if test="dto.attendanceType !=null and dto.attendanceType ==3 ">
            and wa.late =1
        </if>
    </select>

    <select id="underwayPage" resultType="com.ruoyi.wgz.bo.res.WgzAppUnderwayRes">
        SELECT
            a.entry_time,
            a.leave_time,
            b.*,
            c.task_name,
            c.task_address,
            c.task_img,
            c.create_time as taskCreateTime
        FROM
            bgt_project_recruit_apply as a
                LEFT JOIN bgt_project_recruit as b on(a.recruit_id = b.id and b.del_flag = 0 )
                LEFT JOIN fbs_project_task as c ON (b.task_id = c.id AND c.del_flag = 0)
        <where>
            <if test="page.userId!=null and dto.userId!=0 ">
                a.user_id = #{page.userId} AND
            </if>
            <choose>
                <when test="page.type!=null and page.type!='' and page.type=='1'">
                    a.status IN ('3', '5') AND
                </when>
                <when test="page.type!=null and page.type!='' and page.type=='2'">
                    a.status IN ('6') AND
                </when>
            </choose>
            a.del_flag = 0
        </where>
    </select>

</mapper>
