Browse Source

feat(system):优化系统公告逻辑并调整删除标记类型- 将SysAnnouncement实体的delFlag字段类型由String改为Integer
- 使用@TableLogic注解标记delFlag为逻辑删除字段
- 统一设置delFlag值时不再使用toString()方法
- 删除公告时调用removeById方法替代手动设置delFlag- 查询未读消息时增加sendStatus条件过滤
-修正多处delFlag赋值逻辑,确保数据一致性

wzq 3 weeks ago
parent
commit
e0c8a247a0

+ 4 - 2
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/service/impl/UserServiceImpl.java

@@ -128,8 +128,10 @@ public class UserServiceImpl implements IUserService {
         List<MsgVO> msgVOList = new ArrayList<>();
         if (null != user) {
             sysAnnouncementSendMapper.selectList(Wrappers.<SysAnnouncementSend>lambdaQuery()
-                    .eq(SysAnnouncementSend::getUserId, user.getId())).forEach(sysAnnouncementSend -> {
-                SysAnnouncement sysAnnouncement = sysAnnouncementMapper.selectById(sysAnnouncementSend.getAnntId());
+                    .eq(SysAnnouncementSend::getUserId, user.getId()).eq(SysAnnouncementSend::getReadFlag, 0)).forEach(sysAnnouncementSend -> {
+                SysAnnouncement sysAnnouncement =
+                        sysAnnouncementMapper.selectOne(Wrappers.lambdaQuery(SysAnnouncement.class).eq(SysAnnouncement::getId,
+                                sysAnnouncementSend.getAnntId()).eq(SysAnnouncement::getSendStatus, 1));
                 MsgVO msgVO = new MsgVO();
                 if(null !=sysAnnouncement){
                     msgVO.setReadFlag(sysAnnouncementSend.getReadFlag())

+ 1 - 1
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/message/handle/impl/SystemSendMsgHandle.java

@@ -108,7 +108,7 @@ public class SystemSendMsgHandle implements ISendMsgHandle {
         announcement.setSendTime(new Date());
         //系统消息
         announcement.setMsgCategory("2");
-        announcement.setDelFlag(String.valueOf(CommonConstant.DEL_FLAG_0));
+        announcement.setDelFlag(CommonConstant.DEL_FLAG_0);
         sysAnnouncementMapper.insert(announcement);
         // 2.插入用户通告阅读标记表记录
         String userId = toUser;

+ 7 - 7
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/controller/SysAnnouncementController.java

@@ -115,7 +115,7 @@ public class SysAnnouncementController {
 		}
 		//------------------------------------------------------------------------------------------------
 		Result<IPage<SysAnnouncement>> result = new Result<IPage<SysAnnouncement>>();
-		sysAnnouncement.setDelFlag(CommonConstant.DEL_FLAG_0.toString());
+		sysAnnouncement.setDelFlag(CommonConstant.DEL_FLAG_0);
 		QueryWrapper<SysAnnouncement> queryWrapper = QueryGenerator.initQueryWrapper(sysAnnouncement, req.getParameterMap());
 		Page<SysAnnouncement> page = new Page<SysAnnouncement>(pageNo,pageSize);
 		IPage<SysAnnouncement> pageList = sysAnnouncementService.page(page, queryWrapper);
@@ -137,7 +137,7 @@ public class SysAnnouncementController {
 			String title = XssUtils.scriptXss(sysAnnouncement.getTitile());
 			sysAnnouncement.setTitile(title);
 			// update-end-author:liusq date:20210804 for:标题处理xss攻击的问题
-			sysAnnouncement.setDelFlag(CommonConstant.DEL_FLAG_0.toString());
+			sysAnnouncement.setDelFlag(CommonConstant.DEL_FLAG_0);
             //未发布
 			sysAnnouncement.setSendStatus(CommonSendStatus.UNPUBLISHED_STATUS_0);
 			sysAnnouncementService.saveAnnouncement(sysAnnouncement);
@@ -187,8 +187,8 @@ public class SysAnnouncementController {
 		if(sysAnnouncement==null) {
 			result.error500("未找到对应实体");
 		}else {
-			sysAnnouncement.setDelFlag(CommonConstant.DEL_FLAG_1.toString());
-			boolean ok = sysAnnouncementService.updateById(sysAnnouncement);
+
+			boolean ok = sysAnnouncementService.removeById(sysAnnouncement);
 			if(ok) {
 				result.success("删除成功!");
 			}
@@ -211,7 +211,7 @@ public class SysAnnouncementController {
 			String[] id = ids.split(",");
 			for(int i=0;i<id.length;i++) {
 				SysAnnouncement announcement = sysAnnouncementService.getById(id[i]);
-				announcement.setDelFlag(CommonConstant.DEL_FLAG_1.toString());
+				announcement.setDelFlag(CommonConstant.DEL_FLAG_1);
 				sysAnnouncementService.updateById(announcement);
 			}
 			result.success("删除成功!");
@@ -405,7 +405,7 @@ public class SysAnnouncementController {
         LambdaQueryWrapper<SysAnnouncement> queryWrapper = new LambdaQueryWrapper<SysAnnouncement>(sysAnnouncement);
         //Step.2 AutoPoi 导出Excel
         ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
-		queryWrapper.eq(SysAnnouncement::getDelFlag,CommonConstant.DEL_FLAG_0.toString());
+		queryWrapper.eq(SysAnnouncement::getDelFlag,CommonConstant.DEL_FLAG_0);
         List<SysAnnouncement> pageList = sysAnnouncementService.list(queryWrapper);
         //导出文件名称
         mv.addObject(NormalExcelConstants.FILE_NAME, "系统通告列表");
@@ -438,7 +438,7 @@ public class SysAnnouncementController {
                 List<SysAnnouncement> listSysAnnouncements = ExcelImportUtil.importExcel(file.getInputStream(), SysAnnouncement.class, params);
                 for (SysAnnouncement sysAnnouncementExcel : listSysAnnouncements) {
                 	if(sysAnnouncementExcel.getDelFlag()==null){
-                		sysAnnouncementExcel.setDelFlag(CommonConstant.DEL_FLAG_0.toString());
+                		sysAnnouncementExcel.setDelFlag(CommonConstant.DEL_FLAG_0);
 					}
                     sysAnnouncementService.save(sysAnnouncementExcel);
                 }

+ 3 - 1
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/entity/SysAnnouncement.java

@@ -2,6 +2,7 @@ package org.jeecg.modules.system.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
@@ -98,7 +99,8 @@ public class SysAnnouncement implements Serializable {
     /**
      * 删除状态(0,正常,1已删除)
      */
-    private String delFlag;
+    @TableLogic
+    private Integer delFlag;
     /**
      * 创建人
      */

+ 1 - 1
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysAnnouncementServiceImpl.java

@@ -135,7 +135,7 @@ public class SysAnnouncementServiceImpl extends ServiceImpl<SysAnnouncementMappe
 		announcement.setMsgType(CommonConstant.MSG_TYPE_ALL);
 		announcement.setSendStatus(CommonConstant.HAS_SEND);
 		announcement.setSendTime(new Date());
-		announcement.setDelFlag(CommonConstant.DEL_FLAG_0.toString());
+		announcement.setDelFlag(CommonConstant.DEL_FLAG_0);
 		sysAnnouncementMapper.insert(announcement);
 	}
 

+ 4 - 4
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysBaseApiImpl.java

@@ -487,7 +487,7 @@ public class SysBaseApiImpl implements ISysBaseAPI {
 		announcement.setSendStatus(CommonConstant.HAS_SEND);
 		announcement.setSendTime(new Date());
 		announcement.setMsgCategory(CommonConstant.MSG_CATEGORY_2);
-		announcement.setDelFlag(String.valueOf(CommonConstant.DEL_FLAG_0));
+		announcement.setDelFlag(CommonConstant.DEL_FLAG_0);
 		sysAnnouncementMapper.insert(announcement);
 		// 2.插入用户通告阅读标记表记录
 		String userId = toUser;
@@ -568,7 +568,7 @@ public class SysBaseApiImpl implements ISysBaseAPI {
 		}
 	
 		announcement.setMsgCategory(CommonConstant.MSG_CATEGORY_2);
-		announcement.setDelFlag(String.valueOf(CommonConstant.DEL_FLAG_0));
+		announcement.setDelFlag(CommonConstant.DEL_FLAG_0);
 		announcement.setBusId(busId);
 		announcement.setBusType(busType);
 		announcement.setOpenType(SysAnnmentTypeEnum.getByType(busType).getOpenType());
@@ -1302,7 +1302,7 @@ public class SysBaseApiImpl implements ISysBaseAPI {
 		announcement.setSendStatus(CommonConstant.HAS_SEND);
 		announcement.setSendTime(new Date());
 		announcement.setMsgCategory(setMsgCategory);
-		announcement.setDelFlag(String.valueOf(CommonConstant.DEL_FLAG_0));
+		announcement.setDelFlag(CommonConstant.DEL_FLAG_0);
 		sysAnnouncementMapper.insert(announcement);
 		// 2.插入用户通告阅读标记表记录
 		String userId = toUser;
@@ -1350,7 +1350,7 @@ public class SysBaseApiImpl implements ISysBaseAPI {
 		announcement.setSendStatus(CommonConstant.HAS_SEND);
 		announcement.setSendTime(new Date());
 		announcement.setMsgCategory(setMsgCategory);
-		announcement.setDelFlag(String.valueOf(CommonConstant.DEL_FLAG_0));
+		announcement.setDelFlag(CommonConstant.DEL_FLAG_0);
 		announcement.setBusId(busId);
 		announcement.setBusType(busType);
 		announcement.setOpenType(SysAnnmentTypeEnum.getByType(busType).getOpenType());