From 453e847669df9f22266b073bda76523726913ede Mon Sep 17 00:00:00 2001
From: wl <173@qq.com>
Date: 星期一, 26 十二月 2022 11:08:18 +0800
Subject: [PATCH] fix: 群成员重复

---
 src/main/java/com/example/jz/service/impl/ReportServiceImpl.java |   15 +++++++++++----
 1 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/example/jz/service/impl/ReportServiceImpl.java b/src/main/java/com/example/jz/service/impl/ReportServiceImpl.java
index 2d39893..bec4f96 100644
--- a/src/main/java/com/example/jz/service/impl/ReportServiceImpl.java
+++ b/src/main/java/com/example/jz/service/impl/ReportServiceImpl.java
@@ -34,9 +34,9 @@
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
-import java.util.Comparator;
 import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 鎶ユ琛�(Report)琛ㄦ湇鍔″疄鐜扮被
@@ -74,7 +74,7 @@
      * @return
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Boolean audit(Report report) {
         // 1. 鏇存柊鎶ユ琛�
         report.setStatus(1);
@@ -83,8 +83,15 @@
         // 2. 鏇存柊缇ょ敤鎴疯〃
         Group group = groupDao.selectOne(new LambdaQueryWrapper<>(Group.class)
                 .eq(Group::getCauseId, report.getCauseId()));
-        GroupUser groupUser = new GroupUser().setGroupId(group.getId()).setUserId(report.getId()).setCtime(new Date()).setBanSpeech(0);
-        groupUserDao.insert(groupUser);
+        List<GroupUser> groupUserList = groupUserDao.selectList(new LambdaQueryWrapper<GroupUser>().eq(GroupUser::getUserId, group.getUserId()));
+        if (!groupUserList
+                .stream()
+                .map(item -> item.getUserId())
+                .collect(Collectors.toList())
+                .contains(report.getId())) {
+            GroupUser groupUser = new GroupUser().setGroupId(group.getId()).setUserId(report.getId()).setCtime(new Date()).setBanSpeech(0);
+            return groupUserDao.insert(groupUser) == 1 ? true : false;
+        }
         return true;
     }
 

--
Gitblit v1.8.0