package com.xiaopeng.operation.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.xiaopeng.api.dto.map.XpPointExportExcelQuery; import com.xiaopeng.api.dto.operation.PointAddDto; import com.xiaopeng.api.dto.operation.PointUpdateDto; import com.xiaopeng.api.dto.operation.XpPointEnableDisableDto; import com.xiaopeng.api.model.operation.*; import com.xiaopeng.api.query.operation.PointPageListListQuery; import com.xiaopeng.common.core.domain.R; import com.xiaopeng.common.core.web.controller.BaseController; import com.xiaopeng.api.query.operation.PointListQuery; import com.xiaopeng.common.core.web.page.PageInfo; import com.xiaopeng.operation.dto.XpPointSpecialDto; import com.xiaopeng.operation.service.IXpElectronicFenceAreaService; import com.xiaopeng.operation.service.IXpElectronicFenceService; import com.xiaopeng.operation.service.XpPointService; import com.xiaopeng.operation.vo.SpecialPointListVo; import com.xiaopeng.operation.vo.SpecialPointVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.shardingsphere.transaction.annotation.ShardingSphereTransactionType; import org.apache.shardingsphere.transaction.core.TransactionType; import org.springframework.beans.BeanUtils; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; @Slf4j @RestController @RequestMapping("/api/v1/point") @Api(tags = "点位管理") public class XpPointManagementController extends BaseController { @Resource private XpPointService xpPointService; /** * 设置特殊点位 */ @PostMapping("/setSpecialPoint") @ApiOperation(value = "设置特殊点位",tags = "后台管理-特殊点位") public R setSpecialPoint(@RequestBody XpPointSpecialDto dto) { xpPointService.update(new LambdaUpdateWrapper().set(XpPoint::getChargePoint, 0).set(XpPoint::getParkingPoint,0)); List list = xpPointService.list(new LambdaQueryWrapper().in(XpPoint::getId, dto.getChargePoints())); list.forEach(e->{ e.setChargePoint(1); e.setElectronicAreaId(null); }); xpPointService.updateBatchById(list); List list1 = xpPointService.list(new LambdaQueryWrapper().in(XpPoint::getId, dto.getParkingPoints())); list1.forEach(e->{ e.setParkingPoint(1); e.setElectronicAreaId(null); }); xpPointService.updateBatchById(list1); return R.ok(); } @GetMapping("/listSpecialPoint") @ApiOperation(value = "获取特殊点位",tags = "后台管理-特殊点位") public R getSpecialPoint() { List chargePoints = xpPointService.list(new LambdaQueryWrapper().eq(XpPoint::getChargePoint, 1)); List parkingPoints = xpPointService.list(new LambdaQueryWrapper().eq(XpPoint::getParkingPoint, 1)); SpecialPointVo specialPointVo = new SpecialPointVo(); ArrayList chargePointsList = new ArrayList<>(); for (XpPoint chargePoint : chargePoints) { SpecialPointListVo specialPointListVo = new SpecialPointListVo(); specialPointListVo.setPointName(chargePoint.getPointName()); specialPointListVo.setPointAddress(chargePoint.getPointAddress()); specialPointListVo.setPointId(chargePoint.getId()); chargePointsList.add(specialPointListVo); } specialPointVo.setChargePoints(chargePointsList); ArrayList parkingPointsList = new ArrayList<>(); for (XpPoint parkingPoint : parkingPoints) { SpecialPointListVo specialPointListVo = new SpecialPointListVo(); specialPointListVo.setPointName(parkingPoint.getPointName()); specialPointListVo.setPointAddress(parkingPoint.getPointAddress()); specialPointListVo.setPointId(parkingPoint.getId()); parkingPointsList.add(specialPointListVo); } specialPointVo.setParkingPoints(parkingPointsList); return R.ok(specialPointVo); } }