diff --git a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/api/QueryStationsInfoController.java b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/api/QueryStationsInfoController.java index 2a11db37..c51d118f 100644 --- a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/api/QueryStationsInfoController.java +++ b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/api/QueryStationsInfoController.java @@ -1,14 +1,15 @@ package com.xhpc.evcs.api; -import com.xhpc.common.api.ChargingStationPushStatusService; import com.xhpc.common.api.dto.ChargingStationDto; import com.xhpc.common.data.redis.CacheRateModel; import com.xhpc.evcs.domain.XhpcChargingPile; import com.xhpc.evcs.domain.XhpcChargingStation; +import com.xhpc.evcs.domain.XhpcInternetUser; import com.xhpc.evcs.domain.XhpcStationInternetBlacklist; import com.xhpc.evcs.dto.*; import com.xhpc.evcs.jpa.XhpcChargingPileRepository; import com.xhpc.evcs.jpa.XhpcChargingStationRepository; +import com.xhpc.evcs.jpa.XhpcInternetUserRepository; import com.xhpc.evcs.jpa.XhpcStationInternetBlacklistRepository; import com.xhpc.evcs.utils.JSONUtil; import lombok.extern.slf4j.Slf4j; @@ -20,6 +21,7 @@ import org.springframework.web.bind.annotation.RestController; import java.math.BigDecimal; import java.math.RoundingMode; +import java.time.Instant; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -32,7 +34,7 @@ import static com.xhpc.common.data.redis.StaticBeanUtil.REDIS; public class QueryStationsInfoController { @Autowired - private ChargingStationPushStatusService chargingStationPushStatusService; + private XhpcInternetUserRepository xhpcInternetUserRepository; @Autowired private XhpcChargingPileRepository xhpcChargingPileRepository; @Autowired @@ -43,10 +45,8 @@ public class QueryStationsInfoController { @PostMapping("/v1/query_stations_info") public CommonResponse queryStationsInfo(@RequestBody(required = false) CommonRequest commonRequest) throws Exception { - // 电站状态更新逻辑,没必要做,全推 -// chargingStationPushStatusService.editStationStatus(); -// chargingStationPushStatusService.saveStationStatus(); + CommonResponse resp = new CommonResponse(); //当前页数 PageRequest pageRequest = commonRequest.transformDataType(PageRequest.class); Integer pageNo = pageRequest.getPageNo(); @@ -54,215 +54,128 @@ public class QueryStationsInfoController { response.setPageNo(pageNo); //页码总数 String operatorId = commonRequest.getOperatorId(); - List xhpcStationInternetBlacklist = xhpcStationInternetBlacklistRepo.findByInternetUserId(operatorId); - List stationKeys = new ArrayList<>(REDIS.keys("station:*")); - List validStationKeys = new ArrayList<>(); - for (String stationKey : stationKeys) { - boolean isValid = true; - for (XhpcStationInternetBlacklist xhpcStationInternetBlack : xhpcStationInternetBlacklist) { - if (stationKey.substring(8).equals(xhpcStationInternetBlack.getChargingStationId().toString())) { - isValid = false; - } - } - ChargingStationDto chargingStationDto = REDIS.getCacheObject(stationKey); - if (chargingStationDto.getPiles() != null) { - if (isValid) { - validStationKeys.add(stationKey); - } - } - } - if (validStationKeys.size() > 0) { - Integer pageSize = pageRequest.getPageSize(); - int totalPage = validStationKeys.size() % pageSize == 0 ? validStationKeys.size() / pageSize : (validStationKeys.size() / pageSize) + 1; - response.setPageCount(totalPage); - } - //总记录条数 - response.setItemSize(validStationKeys.size()); - - //充电站信息列表 - List stationInfos = new ArrayList<>(); - //计算每页开始索引 - int startIndex = -1; - int endIndex = -1; - if (pageNo == 1 && validStationKeys.size() <= 10) { - startIndex = 0; - endIndex = validStationKeys.size() - 1; + final List xhpcInternetUserList = + xhpcInternetUserRepository.findByCooperationStartTimeBeforeAndCooperationEndTimeAfterAndOperatorIdEvcsLike(Instant.now(), Instant.now(), operatorId); + if (xhpcInternetUserList.isEmpty()) { + resp.setRet("1"); + resp.setMsg("Not valid internet user/OperatorID"); + resp.setData(JSONUtil.toJSONString(response)); } else { - Integer pageSize = pageRequest.getPageSize(); - startIndex = (pageNo - 1) * pageSize; - endIndex = startIndex + (pageSize - 1); - } - for (int i = startIndex; i <= endIndex; i++) { - String stationKey = null; - try { - stationKey = validStationKeys.get(i); - } catch (Exception e) { - continue; - } - ChargingStationDto chargingStationDto = REDIS.getCacheObject(stationKey); - StationInfo stationInfo = new StationInfo(); - //站点状态 - stationInfo.setStationStatus(50); - //充电站Id - String stationId = stationKey.replace("station:", ""); - stationInfo.setStationId(stationId); - Double lat = chargingStationDto.getLat(); - if (lat == null) { - XhpcChargingStation stationExample = new XhpcChargingStation(); - stationExample.setId(Long.parseLong(stationId)); - Example example = Example.of(stationExample); - XhpcChargingStation xhpcChargingStation = - xhpcChargingStationRepository.findOne(example).orElse(null); - if (xhpcChargingStation != null) { - //纬度 - chargingStationDto.setLat(new BigDecimal(xhpcChargingStation.getLatitude()).setScale(6, - RoundingMode.HALF_UP).doubleValue()); - //经度 - chargingStationDto.setLng(new BigDecimal(xhpcChargingStation.getLongitude()).setScale(6, - RoundingMode.HALF_UP).doubleValue()); - //站点类型 - chargingStationDto.setType(xhpcChargingStation.getType()); - //运营商id - String operatorIdEvcs = xhpcChargingStation.getOperatorIdEvcs(); - chargingStationDto.setOperatorId(operatorIdEvcs == null ? "MA6DFCTD5" - : operatorIdEvcs.length() == 9 ? operatorId : operatorIdEvcs.substring(9, 19)); - //详细地址 - chargingStationDto.setAddress(xhpcChargingStation.getAddress()); - //充电站省直辖区编码 - chargingStationDto.setAreaCode(xhpcChargingStation.getAreaCode().toString()); - //充电站名称 - chargingStationDto.setName(xhpcChargingStation.getName()); - //服务电话 - chargingStationDto.setServiceTel(xhpcChargingStation.getServiceTel()); - //车位数量 - chargingStationDto.setParkNums(xhpcChargingStation.getParkNums()); - REDIS.setCacheObject(stationKey, chargingStationDto); + Long internetUserId = xhpcInternetUserList.get(0).getId(); + List xhpcStationInternetBlacklist = + xhpcStationInternetBlacklistRepo.findByInternetUserId(internetUserId); + List stationKeys = new ArrayList<>(REDIS.keys("station:*")); + List validStationKeys = new ArrayList<>(); + for (String stationKey : stationKeys) { + boolean isValid = true; + for (XhpcStationInternetBlacklist xhpcStationInternetBlack : xhpcStationInternetBlacklist) { + if (stationKey.substring(8).equals(xhpcStationInternetBlack.getChargingStationId().toString())) { + isValid = false; + } + } + ChargingStationDto chargingStationDto = REDIS.getCacheObject(stationKey); + if (chargingStationDto.getPiles() != null) { + if (isValid) { + validStationKeys.add(stationKey); + } } } - stationInfo.setOperatorId(chargingStationDto.getOperatorId()); - stationInfo.setEquipmentOwnerId(chargingStationDto.getOperatorId()); - stationInfo.setStationName(chargingStationDto.getName()); - stationInfo.setCountryCode("CN"); - stationInfo.setAreaCode(chargingStationDto.getAreaCode()); - stationInfo.setAddress(chargingStationDto.getAddress()); - stationInfo.setServiceTel(chargingStationDto.getServiceTel()); - stationInfo.setStationType(chargingStationDto.getType()); - stationInfo.setParkNums(chargingStationDto.getParkNums()); - stationInfo.setStationLng(chargingStationDto.getLng()); - stationInfo.setStationLat(chargingStationDto.getLat()); - stationInfo.setConstruction(chargingStationDto.getConstruction()); - //获取该充电站的下的所有充电设备列表 - Set piles = chargingStationDto.getPiles(); - List equipmentInfos = getEquipmentInfos(piles); - stationInfo.setEquipmentInfos(equipmentInfos); - stationInfos.add(stationInfo); + if (validStationKeys.size() > 0) { + Integer pageSize = pageRequest.getPageSize(); + int totalPage = validStationKeys.size() % pageSize == 0 ? validStationKeys.size() / pageSize : + (validStationKeys.size() / pageSize) + 1; + response.setPageCount(totalPage); + } + //总记录条数 + response.setItemSize(validStationKeys.size()); + + //充电站信息列表 + List stationInfos = new ArrayList<>(); + //计算每页开始索引 + int startIndex = -1; + int endIndex = -1; + if (pageNo == 1 && validStationKeys.size() <= 10) { + startIndex = 0; + endIndex = validStationKeys.size() - 1; + } else { + Integer pageSize = pageRequest.getPageSize(); + startIndex = (pageNo - 1) * pageSize; + endIndex = startIndex + (pageSize - 1); + } + for (int i = startIndex; i <= endIndex; i++) { + String stationKey = null; + try { + stationKey = validStationKeys.get(i); + } catch (Exception e) { + continue; + } + ChargingStationDto chargingStationDto = REDIS.getCacheObject(stationKey); + StationInfo stationInfo = new StationInfo(); + //站点状态 + stationInfo.setStationStatus(50); + //充电站Id + String stationId = stationKey.replace("station:", ""); + stationInfo.setStationId(stationId); + Double lat = chargingStationDto.getLat(); + if (lat == null) { + XhpcChargingStation stationExample = new XhpcChargingStation(); + stationExample.setId(Long.parseLong(stationId)); + Example example = Example.of(stationExample); + XhpcChargingStation xhpcChargingStation = + xhpcChargingStationRepository.findOne(example).orElse(null); + if (xhpcChargingStation != null) { + //纬度 + chargingStationDto.setLat(new BigDecimal(xhpcChargingStation.getLatitude()).setScale(6, + RoundingMode.HALF_UP).doubleValue()); + //经度 + chargingStationDto.setLng(new BigDecimal(xhpcChargingStation.getLongitude()).setScale(6, + RoundingMode.HALF_UP).doubleValue()); + //站点类型 + chargingStationDto.setType(xhpcChargingStation.getType()); + //运营商id + String operatorIdEvcs = xhpcChargingStation.getOperatorIdEvcs(); + chargingStationDto.setOperatorId(operatorIdEvcs == null ? "MA6DFCTD5" + : operatorIdEvcs.length() == 9 ? operatorId : operatorIdEvcs.substring(9, 19)); + //详细地址 + chargingStationDto.setAddress(xhpcChargingStation.getAddress()); + //充电站省直辖区编码 + chargingStationDto.setAreaCode(xhpcChargingStation.getAreaCode().toString()); + //充电站名称 + chargingStationDto.setName(xhpcChargingStation.getName()); + //服务电话 + chargingStationDto.setServiceTel(xhpcChargingStation.getServiceTel()); + //车位数量 + chargingStationDto.setParkNums(xhpcChargingStation.getParkNums()); + REDIS.setCacheObject(stationKey, chargingStationDto); + } + } + stationInfo.setOperatorId(chargingStationDto.getOperatorId()); + stationInfo.setEquipmentOwnerId(chargingStationDto.getOperatorId()); + stationInfo.setStationName(chargingStationDto.getName()); + stationInfo.setCountryCode("CN"); + stationInfo.setAreaCode(chargingStationDto.getAreaCode()); + stationInfo.setAddress(chargingStationDto.getAddress()); + stationInfo.setServiceTel(chargingStationDto.getServiceTel()); + stationInfo.setStationType(chargingStationDto.getType()); + stationInfo.setParkNums(chargingStationDto.getParkNums()); + stationInfo.setStationLng(chargingStationDto.getLng()); + stationInfo.setStationLat(chargingStationDto.getLat()); + stationInfo.setConstruction(chargingStationDto.getConstruction()); + //获取该充电站的下的所有充电设备列表 + Set piles = chargingStationDto.getPiles(); + List equipmentInfos = getEquipmentInfos(piles); + stationInfo.setEquipmentInfos(equipmentInfos); + stationInfos.add(stationInfo); + } + response.setStationInfos(stationInfos); + resp.setRet("0"); + resp.setMsg("Query station info success"); + resp.setData(JSONUtil.toJSONString(response)); } - response.setStationInfos(stationInfos); - CommonResponse resp = new CommonResponse(); - resp.setRet("0"); - resp.setMsg("Query station info success"); - resp.setData(JSONUtil.toJSONString(response)); return resp; } -// String operatorId = commonRequest.getOperatorId(); -// final PageRequest pageRequest = commonRequest.transformDataType(PageRequest.class); -// List stations = new ArrayList<>(); -// int pageCount = 0; -// List xhpcStationInternetBlacklist = -// xhpcStationInternetBlacklistRepo.findByInternetUserId(operatorId); -// List stationKeys = new ArrayList<>(REDIS.keys("station:*")); -// List validStationKeys = new ArrayList<>(); -// for (String stationKey : stationKeys) { -// boolean isValid = true; -// for (XhpcStationInternetBlacklist xhpcStationInternetBlack : xhpcStationInternetBlacklist) { -// if (stationKey.substring(8).equals(xhpcStationInternetBlack.getChargingStationId().toString())) { -// isValid = false; -// } -// } -// ChargingStationDto chargingStationDto = REDIS.getCacheObject(stationKey); -// if (chargingStationDto.getPiles() != null) { -// if (isValid) { -// validStationKeys.add(stationKey); -// } -// } -// } -// if (validStationKeys.size() > 0) { -// final Integer pageSize = pageRequest.getPageSize(); -// int fullpage = validStationKeys.size() == 0 ? 0 : validStationKeys.size() / pageSize; -// final Integer pageNo = pageRequest.getPageNo(); -// int plus = validStationKeys.size() % pageSize; -// assert (pageCount >= pageNo) : "too large pageNo"; -// pageCount = fullpage + (plus == 0 ? 0 : 1); -// if (pageCount >= pageNo) { -// Integer lastOne = validStationKeys.size() < pageNo * pageSize ? validStationKeys.size() : pageNo * pageSize; -// for (int i = ((pageNo - 1) * pageSize); i < lastOne; i++) { -// final String stationKey = validStationKeys.get(i); -// ChargingStationDto chargingStationDto = REDIS.getCacheObject(stationKey); -// if (chargingStationDto.getPiles() != null) { //todo rm dup or-else? -// StationInfo station = new StationInfo(); -// station.setStationStatus(50); -// final String stationId = stationKey.replace("station:", ""); -// station.setStationId(stationId); -// Double lat = chargingStationDto.getLat(); -// if (lat == null) { -// XhpcChargingStation stationExample = new XhpcChargingStation(); -// stationExample.setId(Long.parseLong(stationId)); -// Example example = Example.of(stationExample); -// XhpcChargingStation xhpcChargingStation = -// xhpcChargingStationRepository.findOne(example).orElse(null); -// if (null != xhpcChargingStation) { -// chargingStationDto.setLat(new BigDecimal(xhpcChargingStation.getLatitude()).setScale(6, -// RoundingMode.HALF_UP).doubleValue()); -// chargingStationDto.setLng(new BigDecimal(xhpcChargingStation.getLongitude()).setScale(6, -// RoundingMode.HALF_UP).doubleValue()); -// chargingStationDto.setType(xhpcChargingStation.getType()); -// chargingStationDto.setOperatorId(xhpcChargingStation.getOperatorIdEvcs() == null ? "MA6DFCTD5" -// : xhpcChargingStation.getOperatorIdEvcs()); -// chargingStationDto.setAddress(xhpcChargingStation.getAddress()); -// chargingStationDto.setAreaCode(xhpcChargingStation.getAreaCode().toString()); -// chargingStationDto.setName(xhpcChargingStation.getName()); -// chargingStationDto.setServiceTel(xhpcChargingStation.getServiceTel()); -// chargingStationDto.setParkNums(xhpcChargingStation.getParkNums()); -// REDIS.setCacheObject(stationKey, chargingStationDto); -// } -// } -// station.setAddress(chargingStationDto.getAddress()); -// station.setStationLat(chargingStationDto.getLat()); -// station.setStationLng(chargingStationDto.getLng()); -// station.setStationType(chargingStationDto.getType()); -// station.setStationStatus(50); -// station.setParkNums(chargingStationDto.getParkNums()); -// station.setOperatorId(chargingStationDto.getOperatorId()); -// station.setEquipmentOwnerId(chargingStationDto.getOperatorId()); -// station.setStationName(chargingStationDto.getName()); -// station.setCountryCode("CN"); -// station.setServiceTel(chargingStationDto.getServiceTel()); -// station.setAreaCode(chargingStationDto.getAreaCode()); -// station.setConstruction(chargingStationDto.getConstruction()); -// String[] fees = getFees(chargingStationDto.getRateModelId()); -// station.setElectricityFee(fees[0]); -// station.setServiceFee(fees[1]); -// List piles = getEquipmentInfos(chargingStationDto.getPiles()); -// station.setEquipmentInfos(piles); -// stations.add(station); -// } -// } -// } -// } -// PageStationsInfoResponse response = new PageStationsInfoResponse(); -// response.setItemSize(stations.size()); -// response.setPageNo(pageRequest.getPageNo()); -// response.setPageCount(pageCount); -// response.setStationInfos(stations); -// CommonResponse resp = new CommonResponse(); -// resp.setRet("0"); -// resp.setMsg("Query station info success"); -// resp.setData(JSONUtil.toJSONString(response)); -// return resp; -// } - private String[] getFees(Long rateModelId) { CacheRateModel cacheRateModel = REDIS.getCacheObject("rateModel:".concat(rateModelId.toString())); diff --git a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/jpa/XhpcStationInternetBlacklistRepository.java b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/jpa/XhpcStationInternetBlacklistRepository.java index cc581e48..ccfc99ce 100644 --- a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/jpa/XhpcStationInternetBlacklistRepository.java +++ b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/jpa/XhpcStationInternetBlacklistRepository.java @@ -16,6 +16,6 @@ public interface XhpcStationInternetBlacklistRepository extends JpaRepository findByChargingStationIdAndInternetUserId(Long stationId, Long internetUserId); - List findByInternetUserId(String substring); + List findByInternetUserId(Long internetUserId); } diff --git a/xhpc-modules/xhpc-power-pile/src/main/resources/bootstrap.yml b/xhpc-modules/xhpc-power-pile/src/main/resources/bootstrap.yml index df3a5bc9..8c12f14b 100644 --- a/xhpc-modules/xhpc-power-pile/src/main/resources/bootstrap.yml +++ b/xhpc-modules/xhpc-power-pile/src/main/resources/bootstrap.yml @@ -18,10 +18,10 @@ spring: nacos: discovery: # 服务注册地址 - server-addr: 172.31.183.135:8848 + server-addr: 127.0.0.1:8848 config: # 配置中心地址 - server-addr: 172.31.183.135:8848 + server-addr: 127.0.0.1:8848 # 配置文件格式 file-extension: yml # 共享配置