|
@@ -1,23 +1,19 @@
|
|
|
package cn.iocoder.yudao.module.crm.controller.admin.product;
|
|
|
|
|
|
-import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
|
-import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
|
|
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
|
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
|
|
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
|
|
|
+import cn.iocoder.yudao.framework.translate.core.TranslateUtils;
|
|
|
import cn.iocoder.yudao.module.crm.controller.admin.product.vo.product.CrmProductPageReqVO;
|
|
|
import cn.iocoder.yudao.module.crm.controller.admin.product.vo.product.CrmProductRespVO;
|
|
|
import cn.iocoder.yudao.module.crm.controller.admin.product.vo.product.CrmProductSaveReqVO;
|
|
|
-import cn.iocoder.yudao.module.crm.dal.dataobject.product.CrmProductCategoryDO;
|
|
|
import cn.iocoder.yudao.module.crm.dal.dataobject.product.CrmProductDO;
|
|
|
import cn.iocoder.yudao.module.crm.enums.product.CrmProductStatusEnum;
|
|
|
-import cn.iocoder.yudao.module.crm.service.product.CrmProductCategoryService;
|
|
|
import cn.iocoder.yudao.module.crm.service.product.CrmProductService;
|
|
|
import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
|
|
|
-import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
|
|
|
import io.swagger.v3.oas.annotations.Operation;
|
|
|
import io.swagger.v3.oas.annotations.Parameter;
|
|
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
@@ -29,15 +25,11 @@ import org.springframework.validation.annotation.Validated;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
-import java.util.Collections;
|
|
|
import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.stream.Stream;
|
|
|
|
|
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
|
|
-import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.*;
|
|
|
+import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
|
|
|
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
|
|
|
-import static java.util.Collections.singletonList;
|
|
|
|
|
|
@Tag(name = "管理后台 - CRM 产品")
|
|
|
@RestController
|
|
@@ -47,9 +39,6 @@ public class CrmProductController {
|
|
|
|
|
|
@Resource
|
|
|
private CrmProductService productService;
|
|
|
- @Resource
|
|
|
- private CrmProductCategoryService productCategoryService;
|
|
|
-
|
|
|
@Resource
|
|
|
private AdminUserApi adminUserApi;
|
|
|
|
|
@@ -83,14 +72,7 @@ public class CrmProductController {
|
|
|
@PreAuthorize("@ss.hasPermission('crm:product:query')")
|
|
|
public CommonResult<CrmProductRespVO> getProduct(@RequestParam("id") Long id) {
|
|
|
CrmProductDO product = productService.getProduct(id);
|
|
|
- return success(buildProductDetail(product));
|
|
|
- }
|
|
|
-
|
|
|
- private CrmProductRespVO buildProductDetail(CrmProductDO product) {
|
|
|
- if (product == null) {
|
|
|
- return null;
|
|
|
- }
|
|
|
- return buildProductDetailList(singletonList(product)).get(0);
|
|
|
+ return success(BeanUtils.toBean(product, CrmProductRespVO.class));
|
|
|
}
|
|
|
|
|
|
@GetMapping("/simple-list")
|
|
@@ -106,7 +88,7 @@ public class CrmProductController {
|
|
|
@PreAuthorize("@ss.hasPermission('crm:product:query')")
|
|
|
public CommonResult<PageResult<CrmProductRespVO>> getProductPage(@Valid CrmProductPageReqVO pageVO) {
|
|
|
PageResult<CrmProductDO> pageResult = productService.getProductPage(pageVO);
|
|
|
- return success(new PageResult<>(buildProductDetailList(pageResult.getList()), pageResult.getTotal()));
|
|
|
+ return success(BeanUtils.toBean(pageResult, CrmProductRespVO.class));
|
|
|
}
|
|
|
|
|
|
@GetMapping("/export-excel")
|
|
@@ -119,27 +101,7 @@ public class CrmProductController {
|
|
|
List<CrmProductDO> list = productService.getProductPage(exportReqVO).getList();
|
|
|
// 导出 Excel
|
|
|
ExcelUtils.write(response, "产品.xls", "数据", CrmProductRespVO.class,
|
|
|
- buildProductDetailList(list));
|
|
|
- }
|
|
|
-
|
|
|
- private List<CrmProductRespVO> buildProductDetailList(List<CrmProductDO> list) {
|
|
|
- if (CollUtil.isEmpty(list)) {
|
|
|
- return Collections.emptyList();
|
|
|
- }
|
|
|
- // 1.1 获得用户信息
|
|
|
- Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(
|
|
|
- convertSetByFlatMap(list, user -> Stream.of(Long.valueOf(user.getCreator()), user.getOwnerUserId())));
|
|
|
- // 1.2 获得分类信息
|
|
|
- Map<Long, CrmProductCategoryDO> categoryMap = productCategoryService.getProductCategoryMap(
|
|
|
- convertSet(list, CrmProductDO::getCategoryId));
|
|
|
- // 2. 拼接数据
|
|
|
- return BeanUtils.toBean(list, CrmProductRespVO.class, productVO -> {
|
|
|
- // 2.1 设置用户信息
|
|
|
- MapUtils.findAndThen(userMap, productVO.getOwnerUserId(), user -> productVO.setOwnerUserName(user.getNickname()));
|
|
|
- MapUtils.findAndThen(userMap, Long.valueOf(productVO.getCreator()), user -> productVO.setCreatorName(user.getNickname()));
|
|
|
- // 2.2 设置分类名称
|
|
|
- MapUtils.findAndThen(categoryMap, productVO.getCategoryId(), category -> productVO.setCategoryName(category.getName()));
|
|
|
- });
|
|
|
+ TranslateUtils.translate(BeanUtils.toBean(list, CrmProductRespVO.class)));
|
|
|
}
|
|
|
|
|
|
}
|