From b4c93197f2d544f2101f5e072445b832907463f9 Mon Sep 17 00:00:00 2001 From: panshuling321 Date: Fri, 1 Jul 2022 11:37:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=B5=81=E9=87=8F=E6=96=B9?= =?UTF-8?q?=E8=B4=B9=E7=8E=87=E7=94=9F=E6=88=90=EF=BC=8C=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E8=B4=B9=E7=8E=87=E6=A3=80=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/XhpcActivityInternetServiceImpl.java | 45 ++++++++++++++++--- 1 file changed, 40 insertions(+), 5 deletions(-) diff --git a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/impl/XhpcActivityInternetServiceImpl.java b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/impl/XhpcActivityInternetServiceImpl.java index c76b4842..e215de13 100644 --- a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/impl/XhpcActivityInternetServiceImpl.java +++ b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/impl/XhpcActivityInternetServiceImpl.java @@ -14,8 +14,10 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.ArrayList; import java.util.Arrays; +import java.util.Comparator; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; @Service @@ -71,14 +73,19 @@ public class XhpcActivityInternetServiceImpl implements XhpcActivityInternetServ } - + /** + * 组装费率列表 + * @param domain 流量方活动对象 + * @return 费率列表 + */ private List getFormulaFullList(XhpcActivityInternetDomain domain){ boolean isFullDay = false; int index = 0; List formulaDomainList = domain.getFormulaList(); List formulaDomains = new ArrayList<>(); - String startTime = "00:00:00", endTime="24:00:00"; + String startTime = "00:00", endTime="24:00"; + while (!isFullDay) { if (formulaDomainList == null || formulaDomainList.size() < 1) { XhpcActivityFormulaDomain formulaDomain = new XhpcActivityFormulaDomain(); @@ -86,8 +93,8 @@ public class XhpcActivityInternetServiceImpl implements XhpcActivityInternetServ formulaDomain.setPowerPrice(domain.getPowerPrice()); formulaDomain.setServicePrice(domain.getServicePrice()); formulaDomain.setComputeFormula(domain.getComputeFormula()); - formulaDomain.setStartTime("00:00:00"); - formulaDomain.setEndTime("24:00:00"); + formulaDomain.setStartTime("00:00"); + formulaDomain.setEndTime("24:00"); formulaDomain.setCreateBy(domain.getCreateBy()); formulaDomain.setUpdateBy(domain.getUpdateBy()); formulaDomains.add(formulaDomain); @@ -123,11 +130,39 @@ public class XhpcActivityInternetServiceImpl implements XhpcActivityInternetServ if(endTime.equals(startTime)){ isFullDay = true; } - } } + boolean checkFlag = checkFormulaList(formulaDomains); + if(!checkFlag){ + System.out.println(" ==================== 费率列表 ======================== "); + System.out.println(formulaDomains); + throw new CustomException("费率设置错误,请检查"); + } return formulaDomains; + } + + /** + * 检查费率设置正确 + * @param formulaDomains 费率列表 + * @return 标志位 + */ + private boolean checkFormulaList(List formulaDomains){ + boolean checkFlag = true; + formulaDomains = formulaDomains.stream().sorted(Comparator.comparing(XhpcActivityFormulaDomain::getStartTime)).collect(Collectors.toList()); + + int endTime = 0; + for (XhpcActivityFormulaDomain domain: formulaDomains){ + Integer curStartTime = Integer.parseInt(domain.getStartTime().replaceAll(":", "")); + Integer curEndTime = Integer.parseInt(domain.getEndTime().replaceAll(":", "")); + + if(domain.getStartTime().equals(domain.getEndTime()) || curStartTime.equals(curEndTime) || curStartTime < endTime){ + checkFlag = false; break; + } + endTime = curEndTime; + } + + return checkFlag; }