更新流量方费率生成,增加费率检查
This commit is contained in:
parent
95291a76e7
commit
b4c93197f2
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user