更新流量方费率生成,增加费率检查

This commit is contained in:
panshuling321 2022-07-01 11:37:19 +08:00
parent 95291a76e7
commit b4c93197f2

View File

@ -14,8 +14,10 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Comparator;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;
@Service @Service
@ -71,14 +73,19 @@ public class XhpcActivityInternetServiceImpl implements XhpcActivityInternetServ
} }
/**
* 组装费率列表
* @param domain 流量方活动对象
* @return 费率列表
*/
private List<XhpcActivityFormulaDomain> getFormulaFullList(XhpcActivityInternetDomain domain){ private List<XhpcActivityFormulaDomain> getFormulaFullList(XhpcActivityInternetDomain domain){
boolean isFullDay = false; boolean isFullDay = false;
int index = 0; int index = 0;
List<XhpcActivityFormulaDomain> formulaDomainList = domain.getFormulaList(); List<XhpcActivityFormulaDomain> formulaDomainList = domain.getFormulaList();
List<XhpcActivityFormulaDomain> formulaDomains = new ArrayList<>(); List<XhpcActivityFormulaDomain> formulaDomains = new ArrayList<>();
String startTime = "00:00:00", endTime="24:00:00"; String startTime = "00:00", endTime="24:00";
while (!isFullDay) { while (!isFullDay) {
if (formulaDomainList == null || formulaDomainList.size() < 1) { if (formulaDomainList == null || formulaDomainList.size() < 1) {
XhpcActivityFormulaDomain formulaDomain = new XhpcActivityFormulaDomain(); XhpcActivityFormulaDomain formulaDomain = new XhpcActivityFormulaDomain();
@ -86,8 +93,8 @@ public class XhpcActivityInternetServiceImpl implements XhpcActivityInternetServ
formulaDomain.setPowerPrice(domain.getPowerPrice()); formulaDomain.setPowerPrice(domain.getPowerPrice());
formulaDomain.setServicePrice(domain.getServicePrice()); formulaDomain.setServicePrice(domain.getServicePrice());
formulaDomain.setComputeFormula(domain.getComputeFormula()); formulaDomain.setComputeFormula(domain.getComputeFormula());
formulaDomain.setStartTime("00:00:00"); formulaDomain.setStartTime("00:00");
formulaDomain.setEndTime("24:00:00"); formulaDomain.setEndTime("24:00");
formulaDomain.setCreateBy(domain.getCreateBy()); formulaDomain.setCreateBy(domain.getCreateBy());
formulaDomain.setUpdateBy(domain.getUpdateBy()); formulaDomain.setUpdateBy(domain.getUpdateBy());
formulaDomains.add(formulaDomain); formulaDomains.add(formulaDomain);
@ -123,11 +130,39 @@ public class XhpcActivityInternetServiceImpl implements XhpcActivityInternetServ
if(endTime.equals(startTime)){ if(endTime.equals(startTime)){
isFullDay = true; isFullDay = true;
} }
} }
} }
boolean checkFlag = checkFormulaList(formulaDomains);
if(!checkFlag){
System.out.println(" ==================== 费率列表 ======================== ");
System.out.println(formulaDomains);
throw new CustomException("费率设置错误,请检查");
}
return formulaDomains; return formulaDomains;
}
/**
* 检查费率设置正确
* @param formulaDomains 费率列表
* @return 标志位
*/
private boolean checkFormulaList(List<XhpcActivityFormulaDomain> 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;
} }