mirror of
https://github.com/continew-org/continew-admin.git
synced 2025-09-10 20:57:14 +08:00
fix(system): 修复查询未读公告和消息数据错误
This commit is contained in:
@@ -17,8 +17,11 @@
|
|||||||
package top.continew.admin.system.controller;
|
package top.continew.admin.system.controller;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
|
import io.swagger.v3.oas.annotations.enums.ParameterIn;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
import top.continew.admin.common.controller.BaseController;
|
import top.continew.admin.common.controller.BaseController;
|
||||||
import top.continew.admin.system.enums.NoticeMethodEnum;
|
import top.continew.admin.system.enums.NoticeMethodEnum;
|
||||||
import top.continew.admin.system.enums.NoticeScopeEnum;
|
import top.continew.admin.system.enums.NoticeScopeEnum;
|
||||||
@@ -31,6 +34,7 @@ import top.continew.starter.core.validation.ValidationUtils;
|
|||||||
import top.continew.starter.extension.crud.annotation.CrudApi;
|
import top.continew.starter.extension.crud.annotation.CrudApi;
|
||||||
import top.continew.starter.extension.crud.annotation.CrudRequestMapping;
|
import top.continew.starter.extension.crud.annotation.CrudRequestMapping;
|
||||||
import top.continew.starter.extension.crud.enums.Api;
|
import top.continew.starter.extension.crud.enums.Api;
|
||||||
|
import top.continew.starter.extension.crud.validation.CrudValidationGroup;
|
||||||
|
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
@@ -69,4 +73,13 @@ public class NoticeController extends BaseController<NoticeService, NoticeResp,
|
|||||||
.contains(method), "通知方式 [{}] 不正确", method));
|
.contains(method), "通知方式 [{}] 不正确", method));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@Parameter(name = "id", description = "ID", example = "1", in = ParameterIn.PATH)
|
||||||
|
@ResponseBody
|
||||||
|
@PutMapping({"/{id}"})
|
||||||
|
public void update(@Validated({CrudValidationGroup.Update.class}) @RequestBody NoticeReq req,
|
||||||
|
@PathVariable("id") Long id) {
|
||||||
|
//更新公告并删除阅读记录
|
||||||
|
this.baseService.update(req, id);
|
||||||
|
this.baseService.deleteReadLog(List.of(id));
|
||||||
|
}
|
||||||
}
|
}
|
@@ -66,4 +66,9 @@ public interface NoticeService extends BaseService<NoticeResp, NoticeDetailResp,
|
|||||||
* @return 仪表盘公告列表
|
* @return 仪表盘公告列表
|
||||||
*/
|
*/
|
||||||
List<DashboardNoticeResp> listDashboard();
|
List<DashboardNoticeResp> listDashboard();
|
||||||
|
/**
|
||||||
|
* 删除阅读记录
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void deleteReadLog(List<Long> ids);
|
||||||
}
|
}
|
@@ -182,4 +182,8 @@ public class NoticeServiceImpl extends BaseServiceImpl<NoticeMapper, NoticeDO, N
|
|||||||
Long userId = UserContextHolder.getUserId();
|
Long userId = UserContextHolder.getUserId();
|
||||||
return baseMapper.selectDashboardList(userId);
|
return baseMapper.selectDashboardList(userId);
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
|
public void deleteReadLog(List<Long> ids) {
|
||||||
|
noticeLogService.deleteByNoticeIds(ids);
|
||||||
|
}
|
||||||
}
|
}
|
@@ -53,7 +53,7 @@
|
|||||||
SELECT
|
SELECT
|
||||||
t1.*
|
t1.*
|
||||||
FROM sys_message AS t1
|
FROM sys_message AS t1
|
||||||
LEFT JOIN sys_message_log AS t2 ON t2.message_id = t1.id
|
LEFT JOIN sys_message_log AS t2 ON t2.message_id = t1.id AND t2.user_id = #{userId}
|
||||||
WHERE (t1.scope = 1 OR (t1.scope = 2 AND JSON_CONTAINS(t1.users, CONCAT('"', #{userId}, '"'))))
|
WHERE (t1.scope = 1 OR (t1.scope = 2 AND JSON_CONTAINS(t1.users, CONCAT('"', #{userId}, '"'))))
|
||||||
AND t2.read_time IS NULL
|
AND t2.read_time IS NULL
|
||||||
</select>
|
</select>
|
||||||
@@ -62,7 +62,7 @@
|
|||||||
SELECT
|
SELECT
|
||||||
COUNT(1)
|
COUNT(1)
|
||||||
FROM sys_message AS t1
|
FROM sys_message AS t1
|
||||||
LEFT JOIN sys_message_log AS t2 ON t2.message_id = t1.id
|
LEFT JOIN sys_message_log AS t2 ON t2.message_id = t1.id AND t2.user_id = #{userId}
|
||||||
WHERE (t1.scope = 1 OR (t1.scope = 2 AND JSON_CONTAINS(t1.users, CONCAT('"', #{userId}, '"'))))
|
WHERE (t1.scope = 1 OR (t1.scope = 2 AND JSON_CONTAINS(t1.users, CONCAT('"', #{userId}, '"'))))
|
||||||
AND t2.read_time IS NULL
|
AND t2.read_time IS NULL
|
||||||
<if test="type != null">
|
<if test="type != null">
|
||||||
|
@@ -43,9 +43,9 @@
|
|||||||
|
|
||||||
<select id="selectUnreadIdsByUserId" resultType="java.lang.Long">
|
<select id="selectUnreadIdsByUserId" resultType="java.lang.Long">
|
||||||
SELECT
|
SELECT
|
||||||
t1.id
|
t1.id
|
||||||
FROM sys_notice AS t1
|
FROM sys_notice AS t1
|
||||||
LEFT JOIN sys_notice_log AS t2 ON t2.notice_id = t1.id
|
LEFT JOIN sys_notice_log AS t2 ON t2.notice_id = t1.id AND t2.user_id = #{userId}
|
||||||
WHERE (t1.notice_scope = 1 OR (t1.notice_scope = 2 AND JSON_CONTAINS(t1.notice_users, CONCAT('"', #{userId}, '"'))))
|
WHERE (t1.notice_scope = 1 OR (t1.notice_scope = 2 AND JSON_CONTAINS(t1.notice_users, CONCAT('"', #{userId}, '"'))))
|
||||||
<if test="noticeMethod != null">
|
<if test="noticeMethod != null">
|
||||||
AND JSON_CONTAINS(t1.notice_methods, CAST(#{noticeMethod} AS CHAR))
|
AND JSON_CONTAINS(t1.notice_methods, CAST(#{noticeMethod} AS CHAR))
|
||||||
|
Reference in New Issue
Block a user