Преглед на файлове

修复素材分类全部数量的问题

tsurumure преди 1 месец
родител
ревизия
fa0582557e

+ 1 - 1
src/main/java/com/backendsys/modules/material/entity/MaterialTag.java

@@ -35,7 +35,7 @@ public class MaterialTag {
     private String tag_name;
 
     @TableField(exist = false)
-    private Integer material_count;
+    private Long material_count;
 
     @Range(min = 1, max = 9999, message = "排序必须在 {min} 到 {max} 之间")
     private Integer sort;

+ 4 - 2
src/main/java/com/backendsys/modules/material/service/impl/MaterialServiceImpl.java

@@ -145,8 +145,10 @@ public class MaterialServiceImpl implements MaterialService {
         // 生成缩略图,并填充缩略图地址
         if (StrUtil.isNotEmpty(material.getImage_url())) {
             ObjectKeyEntity objectKeyEntity = objectKeyUtil.urlToObjectKey(material.getImage_url());
-            String image_thumb_url = UploadUtil.getImageThumbUrl(material.getImage_url(), objectKeyEntity.getTarget(), 276, 155);
-            material.setImage_thumb_url(image_thumb_url);
+            if (objectKeyEntity != null) {
+                String image_thumb_url = UploadUtil.getImageThumbUrl(material.getImage_url(), objectKeyEntity.getTarget(), 276, 155);
+                material.setImage_thumb_url(image_thumb_url);
+            }
         }
 
         materialDao.updateMaterial(material);

+ 14 - 3
src/main/java/com/backendsys/modules/material/service/impl/MaterialTagImpl.java

@@ -1,11 +1,14 @@
 package com.backendsys.modules.material.service.impl;
 
+import com.backendsys.modules.material.dao.MaterialDao;
 import com.backendsys.modules.material.dao.MaterialTagDao;
+import com.backendsys.modules.material.entity.Material;
 import com.backendsys.modules.material.entity.MaterialTag;
 import com.backendsys.modules.material.service.MaterialTagService;
 import com.backendsys.utils.response.PageEntity;
 import com.backendsys.utils.response.PageInfoResult;
 import com.backendsys.utils.v2.PageUtils;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -14,6 +17,9 @@ import java.util.List;
 @Service
 public class MaterialTagImpl implements MaterialTagService {
 
+    @Autowired
+    private MaterialDao materialDao;
+
     @Autowired
     private MaterialTagDao materialTagDao;
 
@@ -34,13 +40,18 @@ public class MaterialTagImpl implements MaterialTagService {
     public List<MaterialTag> selectMaterialTagPopover(MaterialTag materialTag) {
         List<MaterialTag> list = materialTagDao.selectMaterialTagList(materialTag);
 
-        // 筛选出列表中,所有 material_count 的总和
-        Integer all_material_count = list.stream().mapToInt(MaterialTag::getMaterial_count).sum();
+        // [DB] 查询全部素材的数量 (该分类下的)
+        LambdaQueryWrapper<Material> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(Material::getCategory_id, materialTag.getCategory_id());
+        Long count = materialDao.selectCount(wrapper);
+
+//        // 筛选出列表中,所有 material_count 的总和
+//        Long count = list.stream().mapToLong(MaterialTag::getMaterial_count).sum();
 
         MaterialTag all = new MaterialTag();
         all.setTag_name("全部");
         all.setTag_id(null);
-        all.setMaterial_count(all_material_count);
+        all.setMaterial_count(count);
         list.add(0, all);
 
         return list;

+ 1 - 1
src/main/resources/mapper/ai/material/MaterialTagDao.xml

@@ -15,7 +15,7 @@
         <result property="tag_id" column="id" javaType="java.lang.Long" />
         <result property="category_id" column="category_id" javaType="java.lang.Long" />
         <result property="tag_name" column="tag_name" />
-        <result property="material_count" column="material_count" javaType="java.lang.Integer" />
+        <result property="material_count" column="material_count" javaType="java.lang.Long" />
         <result property="sort" column="sort" javaType="java.lang.Integer" />
     </resultMap>