Browse Source

合计内新增文章优化

fangqing 6 tháng trước cách đây
mục cha
commit
fa27b821a2

+ 34 - 12
ruoyi-generator/src/main/java/com/ruoyi/generator/controller/CommunityArticleController.java

@@ -80,6 +80,8 @@ public class CommunityArticleController extends BaseController {
     @Autowired
     private CommunityCollectionArticleMapper communityCollectionArticleMapper;
 
+    @Autowired
+    private CommunityCollectionMapper communityCollectionMapper;
 
 
     /**
@@ -638,8 +640,8 @@ public class CommunityArticleController extends BaseController {
         }
 
         /**
-         * 1.查询当前用户合集下有没有收录这边文章
-         * 2.情况1 如果在合集下,更新这个合集的删除状态,在插入到新的合集
+         * 1.查询当前用户有没有这个合集
+         * 2.情况1 如果文章在合集下,更新这个合集的删除状态,在插入到新的合集
          * 4.情况2 如果文章就在需要添加的合集下,则返回  该文章在合集已经存在
          * 3.如果没有在合集下,直接插入
          */
@@ -647,18 +649,38 @@ public class CommunityArticleController extends BaseController {
         Long articleId = collectionArticle.getArticleId();
         Long userId = SecurityUtils.getLoginUser().getUserId();
 
-        List<CommunityCollectionArticle> communityCollectionArticles = communityCollectionArticleMapper.selectUserCollectionArticle(userId,articleId);
+        //查询该用户有没有这个合集
+        List<CommunityCollection> communityCollections = communityCollectionMapper.selectList(new QueryWrapper<CommunityCollection>()
+                .eq("user_id", userId)
+                .eq("id",collectionId)
+                .and((wrapper) -> {
+                    wrapper.ne("is_delete", 1).or().isNull("is_delete");
+                }));
+
+        if (communityCollections.isEmpty()) {
+            return AjaxResult.success("合集ID不属于当前登录用户!");
+        }
+
+        System.out.println("communityCollections: " + communityCollections);
+        //根据创建人ID,合集ID,文章ID保持唯一性 查询表如果没有则插入,有了则更新ID
+        List<CommunityCollectionArticle> communityCollectionArticles = communityCollectionArticleMapper.selectList(new QueryWrapper<CommunityCollectionArticle>()
+                .eq("create_by", userId)
+                .eq("article_id",articleId)
+                .and((wrapper) -> {
+                    wrapper.ne("is_delete", 1).or().isNull("is_delete");
+                }));
         System.out.println("communityCollectionArticles: " + communityCollectionArticles);
-        // 如果已存在,则更新删除状态并插入新的合集
+
         if (!communityCollectionArticles.isEmpty()) {
-            Long collectionId1 = communityCollectionArticles.get(0).getCollectionId();
-            System.out.println("collectionId1: " + collectionId1);
-            // 如果 id 与 collectionId 相等,直接返回
-            if (collectionId1.equals(collectionId)) {
-                return AjaxResult.success("该文章在合集已经存在!");
-            } else {
-                // 如果不相等,执行删除操作
-                communityCollectionService.deleteArticleToCollection(collectionId1, articleId);
+            for (CommunityCollectionArticle communityCollectionArticle : communityCollectionArticles) {
+                Long collectionId1 = communityCollectionArticle.getCollectionId();
+                // 如果 id 与 collectionId 相等,直接返回
+                if (collectionId1.equals(collectionId)) {
+                    return AjaxResult.success("该文章在合集已经存在!");
+                } else {
+                    // 如果不相等,执行删除操作
+                    communityCollectionService.deleteArticleToCollection(collectionId1, articleId);
+                }
             }
         }
         collectionArticle.setCreateBy(userId);

+ 0 - 9
ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/community/CommunityCollectionArticleMapper.java

@@ -10,13 +10,4 @@ import java.util.List;
 @Mapper
 public interface CommunityCollectionArticleMapper extends BaseMapper<CommunityCollectionArticle> {
 
-    /**
-     * 根据提供的ID去查询 关联表数据
-     * @param userId
-     * @param articleId
-     * @return 返回一条 community_collection_article
-     */
-    List<CommunityCollectionArticle> selectUserCollectionArticle(
-            @Param("userId")        Long userId,
-            @Param("articleId")     Long articleId);
 }

+ 0 - 12
ruoyi-generator/src/main/java/com/ruoyi/generator/service/CommunityCollectionArticleImpl.java

@@ -12,17 +12,5 @@ import java.util.List;
 @Service
 public class CommunityCollectionArticleImpl extends ServiceImpl<CommunityCollectionArticleMapper, CommunityCollectionArticle> implements ICommunityCollectionArticleService {
 
-    @Autowired
-    private CommunityCollectionArticleMapper communityCollectionArticleMapper;
 
-    /**
-     * 根据提供的ID去查询 关联表数据
-     * @param userId
-     * @param articleId
-     * @return 返回一条 community_collection_article
-     */
-    @Override
-    public List<CommunityCollectionArticle> selectUserCollectionArticle(Long userId,Long articleId) {
-        return communityCollectionArticleMapper.selectUserCollectionArticle(userId,articleId);
-    }
 }

+ 1 - 7
ruoyi-generator/src/main/java/com/ruoyi/generator/service/ICommunityCollectionArticleService.java

@@ -7,11 +7,5 @@ import java.util.List;
 
 public interface ICommunityCollectionArticleService extends IService<CommunityCollectionArticle> {
 
-    /**
-     * 根据提供的ID去查询 关联表数据
-     * @param userId
-     * @param articleId
-     * @return 返回一条 community_collection_article
-     */
-    List<CommunityCollectionArticle> selectUserCollectionArticle(Long userId,Long articleId);
+
 }

+ 1 - 19
ruoyi-generator/src/main/resources/mapper/community/CommunityCollectionArticleMapper.xml

@@ -4,23 +4,5 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.generator.mapper.community.CommunityCollectionArticleMapper">
 
-    <select id="selectUserCollectionArticle"
-            resultType="com.ruoyi.generator.domain.Community.CommunityCollectionArticle">
-        select
-            a.id,
-            a.collection_id as collectionId,
-            a.article_id    as articleId,
-            a.is_delete	    as isDelete,
-            a.create_by	    as createBy,
-            a.update_by	    as updateBy,
-            a.create_time   as createTime,
-            a.update_time   as updateTime
-        from community_collection_article a
-                 LEFT JOIN community_collection b ON a.collection_id  = b.id
-        where
-            (a.is_delete != '1' OR a.is_delete IS NULL) AND
-            (b.is_delete != '1' OR b.is_delete IS NULL) AND
-            b.user_id =  #{userId} AND
-            a.article_id = #{articleId} LIMIT 1;
-    </select>
+
 </mapper>