我做的是每天早上八点,查询数据库过期的任务,然后在页面内向用户发送通知(类似钉钉的企业办公软件)
两个表:
1.通知目标表。
2.消息通知表
数据库通知模板
1.Controller类
import org.springframework.scheduling.annotation.Scheduled;
//过期任务通知:每天早上八点定时发送
// @RequestMapping(value = "/pushWorkNotification", method = RequestMethod.POST)--测试用
@Scheduled(cron = "0 0 8 * * ?")
public void pushWorkNotification(){
this.service.pushWorkNotification();
}
2.service类
public void pushWorkNotification() {
//先查询要过期的工作任务,以及去掉已经发送过的任务,然后遍历发送通知
ArrayList<WorkTaskEntity> a = service.workTaskMybatisDao.findPushWorkNotificationList();
//存发送目标的id
ArrayList<MessageAimEntity> sendEmpIds = new ArrayList<>();
for (WorkTaskEntity b : a) {
List<Integer> workMembers = service.workTaskMybatisDao.findWorkMembers(b.getId());
b.setMemberId(workMembers);
List<Integer> prjMembers = service.workTaskMybatisDao.findPrjMembers(b.getSourceProjectId());
b.setPrjSourceEmp(prjMembers);
List<Integer> prjMembers1 = service.workTaskMybatisDao.findPrjMembers(b.getTargetProjectId());
b.setPrjTargetEmp(prjMembers1);
}
for (WorkTaskEntity b : a) {
if (b.getCreateEmpId() != null) {
MessageAimEntity messageAimEntity = new MessageAimEntity();
messageAimEntity.setEmpId(b.getCreateEmpId