From 347909bae241fff128b628ea6d12992d7e5b4b10 Mon Sep 17 00:00:00 2001 From: xin <1099200748@qq.com> Date: Fri, 30 May 2025 18:35:43 +0800 Subject: [PATCH] 响应信息主体 --- oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreCategoryCustomerController.java | 71 +++++++++++++++++++++++++++++++++++ 1 files changed, 71 insertions(+), 0 deletions(-) diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreCategoryCustomerController.java b/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreCategoryCustomerController.java new file mode 100644 index 0000000..deb8507 --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreCategoryCustomerController.java @@ -0,0 +1,71 @@ +package com.oying.modules.pc.store.rest; + +import cn.hutool.core.collection.ListUtil; +import cn.hutool.core.lang.tree.Tree; +import cn.hutool.core.lang.tree.TreeNodeConfig; +import cn.hutool.core.lang.tree.TreeUtil; +import cn.hutool.core.util.BooleanUtil; +import com.oying.utils.R; +import com.oying.modules.pc.store.domain.StoreCategory; +import com.oying.modules.pc.store.domain.dto.StoreCategoryQueryCriteria; +import com.oying.modules.pc.store.service.StoreCategoryService; +import com.oying.modules.pc.store.view.CustomerStoreCategoryView; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; + +/** + * @author lzp + * @date 2025-04-24 + **/ +@Api(tags = "店铺类目(客户端)") +@RestController +@RequiredArgsConstructor +@RequestMapping("/api/pc/customer/store/{storeId}/category") +public class StoreCategoryCustomerController { + + private final StoreCategoryService storeCategoryService; + + @GetMapping(value = "/list") + @ApiOperation("查询店铺类目") + public ResponseEntity<?> getList(@PathVariable("storeId") Long storeId, + @RequestParam(value = "recursive", required = false) Boolean recursive) { + + StoreCategoryQueryCriteria criteria = new StoreCategoryQueryCriteria(); + criteria.setStoreId(storeId); + criteria.setActive(1); + List<StoreCategory> categoryList = storeCategoryService.queryAll(criteria); + + List<CustomerStoreCategoryView> categoryViewList = Optional.ofNullable(categoryList).orElse(ListUtil.empty()).stream().map(i -> { + CustomerStoreCategoryView view = new CustomerStoreCategoryView(); + view.setCategoryId(i.getCategoryId()); + view.setParentId(i.getParentId()); + view.setName(i.getName()); + view.setSortWeight(i.getSortWeight()); + return view; + }).collect(Collectors.toList()); + + if (BooleanUtil.isFalse(recursive)) { + return ResponseEntity.ok(R.success(categoryViewList)); + } + + TreeNodeConfig config = new TreeNodeConfig(); + config.setIdKey("categoryId"); + config.setWeightKey("sortWeight"); + //config.setDeep(3); + + List<Tree<Long>> tree = TreeUtil.build(categoryViewList, 0L, config, (c, treeNode) -> { + treeNode.setId(c.getCategoryId()); + treeNode.setParentId(c.getParentId()); + treeNode.setName(c.getName()); + treeNode.setWeight(c.getSortWeight()); + }); + return ResponseEntity.ok(R.success(tree)); + } +} -- Gitblit v1.9.3