|
@@ -7,6 +7,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.huimv.admin.common.utils.Result;
|
|
|
import com.huimv.admin.common.utils.ResultCode;
|
|
|
import com.huimv.admin.entity.CameraFunctionArea;
|
|
|
+import com.huimv.admin.entity.vo.TreeBasePigpen;
|
|
|
+import com.huimv.admin.entity.vo.TreeCameraFuntionArea;
|
|
|
import com.huimv.admin.mapper.CameraFunctionAreaMapper;
|
|
|
import com.huimv.admin.mapper.CameraFunctionMapper;
|
|
|
import com.huimv.admin.service.ICameraFunctionAreaService;
|
|
@@ -15,8 +17,10 @@ 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.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
@@ -36,13 +40,46 @@ public class CameraFunctionAreaServiceImpl extends ServiceImpl<CameraFunctionAre
|
|
|
|
|
|
@Override
|
|
|
public Result cameraList(Map<String, Object> params) {
|
|
|
- Integer current = (Integer) params.get("current");
|
|
|
- Integer size = (Integer) params.get("size");
|
|
|
String functionaName = (String) params.get("functionaName");
|
|
|
String farmId = (String) params.get("farmId");
|
|
|
+ QueryWrapper<CameraFunctionArea> wrapper = new QueryWrapper<>();
|
|
|
+ wrapper.eq("farm_id",farmId);
|
|
|
+ wrapper.like("function_name",functionaName);
|
|
|
+ List<CameraFunctionArea> list = this.list(wrapper);
|
|
|
+ //将结果List改为树
|
|
|
+ List<TreeCameraFuntionArea> treeBasePigpens = parseBizBaseArea(list);
|
|
|
+ return new Result(ResultCode.SUCCESS,treeBasePigpens);
|
|
|
+ }
|
|
|
|
|
|
- IPage<CameraFunctionArea> list = page(new Page<>(current, size), new QueryWrapper<CameraFunctionArea>().like(StringUtils.isNotBlank(functionaName), "area_name", functionaName).eq("farm_id", farmId));
|
|
|
- return new Result(ResultCode.SUCCESS, list);
|
|
|
+ private List<TreeCameraFuntionArea> parseBizBaseArea(List<CameraFunctionArea> list) {
|
|
|
+ //构建需要展示的树形节点结构
|
|
|
+ Map<String, TreeCameraFuntionArea> nodeMap = list.stream().map(cameraFunctionArea -> {
|
|
|
+ TreeCameraFuntionArea baseVo = new TreeCameraFuntionArea();
|
|
|
+ baseVo.setId(cameraFunctionArea.getId()+"");
|
|
|
+ baseVo.setFarmId(cameraFunctionArea.getFarmId());
|
|
|
+ baseVo.setParentId(cameraFunctionArea.getParentId());
|
|
|
+ baseVo.setCamearIds(cameraFunctionArea.getCamearIds());
|
|
|
+ baseVo.setFunctionName(cameraFunctionArea.getFunctionName());
|
|
|
+ baseVo.setFunctionIds(cameraFunctionArea.getFunctionIds());
|
|
|
+ baseVo.setFunctionType(cameraFunctionArea.getFunctionType());
|
|
|
+ baseVo.setRemark(cameraFunctionArea.getRemark());
|
|
|
+ baseVo.setChildNode(new ArrayList<>());
|
|
|
+ return baseVo;
|
|
|
+ }).collect(Collectors.toMap(TreeCameraFuntionArea::getId, b -> b,(k1, k2)->k1));
|
|
|
+ //创建数组存父亲节点
|
|
|
+ ArrayList<TreeCameraFuntionArea> roots = new ArrayList<>();
|
|
|
+ //构建树形
|
|
|
+ nodeMap.values().forEach(item->{
|
|
|
+ String parentCode = item.getParentId()+"";
|
|
|
+ if (nodeMap.get(parentCode) == null){
|
|
|
+ //父节点为空,说明当前节点就已经是父节点了 将该节点存起来
|
|
|
+ roots.add(item);
|
|
|
+ }else {
|
|
|
+ //父节点 不为空,说明有父节点,拿到该节点的父节点的孩子节点(就是我自己),将该节点存起来
|
|
|
+ nodeMap.get(parentCode).getChildNode().add(item);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return roots;
|
|
|
}
|
|
|
|
|
|
@Override
|