‘liusuyi’
2023-07-31 9ec6a106e96f6158bcf1fcef13300f2ac5d46ab6
ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml
@@ -34,6 +34,10 @@
        <result property="taskId" column="sub1_task_id"/>
        <result property="status" column="sub1_status"/>
        <result property="clockInPicUrl" column="sub1_clock_in_pic_url"/>
        <result property="viewTime" column="sub1_view_time"/>
        <result property="viewPosition" column="sub1_view_position"/>
        <result property="clockInTime" column="sub1_clock_in_time"/>
        <result property="viewFlag" column="sub1_view_flag"/>
    </resultMap>
    <resultMap type="ArdAppTaskPic" id="ArdAppTaskPicResult">
        <result property="id" column="sub2_id"/>
@@ -59,12 +63,45 @@
               c.create_by,
               c.create_time,
               c.update_by,
               c.update_time
               c.update_time,
               c.view_time,
               c.view_position
        from ard_app_task c
                 left join sys_dept d on d.dept_id = c.dept_id
                 left join sys_user u on u.user_id = c.user_id
    </sql>
    <sql id="selectArdAppTaskDto">
        select a.id,
               a.name,
               a.text,
               a.voice,
               a.dept_id,
               a.user_id,
               a.create_by,
               a.create_time,
               a.update_by,
               a.update_time,
               b.id               as sub2_id,
               b.task_id          as sub2_task_id,
               b.pic_url          as sub2_pic_url,
               c.id               as sub1_id,
               c.name             as sub1_name,
               c.longitude        as sub1_longitude,
               c.latitude         as sub1_latitude,
               c.altitude         as sub1_altitude,
               c.user_id          as sub1_user_id,
               c.text             as sub1_text,
               c.voice            as sub1_voice,
               c.status           as sub1_status,
               c.clock_in_pic_url as sub1_clock_in_pic_url,
               c.view_time        as sub1_view_time,
               c.view_position    as sub1_view_position,
               c.clock_in_time    as sub1_clock_in_time,
               c.view_flag        as sub1_view_flag
        from ard_app_task a
                 left join ard_app_task_pic b on b.task_id = a.id
                 left join ard_app_task_detail c on c.task_id = a.id
    </sql>
    <select id="selectArdAppTaskList" parameterType="ArdAppTask" resultMap="ArdAppTaskResult">
        <include refid="selectArdAppTaskVo"/>
        <where>
@@ -83,32 +120,7 @@
        </where>
    </select>
    <select id="selectArdAppTaskListWithDetail" parameterType="ArdAppTask" resultMap="ArdAppTaskSubResult">
        select a.id,
        a.name,
        a.text,
        a.voice,
        a.dept_id,
        a.user_id,
        a.create_by,
        a.create_time,
        a.update_by,
        a.update_time,
        b.id as sub2_id,
        b.task_id as sub2_task_id,
        b.pic_url as sub2_pic_url,
        c.id as sub1_id,
        c.name as sub1_name,
        c.longitude as sub1_longitude,
        c.latitude as sub1_latitude,
        c.altitude as sub1_altitude,
        c.user_id as sub1_user_id,
        c.text as sub1_text,
        c.voice as sub1_voice,
        c.status as sub1_status,
        c.clock_in_pic_url as sub1_clock_in_pic_url
        from ard_app_task a
        left join ard_app_task_pic b on b.task_id = a.id
        left join ard_app_task_detail c on c.task_id = a.id
        <include refid="selectArdAppTaskDto"/>
        <where>
            <if test="userId != null and userId != ''">
                and c.user_id = #{userId}
@@ -119,41 +131,19 @@
            <if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->
                and a.create_time &lt;= to_timestamp(#{params.endTime},'yyyy-MM-DD HH24:MI:ss')
            </if>
            <!-- 数据范围过滤 -->
            ${params.dataScope}
        </where>
        order by a.create_time desc
    </select>
    <select id="selectArdAppTaskListWithDetailById" parameterType="ArdAppTask" resultMap="ArdAppTaskSubResult">
        select a.id,
        a.name,
        a.text,
        a.voice,
        a.dept_id,
        a.user_id,
        a.create_by,
        a.create_time,
        a.update_by,
        a.update_time,
        b.id as sub2_id,
        b.task_id as sub2_task_id,
        b.pic_url as sub2_pic_url,
        c.id as sub1_id,
        c.name as sub1_name,
        c.longitude as sub1_longitude,
        c.latitude as sub1_latitude,
        c.altitude as sub1_altitude,
        c.user_id as sub1_user_id,
        c.text as sub1_text,
        c.voice as sub1_voice,
        c.status as sub1_status,
        c.clock_in_pic_url as sub1_clock_in_pic_url
        from ard_app_task a
        left join ard_app_task_pic b on b.task_id = a.id
        left join ard_app_task_detail c on c.task_id = a.id
        <include refid="selectArdAppTaskDto"/>
        <where>
            <if test="id != null and id != ''">
                and a.id = #{id}
            </if>
            <if test="userId != null and userId != ''">
                and c.user_id = #{userId}
            </if>
            <if test="id != null and id != ''">
                and c.id = #{id}
            </if>
            <if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
                and a.create_time &gt;= to_timestamp(#{params.beginTime},'yyyy-MM-DD HH24:MI:ss')
@@ -163,74 +153,9 @@
            </if>
        </where>
    </select>
    <select id="selectArdAppTaskById" parameterType="String" resultMap="ArdAppTaskSubResult">
        select a.id,
               a.name,
               a.text,
               a.voice,
               a.dept_id,
               a.user_id,
               a.create_by,
               a.create_time,
               a.update_by,
               a.update_time,
               b.id        as sub2_id,
               b.task_id   as sub2_task_id,
               b.pic_url   as sub2_pic_url,
               c.id        as sub1_id,
               c.name      as sub1_name,
               c.longitude as sub1_longitude,
               c.latitude  as sub1_latitude,
               c.altitude  as sub1_altitude,
               c.user_id   as sub1_user_id,
               c.text      as sub1_text,
               c.voice     as sub1_voice
        from ard_app_task a
                 left join ard_app_task_pic b on b.task_id = a.id
                 left join ard_app_task_detail c on c.task_id = a.id
        where a.id = #{id}
    </select>
    <select id="selectArdAppTaskByIdWithPic" parameterType="String" resultMap="ArdAppTaskArdAppTaskPicResult">
        select a.id,
               a.name,
               a.text,
               a.voice,
               a.dept_id,
               a.user_id,
               a.create_by,
               a.create_time,
               a.update_by,
               a.update_time,
               b.id      as sub2_id,
               b.task_id as sub2_task_id,
               b.pic_url as sub2_pic_url
        from ard_app_task a
                 left join ard_app_task_pic b on b.task_id = a.id
        where a.id = #{id}
    </select>
    <select id="selectArdAppTaskByIdWithDetail" parameterType="String" resultMap="ArdAppTaskArdAppTaskDetailResult">
        select a.id,
               a.name,
               a.text,
               a.voice,
               a.dept_id,
               a.user_id,
               a.create_by,
               a.create_time,
               a.update_by,
               a.update_time,
               c.id               as sub1_id,
               c.name             as sub1_name,
               c.longitude        as sub1_longitude,
               c.latitude         as sub1_latitude,
               c.altitude         as sub1_altitude,
               c.user_id          as sub1_user_id,
               c.text             as sub1_text,
               c.voice            as sub1_voice,
               c.status           as sub1_status,
               c.clock_in_pic_url as sub1_clock_in_pic_url
        from ard_app_task a
                 left join ard_app_task_detail c on c.task_id = a.id
        <include refid="selectArdAppTaskDto"/>
        where a.id = #{id}
    </select>
@@ -340,8 +265,27 @@
            <if test="clockInPicUrl != null">clock_in_pic_url = #{clockInPicUrl},</if>
            <if test="text != null">text = #{text},</if>
            <if test="voice != null">voice = #{voice},</if>
            <if test="viewTime != null">view_time = #{viewTime},</if>
            <if test="viewFlag != null">view_flag = #{viewFlag},</if>
            <if test="viewPosition != null">view_position = #{viewPosition},</if>
            <if test="clockInTime != null">clock_in_time = #{clockInTime},</if>
            <if test="taskId != null">task_id = #{taskId},</if>
        </trim>
        where id = #{id}
    </update>
    <update id="updateArdAppTaskDetailByTaskId" parameterType="ArdAppTaskDetail">
        update ard_app_task_detail
        <trim prefix="SET" suffixOverrides=",">
            <if test="viewFlag != null">view_flag = #{viewFlag},</if>
        </trim>
        where task_id = #{taskId}
    </update>
    <update id="updateArdAppTaskDetailView" parameterType="ArdAppTaskDetail">
        update ard_app_task_detail
        set view_time=#{viewTime},
            view_position=#{viewPosition}
        where task_id = #{taskId}
          and user_id = #{userId}
    </update>
    <insert id="batchArdAppTaskDetailPic">
        insert into ard_app_task_detail_pic( id, task_detail_id, pic_url) values
@@ -364,8 +308,24 @@
               c.text,
               c.voice,
               c.status,
               c.clock_in_pic_url
               c.clock_in_pic_url,
               c.view_time,
               c.view_position
        from ard_app_task_detail c
        where c.id = #{id}
    </select>
    <select id="selectNewArdAppTaskByUserId" parameterType="String" resultMap="ArdAppTaskSubResult">
        <include refid="selectArdAppTaskDto"/>
        where c.user_id = #{userId} AND c.view_flag is null
        order by create_time desc limit 1
    </select>
    <select id="selectUnreadArdAppTaskCount" resultType="Integer">
        SELECT COUNT( A.ID )
        FROM ard_app_task
        A LEFT JOIN ard_app_task_detail C ON C.task_id = A.ID
        WHERE
            C.view_time IS NULL
          AND  C.view_flag = '1'
          AND C.user_id = #{userId}
    </select>
</mapper>