diff --git a/executor/src/main/java/cn/org/gitlink/notification/executor/ExecutorApplication.java b/executor/src/main/java/cn/org/gitlink/notification/executor/ExecutorApplication.java index b4d23a1..f4686c5 100644 --- a/executor/src/main/java/cn/org/gitlink/notification/executor/ExecutorApplication.java +++ b/executor/src/main/java/cn/org/gitlink/notification/executor/ExecutorApplication.java @@ -3,9 +3,11 @@ package cn.org.gitlink.notification.executor; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.ComponentScan; +import org.springframework.transaction.annotation.EnableTransactionManagement; @ComponentScan("cn.org.gitlink.notification.*") @SpringBootApplication +@EnableTransactionManagement public class ExecutorApplication { public static void main(String[] args) { SpringApplication.run(ExecutorApplication.class, args);} diff --git a/model/src/main/java/cn/org/gitlink/notification/model/ModelApplication.java b/model/src/main/java/cn/org/gitlink/notification/model/ModelApplication.java index 3572b13..6524a3a 100644 --- a/model/src/main/java/cn/org/gitlink/notification/model/ModelApplication.java +++ b/model/src/main/java/cn/org/gitlink/notification/model/ModelApplication.java @@ -2,8 +2,10 @@ package cn.org.gitlink.notification.model; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.transaction.annotation.EnableTransactionManagement; @SpringBootApplication +@EnableTransactionManagement public class ModelApplication { public static void main(String[] args) { SpringApplication.run(ModelApplication.class, args); diff --git a/model/src/main/java/cn/org/gitlink/notification/model/dao/mapper/SysNotificationMapper.java b/model/src/main/java/cn/org/gitlink/notification/model/dao/mapper/SysNotificationMapper.java index 0ec032e..bffd80f 100644 --- a/model/src/main/java/cn/org/gitlink/notification/model/dao/mapper/SysNotificationMapper.java +++ b/model/src/main/java/cn/org/gitlink/notification/model/dao/mapper/SysNotificationMapper.java @@ -51,4 +51,7 @@ public interface SysNotificationMapper extends BaseMapper { @Param("receiver") Integer receiver, @Param("notificationIds") String notificationIds, @Param("type") Integer type); + + //批量插入系统消息数据 + int insertSysNotificationsBatch(@Param("platform") String platform, @Param("list") List sysNotificationList); } diff --git a/model/src/main/java/cn/org/gitlink/notification/model/service/notification/impl/SysNotificationServiceImpl.java b/model/src/main/java/cn/org/gitlink/notification/model/service/notification/impl/SysNotificationServiceImpl.java index e75c8f2..79a059c 100644 --- a/model/src/main/java/cn/org/gitlink/notification/model/service/notification/impl/SysNotificationServiceImpl.java +++ b/model/src/main/java/cn/org/gitlink/notification/model/service/notification/impl/SysNotificationServiceImpl.java @@ -12,6 +12,7 @@ import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -28,20 +29,24 @@ public class SysNotificationServiceImpl extends ServiceImpl sysNotificationList = new ArrayList<>(); List list = Arrays.asList(newSysNotificationVo.getReceivers().split(",")); for (String receiver : list) { + SysNotification sysNotification = new SysNotification(); + sysNotification.setSender(newSysNotificationVo.getSender()); + sysNotification.setContent(newSysNotificationVo.getContent()); + sysNotification.setNotificationUrl(newSysNotificationVo.getNotification_url()); + sysNotification.setType(newSysNotificationVo.getType()); + sysNotification.setSource(newSysNotificationVo.getSource()); + sysNotification.setExtra(newSysNotificationVo.getExtra()); sysNotification.setReceiver(Integer.parseInt(receiver)); - //TODO: 需要批量插入的支持 - baseMapper.insertSelective(newSysNotificationVo.getPlatform(), sysNotification); + sysNotificationList.add(sysNotification); + } + baseMapper.insertSysNotificationsBatch(newSysNotificationVo.getPlatform(), sysNotificationList); + for (String receiver : list){ this.delUserCache(newSysNotificationVo.getPlatform(), Integer.parseInt(receiver)); } + return true; } diff --git a/model/src/main/resources/mapper/notification/SysNotificationMapper.xml b/model/src/main/resources/mapper/notification/SysNotificationMapper.xml index b55336b..6dfbd6b 100644 --- a/model/src/main/resources/mapper/notification/SysNotificationMapper.xml +++ b/model/src/main/resources/mapper/notification/SysNotificationMapper.xml @@ -213,4 +213,20 @@ and id in (${notificationIds}) + + + SELECT LAST_INSERT_ID() + + insert into ${platform}_sys_notification + (id, sender, receiver, content, notification_url, type, source, extra) + values + + ( + #{record.id,jdbcType=INTEGER}, #{record.sender,jdbcType=INTEGER}, #{record.receiver,jdbcType=INTEGER}, + #{record.content,jdbcType=VARCHAR}, #{record.notificationUrl,jdbcType=VARCHAR}, #{record.type,jdbcType=TINYINT}, + #{record.source,jdbcType=VARCHAR}, #{record.extra,jdbcType=VARCHAR} + ) + + \ No newline at end of file diff --git a/model/src/test/java/cn/org/gitlink/notification/model/ModelApplicationTest.java b/model/src/test/java/cn/org/gitlink/notification/model/ModelApplicationTest.java index 2145314..61b19bf 100644 --- a/model/src/test/java/cn/org/gitlink/notification/model/ModelApplicationTest.java +++ b/model/src/test/java/cn/org/gitlink/notification/model/ModelApplicationTest.java @@ -2,8 +2,10 @@ package cn.org.gitlink.notification.model; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.transaction.annotation.EnableTransactionManagement; @SpringBootApplication +@EnableTransactionManagement public class ModelApplicationTest { public static void main(String[] args) { SpringApplication.run(ModelApplicationTest.class, args); diff --git a/reader/src/main/java/cn/org/gitlink/notification/reader/ReaderApiApplication.java b/reader/src/main/java/cn/org/gitlink/notification/reader/ReaderApiApplication.java index 62e69c7..fb4710e 100644 --- a/reader/src/main/java/cn/org/gitlink/notification/reader/ReaderApiApplication.java +++ b/reader/src/main/java/cn/org/gitlink/notification/reader/ReaderApiApplication.java @@ -3,9 +3,11 @@ package cn.org.gitlink.notification.reader; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.ComponentScan; +import org.springframework.transaction.annotation.EnableTransactionManagement; @ComponentScan("cn.org.gitlink.notification.*") @SpringBootApplication +@EnableTransactionManagement public class ReaderApiApplication { public static void main(String[] args) { SpringApplication.run(ReaderApiApplication.class, args); diff --git a/writer/src/main/java/cn/org/gitlink/notification/WriterApiApplication.java b/writer/src/main/java/cn/org/gitlink/notification/WriterApiApplication.java index fe6aa1f..efd76e1 100644 --- a/writer/src/main/java/cn/org/gitlink/notification/WriterApiApplication.java +++ b/writer/src/main/java/cn/org/gitlink/notification/WriterApiApplication.java @@ -3,9 +3,11 @@ package cn.org.gitlink.notification; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.ComponentScan; +import org.springframework.transaction.annotation.EnableTransactionManagement; @ComponentScan("cn.org.gitlink.notification.*") @SpringBootApplication +@EnableTransactionManagement public class WriterApiApplication { public static void main(String[] args) { SpringApplication.run(WriterApiApplication.class, args);