From 8c873b1722d78e0757046c325d6f5c722aaa4ec9 Mon Sep 17 00:00:00 2001 From: wen <1455474577@qq.com> Date: Tue, 26 Oct 2021 11:00:57 +0800 Subject: [PATCH] =?UTF-8?q?query=5Fequip=5Fbusiness=5Fpolicy=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=BC=80=E5=8F=91=E9=83=A8=E5=88=86=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../QueryEquipBusinessPolicyController.java | 110 +++++++----------- 1 file changed, 42 insertions(+), 68 deletions(-) diff --git a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/api/QueryEquipBusinessPolicyController.java b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/api/QueryEquipBusinessPolicyController.java index 6c464d00..14faa95f 100644 --- a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/api/QueryEquipBusinessPolicyController.java +++ b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/api/QueryEquipBusinessPolicyController.java @@ -1,19 +1,22 @@ package com.xhpc.evcs.api; +import com.fasterxml.jackson.core.JsonProcessingException; import com.xhpc.common.data.redis.CacheRateModel; +import com.xhpc.evcs.dto.CommonResponse; import com.xhpc.evcs.dto.EquipBizRequest; import com.xhpc.evcs.dto.EquipBizResponse; import com.xhpc.evcs.dto.PolicyInfos; import com.xhpc.evcs.jpa.XhpcTerminalRepository; +import com.xhpc.evcs.utils.JSONUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.HashMap; -import java.util.List; import java.util.Map; import static com.xhpc.common.data.redis.StaticBeanUtil.REDIS; @@ -26,7 +29,7 @@ public class QueryEquipBusinessPolicyController { private XhpcTerminalRepository xhpcTerminalRepository; @PostMapping("/v1/query_equip_business_policy") - public EquipBizResponse queryEquipBusinessPolicy(@RequestBody EquipBizRequest equipBizRequest) { + public CommonResponse queryEquipBusinessPolicy(@RequestBody EquipBizRequest equipBizRequest) throws JsonProcessingException { //获取充电设备接口编码(枪编码) String connectorId = equipBizRequest.getConnectorId(); //获取枪所对应的桩编码 @@ -44,6 +47,8 @@ public class QueryEquipBusinessPolicyController { ArrayList modelTypes = new ArrayList<>(); //存储时段个数 ArrayList modelCount = new ArrayList<>(); + //建立对应时段的映射Map集合,存放其对应的价格和服务费 + Map timeMap = new HashMap<>(); //个数计数器 int count = 0; //最后一个时段的前一个时段的下标索引 @@ -99,83 +104,52 @@ public class QueryEquipBusinessPolicyController { } PolicyInfos[] policyInfosArr = new PolicyInfos[timeList.size()]; - for (int i = 0; i < timeList.size() - 1; i++) { + for (int i = 0; i <= timeList.size() - 1; i++) { PolicyInfos policyInfos = new PolicyInfos(); policyInfos.setStartTime(timeList.get(i)); - //todo 明天继续 - policyInfos.setServicePrice(0); - policyInfos.setElecPrice(0); - } - - - EquipBizResponse equipBizResponse = new EquipBizResponse(); - //总时段数 - equipBizResponse.setSumPeriod(modelTypes.size()); - - - return equipBizResponse; - } - - public EquipBizResponse load(String[] arr,EquipBizRequest equipBizRequest) { - Map priceMap = new HashMap<>(); - Map svcPriceMap = new HashMap<>(); - String[] keys = {"01","02","03","04"}; - String[] values1 = {"t1Price","t2Price","t3Price","t4Price"}; - String[] values2 = {"t1SvcPrice","t2SvcPrice","t3SvcPrice","t4SvcPrice"}; - for(int i = 0; i < keys.length; i ++){ - priceMap.put(keys[i],values1[i]); - svcPriceMap.put(keys[i],values2[i]); - } - List timeSigns = new ArrayList<>(); - List locations = new ArrayList<>(); - for (int i = 0; i < arr.length - 1; i++) { - if (arr[i].equals(arr[i + 1])) { - timeSigns.add(arr[i]); - locations.add(i); + String modelType = modelTypes.get(i); + switch (modelType) { + case "00": + policyInfos.setServicePrice(BigDecimal.valueOf((long) rateModel.getT1SvcPrice()).divide(BigDecimal.valueOf(100000L)).setScale(4).doubleValue()); + policyInfos.setElecPrice(BigDecimal.valueOf((long) rateModel.getT1Price()).divide(BigDecimal.valueOf(100000L)).setScale(4).doubleValue()); + break; + case "01": + policyInfos.setServicePrice(BigDecimal.valueOf((long) rateModel.getT2SvcPrice()).divide(BigDecimal.valueOf(100000L)).setScale(4).doubleValue()); + policyInfos.setElecPrice(BigDecimal.valueOf((long) rateModel.getT2Price()).divide(BigDecimal.valueOf(100000L)).setScale(4).doubleValue()); + break; + case "02": + policyInfos.setServicePrice(BigDecimal.valueOf((long) rateModel.getT3SvcPrice()).divide(BigDecimal.valueOf(100000L)).setScale(4).doubleValue()); + policyInfos.setElecPrice(BigDecimal.valueOf((long) rateModel.getT3Price()).divide(BigDecimal.valueOf(100000L)).setScale(4).doubleValue()); + break; + case "03": + policyInfos.setServicePrice(BigDecimal.valueOf((long) rateModel.getT4SvcPrice()).divide(BigDecimal.valueOf(100000L)).setScale(4).doubleValue()); + policyInfos.setElecPrice(BigDecimal.valueOf((long) rateModel.getT4Price()).divide(BigDecimal.valueOf(100000L)).setScale(4).doubleValue()); + break; } + policyInfosArr[i] = policyInfos; } - timeSigns.add(arr[arr.length - 1]); - locations.add(arr.length - 1); - List time = new ArrayList<>(); - time.add(0); - time.add(locations.get(0)); - for (int i = 1; i < locations.size(); i++) { - time.add(locations.get(i - 1)); - time.add(locations.get(i)); - } - List startTimes = new ArrayList<>(); - List priceResult = new ArrayList<>(); - List svcPriceResult = new ArrayList<>(); - for(int i = 0, j = 0; i < locations.size(); i += 2, j ++){ - priceResult.add(REDIS.getCacheObject(priceMap.get(timeSigns.get(j)))); - svcPriceResult.add(REDIS.getCacheObject(svcPriceMap.get(timeSigns.get(j)))); - startTimes.add((int) (i * 10000 * 0.5)); - } - PolicyInfos[] repsData = new PolicyInfos[startTimes.size()]; - for(int i = 0; i < startTimes.size(); i ++){ - PolicyInfos policyInfos = new PolicyInfos(); - policyInfos.setStartTime(String.valueOf(startTimes.get(i))); - policyInfos.setElecPrice(priceResult.get(i)); - policyInfos.setServicePrice(svcPriceResult.get(i)); - repsData[i] = policyInfos; - - } - //封装数据 EquipBizResponse equipBizResponse = new EquipBizResponse(); + //业务查询流水号 equipBizResponse.setEquipBizSeq(equipBizRequest.getEquipBizSeq()); - equipBizResponse.setConnectorId(equipBizRequest.getConnectorId()); + //充电设备接口编码 + equipBizResponse.setConnectorId(connectorId); + //操作结果 equipBizResponse.setSuccStat(0); + //失败原因 equipBizResponse.setFailReason(0); - equipBizResponse.setSumPeriod(3); - equipBizResponse.setPolicyInfos(repsData); - - return equipBizResponse; - - + //总时段数 + equipBizResponse.setSumPeriod(modelTypes.size()); + //计费信息 + equipBizResponse.setPolicyInfos(policyInfosArr); + //塞入包装类 + CommonResponse commonResponse = new CommonResponse(); + commonResponse.setMsg("请求查询业务策略成功"); + commonResponse.setRet("0"); + commonResponse.setData(JSONUtil.toJSONString(equipBizResponse)); + return commonResponse; } - }