From de7be19c31b332a6afcf48a1ff2e9d288b79732b Mon Sep 17 00:00:00 2001 From: ZZ Date: Thu, 29 Jul 2021 15:00:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A1=A9=E5=8F=B7=E7=99=BD=E5=90=8D=E5=8D=95?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/XhpcChargingPileServiceImpl.java | 4 +- .../com/xhpc/common/api/PowerPileService.java | 7 +-- ...WhitelistDto.java => ChargingPileDto.java} | 5 +- .../common/api/dto/ChargingStationDto.java | 54 +++++++++++++++++++ .../api/factory/PowerPileFallbackFactory.java | 6 +-- .../xhpc/pp/controller/PileController.java | 32 +++++++++-- .../xhpc/pp/controller/StationController.java | 7 +-- 7 files changed, 92 insertions(+), 23 deletions(-) rename xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/dto/{ChargingPileWhitelistDto.java => ChargingPileDto.java} (87%) create mode 100644 xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/dto/ChargingStationDto.java diff --git a/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcChargingPileServiceImpl.java b/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcChargingPileServiceImpl.java index 087e59ef..a82952cf 100644 --- a/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcChargingPileServiceImpl.java +++ b/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcChargingPileServiceImpl.java @@ -1,6 +1,6 @@ package com.xhpc.charging.station.service; -import com.xhpc.common.api.dto.ChargingPileWhitelistDto; +import com.xhpc.common.api.dto.ChargingPileDto; import com.xhpc.common.core.web.domain.AjaxResult; import com.xhpc.common.domain.XhpcChargingPile; import com.xhpc.common.domain.XhpcTerminal; @@ -68,7 +68,7 @@ public class XhpcChargingPileServiceImpl implements IXhpcChargingPileService{ } //插入redis 桩的编号 - ChargingPileWhitelistDto charging = new ChargingPileWhitelistDto(); + ChargingPileDto charging = new ChargingPileDto(); charging.setStationId(chargingStationId); charging.setPileNo(serialNumber); powerPileService.addPileWhitelist(charging); diff --git a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/PowerPileService.java b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/PowerPileService.java index e3b83870..689af6e9 100644 --- a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/PowerPileService.java +++ b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/PowerPileService.java @@ -1,12 +1,11 @@ package com.xhpc.common.api; -import com.xhpc.common.api.dto.ChargingPileWhitelistDto; +import com.xhpc.common.api.dto.ChargingPileDto; import com.xhpc.common.core.constant.ServiceNameConstants; import com.xhpc.common.core.domain.R; import com.xhpc.common.api.factory.PowerPileFallbackFactory; import com.xhpc.common.data.down.StartChargingData; import com.xhpc.common.data.redis.CacheRateModel; -import com.xhpc.common.domain.XhpcChargingStation; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.DeleteMapping; @@ -14,8 +13,6 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; -import java.util.Set; - @FeignClient(contextId = "powerPileService", value = ServiceNameConstants.PILE_SERVICE, fallbackFactory = PowerPileFallbackFactory.class) public interface PowerPileService { @@ -23,7 +20,7 @@ public interface PowerPileService { R startCharging(@Validated @RequestBody StartChargingData startChargingData); @PostMapping(value = "/pile/whitelist") - R addPileWhitelist(@RequestBody ChargingPileWhitelistDto chargingPileWhitelist); + R addPileWhitelist(@RequestBody ChargingPileDto chargingPileDto); @DeleteMapping(value = "/pile/whitelist/{stationId}/{pileNo}") R deletePileWhitelist(@PathVariable("stationId") Long stationId, @PathVariable("pileNo") String pileNo); diff --git a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/dto/ChargingPileWhitelistDto.java b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/dto/ChargingPileDto.java similarity index 87% rename from xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/dto/ChargingPileWhitelistDto.java rename to xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/dto/ChargingPileDto.java index bd1f9a4e..80939d5b 100644 --- a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/dto/ChargingPileWhitelistDto.java +++ b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/dto/ChargingPileDto.java @@ -1,9 +1,6 @@ package com.xhpc.common.api.dto; -/** - * 费率 - */ -public class ChargingPileWhitelistDto { +public class ChargingPileDto { private Long stationId; private String pileNo; diff --git a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/dto/ChargingStationDto.java b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/dto/ChargingStationDto.java new file mode 100644 index 00000000..27408160 --- /dev/null +++ b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/dto/ChargingStationDto.java @@ -0,0 +1,54 @@ +package com.xhpc.common.api.dto; + +import com.xhpc.common.data.redis.CacheRateModel; + +import java.util.Set; + +public class ChargingStationDto { + + private Long stationId; + private Set piles; + private Long rateModelId; + private CacheRateModel rateModel; + + public Long getStationId() { + + return stationId; + } + + public void setStationId(Long stationId) { + + this.stationId = stationId; + } + + public Set getPiles() { + + return piles; + } + + public void setPiles(Set piles) { + + this.piles = piles; + } + + public Long getRateModelId() { + + return rateModelId; + } + + public void setRateModelId(Long rateModelId) { + + this.rateModelId = rateModelId; + } + + public CacheRateModel getRateModel() { + + return rateModel; + } + + public void setRateModel(CacheRateModel rateModel) { + + this.rateModel = rateModel; + } + +} diff --git a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/factory/PowerPileFallbackFactory.java b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/factory/PowerPileFallbackFactory.java index 77a1aa47..c5ac7ab7 100644 --- a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/factory/PowerPileFallbackFactory.java +++ b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/factory/PowerPileFallbackFactory.java @@ -1,6 +1,6 @@ package com.xhpc.common.api.factory; -import com.xhpc.common.api.dto.ChargingPileWhitelistDto; +import com.xhpc.common.api.dto.ChargingPileDto; import com.xhpc.common.core.domain.R; import com.xhpc.common.api.PowerPileService; import com.xhpc.common.data.down.StartChargingData; @@ -10,8 +10,6 @@ import org.slf4j.LoggerFactory; import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.stereotype.Component; -import java.util.Set; - @Component public class PowerPileFallbackFactory implements FallbackFactory { @@ -30,7 +28,7 @@ public class PowerPileFallbackFactory implements FallbackFactory whitelist) { + public Object addWhitelist(@RequestBody ChargingPileDto chargingPileDto) { - Set cacheWhitelist = REDIS.getCacheSet("PILE_WHITELIST"); - cacheWhitelist.addAll(whitelist); - REDIS.setCacheSet("PILE_WHITELIST", cacheWhitelist); + Set pileWhitelist = REDIS.getCacheSet("PILE_WHITELIST"); + String pileNo = chargingPileDto.getPileNo(); + pileWhitelist.add(pileNo); + REDIS.setCacheSet("PILE_WHITELIST", pileWhitelist); + String pileKey = "pile:".concat(pileNo); + Map cachePile = REDIS.getCacheMap(pileKey); + Long stationId = chargingPileDto.getStationId(); + cachePile.put("stationId", stationId); + REDIS.setCacheMap(pileKey, cachePile); + String stationKey = "station:".concat(stationId.toString()); + ChargingStationDto cacheStation = REDIS.getCacheObject(stationKey); + if (cacheStation == null) { + cacheStation = new ChargingStationDto(); + cacheStation.setStationId(stationId); + } + Set stationPiles = cacheStation.getPiles(); + if (stationPiles == null) { + stationPiles = new HashSet<>(); + cacheStation.setPiles(stationPiles); + } + stationPiles.add(pileNo); + REDIS.setCacheObject(stationKey, cacheStation); return R.ok(); } diff --git a/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/controller/StationController.java b/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/controller/StationController.java index f5d0aa9f..ed1d51c5 100644 --- a/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/controller/StationController.java +++ b/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/controller/StationController.java @@ -1,5 +1,6 @@ package com.xhpc.pp.controller; +import com.xhpc.common.api.dto.ChargingStationDto; import com.xhpc.common.core.domain.R; import com.xhpc.common.data.redis.CacheRateModel; import org.springframework.web.bind.annotation.PathVariable; @@ -18,9 +19,9 @@ public class StationController { public Object setStationRateModel(@PathVariable Long stationId, @PathVariable Long rateModelId, @RequestBody CacheRateModel rateModel) { String skey = "station:".concat(stationId.toString()); - Map cacheStation = REDIS.getCacheMap(skey); - cacheStation.put("rateModelId", rateModelId); - cacheStation.put("rateModel", rateModel); + ChargingStationDto cacheStation = REDIS.getCacheObject(skey); + cacheStation.setRateModelId(rateModelId); + cacheStation.setRateModel(rateModel); REDIS.setCacheObject(skey, cacheStation); return R.ok(); }