Browse Source

树形结构

master
luogw 1 month ago
parent
commit
cb09151750
  1. 2
      src/main/java/com/project/information/application/BusinessGroupApplicationService.java
  2. 5
      src/main/java/com/project/information/application/impl/BusinessGroupApplicationServiceImpl.java
  3. 5
      src/main/java/com/project/information/controller/BusinessGroupController.java
  4. 26
      src/main/java/com/project/information/controller/ProductLineExamineeController.java
  5. 4
      src/main/java/com/project/information/domain/dto/BusinessGroupDTO.java
  6. 2
      src/main/java/com/project/information/domain/dto/ProductLineDTO.java
  7. 1
      src/main/java/com/project/information/domain/service/SearchBusinessGroupDomainService.java
  8. 9
      src/main/java/com/project/information/domain/service/impl/GetTreeListProductLineDomainServiceImpl.java
  9. 3
      src/main/java/com/project/information/domain/service/impl/SaveProductLineDomainServiceImpl.java
  10. 33
      src/main/java/com/project/information/domain/service/impl/SearchBusinessGroupDomainServiceImpl.java

2
src/main/java/com/project/information/application/BusinessGroupApplicationService.java

@ -10,4 +10,6 @@ public interface BusinessGroupApplicationService {
Result<List<BusinessGroupDTO>> list(BusinessGroupParam param) throws Exception;
Result<List<BusinessGroupDTO>> batchSave(String batchSaveStr) throws Exception;
Result<List<BusinessGroupDTO>> treeList(BusinessGroupParam param) throws Exception;
}

5
src/main/java/com/project/information/application/impl/BusinessGroupApplicationServiceImpl.java

@ -28,4 +28,9 @@ public class BusinessGroupApplicationServiceImpl implements BusinessGroupApplica
public Result<List<BusinessGroupDTO>> batchSave(String batchSaveStr) throws Exception {
return batchSaveBusinessGroupDomainService.batchSave(batchSaveStr);
}
@Override
public Result<List<BusinessGroupDTO>> treeList(BusinessGroupParam param) throws Exception {
return searchBusinessGroupDomainService.treeList(param);
}
}

5
src/main/java/com/project/information/controller/BusinessGroupController.java

@ -26,6 +26,11 @@ public class BusinessGroupController {
return businessGroupApplicationService.list(param);
}
@GetMapping("/treeList")
public Result<List<BusinessGroupDTO>> treeList(BusinessGroupParam param) throws Exception {
return businessGroupApplicationService.treeList(param);
}
@PostMapping("/batchSave")
public Result<List<BusinessGroupDTO>> batchSave(String batchSaveStr) throws Exception {
return businessGroupApplicationService.batchSave(batchSaveStr);

26
src/main/java/com/project/information/controller/ProductLineExamineeController.java

@ -0,0 +1,26 @@
package com.project.information.controller;
import com.project.base.domain.result.Result;
import com.project.information.application.ProductLineApplicationService;
import com.project.information.domain.dto.ProductLineDTO;
import com.project.information.domain.param.ProductLineParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@Slf4j
@RequestMapping("/api/examinee/productLine")
public class ProductLineExamineeController {
@Autowired
private ProductLineApplicationService productLineApplicationService;
@GetMapping("/treeList")
public Result<List<ProductLineDTO>> treeList(ProductLineParam param) throws Exception {
return productLineApplicationService.treeList(param);
}
}

4
src/main/java/com/project/information/domain/dto/BusinessGroupDTO.java

@ -3,10 +3,14 @@ package com.project.information.domain.dto;
import com.project.base.domain.dto.BaseDTO;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@Data
public class BusinessGroupDTO extends BaseDTO {
private Long id;
private String name;
private String sort;
private List<ProductLineDTO> childrenList = new ArrayList<>();
}

2
src/main/java/com/project/information/domain/dto/ProductLineDTO.java

@ -14,7 +14,7 @@ public class ProductLineDTO extends BaseDTO {
private Integer sort = 0;
private Boolean leaf;
private String business;
private String businessId;
private Long businessId;
private Long parentId;
private String parentName;

1
src/main/java/com/project/information/domain/service/SearchBusinessGroupDomainService.java

@ -9,4 +9,5 @@ import java.util.List;
public interface SearchBusinessGroupDomainService {
Result<List<BusinessGroupDTO>> list(BusinessGroupParam param) throws Exception;
Result<List<BusinessGroupDTO>> treeList(BusinessGroupParam param) throws Exception;
}

9
src/main/java/com/project/information/domain/service/impl/GetTreeListProductLineDomainServiceImpl.java

@ -23,12 +23,11 @@ public class GetTreeListProductLineDomainServiceImpl implements GetTreeListProdu
@Autowired
private ProductLineBaseService productLineBaseService;
@Override
public Result<List<ProductLineDTO>> treeList(ProductLineParam param) throws Exception {
if (ObjectUtil.isEmpty(param.getBusinessId())) {
throw new BusinessErrorException("事业部ID不能为空");
}
public Result<List<ProductLineDTO>> treeList(ProductLineParam param){
LambdaQueryWrapper<ProductLineEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ProductLineEntity::getBusinessId , param.getBusinessId());
if (ObjectUtil.isNotEmpty(param.getBusinessId())) {
queryWrapper.eq(ProductLineEntity::getBusinessId , param.getBusinessId());
}
List<ProductLineDTO> res = productLineBaseService.list(queryWrapper)
.stream().map(entity -> entity.toDTO(ProductLineDTO::new))
.collect(Collectors.toList());

3
src/main/java/com/project/information/domain/service/impl/SaveProductLineDomainServiceImpl.java

@ -1,6 +1,7 @@
package com.project.information.domain.service.impl;
import cn.hutool.core.util.BooleanUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.project.base.domain.exception.BusinessErrorException;
@ -21,7 +22,7 @@ public class SaveProductLineDomainServiceImpl implements SaveProductLineDomainSe
@Override
public Result<ProductLineDTO> save(ProductLineDTO dto) throws Exception {
// 校验
if (StrUtil.isBlank(dto.getBusiness())) {
if (StrUtil.isBlank(dto.getBusiness()) && ObjectUtil.isEmpty(dto.getBusinessId())) {
throw new BusinessErrorException("所属 BG 不能为空");
}
if (Objects.isNull(dto.getLeaf())) {

33
src/main/java/com/project/information/domain/service/impl/SearchBusinessGroupDomainServiceImpl.java

@ -1,16 +1,24 @@
package com.project.information.domain.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.project.base.domain.result.Result;
import com.project.base.domain.utils.TreeUtils;
import com.project.information.domain.dto.BusinessGroupDTO;
import com.project.information.domain.dto.ProductLineDTO;
import com.project.information.domain.entity.BusinessGroupEntity;
import com.project.information.domain.param.BusinessGroupParam;
import com.project.information.domain.param.ProductLineParam;
import com.project.information.domain.service.GetTreeListProductLineDomainService;
import com.project.information.domain.service.SearchBusinessGroupDomainService;
import com.project.information.mapper.BusinessGroupMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
@Service
@ -18,6 +26,9 @@ public class SearchBusinessGroupDomainServiceImpl implements SearchBusinessGroup
@Autowired
private BusinessGroupMapper businessGroupMapper;
@Autowired
private GetTreeListProductLineDomainService getTreeListProductLineDomainService;
@Override
public Result<List<BusinessGroupDTO>> list(BusinessGroupParam param) throws Exception {
LambdaQueryWrapper<BusinessGroupEntity> queryWrapper = new LambdaQueryWrapper<>();
@ -26,4 +37,26 @@ public class SearchBusinessGroupDomainServiceImpl implements SearchBusinessGroup
.map(entity -> entity.toDTO(BusinessGroupDTO::new))
.collect(Collectors.toList()));
}
@Override
public Result<List<BusinessGroupDTO>> treeList(BusinessGroupParam param) throws Exception {
List<BusinessGroupDTO> businessGroupDTOList = list(param).getData();
//获取树形产品线
Result<List<ProductLineDTO>> productLineListResult = getTreeListProductLineDomainService.treeList(new ProductLineParam());
List<ProductLineDTO> productLineList = productLineListResult.getData();
Map<Long, List<ProductLineDTO>> productLineMap = Optional.ofNullable(productLineList)
.orElse(new ArrayList<>())
.stream()
.filter(dto -> ObjectUtil.isNotEmpty(dto.getBusinessId()))
.collect(Collectors.groupingBy(ProductLineDTO::getBusinessId));
for (BusinessGroupDTO businessGroupDTO : businessGroupDTOList) {
List<ProductLineDTO> productLineDTOS = productLineMap.getOrDefault(businessGroupDTO.getId(), new ArrayList<>());
businessGroupDTO.setChildrenList(productLineDTOS);
}
return Result.success(businessGroupDTOList);
}
}

Loading…
Cancel
Save