mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-25 13:35:15 +08:00
显示vip价格
This commit is contained in:
@@ -115,7 +115,10 @@ public interface PileBillingTemplateService {
|
||||
*/
|
||||
List<BillingPriceVO> queryBillingPrice(String stationId);
|
||||
|
||||
/**
|
||||
List<BillingPriceVO> queryBillingPriceOld(String stationId);
|
||||
|
||||
|
||||
/**
|
||||
* 通过桩sn号查询计费模板信息
|
||||
*
|
||||
* @param pileSn 桩sn
|
||||
|
||||
@@ -42,6 +42,7 @@ import java.math.BigDecimal;
|
||||
import java.time.LocalTime;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -371,7 +372,6 @@ public class PileBillingTemplateServiceImpl implements PileBillingTemplateServic
|
||||
LocalTime localTime = LocalTime.now();
|
||||
String now = LocalTime.of(localTime.getHour(), localTime.getMinute(), localTime.getSecond()).toString();
|
||||
// 通过站点id查询计费模板
|
||||
// BillingTemplateVO billingTemplateVO = pileBillingTemplateMapper.selectBillingTemplateByStationId(stationId);
|
||||
BillingTemplateVO billingTemplateVO = queryUsedBillingTemplate(stationId);
|
||||
if (Objects.nonNull(billingTemplateVO)) {
|
||||
result = new CurrentTimePriceDetails();
|
||||
@@ -380,7 +380,6 @@ public class PileBillingTemplateServiceImpl implements PileBillingTemplateServic
|
||||
result.setDateTime(localTime.toString());
|
||||
result.setFreeTime(billingTemplateVO.getFreeTime());
|
||||
result.setOccupyFee(billingTemplateVO.getOccupyFee());
|
||||
|
||||
List<BillingDetailVO> billingDetailList = billingTemplateVO.getBillingDetailList();
|
||||
for (BillingDetailVO detailVO : billingDetailList) {
|
||||
List<String> applyTimeList = detailVO.getApplyTime();
|
||||
@@ -390,7 +389,6 @@ public class PileBillingTemplateServiceImpl implements PileBillingTemplateServic
|
||||
// 将桩的费率存入stationVO
|
||||
BigDecimal electricityPrice = detailVO.getElectricityPrice();
|
||||
BigDecimal servicePrice = detailVO.getServicePrice();
|
||||
|
||||
result.setElectricityPrice(electricityPrice.toString());
|
||||
result.setServicePrice(servicePrice.toString());
|
||||
result.setTotalPrice(electricityPrice.add(servicePrice).toString());
|
||||
@@ -398,6 +396,27 @@ public class PileBillingTemplateServiceImpl implements PileBillingTemplateServic
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 查询站点的集团会员计费模板
|
||||
BillingTemplateVO preferentialBillingTemplate = this.queryPreferentialBillingTemplate(stationId);
|
||||
if (Objects.nonNull(preferentialBillingTemplate) && Objects.nonNull(result) ) {
|
||||
List<BillingDetailVO> billingDetailList = billingTemplateVO.getBillingDetailList();
|
||||
for (BillingDetailVO detailVO : billingDetailList) {
|
||||
List<String> applyTimeList = detailVO.getApplyTime();
|
||||
for (String applyTime : applyTimeList) {
|
||||
boolean b = DateUtils.checkTime(now + "-" + now, applyTime);
|
||||
if (b) {
|
||||
// 将桩的费率存入stationVO
|
||||
BigDecimal electricityPrice = detailVO.getElectricityPrice();
|
||||
BigDecimal servicePrice = detailVO.getServicePrice();
|
||||
result.setVipElectricityPrice(electricityPrice.toString());
|
||||
result.setVipServicePrice(servicePrice.toString());
|
||||
result.setVipTotalPrice(electricityPrice.add(servicePrice).toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// log.info("通过站点id查询当前时间的收费详情 stationId:{}, result:{}", stationId, JSON.toJSONString(result));
|
||||
return result;
|
||||
}
|
||||
@@ -477,6 +496,11 @@ public class PileBillingTemplateServiceImpl implements PileBillingTemplateServic
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据站点id查询优惠计费模板
|
||||
* @param stationId
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public BillingTemplateVO queryPreferentialBillingTemplate(String stationId) {
|
||||
return pileBillingTemplateMapper.queryPreferentialBillingTemplate(stationId);
|
||||
@@ -611,7 +635,7 @@ public class PileBillingTemplateServiceImpl implements PileBillingTemplateServic
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<BillingPriceVO> queryBillingPrice(String stationId) {
|
||||
public List<BillingPriceVO> queryBillingPriceOld(String stationId) {
|
||||
// 查询站点当前计费模板 有缓存
|
||||
BillingTemplateVO billingTemplateVO = queryUsedBillingTemplate(stationId);
|
||||
if (billingTemplateVO == null) {
|
||||
@@ -663,6 +687,85 @@ public class PileBillingTemplateServiceImpl implements PileBillingTemplateServic
|
||||
return resultList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BillingPriceVO> queryBillingPrice(String stationId) {
|
||||
// 查询站点当前计费模板 有缓存
|
||||
BillingTemplateVO billingTemplateVO = queryUsedBillingTemplate(stationId);
|
||||
if (billingTemplateVO == null) {
|
||||
return Lists.newArrayList();
|
||||
}
|
||||
|
||||
Map<String, BillingDetailVO> billingDetailVOMap = Maps.newHashMap();
|
||||
Map<String, BillingDetailVO> preferentialBillingDetailVOMap = Maps.newHashMap();
|
||||
|
||||
List<BillingDetailVO> billingDetailList = billingTemplateVO.getBillingDetailList();
|
||||
if (CollectionUtils.isNotEmpty(billingDetailList)) {
|
||||
billingDetailVOMap = billingDetailList.stream().collect(Collectors.toMap(BillingDetailVO::getTimeType, Function.identity(), (k1, k2) -> k1));
|
||||
}
|
||||
|
||||
// 查询站点的集团会员计费模板
|
||||
BillingTemplateVO preferentialBillingTemplate = queryPreferentialBillingTemplate(stationId);
|
||||
if (preferentialBillingTemplate != null) {
|
||||
List<BillingDetailVO> preferentialBillingDetailList = preferentialBillingTemplate.getBillingDetailList();
|
||||
if (CollectionUtils.isNotEmpty(preferentialBillingDetailList)) {
|
||||
preferentialBillingDetailVOMap = preferentialBillingDetailList.stream().collect(Collectors.toMap(BillingDetailVO::getTimeType, Function.identity(), (k1, k2) -> k1));
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
EchoBillingTemplateVO echoBillingTemplateVO = queryPileBillingTemplateById(Long.parseLong(billingTemplateVO.getTemplateId()));
|
||||
// 时段清单
|
||||
List<BillingTimeDTO> timeArray = echoBillingTemplateVO.getTimeArray();
|
||||
log.info("计费模板时段:{}", JSONObject.toJSONString(timeArray));
|
||||
|
||||
List<BillingPriceVO> resultList = Lists.newArrayList();
|
||||
for (BillingTimeDTO billingTimeDTO : timeArray) {
|
||||
BillingPriceVO vo = new BillingPriceVO();
|
||||
String type = billingTimeDTO.getType();
|
||||
|
||||
// 普通计费模板价格
|
||||
BillingDetailVO billingDetailVO = billingDetailVOMap.get(type);
|
||||
if (Objects.nonNull(billingDetailVO)) {
|
||||
// 电费
|
||||
vo.setElectricityPrice(billingDetailVO.getElectricityPrice().toString());
|
||||
// 服务费
|
||||
vo.setServicePrice(billingDetailVO.getServicePrice().toString());
|
||||
// 总费用
|
||||
vo.setTotalPrice(billingDetailVO.getElectricityPrice().add(billingDetailVO.getServicePrice()).toString());
|
||||
}
|
||||
|
||||
// 优惠计费模板价格
|
||||
BillingDetailVO preferentialBillingDetailVO = preferentialBillingDetailVOMap.get(type);
|
||||
if (Objects.nonNull(preferentialBillingDetailVO)) {
|
||||
// vip电费
|
||||
vo.setVipElectricityPrice(preferentialBillingDetailVO.getElectricityPrice().toString());
|
||||
// vip服务费
|
||||
vo.setVipServicePrice(preferentialBillingDetailVO.getServicePrice().toString());
|
||||
// vip总费用
|
||||
vo.setVipTotalPrice(preferentialBillingDetailVO.getElectricityPrice().add(preferentialBillingDetailVO.getServicePrice()).toString());
|
||||
}
|
||||
|
||||
// 计费模板id
|
||||
vo.setTemplateId(billingTemplateVO.getTemplateId());
|
||||
// 计费模板编号
|
||||
vo.setTemplateCode(billingTemplateVO.getTemplateCode());
|
||||
// 发布时间
|
||||
vo.setPublishTime(billingTemplateVO.getPublishTime());
|
||||
// 开始时间
|
||||
vo.setStartTime(billingTimeDTO.getStartTime());
|
||||
// 结束时间
|
||||
String endTime = StringUtils.equals("24:00", billingTimeDTO.getEndTime()) ? "23:59" : billingTimeDTO.getEndTime();
|
||||
vo.setEndTime(endTime);
|
||||
// 时段类型
|
||||
vo.setTimeType(type);
|
||||
// 是否当前时间
|
||||
boolean in = DateUtils.isIn(LocalTime.now(), LocalTime.parse(vo.getStartTime()), LocalTime.parse(vo.getEndTime()));
|
||||
vo.setIsCurrentTime(in ? Constants.ONE : Constants.ZERO);
|
||||
resultList.add(vo);
|
||||
}
|
||||
return resultList;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
// 21:30-23:00
|
||||
String startTime = "01:30";
|
||||
|
||||
@@ -510,6 +510,10 @@ public class PileStationInfoServiceImpl implements PileStationInfoService {
|
||||
stationVO.setTotalPrice(currentTimePriceDetails.getTotalPrice());
|
||||
stationVO.setFreeTime(currentTimePriceDetails.getFreeTime());
|
||||
stationVO.setOccupyFee(currentTimePriceDetails.getOccupyFee());
|
||||
// vip价
|
||||
stationVO.setVipElectricityPrice(currentTimePriceDetails.getVipElectricityPrice());
|
||||
stationVO.setVipServicePrice(currentTimePriceDetails.getVipServicePrice());
|
||||
stationVO.setVipTotalPrice(currentTimePriceDetails.getVipTotalPrice());
|
||||
}
|
||||
stationVOList.add(stationVO);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user