CameraFunctionAreaServiceImpl.java 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. package com.huimv.admin.service.impl;
  2. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  3. import com.baomidou.mybatisplus.core.metadata.IPage;
  4. import com.baomidou.mybatisplus.core.toolkit.StringUtils;
  5. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  6. import com.huimv.admin.common.utils.Result;
  7. import com.huimv.admin.common.utils.ResultCode;
  8. import com.huimv.admin.entity.CameraFunctionArea;
  9. import com.huimv.admin.entity.vo.TreeBasePigpen;
  10. import com.huimv.admin.entity.vo.TreeCameraFuntionArea;
  11. import com.huimv.admin.mapper.CameraFunctionAreaMapper;
  12. import com.huimv.admin.mapper.CameraFunctionMapper;
  13. import com.huimv.admin.service.ICameraFunctionAreaService;
  14. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.stereotype.Service;
  17. import org.springframework.transaction.annotation.Transactional;
  18. import java.util.ArrayList;
  19. import java.util.List;
  20. import java.util.Map;
  21. import java.util.stream.Collectors;
  22. /**
  23. * <p>
  24. * 服务实现类
  25. * </p>
  26. *
  27. * @author author
  28. * @since 2023-02-17
  29. */
  30. @Service
  31. public class CameraFunctionAreaServiceImpl extends ServiceImpl<CameraFunctionAreaMapper, CameraFunctionArea> implements ICameraFunctionAreaService {
  32. @Autowired
  33. private CameraFunctionAreaMapper cameraFunctionAreaMapper;
  34. @Autowired
  35. private CameraFunctionMapper cameraFunctionMapper;
  36. @Override
  37. public Result cameraList(Map<String, Object> params) {
  38. String functionaName = (String) params.get("functionaName");
  39. String farmId = (String) params.get("farmId");
  40. QueryWrapper<CameraFunctionArea> wrapper = new QueryWrapper<>();
  41. wrapper.eq("farm_id",farmId);
  42. wrapper.like(StringUtils.isNotBlank(functionaName),"function_name",functionaName);
  43. List<CameraFunctionArea> list = this.list(wrapper);
  44. //将结果List改为树
  45. List<TreeCameraFuntionArea> treeBasePigpens = parseBizBaseArea(list);
  46. return new Result(ResultCode.SUCCESS,treeBasePigpens);
  47. }
  48. private List<TreeCameraFuntionArea> parseBizBaseArea(List<CameraFunctionArea> list) {
  49. //构建需要展示的树形节点结构
  50. Map<String, TreeCameraFuntionArea> nodeMap = list.stream().map(cameraFunctionArea -> {
  51. TreeCameraFuntionArea baseVo = new TreeCameraFuntionArea();
  52. baseVo.setId(cameraFunctionArea.getId()+"");
  53. baseVo.setFarmId(cameraFunctionArea.getFarmId());
  54. baseVo.setParentId(cameraFunctionArea.getParentId());
  55. baseVo.setCamearIds(cameraFunctionArea.getCamearIds());
  56. baseVo.setFunctionName(cameraFunctionArea.getFunctionName());
  57. baseVo.setFunctionIds(cameraFunctionArea.getFunctionIds());
  58. baseVo.setFunctionType(cameraFunctionArea.getFunctionType());
  59. baseVo.setRemark(cameraFunctionArea.getRemark());
  60. baseVo.setChildNode(new ArrayList<>());
  61. return baseVo;
  62. }).collect(Collectors.toMap(TreeCameraFuntionArea::getId, b -> b,(k1, k2)->k1));
  63. //创建数组存父亲节点
  64. ArrayList<TreeCameraFuntionArea> roots = new ArrayList<>();
  65. //构建树形
  66. nodeMap.values().forEach(item->{
  67. String parentCode = item.getParentId()+"";
  68. if (nodeMap.get(parentCode) == null){
  69. //父节点为空,说明当前节点就已经是父节点了 将该节点存起来
  70. roots.add(item);
  71. }else {
  72. //父节点 不为空,说明有父节点,拿到该节点的父节点的孩子节点(就是我自己),将该节点存起来
  73. nodeMap.get(parentCode).getChildNode().add(item);
  74. }
  75. });
  76. return roots;
  77. }
  78. @Override
  79. @Transactional
  80. public Result removeIds(List<Integer> ids) {
  81. for (Integer id : ids) {
  82. CameraFunctionArea byId = this.getById(id);
  83. if (StringUtils.isNotBlank(byId.getFunctionIds()) ) {
  84. return new Result(10001, "删除失败," + byId.getFunctionName() + "仍然存在区域", false);
  85. }
  86. }
  87. this.removeByIds(ids);
  88. return new Result(10000, "删除成功", true);
  89. }
  90. @Override
  91. public Result addFunction(Map<String, String> params) {
  92. String functionAreaId = params.get("functionAreaId");
  93. String functionIds = params.get("functionIds");
  94. CameraFunctionArea cameraFunctionArea = new CameraFunctionArea();
  95. cameraFunctionArea.setId(Integer.parseInt(functionAreaId));
  96. cameraFunctionArea.setFunctionIds(functionIds);
  97. this.updateById(cameraFunctionArea);
  98. return new Result(10000, "添加成功", true);
  99. }
  100. }