diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enforcement/AppEnfCpNoticeController.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enforcement/AppEnfCpNoticeController.java index ee3a2efb..f7a6634a 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enforcement/AppEnfCpNoticeController.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enforcement/AppEnfCpNoticeController.java @@ -1,12 +1,14 @@ package com.zdxt.enforcementcode.controller.app.enforcement; import cn.dev33.satoken.annotation.SaIgnore; +import com.zdxt.enforcementcode.common.commonenum.MsgSourceTypeEnum; import com.zdxt.enforcementcode.domain.bo.EfcodeCpNoticeBo; import com.zdxt.enforcementcode.domain.bo.EfcodeCpNoticeMessageBo; import com.zdxt.enforcementcode.domain.vo.EfcodeCpNoticeMessageVo; import com.zdxt.enforcementcode.domain.vo.EfcodeCpNoticeVo; import com.zdxt.enforcementcode.service.IEfcodeCpNoticeMessageService; import com.zdxt.enforcementcode.service.IEfcodeCpNoticeService; +import com.zdxt.enforcementcode.service.ISysMessageViewLogService; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotEmpty; import lombok.RequiredArgsConstructor; @@ -14,6 +16,7 @@ import org.apache.commons.lang3.StringUtils; import org.dromara.common.core.domain.R; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -33,7 +36,8 @@ public class AppEnfCpNoticeController { private final IEfcodeCpNoticeService efcodeCpNoticeService; private final IEfcodeCpNoticeMessageService efcodeCpNoticeMessageService; - + @Autowired + private ISysMessageViewLogService sysMessageViewLogService; /** * 查询我的预告列表(分页,只返回当前用户创建的预告) * 通过status区分tab:0=草稿, 1=待执法(已发布), 3=历史(已执行) @@ -44,6 +48,11 @@ public class AppEnfCpNoticeController { return efcodeCpNoticeService.queryMyPageList(bo, pageQuery); } + @SaIgnore + @GetMapping("/noticeList") + public TableDataInfo noticeList(EfcodeCpNoticeBo bo, PageQuery pageQuery) { + return efcodeCpNoticeService.queryMyPageList(bo, pageQuery); + } /** * 获取预告详情 */ @@ -119,4 +128,22 @@ public class AppEnfCpNoticeController { efcodeCpNoticeMessageService.deleteWithValidByIds(List.of(ids), false); return R.ok(); } + + /** + * 预告消息查看后置已读 + */ + @SaIgnore + @GetMapping("/messageRead") + public R messageRead(String noticeId) { + Boolean flag= efcodeCpNoticeService.updateEnfIsRead(noticeId); + if(!flag){ + return R.fail("修改任务状态为已读失败!"); + } + // 插入查看记录(调用公共方法) + if (flag != null) { + sysMessageViewLogService.insertViewLog(noticeId, MsgSourceTypeEnum.ZFYG.getKey()); + } + return R.ok(); + } + } diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enterprise/AppEnforcementLawNoticeController.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enterprise/AppEnforcementLawNoticeController.java index f22a50bd..aab6be40 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enterprise/AppEnforcementLawNoticeController.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enterprise/AppEnforcementLawNoticeController.java @@ -3,6 +3,7 @@ package com.zdxt.enforcementcode.controller.app.enterprise; import java.util.List; import cn.dev33.satoken.annotation.SaIgnore; +import com.zdxt.enforcementcode.common.commonenum.MsgSourceTypeEnum; import com.zdxt.enforcementcode.domain.bo.EfcodeCpNoticeBo; import com.zdxt.enforcementcode.domain.bo.EfcodeCpNoticeMessageBo; import com.zdxt.enforcementcode.domain.bo.EnforcementLawNoticeListBo; @@ -13,11 +14,13 @@ import com.zdxt.enforcementcode.domain.vo.EnforcementLawNoticeVo; import com.zdxt.enforcementcode.service.IEfcodeCpNoticeMessageService; import com.zdxt.enforcementcode.service.IEfcodeCpNoticeService; import com.zdxt.enforcementcode.service.IEnforcementLawNoticeService; +import com.zdxt.enforcementcode.service.ISysMessageViewLogService; import lombok.RequiredArgsConstructor; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.*; import cn.dev33.satoken.annotation.SaCheckPermission; import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.validation.annotation.Validated; import org.dromara.common.idempotent.annotation.RepeatSubmit; @@ -47,7 +50,8 @@ public class AppEnforcementLawNoticeController extends BaseController { private final IEnforcementLawNoticeService enforcementLawNoticeService; private final IEfcodeCpNoticeService efcodeCpNoticeService; private final IEfcodeCpNoticeMessageService efcodeCpNoticeMessageService; - + @Autowired + private ISysMessageViewLogService sysMessageViewLogService; /** * 查询行政执法预告列表 */ @@ -162,4 +166,21 @@ public class AppEnforcementLawNoticeController extends BaseController { efcodeCpNoticeMessageService.insertByBo(bo); return R.ok(); } + + /** + * 预告消息查看后置已读 + */ + @SaIgnore + @GetMapping("/messageRead") + public R messageRead(String noticeId) { + Boolean flag= efcodeCpNoticeService.updateEntIsRead(noticeId); + if(!flag){ + return R.fail("修改任务状态为已读失败!"); + } + // 插入查看记录(调用公共方法) + if (flag != null) { + sysMessageViewLogService.insertViewLog(noticeId, MsgSourceTypeEnum.ZFYG.getKey()); + } + return R.ok(); + } } diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/EfcodeCpNotice.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/EfcodeCpNotice.java index e228e956..bc76fea5 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/EfcodeCpNotice.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/EfcodeCpNotice.java @@ -149,5 +149,7 @@ public class EfcodeCpNotice extends BaseEntity { */ private String remark; + /** 预约是否已读 0:未读 1:已读 */ + private int isRead; } diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/EfcodeCpTask.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/EfcodeCpTask.java index b4a96701..077de1a5 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/EfcodeCpTask.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/EfcodeCpTask.java @@ -37,5 +37,6 @@ public class EfcodeCpTask extends BaseEntity { */ private String bureauDeptId; + /** 预约是否已读 0:未读 1:已读 */ private int isRead; } diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/mapper/EfcodeCpNoticeMapper.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/mapper/EfcodeCpNoticeMapper.java index 2d2f9067..5b8728ce 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/mapper/EfcodeCpNoticeMapper.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/mapper/EfcodeCpNoticeMapper.java @@ -1,8 +1,12 @@ package com.zdxt.enforcementcode.mapper; import com.zdxt.enforcementcode.domain.EfcodeCpNotice; +import com.zdxt.enforcementcode.domain.bo.EfcodeCpNoticeBo; import com.zdxt.enforcementcode.domain.vo.EfcodeCpNoticeVo; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.List; /** * 行政执法检查计划-预告Mapper接口 @@ -12,4 +16,6 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; */ public interface EfcodeCpNoticeMapper extends BaseMapperPlus { + Long entReadCount(String enterpriseNumber); + Long enfReadCount(Long userId); } diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IEfcodeCpNoticeService.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IEfcodeCpNoticeService.java index f7d5be9d..d9664d98 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IEfcodeCpNoticeService.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IEfcodeCpNoticeService.java @@ -70,6 +70,7 @@ public interface IEfcodeCpNoticeService { * 查询当前用户的预告列表(分页) */ TableDataInfo queryMyPageList(EfcodeCpNoticeBo bo, PageQuery pageQuery); + /** * 查询当前企业的预告列表(分页) */ @@ -96,4 +97,11 @@ public interface IEfcodeCpNoticeService { * @return 处理的记录数 */ int markExpiredNoticesAsExecuted(); + + /** + * 预告消息查看后置已读 + */ + Boolean updateEntIsRead(String noticeMsgId); + + Boolean updateEnfIsRead(String noticeMsgId); } diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EfcodeCpNoticeMessageServiceImpl.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EfcodeCpNoticeMessageServiceImpl.java index 2d761dc5..974a6358 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EfcodeCpNoticeMessageServiceImpl.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EfcodeCpNoticeMessageServiceImpl.java @@ -149,7 +149,7 @@ public class EfcodeCpNoticeMessageServiceImpl implements IEfcodeCpNoticeMessageS */ @Override public Long countUnreadNoticeMessage(String enterpriseNumber) { - if (StringUtils.isBlank(enterpriseNumber)) { + /* if (StringUtils.isBlank(enterpriseNumber)) { return 0L; } // 1. 查找该企业关联的所有已发布预告 ID @@ -162,16 +162,16 @@ public class EfcodeCpNoticeMessageServiceImpl implements IEfcodeCpNoticeMessageS if (notices.isEmpty()) { return 0L; } - /*List noticeIds = notices.stream().map(EfcodeCpNotice::getId).toList();*/ + List noticeIds = notices.stream().map(EfcodeCpNotice::getId).toList(); // 2. 统计这些预告下企业未读的消息数量(同一预告的多条未读消息只计1条) - /* LambdaQueryWrapper msgWrapper = Wrappers.lambdaQuery(); + LambdaQueryWrapper msgWrapper = Wrappers.lambdaQuery(); msgWrapper.in(EfcodeCpNoticeMessage::getNoticeId, noticeIds); msgWrapper.eq(EfcodeCpNoticeMessage::getEnterpriseViewed, 0); msgWrapper.eq(EfcodeCpNoticeMessage::getIsDelete, 0); msgWrapper.select(EfcodeCpNoticeMessage::getNoticeId); List messages = baseMapper.selectList(msgWrapper);*/ - return (long) notices.stream().map(EfcodeCpNotice::getId).distinct().count(); + return noticeMapper.entReadCount(enterpriseNumber); } /** @@ -206,7 +206,7 @@ public class EfcodeCpNoticeMessageServiceImpl implements IEfcodeCpNoticeMessageS log.warn("当前用户未登录,无法统计未读执法预告消息"); return 0L; } - return baseMapper.countUnreadNoticeMessageForCurrentUser(userId,sourceType); + return noticeMapper.enfReadCount(userId); } return 0L; } diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EfcodeCpNoticeServiceImpl.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EfcodeCpNoticeServiceImpl.java index 05e37188..53278e6b 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EfcodeCpNoticeServiceImpl.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EfcodeCpNoticeServiceImpl.java @@ -1,6 +1,7 @@ package com.zdxt.enforcementcode.service.impl; import cn.hutool.core.util.IdUtil; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.zdxt.enforcementcode.common.commonenum.MsgSourceTypeEnum; import com.zdxt.enforcementcode.domain.bean.EnforcementEducationServices; import com.zdxt.enforcementcode.domain.bo.thirdparty.YuGaoMsgParamBo; @@ -52,11 +53,6 @@ public class EfcodeCpNoticeServiceImpl implements IEfcodeCpNoticeService { @Override public EfcodeCpNoticeVo queryById(String id) { EfcodeCpNoticeVo vo = baseMapper.selectVoById(id); - // 插入查看记录(调用公共方法) - if (vo != null) { - sysMessageViewLogService.insertViewLog(id, MsgSourceTypeEnum.ZFYG.getKey()); - } - return vo; } @@ -96,6 +92,9 @@ public class EfcodeCpNoticeServiceImpl implements IEfcodeCpNoticeService { Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); return TableDataInfo.build(result); } + + + /** * 查询当前用户的预告列表(分页) * 过滤条件:create_by = 当前用户ID,is_delete = 0 @@ -365,4 +364,36 @@ public class EfcodeCpNoticeServiceImpl implements IEfcodeCpNoticeService { log.info("[markExpiredNoticesAsExecuted] 共标记{}条预告为已执行", expiredList.size()); return expiredList.size(); } + + /** + * 修改预告消息已读状态 + * + * @param noticeMsgId 预告消息ID + * @return 是否修改成功 + */ + @Override + public Boolean updateEntIsRead(String noticeMsgId) { + LambdaUpdateWrapper wrapper = Wrappers.lambdaUpdate(); + wrapper.eq(EfcodeCpNoticeMessage::getId, noticeMsgId) + .set(EfcodeCpNoticeMessage::getBureauDeptViewed, 1) + .set(EfcodeCpNoticeMessage::getUpdateBy, LoginHelper.getUserId()) + .set(EfcodeCpNoticeMessage::getUpdateTime, new Date()); + return noticeMessageMapper.update(null, wrapper) > 0; + } + + /** + * 修改预告消息已读状态 + * + * @param noticeMsgId 预告消息ID + * @return 是否修改成功 + */ + @Override + public Boolean updateEnfIsRead(String noticeMsgId) { + LambdaUpdateWrapper wrapper = Wrappers.lambdaUpdate(); + wrapper.eq(EfcodeCpNoticeMessage::getId, noticeMsgId) + .set(EfcodeCpNoticeMessage::getEnterpriseViewed, 1) + .set(EfcodeCpNoticeMessage::getUpdateBy, LoginHelper.getUserId()) + .set(EfcodeCpNoticeMessage::getUpdateTime, new Date()); + return noticeMessageMapper.update(null, wrapper) > 0; + } } diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/EfcodeCpNoticeMapper.xml b/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/EfcodeCpNoticeMapper.xml index 0e124993..30604933 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/EfcodeCpNoticeMapper.xml +++ b/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/EfcodeCpNoticeMapper.xml @@ -3,4 +3,61 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + + + + + diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/EfcodeCpNoticeMessageMapper.xml b/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/EfcodeCpNoticeMessageMapper.xml index 724a6de4..441813af 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/EfcodeCpNoticeMessageMapper.xml +++ b/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/EfcodeCpNoticeMessageMapper.xml @@ -8,7 +8,7 @@