Browse Source

Merge branch 'dev' of http://146.56.199.25:3000/zhuibobo/EnforcementCode-2.0 into dev

dev-V1.10.2-temp
wangmingyong@163.com 3 months ago
parent
commit
86d163039f
  1. 29
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enforcement/AppEnfCpNoticeController.java
  2. 23
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enterprise/AppEnforcementLawNoticeController.java
  3. 2
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/EfcodeCpNotice.java
  4. 1
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/EfcodeCpTask.java
  5. 6
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/mapper/EfcodeCpNoticeMapper.java
  6. 8
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IEfcodeCpNoticeService.java
  7. 10
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EfcodeCpNoticeMessageServiceImpl.java
  8. 41
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EfcodeCpNoticeServiceImpl.java
  9. 57
      zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/EfcodeCpNoticeMapper.xml
  10. 2
      zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/EfcodeCpNoticeMessageMapper.xml

29
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<EfcodeCpNoticeVo> 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<Void> 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();
}
}

23
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<Void> 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();
}
}

2
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;
}

1
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;
}

6
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<EfcodeCpNotice, EfcodeCpNoticeVo> {
Long entReadCount(String enterpriseNumber);
Long enfReadCount(Long userId);
}

8
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IEfcodeCpNoticeService.java

@ -70,6 +70,7 @@ public interface IEfcodeCpNoticeService {
* 查询当前用户的预告列表(分页)
*/
TableDataInfo<EfcodeCpNoticeVo> queryMyPageList(EfcodeCpNoticeBo bo, PageQuery pageQuery);
/**
* 查询当前企业的预告列表(分页)
*/
@ -96,4 +97,11 @@ public interface IEfcodeCpNoticeService {
* @return 处理的记录数
*/
int markExpiredNoticesAsExecuted();
/**
* 预告消息查看后置已读
*/
Boolean updateEntIsRead(String noticeMsgId);
Boolean updateEnfIsRead(String noticeMsgId);
}

10
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<String> noticeIds = notices.stream().map(EfcodeCpNotice::getId).toList();*/
List<String> noticeIds = notices.stream().map(EfcodeCpNotice::getId).toList();
// 2. 统计这些预告下企业未读的消息数量(同一预告的多条未读消息只计1条)
/* LambdaQueryWrapper<EfcodeCpNoticeMessage> msgWrapper = Wrappers.lambdaQuery();
LambdaQueryWrapper<EfcodeCpNoticeMessage> msgWrapper = Wrappers.lambdaQuery();
msgWrapper.in(EfcodeCpNoticeMessage::getNoticeId, noticeIds);
msgWrapper.eq(EfcodeCpNoticeMessage::getEnterpriseViewed, 0);
msgWrapper.eq(EfcodeCpNoticeMessage::getIsDelete, 0);
msgWrapper.select(EfcodeCpNoticeMessage::getNoticeId);
List<EfcodeCpNoticeMessage> 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;
}

41
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<EfcodeCpNoticeVo> 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<EfcodeCpNoticeMessage> 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<EfcodeCpNoticeMessage> 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;
}
}

57
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">
<mapper namespace="com.zdxt.enforcementcode.mapper.EfcodeCpNoticeMapper">
<!-- 企业端 未读数量 -->
<select id="entReadCount" parameterType="string" resultType="long">
select
count(1)
from
efcode_cp_notice t1
inner join (
select
distinct id,
notice_id
from
efcode_cp_notice_message
where
msg_from = 0
and bureau_dept_viewed = 0
) t2
on
t1.id = t2.notice_id
<where>
t1.status = 1
and t1.is_delete = 0
<if test="enterpriseNumber!=null and enterpriseNumber!=''">
and t1.enterprise_id = #{enterpriseNumber}
</if>
</where>
</select>
<!-- 执法端未读数量 -->
<select id="enfReadCount" parameterType="long" resultType="long">
select
count(1)
from
efcode_cp_notice t1
inner join (
select
distinct id,
notice_id
from
efcode_cp_notice_message
where
msg_from = 1
and enterprise_viewed = 0
) t2
on
t1.id = t2.notice_id
<where>
t1.status = 1
and t1.is_delete = 0
<if test="userId!=null and userId!=''">
and t1.create_by = #{userId}
</if>
</where>
</select>
</mapper>

2
zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/EfcodeCpNoticeMessageMapper.xml

@ -8,7 +8,7 @@
<select id="countUnreadNoticeMessageForCurrentUser" resultType="java.lang.Long">
SELECT COUNT(1)
FROM efcode_cp_notice ecn
WHERE ecn.is_delete = 0 and ecn.create_by = #{userId}
WHERE ecn.is_delete = 0 and ecn.is_read = 0 and ecn.create_by = #{userId}
AND NOT EXISTS (
SELECT 1
FROM sys_message_view_log smvl

Loading…
Cancel
Save