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

---
 src/main/java/com/example/jz/dao/GroupUserDao.java               |    3 +++
 src/main/resources/mapper/GroupUserDao.xml                       |   17 +++++++++++++++++
 src/main/java/com/example/jz/service/impl/ReportServiceImpl.java |    7 +------
 3 files changed, 21 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/example/jz/dao/GroupUserDao.java b/src/main/java/com/example/jz/dao/GroupUserDao.java
index 1f9da2d..f429ef6 100644
--- a/src/main/java/com/example/jz/dao/GroupUserDao.java
+++ b/src/main/java/com/example/jz/dao/GroupUserDao.java
@@ -4,6 +4,8 @@
 import com.example.jz.modle.entity.GroupUser;
 import org.apache.ibatis.annotations.Mapper;
 
+import java.util.List;
+
 /**
  * 鐢ㄦ埛鍜岀兢涓棿琛�(GroupUser)琛ㄦ暟鎹簱璁块棶灞�
  *
@@ -13,4 +15,5 @@
 @Mapper
 public interface GroupUserDao extends BaseMapper<GroupUser> {
 
+    List<Integer> selectUserList(Integer id);
 }
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 bec4f96..830ede7 100644
--- a/src/main/java/com/example/jz/service/impl/ReportServiceImpl.java
+++ b/src/main/java/com/example/jz/service/impl/ReportServiceImpl.java
@@ -83,12 +83,7 @@
         // 2. 鏇存柊缇ょ敤鎴疯〃
         Group group = groupDao.selectOne(new LambdaQueryWrapper<>(Group.class)
                 .eq(Group::getCauseId, report.getCauseId()));
-        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())) {
+        if (!groupUserDao.selectUserList(group.getId()).contains(report.getUserId())) {
             GroupUser groupUser = new GroupUser().setGroupId(group.getId()).setUserId(report.getId()).setCtime(new Date()).setBanSpeech(0);
             return groupUserDao.insert(groupUser) == 1 ? true : false;
         }
diff --git a/src/main/resources/mapper/GroupUserDao.xml b/src/main/resources/mapper/GroupUserDao.xml
new file mode 100644
index 0000000..b18d7b6
--- /dev/null
+++ b/src/main/resources/mapper/GroupUserDao.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.example.jz.dao.GroupUserDao">
+
+
+
+    <select id="selectUserList" resultType="java.lang.Integer">
+        SELECT
+            t2.user_id
+        FROM
+            `group_user` t1
+                LEFT JOIN report t2 ON t1.user_id = t2.id
+        WHERE
+            t1.group_id = #{id}
+    </select>
+
+</mapper>

--
Gitblit v1.8.0