b2fd0881 张雷

feat(module-system): 优化消息查询和处理功能

- 在 AnnouncementSendModel 中添加字典注解,用于优先级和消息类型
- 修改 DeviceStatusJob 中的报警规则类型
- 更新 EduSendMsgJob 中的消息推送逻辑,增加优先级参数
- 调整 SysAnnouncementController 中的消息查询逻辑,支持多类别系统消息
- 修改 SysAnnouncementMapper 接口,调整会议通知消息的查询方法- 更新 SysAnnouncementMapper.xml 中的 SQL 查询,支持多类别系统消息查询
1 个父辈 780fb479
......@@ -284,7 +284,7 @@ public class DeviceStatusJob implements Job {
if ("add".equals(status)) {
AlarmRecordHistory alarmRecordHistory = new AlarmRecordHistory();
alarmRecordHistory.setAlarmParamCode(plc);
alarmRecordHistory.setAlarmRuleType("6");
alarmRecordHistory.setAlarmRuleType("B001B005");
alarmRecordHistory.setAlarmParamType(paramType);
alarmRecordHistory.setActualAvgValue("断线");
alarmRecordHistory.setDelFlag(1);
......
......@@ -66,7 +66,7 @@ public class EduSendMsgJob implements Job {
userIds = getNoExamUserIds(paper.getExamUserIds(),paper.getUserIds());
if(StringUtils.isNotEmpty(userIds)){
//pushMsgNoProcess(messageTitle,messageBody,userIds);
smsService.pushMsgNoProcess( messageTitle , messageBody , userIds, "Paper", msgCategory);
smsService.pushMsgNoProcess( messageTitle , messageBody , userIds, "Paper", msgCategory,"H");
}
}
......@@ -80,7 +80,7 @@ public class EduSendMsgJob implements Job {
userIds = getNoExamUserIds(paper.getExamUserIds(),paper.getUserIds());
if(StringUtils.isNotEmpty(userIds)){
//pushMsgNoProcess(messageTitle,messageBody,userIds);
smsService.pushMsgNoProcess( messageTitle , messageBody , userIds, "Paper", msgCategory);
smsService.pushMsgNoProcess( messageTitle , messageBody , userIds, "Paper", msgCategory,"H");
}
}
}
......
......@@ -73,9 +73,9 @@ public class SysAnnouncementController {
Result<IPage<SysAnnouncement>> result = new Result<IPage<SysAnnouncement>>();
sysAnnouncement.setDelFlag(CommonConstant.DEL_FLAG_0.toString());
//QueryWrapper<SysAnnouncement> queryWrapper = new QueryWrapper<SysAnnouncement>(sysAnnouncement);
QueryWrapper<SysAnnouncement> queryWrapper = QueryGenerator.initQueryWrapper(sysAnnouncement, req.getParameterMap());
Page<SysAnnouncement> page = new Page<SysAnnouncement>(pageNo, pageSize);
//排序逻辑 处理
String column = req.getParameter("column");
......@@ -87,8 +87,8 @@ public class SysAnnouncementController {
queryWrapper.orderByDesc(ConvertUtils.camelToUnderline(column));
}
}
IPage<SysAnnouncement> pageList = sysAnnouncementService.page(page, queryWrapper);
log.info("查询当前页:" + pageList.getCurrent());
log.info("查询当前页数量:" + pageList.getSize());
......@@ -362,12 +362,11 @@ public class SysAnnouncementController {
Page<SysAnnouncement> anntMsgList = new Page<SysAnnouncement>(0, 5);
anntMsgList = sysAnnouncementService.querySysCementPageByUserId(anntMsgList, userId, "1");//通知公告消息
Page<SysAnnouncement> sysMsgList = new Page<SysAnnouncement>(0, 5);
sysMsgList = sysAnnouncementService.querySysCementPageByUserId(sysMsgList, userId, "2");//系统消息
sysMsgList = sysAnnouncementService.querySysCementPageByUserId(sysMsgList, userId, "2,4,5,6,7,8,9,10,11,12,13");//系统消息
Page<SysAnnouncement> alarmList = new Page<SysAnnouncement>(0, 5);
alarmList = sysAnnouncementService.querySysCementPageByUserId(alarmList, userId, "3");//报警通知
Page meetingMsgList = new Page(0, 100);
meetingMsgList = sysAnnouncementService.queryMeetingListByUserId(meetingMsgList, userId, "6");//会议通知消息
//meetingMsgList = sysAnnouncementService.querySysCementPageByUserId(meetingMsgList,userId,"6");//会议通知消息
// meetingMsgList = sysAnnouncementService.queryMeetingListByUserId(meetingMsgList, userId, "6");//会议通知消息
Map<String, Object> sysMsgMap = new HashMap<String, Object>();
sysMsgMap.put("sysMsgList", sysMsgList.getRecords());
sysMsgMap.put("sysMsgTotal", sysMsgList.getTotal());
......
......@@ -14,8 +14,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
*/
public interface SysAnnouncementMapper extends BaseMapper<SysAnnouncement> {
List<SysAnnouncement> querySysCementListByUserId(Page<SysAnnouncement> page, @Param("userId")String userId,@Param("msgCategory")String msgCategory);
List<Map<String,Object>> queryMeetingListByUserId(Page<SysAnnouncement> page, @Param("userId")String userId,@Param("msgCategory")String msgCategory);
List<SysAnnouncement> getListByParam(Map<String, Object> map);
......
......@@ -26,73 +26,76 @@
<select id="querySysCementListByUserId" parameterType="String" resultMap="SysAnnouncement">
SELECT
a.`id`,
a.`titile`,
a.`msg_content`,
a.`start_time`,
a.`end_time`,
a.`priority`,
a.`msg_category`,
a.`msg_type`,
a.`send_status`,
a.`send_time`,
a.`cancel_time`,
a.`del_flag`,
a.`create_by`,
a.`create_time`,
a.`update_by`,
a.`update_time`,
a.`user_ids`,
a.`docu_addr`,
b.`realname` AS sender
FROM
sys_announcement a
LEFT JOIN sys_user b ON a.sender = b.username
where a.send_status = '1'
and a.del_flag = '0'
and a.msg_category = #{msgCategory}
and a.id IN ( select annt_id from sys_announcement_send where user_id = #{userId} and read_flag = '0') order by a.`send_time` desc
a.`id`,
a.`titile`,
a.`msg_content`,
a.`start_time`,
a.`end_time`,
a.`priority`,
a.`msg_category`,
a.`msg_type`,
a.`send_status`,
a.`send_time`,
a.`cancel_time`,
a.`del_flag`,
a.`create_by`,
a.`create_time`,
a.`update_by`,
a.`update_time`,
a.`user_ids`,
a.`docu_addr`,
b.`realname` AS sender
FROM
sys_announcement a
LEFT JOIN sys_user b ON a.sender = b.username
where a.send_status = '1'
and a.del_flag = '0'
and a.msg_category in
<foreach item="item" index="index" collection="msgCategory.split(',')" open="(" separator="," close=")">
#{item}
</foreach>
and a.id IN ( select annt_id from sys_announcement_send where user_id = #{userId} and read_flag = '0')
order by a.`send_time` desc
</select>
<select id="queryMeetingListByUserId" parameterType="String" resultType="map">
SELECT
a.`id`,
a.`titile`,
a.`msg_content` as msgContent,
a.`priority`,
a.`msg_category` as msgCategory,
a.`msg_type` as msgType,
a.`send_status`as sendStatus,
a.`send_time`as sendTime,
a.`cancel_time` as cancelTime,
a.`del_flag` as delFlag,
a.`create_by` as createBy,
a.`create_time` as createTime,
a.`update_by` as updateBy,
a.`update_time` as updateTime,
a.`user_ids` as userIds,
a.`docu_addr` as docuAddr,
b.`realname` AS sender,
c.id as meetingRoomId,
c.meeting_title as meetingTitle,
c.meeting_content as meetingContent,
c.meeting_site as meetingSite,
c.meeting_capacity as meetingCapacity,
c.annt_id as AnntId,
c.start_time as startTime,
c.end_time as endTime,
d.id as meetingAccountId,
d.meeting_number as meetingNumber,
d.account_number as accountNumber,
d.capacity,
d.equipment
FROM
sys_announcement a
LEFT JOIN sys_user b ON a.sender = b.username
left join meeting_room c on a.id = c.annt_id
left join meeting_account d on c.meeting_id = d.id
a.`id`,
a.`titile`,
a.`msg_content` as msgContent,
a.`priority`,
a.`msg_category` as msgCategory,
a.`msg_type` as msgType,
a.`send_status`as sendStatus,
a.`send_time`as sendTime,
a.`cancel_time` as cancelTime,
a.`del_flag` as delFlag,
a.`create_by` as createBy,
a.`create_time` as createTime,
a.`update_by` as updateBy,
a.`update_time` as updateTime,
a.`user_ids` as userIds,
a.`docu_addr` as docuAddr,
b.`realname` AS sender,
c.id as meetingRoomId,
c.meeting_title as meetingTitle,
c.meeting_content as meetingContent,
c.meeting_site as meetingSite,
c.meeting_capacity as meetingCapacity,
c.annt_id as AnntId,
c.start_time as startTime,
c.end_time as endTime,
d.id as meetingAccountId,
d.meeting_number as meetingNumber,
d.account_number as accountNumber,
d.capacity,
d.equipment
FROM
sys_announcement a
LEFT JOIN sys_user b ON a.sender = b.username
left join meeting_room c on a.id = c.annt_id
left join meeting_account d on c.meeting_id = d.id
where a.send_status = '1'
and a.del_flag = '0'
and a.msg_category = #{msgCategory}
......
......@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.skua.core.aspect.annotation.Dict;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
......@@ -32,6 +33,7 @@ public class AnnouncementSendModel implements Serializable {
/**发布人*/
private java.lang.String sender;
/**优先级(L低,M中,H高)*/
@Dict(dicCode = "priority")
private java.lang.String priority;
/**阅读状态*/
private java.lang.String readFlag;
......@@ -46,6 +48,7 @@ public class AnnouncementSendModel implements Serializable {
/**
* 消息类型1:通知公告2:系统消息
*/
@Dict(dicCode = "msg_category")
private java.lang.String msgCategory;
private java.lang.String alarmType;
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!