1.Application添加@EnableTransactionManagement注解

2.系统消息批量insert
This commit is contained in:
万佳 2021-09-17 13:09:27 +08:00
parent f346f9e8b8
commit 3df4ef193f
8 changed files with 43 additions and 9 deletions

View File

@ -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);}

View File

@ -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);

View File

@ -51,4 +51,7 @@ public interface SysNotificationMapper extends BaseMapper<SysNotification> {
@Param("receiver") Integer receiver,
@Param("notificationIds") String notificationIds,
@Param("type") Integer type);
//批量插入系统消息数据
int insertSysNotificationsBatch(@Param("platform") String platform, @Param("list") List<SysNotification> sysNotificationList);
}

View File

@ -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<SysNotificationMappe
@Override
@Transactional
public boolean sendNotification(NewSysNotificationVo newSysNotificationVo) throws Exception {
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());
List<SysNotification> sysNotificationList = new ArrayList<>();
List<String> 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;
}

View File

@ -213,4 +213,20 @@
and id in (${notificationIds})
</if>
</update>
<insert id ="insertSysNotificationsBatch" parameterType="java.util.List" >
<selectKey resultType ="java.lang.Integer" keyProperty= "id"
order= "AFTER">
SELECT LAST_INSERT_ID()
</selectKey >
insert into ${platform}_sys_notification
(id, sender, receiver, content, notification_url, type, source, extra)
values
<foreach collection ="list" item="record" index= "index" separator =",">
(
#{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}
)
</foreach >
</insert >
</mapper>

View File

@ -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);

View File

@ -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);

View File

@ -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);