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 |   18 +++++++++++++-----
 1 files changed, 13 insertions(+), 5 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 659c1f2..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,16 +74,24 @@
      * @return
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Boolean audit(Report report) {
         // 1. 鏇存柊鎶ユ琛�
         report.setStatus(1);
+        report.setIsInGroup(1);
         reportDao.updateById(report);
         // 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;
     }
 
@@ -206,7 +214,7 @@
                 .setCtime(new Date())
                 .setStatus(0)
                 .setIsInGroup(0)
-                .setReportMethod("鐜板満褰曞叆")
+                .setReportMethod("鍚庡彴褰曞叆")
                 .setIsCommission("0").setReportTime(new Date())
                 .setCauseId(addReportDto.getCauseId());
         return reportService.save(report);

--
Gitblit v1.8.0