From 2d68f48eeb8f874240f7b02ff20dbf1e784271b4 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期六, 29 七月 2023 08:28:38 +0800
Subject: [PATCH] 单兵端-新任务轮询接口-更新弹窗标记/统计弹窗未查看数量

---
 ard-work/src/main/java/com/ruoyi/app/task/service/impl/ArdAppTaskServiceImpl.java |   18 ++++++++
 ard-work/src/main/java/com/ruoyi/app/task/mapper/ArdAppTaskMapper.java            |    8 ++++
 ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml                       |   18 +++++++++
 ard-work/src/main/java/com/ruoyi/app/task/service/IArdAppTaskService.java         |    7 +++
 ard-work/src/main/java/com/ruoyi/app/task/controller/ArdAppTaskController.java    |   18 ++++++--
 5 files changed, 63 insertions(+), 6 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/app/task/controller/ArdAppTaskController.java b/ard-work/src/main/java/com/ruoyi/app/task/controller/ArdAppTaskController.java
index 087e993..ceb9c26 100644
--- a/ard-work/src/main/java/com/ruoyi/app/task/controller/ArdAppTaskController.java
+++ b/ard-work/src/main/java/com/ruoyi/app/task/controller/ArdAppTaskController.java
@@ -10,6 +10,7 @@
 import com.ruoyi.app.task.domain.AppParam;
 import com.ruoyi.app.task.domain.ArdAppTaskDetail;
 import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.spring.SpringUtils;
 import com.ruoyi.system.service.ISysUserService;
 import io.swagger.annotations.Api;
@@ -133,6 +134,7 @@
     public AjaxResult editDetail(@RequestBody ArdAppTaskDetail ardAppTaskDetail) {
         return toAjax(ardAppTaskService.updateArdAppTaskDetail(ardAppTaskDetail));
     }
+
     @ApiOperation("鍗曞叺绔�-浠诲姟鏌ョ湅")
     @PreAuthorize("@ss.hasPermi('app:taskdetail:edit')")
     @Log(title = "鍗曞叺绔�-浠诲姟鏌ョ湅", businessType = BusinessType.UPDATE)
@@ -140,6 +142,7 @@
     public AjaxResult editDetailView(@RequestBody ArdAppTaskDetail ardAppTaskDetail) {
         return toAjax(ardAppTaskService.updateArdAppTaskDetailView(ardAppTaskDetail));
     }
+
     /**
      * 鑾峰彇app浠诲姟璇︽儏鐨勮缁嗕俊鎭�
      */
@@ -152,12 +155,17 @@
 
     @ApiOperation("鍗曞叺绔�-鏂颁换鍔¤疆璇�")
     @PostMapping(value = "/newTaskPolling")
-    public AjaxResult newTaskPolling(@RequestBody AppParam param)
-    {
-        Map<String,Object> map=new HashMap<>();
+    public AjaxResult newTaskPolling(@RequestBody AppParam param) {
+        Map<String, Object> map = new HashMap<>();
         String userId = param.getUserId();
-        ArdAppTask ardAppTask= ardAppTaskService.selectNewArdAppTaskByUserId(userId);
-        map.put("task",ardAppTask);
+        if (StringUtils.isNotNull(param.getUserId())) {
+            ArdAppTask ardAppTask = ardAppTaskService.selectNewArdAppTaskByUserId(userId);
+            map.put("task", ardAppTask);
+            int count = ardAppTaskService.selectUnreadArdAppTaskCount(userId);
+            map.put("count", count);
+        }
+
         return success(map);
     }
+
 }
diff --git a/ard-work/src/main/java/com/ruoyi/app/task/mapper/ArdAppTaskMapper.java b/ard-work/src/main/java/com/ruoyi/app/task/mapper/ArdAppTaskMapper.java
index 455b57a..4e8ae7f 100644
--- a/ard-work/src/main/java/com/ruoyi/app/task/mapper/ArdAppTaskMapper.java
+++ b/ard-work/src/main/java/com/ruoyi/app/task/mapper/ArdAppTaskMapper.java
@@ -132,6 +132,7 @@
      * @return 缁撴灉
      */
     public int updateArdAppTaskDetail(ArdAppTaskDetail ardAppTaskDetail);
+    public int updateArdAppTaskDetailByTaskId(ArdAppTaskDetail ardAppTaskDetail);
     /**
      * 淇敼app浠诲姟璇︽儏鏌ョ湅
      *
@@ -162,4 +163,11 @@
      * @return 缁撴灉
      */
     public ArdAppTask selectNewArdAppTaskByUserId(String userId);
+    /**
+     * 鏌ヨ宸插脊绐椾絾鏈鐨勪换鍔℃暟閲�
+     *
+     * @param userId app鐢ㄦ埛Id
+     * @return 缁撴灉
+     */
+    public int selectUnreadArdAppTaskCount(String userId);
 }
diff --git a/ard-work/src/main/java/com/ruoyi/app/task/service/IArdAppTaskService.java b/ard-work/src/main/java/com/ruoyi/app/task/service/IArdAppTaskService.java
index 748cfe8..4893b03 100644
--- a/ard-work/src/main/java/com/ruoyi/app/task/service/IArdAppTaskService.java
+++ b/ard-work/src/main/java/com/ruoyi/app/task/service/IArdAppTaskService.java
@@ -97,4 +97,11 @@
      * @return 缁撴灉
      */
     public ArdAppTask selectNewArdAppTaskByUserId(String userId);
+    /**
+     * 鏌ヨ宸插脊绐椾絾鏈鐨勪换鍔℃暟閲�
+     *
+     * @param userId app鐢ㄦ埛Id
+     * @return 缁撴灉
+     */
+    public int selectUnreadArdAppTaskCount(String userId);
 }
diff --git a/ard-work/src/main/java/com/ruoyi/app/task/service/impl/ArdAppTaskServiceImpl.java b/ard-work/src/main/java/com/ruoyi/app/task/service/impl/ArdAppTaskServiceImpl.java
index 61bc650..c19876b 100644
--- a/ard-work/src/main/java/com/ruoyi/app/task/service/impl/ArdAppTaskServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/app/task/service/impl/ArdAppTaskServiceImpl.java
@@ -284,6 +284,22 @@
 
     @Override
     public ArdAppTask selectNewArdAppTaskByUserId(String userId) {
-        return ardAppTaskMapper.selectNewArdAppTaskByUserId(userId);
+        ArdAppTask ardAppTask = ardAppTaskMapper.selectNewArdAppTaskByUserId(userId);
+        ArdAppTaskDetail detail=new ArdAppTaskDetail();
+        detail.setViewFlag("1");
+        detail.setTaskId(ardAppTask.getId());
+        int i = ardAppTaskMapper.updateArdAppTaskDetailByTaskId(detail);
+        return ardAppTask;
+    }
+    /**
+     * 鏌ヨ宸插脊绐椾絾鏈鐨勪换鍔℃暟閲�
+     *
+     * @param userId app鐢ㄦ埛Id
+     * @return 缁撴灉
+     */
+    @Override
+    public int selectUnreadArdAppTaskCount(String userId)
+    {
+        return ardAppTaskMapper.selectUnreadArdAppTaskCount(userId);
     }
 }
diff --git a/ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml b/ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml
index 5d13a83..29059e4 100644
--- a/ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml
+++ b/ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml
@@ -263,10 +263,19 @@
             <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
@@ -307,4 +316,13 @@
         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>
\ No newline at end of file

--
Gitblit v1.9.3