Просмотр исходного кода

优化获取圈子列表,少统计

fangqing 6 месяцев назад
Родитель
Сommit
964838be60

+ 38 - 7
ruoyi-generator/src/main/java/com/ruoyi/generator/controller/CommunityArticleController.java

@@ -1,5 +1,7 @@
 package com.ruoyi.generator.controller;
 
+import com.alibaba.fastjson2.JSONArray;
+import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.ruoyi.common.constant.HttpStatus;
@@ -86,6 +88,9 @@ public class CommunityArticleController extends BaseController {
     @Autowired
     private  CommunityTagMapper communityTagMapper;
 
+    @Autowired
+    private CommunityCircleExpandMapper communityCircleExpandMapper;
+
     /**
      * 获取文章列表信息
      */
@@ -171,17 +176,43 @@ public class CommunityArticleController extends BaseController {
     @ApiOperation("获取文章圈子列表")
     //@Anonymous
     public AjaxResult getCircleList() {
-        List<CommunityCircle> communityClasses = null;
+        List<CommunityCircleExpand> communityCircleExpands = null;
+        JSONArray sumArray = new JSONArray();
         try {
-            communityClasses = communityCircleMapper.selectList(new QueryWrapper<CommunityCircle>());
-            for (CommunityCircle communityCircle : communityClasses) {
-                String className = communityClassCircleMapper.getClassNameByCircleId(communityCircle.getId());
-                communityCircle.setCircleName(className + "·" + communityCircle.getCircleName());
+            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> 转换为 JSONArray
+                for (CommunityCircle communityCircle : classNameByCircleId) {
+                    JSONObject twoObject = new JSONObject();
+                    twoObject.put("twoName", communityCircle.getCircleName());
+                    twoObject.put("twoImg", communityCircle.getImageUrl()); // 假设有这个方法
+                    twoArray.add(twoObject);
+                }
+
+                oneObject.put("one", twoArray);
+                sumArray.add(oneObject); // 添加到 sumArray
+                System.out.println("twoArray:" + twoArray);
+                System.out.println("sumArray:" + sumArray);
             }
+
         } catch (Exception e) {
-            throw new ProjectException();
+            e.printStackTrace();
+            // 这里可以选择抛出自定义异常或者记录日志
+            // throw new ProjectException();
+        } finally {
+            // 可以在这里进行资源清理操作,如果有的话
         }
-        return AjaxResult.success(communityClasses);
+
+        return AjaxResult.success(sumArray);
     }
 
 

+ 71 - 0
ruoyi-generator/src/main/java/com/ruoyi/generator/domain/Community/CommunityCircleExpand.java

@@ -0,0 +1,71 @@
+package com.ruoyi.generator.domain.Community;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+import java.util.Date;
+
+/**
+ * @author fangqing
+ * @date 2024/12/13 17:35
+ */
+@Data
+@TableName("community_circle_expand")
+public class CommunityCircleExpand {
+
+    /**
+     * 唯一id
+     */
+    @NotNull(message="[唯一id]不能为空")
+    @ApiModelProperty("唯一id")
+    @TableId("id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+    /**
+     * 圈子名称
+     */
+    @Size(max= 50,message="编码长度不能超过50")
+    @ApiModelProperty("圈子名称")
+    @Length(max= 50,message="编码长度不能超过50")
+    private String circleName;
+    /**
+     * 热度
+     */
+    @ApiModelProperty("热度")
+    private Integer hot;
+    /**
+     * 创建人
+     */
+    @ApiModelProperty("创建人")
+    private Long createBy;
+    /**
+     * 封面url
+     */
+    @ApiModelProperty("封面url")
+    private String imageUrl;
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+    /**
+     * 更新人
+     */
+    @ApiModelProperty("更新人")
+    private Long updateBy;
+    /**
+     * 更新时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty("更新时间")
+    private Date updateTime;
+}

+ 14 - 0
ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/community/CommunityCircleExpandMapper.java

@@ -0,0 +1,14 @@
+package com.ruoyi.generator.mapper.community;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.generator.domain.Community.CommunityCircle;
+import com.ruoyi.generator.domain.Community.CommunityCircleExpand;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @author fangqing
+ * @date 2024/12/13 17:36
+ */
+@Mapper
+public interface CommunityCircleExpandMapper extends BaseMapper<CommunityCircleExpand> {
+}

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

@@ -1,10 +1,13 @@
 package com.ruoyi.generator.mapper.community;
 
 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 java.util.List;
+
 @Mapper
 public interface CommunityClassCircleMapper extends BaseMapper<CommunityClassCircle> {
-    String getClassNameByCircleId(long id);
+    List <CommunityCircle> getClassNameByCircleId(long id);
 }

+ 11 - 6
ruoyi-generator/src/main/resources/mapper/community/CommunityClassCircleMapper.xml

@@ -3,10 +3,15 @@
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.generator.mapper.community.CommunityClassCircleMapper">
-    <select id="getClassNameByCircleId" resultType="java.lang.String">
-        select class_name
-        from community_class a
-                 left join community_class_circle b on a.id = b.class_id
-        where b.circle_id = #{id}
+
+    <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>
-</mapper>
+</mapper>