Browse Source

1.专辑分类分页接口返回参数调整

yuanliang 1 year ago
parent
commit
b2e5f415ae

+ 7 - 1
cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/TenantAlbumCategoryController.java

@@ -20,6 +20,7 @@ import com.yonge.toolset.base.exception.BizException;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
@@ -68,7 +69,8 @@ public class TenantAlbumCategoryController {
     public R<PageInfo<TenantAlbumCategoryVo.TenantAlbumCategory>> page(@RequestBody TenantAlbumCategoryWrapper.TenantAlbumCategoryQuery query) {
 
         // 查询数据
-        IPage<TenantAlbumCategory> pages = tenantAlbumCategoryService.selectPage(QueryInfo.getPage(query), query);
+        IPage<TenantAlbumCategoryWrapper.TenantAlbumCategory> pages =
+                tenantAlbumCategoryService.selectPage(QueryInfo.getPage(query), query);
         // 数据类型转换
         List<TenantAlbumCategoryVo.TenantAlbumCategory> records = JSON.parseArray(JSON.toJSONString(pages.getRecords()),
                 TenantAlbumCategoryVo.TenantAlbumCategory.class);
@@ -80,6 +82,10 @@ public class TenantAlbumCategoryController {
             records.forEach(next -> {
                 com.yonge.cooleshow.biz.dal.entity.SysUser sysUser = mapByIds.get(next.getUpdateBy());
                 next.setUpdateUserName(sysUser == null ? "" : sysUser.getUsername());
+
+                List<String> values = next.getValues().stream().map(TenantAlbumCategoryDetail::getValue)
+                        .filter(StringUtils::isNotEmpty).collect(Collectors.toList());
+                next.setTenantAlbumCategoryContent(String.join(",",values));
             });
         }
 

+ 3 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/admin/io/request/TenantAlbumCategoryVo.java

@@ -78,6 +78,9 @@ public class TenantAlbumCategoryVo {
         @ApiModelProperty("专辑分类级别/类别值")
         private List<TenantAlbumCategoryDetail> values = new ArrayList<>();
 
+        @ApiModelProperty("专辑分类级别/类别值内容")
+        private String tenantAlbumCategoryContent;
+
         public String jsonString() {
             return JSON.toJSONString(this);
         }

+ 7 - 2
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/TenantAlbumCategoryController.java

@@ -22,6 +22,7 @@ import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
@@ -70,7 +71,8 @@ public class TenantAlbumCategoryController {
     public R<PageInfo<TenantAlbumCategoryVo.TenantAlbumCategory>> page(@RequestBody TenantAlbumCategoryWrapper.TenantAlbumCategoryQuery query) {
 
         // 查询数据
-        IPage<TenantAlbumCategory> pages = tenantAlbumCategoryService.selectPage(QueryInfo.getPage(query), query);
+        IPage<TenantAlbumCategoryWrapper.TenantAlbumCategory> pages =
+                tenantAlbumCategoryService.selectPage(QueryInfo.getPage(query), query);
         // 数据类型转换
         List<TenantAlbumCategoryVo.TenantAlbumCategory> records = JSON.parseArray(JSON.toJSONString(pages.getRecords()),
                 TenantAlbumCategoryVo.TenantAlbumCategory.class);
@@ -82,6 +84,10 @@ public class TenantAlbumCategoryController {
             records.forEach(next -> {
                 com.yonge.cooleshow.biz.dal.entity.SysUser sysUser = mapByIds.get(next.getUpdateBy());
                 next.setUpdateUserName(sysUser == null ? "" : sysUser.getUsername());
+
+                List<String> values = next.getValues().stream().map(TenantAlbumCategoryDetail::getValue)
+                        .filter(StringUtils::isNotEmpty).collect(Collectors.toList());
+                next.setTenantAlbumCategoryContent(String.join(",",values));
             });
         }
 
@@ -140,5 +146,4 @@ public class TenantAlbumCategoryController {
                 .list();
         return R.from(detailList);
     }
-
 }

+ 3 - 0
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/io/request/TenantAlbumCategoryVo.java

@@ -78,6 +78,9 @@ public class TenantAlbumCategoryVo {
         @ApiModelProperty("专辑分类级别/类别值")
         private List<TenantAlbumCategoryDetail> values = new ArrayList<>();
 
+        @ApiModelProperty("专辑分类级别/类别值内容")
+        private String tenantAlbumCategoryContent;
+
         public String jsonString() {
             return JSON.toJSONString(this);
         }

+ 2 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/mapper/TenantAlbumCategoryMapper.java

@@ -22,6 +22,7 @@ public interface TenantAlbumCategoryMapper extends BaseMapper<TenantAlbumCategor
      * @param param TenantAlbumCategoryWrapper.TenantAlbumCategoryQuery
      * @return List<TenantAlbumCategoryWrapper.TenantAlbumCategory>
      */
-    List<TenantAlbumCategory> selectPage(@Param("page") IPage<TenantAlbumCategory> page, @Param("param") TenantAlbumCategoryWrapper.TenantAlbumCategoryQuery param);
+    List<TenantAlbumCategory> selectPage(@Param("page") IPage<TenantAlbumCategoryWrapper.TenantAlbumCategory> page,
+                                         @Param("param") TenantAlbumCategoryWrapper.TenantAlbumCategoryQuery param);
 
 }

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/TenantAlbumCategoryService.java

@@ -25,7 +25,7 @@ public interface TenantAlbumCategoryService extends IService<TenantAlbumCategory
      * @param query TenantAlbumCategoryWrapper.TenantAlbumCategoryQuery
      * @return IPage<TenantAlbumCategory>
      */
-    IPage<TenantAlbumCategory> selectPage(IPage<TenantAlbumCategory> page,
+    IPage<TenantAlbumCategoryWrapper.TenantAlbumCategory> selectPage(IPage<TenantAlbumCategoryWrapper.TenantAlbumCategory> page,
                                                                      TenantAlbumCategoryWrapper.TenantAlbumCategoryQuery query);
 
     /**

+ 26 - 4
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TenantAlbumCategoryServiceImpl.java

@@ -17,11 +17,14 @@ import com.yonge.cooleshow.biz.dal.wrapper.TenantAlbumCategoryWrapper;
 import com.yonge.cooleshow.common.enums.ETenantAlbumCategoryType;
 import com.yonge.toolset.base.exception.BizException;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 import java.util.Objects;
 import java.util.stream.Collectors;
 
@@ -70,10 +73,29 @@ public class TenantAlbumCategoryServiceImpl extends ServiceImpl<TenantAlbumCateg
      * @return IPage<TenantAlbumCategory>
      */
     @Override
-    public IPage<TenantAlbumCategory> selectPage(IPage<TenantAlbumCategory> page,
-                                                 TenantAlbumCategoryWrapper.TenantAlbumCategoryQuery query) {
-
-        return page.setRecords(baseMapper.selectPage(page, query));
+    public IPage<TenantAlbumCategoryWrapper.TenantAlbumCategory> selectPage(
+            IPage<TenantAlbumCategoryWrapper.TenantAlbumCategory> page,
+            TenantAlbumCategoryWrapper.TenantAlbumCategoryQuery query) {
+
+        List<TenantAlbumCategory> tenantAlbumCategories = baseMapper.selectPage(page, query);
+
+        List<TenantAlbumCategoryWrapper.TenantAlbumCategory> result = tenantAlbumCategories.stream().map(next -> {
+            TenantAlbumCategoryWrapper.TenantAlbumCategory tenantAlbumCategory =
+                    new TenantAlbumCategoryWrapper.TenantAlbumCategory();
+            BeanUtils.copyProperties(next, tenantAlbumCategory);
+            return tenantAlbumCategory;
+        }).collect(Collectors.toList());
+
+        List<Long> idList = tenantAlbumCategories.stream().map(TenantAlbumCategory::getId).collect(Collectors.toList());
+        if (!idList.isEmpty()) {
+            List<TenantAlbumCategoryDetail> detailList = tenantAlbumCategoryDetailService.lambdaQuery()
+                    .in(TenantAlbumCategoryDetail::getTenantAlbumCategoryId, idList)
+                    .list();
+            Map<Long, List<TenantAlbumCategoryDetail>> groupById = detailList.stream()
+                    .collect(Collectors.groupingBy(TenantAlbumCategoryDetail::getTenantAlbumCategoryId));
+            result.forEach(next -> next.setValues(groupById.getOrDefault(next.getId(), new ArrayList<>())));
+        }
+        return page.setRecords(result);
     }
 
     /**