Эх сурвалжийг харах

获取圈子列表优化,发布文章接口BUG优化

fangqing 5 сар өмнө
parent
commit
ddd13759e4

+ 9 - 18
ruoyi-generator/src/main/java/com/ruoyi/generator/controller/CommunityArticleController.java

@@ -122,11 +122,10 @@ public class CommunityArticleController extends BaseController {
     @Transactional
     //@Anonymous
     public AjaxResult article(@RequestBody CommunityArticle communityArticle) {
-        if (communityArticle.getClassIds().isEmpty()) {
-            return AjaxResult.error("板块不能为空");
-        }
-
         try {
+            if (communityArticle.getClassIds().isEmpty()) {
+                return AjaxResult.error("板块不能为空");
+            }
             communityArticleService.insertCommunityArticle(communityArticle);
         } catch (Exception e) {
             throw new ProjectException();
@@ -177,39 +176,31 @@ public class CommunityArticleController extends BaseController {
     //@Anonymous
     public AjaxResult getCircleList() {
         List<CommunityCircleExpand> communityCircleExpands = null;
+        Long userId = SecurityUtils.getUserId();
         JSONArray sumArray = new JSONArray();
         try {
             communityCircleExpands = communityCircleExpandMapper.selectList(new QueryWrapper<CommunityCircleExpand>());
-
             for (CommunityCircleExpand communityCircleExpand : communityCircleExpands) {
                 String circleName = communityCircleExpand.getCircleName();
                 Long id = communityCircleExpand.getId();
-
                 JSONObject oneObject = new JSONObject(); // 每次循环创建新的 JSONObject
                 oneObject.put("oneName", circleName);
-
                 JSONArray twoArray = new JSONArray();
-                List<CommunityCircle> classNameByCircleId = communityClassCircleMapper.getClassNameByCircleId(id);
+                List<CommunityCircle> classNameByCircleId = communityClassCircleMapper.getClassNameByCircleId(userId,id);
                 // 将 List<CommunityCircle> 转换为 JSONArray
                 for (CommunityCircle communityCircle : classNameByCircleId) {
                     JSONObject twoObject = new JSONObject();
                     twoObject.put("twoName", communityCircle.getCircleName());
-                    twoObject.put("twoImg", communityCircle.getImageUrl()); // 假设有这个方法
+                    twoObject.put("twoImg", communityCircle.getImageUrl());
+                    twoObject.put("isCare",communityCircle.getIsCare());
+                    twoObject.put("heat",communityCircle.getHeat());
                     twoArray.add(twoObject);
                 }
-
                 oneObject.put("one", twoArray);
                 sumArray.add(oneObject); // 添加到 sumArray
-                System.out.println("twoArray:" + twoArray);
-                System.out.println("sumArray:" + sumArray);
             }
-
         } catch (Exception e) {
-            e.printStackTrace();
-            // 这里可以选择抛出自定义异常或者记录日志
-            // throw new ProjectException();
-        } finally {
-            // 可以在这里进行资源清理操作,如果有的话
+             throw new ProjectException();
         }
 
         return AjaxResult.success(sumArray);

+ 13 - 0
ruoyi-generator/src/main/java/com/ruoyi/generator/domain/Community/CommunityCircle.java

@@ -70,4 +70,17 @@ public class CommunityCircle implements Serializable {
     @ApiModelProperty("更新时间")
     private Date updateTime;
 
+
+    /**
+     * 是否关注
+     */
+    @ApiModelProperty("是否关注")
+    private Boolean isCare;
+
+    /**
+     * 热度
+     */
+    @ApiModelProperty("热度")
+    private Long heat;
+
 }

+ 2 - 1
ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/community/CommunityClassCircleMapper.java

@@ -4,10 +4,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ruoyi.generator.domain.Community.CommunityCircle;
 import com.ruoyi.generator.domain.Community.CommunityClassCircle;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
 @Mapper
 public interface CommunityClassCircleMapper extends BaseMapper<CommunityClassCircle> {
-    List <CommunityCircle> getClassNameByCircleId(long id);
+    List <CommunityCircle> getClassNameByCircleId(@Param("userId") Long userId, @Param("id")  long id);
 }

+ 29 - 8
ruoyi-generator/src/main/resources/mapper/community/CommunityClassCircleMapper.xml

@@ -5,13 +5,34 @@
 <mapper namespace="com.ruoyi.generator.mapper.community.CommunityClassCircleMapper">
 
     <select id="getClassNameByCircleId" resultType="com.ruoyi.generator.domain.Community.CommunityCircle">
-            select
-                A.circle_name,
-                A.image_url
-            from community_circle  A
-                     left join community_circle_association B
-                               on A.ID = B.circle_id
-            WHERE B.id is not null   and B.expand_id = #{id}
-            order by A.ID ASC
+        SELECT
+            A.circle_name,
+            A.image_url,
+            IF(C.circle_id IS NOT NULL, 1, 0) AS is_care,
+            IF(F.name_count IS NOT NULL, F.name_count, 0) as heat
+        FROM
+            community_circle A
+                LEFT JOIN
+            community_circle_association B ON A.ID = B.circle_id
+                LEFT JOIN
+            community_user_circle C ON A.ID = C.circle_id AND C.user_id = #{userId} AND C.is_delete = 0
+                LEFT JOIN
+            (
+                SELECT
+                    D.tag_name,
+                    COUNT(1) AS name_count
+                FROM
+                    community_tag D
+                        LEFT JOIN
+                    community_article_tag E ON D.ID = E.tag_id
+                WHERE
+                    D.is_delete = 0
+                GROUP BY
+                    D.tag_name
+            ) F ON A.circle_name = F.tag_name
+        WHERE
+            B.circle_id IS NOT NULL AND B.expand_id = #{id}
+        ORDER BY
+            A.ID ASC;
     </select>
 </mapper>