BuildingController.java 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. package com.template.controller;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.baomidou.mybatisplus.core.metadata.IPage;
  4. import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
  5. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  6. import com.template.api.BuildingControllerAPI;
  7. import com.template.model.pojo.Building;
  8. import com.template.model.pojo.HouseNumber;
  9. import com.template.model.result.CommonResult;
  10. import com.template.model.vo.BuildingBarVo;
  11. import com.template.services.BuildingService;
  12. import com.template.services.HouseNumberService;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.web.bind.annotation.RestController;
  15. import java.util.ArrayList;
  16. import java.util.List;
  17. import java.util.stream.Collectors;
  18. /**
  19. * <p>
  20. * 前端控制器
  21. * </p>
  22. *
  23. * @author ceshi
  24. * @since 2024-08-08
  25. */
  26. @RestController
  27. public class BuildingController implements BuildingControllerAPI {
  28. @Autowired
  29. BuildingService buildingService;
  30. @Autowired
  31. HouseNumberService houseNumberService;
  32. @Override
  33. public CommonResult save(Building building) {
  34. String building1 = building.getBuilding();
  35. String element = building.getElement();
  36. if (ObjectUtils.isEmpty(building1) || ObjectUtils.isEmpty(element)) {
  37. return CommonResult.fail("楼栋和单元不能为空");
  38. }
  39. LambdaQueryWrapper<Building> wrapper = new LambdaQueryWrapper<>();
  40. wrapper.eq(Building::getBuilding, building1)
  41. .eq(Building::getElement, element);
  42. Building one = buildingService.getOne(wrapper);
  43. if (ObjectUtils.isNotEmpty(one)) {
  44. return CommonResult.fail("已存在");
  45. }
  46. buildingService.save(building);
  47. return CommonResult.ok();
  48. }
  49. @Override
  50. public CommonResult getPage(int page, int size, String keyWord) {
  51. IPage<Building> buildingPage = new Page<>(page, size);
  52. LambdaQueryWrapper<Building> wrapper = new LambdaQueryWrapper<>();
  53. wrapper.like(ObjectUtils.isNotEmpty(keyWord), Building::getBuilding, keyWord)
  54. .or()
  55. .like(ObjectUtils.isNotEmpty(keyWord),Building::getElement,keyWord);
  56. wrapper.orderByAsc(Building::getBuilding)
  57. .orderByAsc(Building::getElement);
  58. IPage<Building> page1 = buildingService.page(buildingPage, wrapper);
  59. return CommonResult.ok(page1);
  60. }
  61. @Override
  62. public CommonResult update(Building building) {
  63. String building1 = building.getBuilding();
  64. String element = building.getElement();
  65. if (ObjectUtils.isEmpty(building1) || ObjectUtils.isEmpty(element)) {
  66. return CommonResult.fail("楼栋和单元不能为空");
  67. }
  68. LambdaQueryWrapper<Building> wrapper = new LambdaQueryWrapper<>();
  69. wrapper.eq(Building::getBuilding, building1)
  70. .eq(Building::getElement, element);
  71. Building one = buildingService.getOne(wrapper);
  72. if (ObjectUtils.isNotEmpty(one)) {
  73. return CommonResult.fail("已存在该楼栋和单元");
  74. }
  75. buildingService.updateById(building);
  76. return CommonResult.ok();
  77. }
  78. @Override
  79. public CommonResult delete(Integer buildingId) {
  80. LambdaQueryWrapper<HouseNumber> wrapper=new LambdaQueryWrapper<>();
  81. wrapper.eq(HouseNumber::getBuildingId,buildingId);
  82. List<HouseNumber> list = houseNumberService.list(wrapper);
  83. if (ObjectUtils.isNotEmpty(list)) {
  84. return CommonResult.fail("该楼栋下还存在房间");
  85. }
  86. buildingService.removeById(buildingId);
  87. return CommonResult.ok();
  88. }
  89. @Override
  90. public CommonResult displayBar() {
  91. List<String> buildings = buildingService.group();
  92. List<Building> list = buildingService.list(new LambdaQueryWrapper<>());
  93. ArrayList<BuildingBarVo> vos = new ArrayList<>();
  94. for (int i = 0; i < buildings.size(); i++) {
  95. String b = buildings.get(i);
  96. BuildingBarVo vo = new BuildingBarVo();
  97. vo.setId(1000000+i);
  98. vo.setElement(b);
  99. List<Building> ownerClasses = list.stream().filter(e -> e.getBuilding().equals(b)).collect(Collectors.toList());
  100. if (ownerClasses != null && ownerClasses.size() > 0) {
  101. vo.setBuildings(ownerClasses);
  102. }
  103. vos.add(vo);
  104. }
  105. return CommonResult.ok(vos);
  106. }
  107. }