浏览代码

定时发送

luowei 2 年之前
父节点
当前提交
c3b1ae0083

+ 43 - 38
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/information/service/impl/CoreMessageSendServiceImpl.java

@@ -117,56 +117,61 @@ public class CoreMessageSendServiceImpl extends ServiceImpl<CoreMessageSendMappe
             Date sendTime = coreMessageSend.getSendTime();
             Date date = new Date();
             long nowTime = date.getTime();
-            long sTime =     sendTime.getTime();
+            long sTime = sendTime.getTime();
             coreMessageSend.setSendStatus("2");
             List<CoreMessageCenter> info = getInfo(coreMessageSend);
-            Task task=new Task(info);
-            long n =sTime- nowTime;
-            Timer timer=new Timer();
-            timer.schedule(task,n);
+            Task task = new Task(info,coreMessageSend);
+            long n = sTime - nowTime;
+            Timer timer = new Timer();
+            timer.schedule(task, n);
         }
         return coreMessageSendMapper.insert(coreMessageSend);
     }
 
     class Task extends TimerTask {
         List<CoreMessageCenter> coreMessageCenterList;
-        public Task( List<CoreMessageCenter> coreMessageCenterList){
-            this.coreMessageCenterList=coreMessageCenterList;
+        CoreMessageSend coreMessageSend;
+        public Task(List<CoreMessageCenter> coreMessageCenterList, CoreMessageSend coreMessageSend) {
+            this.coreMessageCenterList = coreMessageCenterList;
+            this.coreMessageSend=  coreMessageSend;
         }
+
         @Override
         public void run() {
-            coreMessageCenterService.saveBatch(coreMessageCenterList);
+            boolean b = coreMessageCenterService.saveBatch(coreMessageCenterList);
+            if (b){
+                coreMessageSend.setSendStatus("1");
+                coreMessageSendMapper.updateById(coreMessageSend);
+            }
         }
-
     }
-private List<CoreMessageCenter> getInfo(CoreMessageSend coreMessageSend){
-    List<Long> collect = new ArrayList<>();
-    if (null != coreMessageSend.getSendRole()) {
-        List<CoreAnnouncementNotificationToRole> notificationToRoles = new ArrayList<>();
-        CoreAnnouncementNotificationToRole coreAnnouncementNotificationToRole = new CoreAnnouncementNotificationToRole();
-        coreAnnouncementNotificationToRole.setRoleId(coreMessageSend.getSendRole());
-        notificationToRoles.add(coreAnnouncementNotificationToRole);
-        List<SysUser> userListByRole = remoteUserService.getUserListByRole(notificationToRoles, SecurityConstants.INNER);
-        collect = userListByRole.stream().map(SysUser::getId).collect(Collectors.toList());
-    }
-    collect.add(coreMessageSend.getSendUser());
-    List<CoreMessageCenter> coreMessageCenterList = new ArrayList<>();
-    for (Long userId : collect) {
-        CoreMessageCenter coreMessageCenter = new CoreMessageCenter();
-        coreMessageCenter.setTitle(coreMessageSend.getTitle());
-        coreMessageCenter.setContent(coreMessageSend.getContent());
-        coreMessageCenter.setIsRead("0");
-        coreMessageCenter.setType("3");
-        coreMessageCenter.setCreateTime(DateUtils.getNowDate());
-        coreMessageCenter.setCreateBy(coreMessageSend.getCreateBy());
-        coreMessageCenter.setUserId(userId);
-        coreMessageCenterList.add(coreMessageCenter);
+
+    private List<CoreMessageCenter> getInfo(CoreMessageSend coreMessageSend) {
+        List<Long> collect = new ArrayList<>();
+        if (null != coreMessageSend.getSendRole()) {
+            List<CoreAnnouncementNotificationToRole> notificationToRoles = new ArrayList<>();
+            CoreAnnouncementNotificationToRole coreAnnouncementNotificationToRole = new CoreAnnouncementNotificationToRole();
+            coreAnnouncementNotificationToRole.setRoleId(coreMessageSend.getSendRole());
+            notificationToRoles.add(coreAnnouncementNotificationToRole);
+            List<SysUser> userListByRole = remoteUserService.getUserListByRole(notificationToRoles, SecurityConstants.INNER);
+            collect = userListByRole.stream().map(SysUser::getId).collect(Collectors.toList());
+        }
+        collect.add(coreMessageSend.getSendUser());
+        List<CoreMessageCenter> coreMessageCenterList = new ArrayList<>();
+        for (Long userId : collect) {
+            CoreMessageCenter coreMessageCenter = new CoreMessageCenter();
+            coreMessageCenter.setTitle(coreMessageSend.getTitle());
+            coreMessageCenter.setContent(coreMessageSend.getContent());
+            coreMessageCenter.setIsRead("0");
+            coreMessageCenter.setType("3");
+            coreMessageCenter.setCreateTime(DateUtils.getNowDate());
+            coreMessageCenter.setCreateBy(coreMessageSend.getCreateBy());
+            coreMessageCenter.setUserId(userId);
+            coreMessageCenterList.add(coreMessageCenter);
+        }
+        return coreMessageCenterList;
     }
-   // coreMessageSend.setSendStatus("1");
-    //立即生成消息
-  //  coreMessageCenterService.saveBatch(coreMessageCenterList);
-    return  coreMessageCenterList;
-}
+
     /**
      * 修改【请填写功能名称】
      *
@@ -208,7 +213,7 @@ private List<CoreMessageCenter> getInfo(CoreMessageSend coreMessageSend){
 
     @Override
     public void timedTransmission(LocalDate taskTime) {
-        if (ObjectUtil.isEmpty(taskTime)) {
+/*        if (ObjectUtil.isEmpty(taskTime)) {
             taskTime = LocalDate.now();
         }
         CoreMessageSend coreMessageSend = new CoreMessageSend();
@@ -257,7 +262,7 @@ private List<CoreMessageCenter> getInfo(CoreMessageSend coreMessageSend){
                 }
             }
 
-        }
+        }*/
     }
 
     /**