package com.ruoyi.chargingPile.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.chargingPile.api.dto.TParkingLotDTO; import com.ruoyi.chargingPile.api.model.TCarport; import com.ruoyi.chargingPile.api.model.TParkingLot; import com.ruoyi.chargingPile.api.model.TParkingRecord; import com.ruoyi.chargingPile.api.model.TVehicleRamp; import com.ruoyi.chargingPile.api.query.TParkingLotQuery; import com.ruoyi.chargingPile.api.vo.TParkingLotVO; import com.ruoyi.chargingPile.service.TCarportService; import com.ruoyi.chargingPile.service.TParkingLotService; import com.ruoyi.chargingPile.service.TParkingRecordService; import com.ruoyi.chargingPile.service.TVehicleRampService; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.domain.BaseDelete; import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.common.log.annotation.Log; import com.ruoyi.common.log.enums.BusinessType; import com.ruoyi.common.log.enums.OperatorType; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.math.BigDecimal; import java.time.LocalDate; import java.util.Arrays; import java.util.List; /** *

* 停车场 前端控制器 *

* * @author xiaochen * @since 2024-08-06 */ @Api(tags = "停车场") @RestController @RequestMapping("/t-parking-lot") public class TParkingLotController { private final TParkingLotService parkingLotService; private final TVehicleRampService vehicleRampService; private final TCarportService carportService; @Resource private TParkingRecordService parkingRecordService; @Autowired public TParkingLotController(TParkingLotService parkingLotService, TVehicleRampService vehicleRampService, TCarportService carportService) { this.parkingLotService = parkingLotService; this.vehicleRampService = vehicleRampService; this.carportService = carportService; } /** * 查询停车场列表 */ @ApiOperation(tags = {"后台-停车场"},value = "查询停车场分页列表") @PostMapping(value = "/pageList") public AjaxResult> pageList(@RequestBody TParkingLotQuery query) { return AjaxResult.ok(parkingLotService.pageList(query)); } /** * 查询停车场列表 */ @ApiOperation(tags = {"后台-停车场"},value = "查询停车场列表") @PostMapping(value = "/list") public AjaxResult> list(@RequestBody TParkingLotQuery query) { return AjaxResult.ok(parkingLotService.getList(query.getName())); } /** * 添加停车场管理 */ @Log(title = "【停车场】添加停车场", businessType = BusinessType.INSERT,operatorType = OperatorType.MANAGE) @ApiOperation(tags = {"后台-停车场"},value = "添加停车场") @PostMapping(value = "/add") public AjaxResult add(@RequestBody TParkingLotDTO dto) { return AjaxResult.ok(parkingLotService.save(dto)); } /** * 修改停车场 */ @Log(title = "【停车场】修改停车场", businessType = BusinessType.UPDATE,operatorType = OperatorType.MANAGE) @ApiOperation(tags = {"后台-停车场"},value = "修改停车场") @PostMapping(value = "/update") public AjaxResult update(@RequestBody TParkingLotDTO dto) { return AjaxResult.ok(parkingLotService.updateById(dto)); } /** * 查看停车场详情 */ @ApiOperation(tags = {"后台-停车场"},value = "查看停车场详情") @GetMapping(value = "/getDetailById") public AjaxResult getDetailById(@RequestParam("id") Integer id) { return AjaxResult.ok(parkingLotService.getById(id)); } /** * 删除停车场 */ @Log(title = "【停车场】删除停车场", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE) @ApiOperation(tags = {"后台-停车场"},value = "删除停车场") @DeleteMapping(value = "/deleteById") public AjaxResult deleteById(@RequestParam("id") Integer id) { // 刪除车道信息 vehicleRampService.remove(Wrappers.lambdaQuery(TVehicleRamp.class) .eq(TVehicleRamp::getParkingLotId, id)); // 删除车库信息 carportService.remove(Wrappers.lambdaQuery(TCarport.class) .eq(TCarport::getParkingLotId, id)); return AjaxResult.ok(parkingLotService.removeById(id)); } /** * 批量删除停车场 */ @Log(title = "【停车场】批量删除停车场", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE) @ApiOperation(tags = {"后台-停车场"},value = "批量删除停车场") @DeleteMapping(value = "/deleteByIds") public AjaxResult deleteByIds(@RequestParam String ids) { String[] split = ids.split(","); // 刪除车道信息 vehicleRampService.remove(Wrappers.lambdaQuery(TVehicleRamp.class) .in(TVehicleRamp::getParkingLotId, Arrays.asList(split))); // 删除车库信息 carportService.remove(Wrappers.lambdaQuery(TCarport.class) .in(TCarport::getParkingLotId, Arrays.asList(split))); return AjaxResult.ok(parkingLotService.removeByIds(Arrays.asList(split))); } /** * 通过站点id查询停车场信息 */ @PostMapping(value = "/getLotBySiteId") public R getLotBySiteId(@RequestParam("siteId") Integer siteId){ return R.ok(parkingLotService.getOne(Wrappers.lambdaQuery(TParkingLot.class) .eq(TParkingLot::getSiteId, siteId))); } @PostMapping(value = "/getRecordById") public R getRecordById(@RequestParam("id") Long id){ return R.ok(parkingRecordService.getById(id)); } @PostMapping(value = "/getRecordAmount") public R getRecordAmount(@RequestParam("sixBefore") LocalDate sixBefore){ BigDecimal sum = parkingRecordService.getSum(sixBefore); return R.ok(); } /** * 根据停车场标识查询停车场 * @param appKey * @return */ @PostMapping(value = "/getParkingLotByAppKey") public R getParkingLotByAppKey(@RequestParam("appKey") String appKey){ TParkingLot parkingLot = parkingLotService.getOne(new LambdaQueryWrapper() .eq(TParkingLot::getAppKey, appKey).eq(TParkingLot::getDelFlag, 0)); return R.ok(parkingLot); } }