package com.template.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.template.api.BuildingControllerAPI; import com.template.model.pojo.Building; import com.template.model.pojo.HouseNumber; import com.template.model.result.CommonResult; import com.template.model.vo.BuildingBarVo; import com.template.services.BuildingService; import com.template.services.HouseNumberService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; /** *

* 前端控制器 *

* * @author ceshi * @since 2024-08-08 */ @RestController public class BuildingController implements BuildingControllerAPI { @Autowired BuildingService buildingService; @Autowired HouseNumberService houseNumberService; @Override public CommonResult save(Building building) { String building1 = building.getBuilding(); String element = building.getElement(); if (ObjectUtils.isEmpty(building1) || ObjectUtils.isEmpty(element)) { return CommonResult.fail("楼栋和单元不能为空"); } LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(Building::getBuilding, building1) .eq(Building::getElement, element); Building one = buildingService.getOne(wrapper); if (ObjectUtils.isNotEmpty(one)) { return CommonResult.fail("已存在"); } buildingService.save(building); return CommonResult.ok(); } @Override public CommonResult getPage(int page, int size, String keyWord) { IPage buildingPage = new Page<>(page, size); LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.like(ObjectUtils.isNotEmpty(keyWord), Building::getBuilding, keyWord) .or() .like(ObjectUtils.isNotEmpty(keyWord),Building::getElement,keyWord); wrapper.orderByAsc(Building::getBuilding) .orderByAsc(Building::getElement); IPage page1 = buildingService.page(buildingPage, wrapper); return CommonResult.ok(page1); } @Override public CommonResult update(Building building) { String building1 = building.getBuilding(); String element = building.getElement(); if (ObjectUtils.isEmpty(building1) || ObjectUtils.isEmpty(element)) { return CommonResult.fail("楼栋和单元不能为空"); } LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(Building::getBuilding, building1) .eq(Building::getElement, element); Building one = buildingService.getOne(wrapper); if (ObjectUtils.isNotEmpty(one)) { return CommonResult.fail("已存在该楼栋和单元"); } buildingService.updateById(building); return CommonResult.ok(); } @Override public CommonResult delete(Integer buildingId) { LambdaQueryWrapper wrapper=new LambdaQueryWrapper<>(); wrapper.eq(HouseNumber::getBuildingId,buildingId); List list = houseNumberService.list(wrapper); if (ObjectUtils.isNotEmpty(list)) { return CommonResult.fail("该楼栋下还存在房间"); } buildingService.removeById(buildingId); return CommonResult.ok(); } @Override public CommonResult displayBar() { List buildings = buildingService.group(); List list = buildingService.list(new LambdaQueryWrapper<>()); ArrayList vos = new ArrayList<>(); for (int i = 0; i < buildings.size(); i++) { String b = buildings.get(i); BuildingBarVo vo = new BuildingBarVo(); vo.setId(1000000+i); vo.setElement(b); List ownerClasses = list.stream().filter(e -> e.getBuilding().equals(b)).collect(Collectors.toList()); if (ownerClasses != null && ownerClasses.size() > 0) { vo.setBuildings(ownerClasses); } vos.add(vo); } return CommonResult.ok(vos); } }