update 电单车查询收费标准

This commit is contained in:
Lemon
2025-12-15 10:06:15 +08:00
parent 5b959eca97
commit 819785667e
3 changed files with 68 additions and 26 deletions

View File

@@ -211,4 +211,6 @@ public interface PileBillingTemplateService {
* 查询优惠计费模板 * 查询优惠计费模板
*/ */
BillingTemplateVO queryPreferentialBillingTemplate(String stationId); BillingTemplateVO queryPreferentialBillingTemplate(String stationId);
CurrentTimePriceDetails getCurrentTimePriceDetailsForEBike(String stationId);
} }

View File

@@ -4,7 +4,6 @@ import com.alibaba.fastjson2.JSON;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.google.common.primitives.Bytes; import com.google.common.primitives.Bytes;
import com.jsowell.common.YouDianUtils;
import com.jsowell.common.constant.CacheConstants; import com.jsowell.common.constant.CacheConstants;
import com.jsowell.common.constant.Constants; import com.jsowell.common.constant.Constants;
import com.jsowell.common.core.domain.vo.AuthorizedDeptVO; import com.jsowell.common.core.domain.vo.AuthorizedDeptVO;
@@ -17,7 +16,6 @@ import com.jsowell.common.util.id.Seq;
import com.jsowell.pile.domain.*; import com.jsowell.pile.domain.*;
import com.jsowell.pile.dto.BillingTimeDTO; import com.jsowell.pile.dto.BillingTimeDTO;
import com.jsowell.pile.dto.CreateOrUpdateBillingTemplateDTO; import com.jsowell.pile.dto.CreateOrUpdateBillingTemplateDTO;
import com.jsowell.pile.dto.ImportBillingTemplateDTO;
import com.jsowell.pile.mapper.PileBillingTemplateMapper; import com.jsowell.pile.mapper.PileBillingTemplateMapper;
import com.jsowell.pile.service.MemberGroupService; import com.jsowell.pile.service.MemberGroupService;
import com.jsowell.pile.service.PileBillingTemplateService; import com.jsowell.pile.service.PileBillingTemplateService;
@@ -433,15 +431,36 @@ public class PileBillingTemplateServiceImpl implements PileBillingTemplateServic
* *
* @param stationId 站点id * @param stationId 站点id
*/ */
// @Override @Override
public CurrentTimePriceDetails getCurrentTimePriceDetailsForEBike(String stationId) { public CurrentTimePriceDetails getCurrentTimePriceDetailsForEBike(String stationId) {
CurrentTimePriceDetails result = new CurrentTimePriceDetails(); CurrentTimePriceDetails result = null;
// 查询当前时段电费
LocalTime localTime = LocalTime.now();
String now = LocalTime.of(localTime.getHour(), localTime.getMinute(), localTime.getSecond()).toString();
// 通过站点id查询计费模板 // 通过站点id查询计费模板
BillingTemplateVO billingTemplateVO = queryUsedBillingTemplateForEBike(stationId); BillingTemplateVO billingTemplateVO = queryUsedBillingTemplateForEBike(stationId);
if (billingTemplateVO !=null){ if (Objects.nonNull(billingTemplateVO)) {
result.setTotalPrice(String.valueOf(billingTemplateVO.getFlatElectricityPrice())); result = new CurrentTimePriceDetails();
result.setTemplateCode(billingTemplateVO.getTemplateCode());
result.setStationId(stationId);
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();
for (String applyTime : applyTimeList) {
boolean b = DateUtils.checkTime(now + "-" + now, applyTime);
if (b) {
// 将桩的费率存入stationVO
BigDecimal electricityPrice = detailVO.getElectricityPrice();
BigDecimal servicePrice = detailVO.getServicePrice();
result.setElectricityPrice(electricityPrice.toString());
result.setServicePrice(servicePrice.toString());
result.setTotalPrice(electricityPrice.add(servicePrice).toString());
}
}
} }
return result;
} }
@@ -451,22 +470,22 @@ public class PileBillingTemplateServiceImpl implements PileBillingTemplateServic
* @param pileSn * @param pileSn
* @return * @return
*/ */
@Override // @Override
public CurrentTimePriceDetails getCurrentTimePriceDetailsByPileType(String stationId , String pileSn) { // public CurrentTimePriceDetails getCurrentTimePriceDetailsByPileType(String stationId , String pileSn) {
// 使用工具类判断是否为电单车桩 // // 使用工具类判断是否为电单车桩
// boolean isEBike = YouDianUtils.isEBikePileSn(pileSn); // // boolean isEBike = YouDianUtils.isEBikePileSn(pileSn);
// 判断桩号是否为汽车桩号 // // 判断桩号是否为汽车桩号
Boolean result = YKCUtils.checkEVPileSn(pileSn); // Boolean result = YKCUtils.checkEVPileSn(pileSn);
//
if (result) { // if (result) {
log.info("走电动汽车逻辑"); // log.info("走电动汽车逻辑");
// 电动汽车:调用电动汽车计费模板查询方法 // // 电动汽车:调用电动汽车计费模板查询方法
return getCurrentTimePriceDetails(stationId); // return getCurrentTimePriceDetails(stationId);
} else { // } else {
log.info("走电单车方法"); // log.info("走电单车方法");
// 电单车:调用电单车计费模板查询方法 // // 电单车:调用电单车计费模板查询方法
return getCurrentTimePriceDetailsForEBike(stationId); // return getCurrentTimePriceDetailsForEBike(stationId);
} // }
} }

View File

@@ -13,6 +13,7 @@ import com.jsowell.common.enums.ykc.ReturnCodeEnum;
import com.jsowell.common.exception.BusinessException; import com.jsowell.common.exception.BusinessException;
import com.jsowell.common.util.DateUtils; import com.jsowell.common.util.DateUtils;
import com.jsowell.common.util.StringUtils; import com.jsowell.common.util.StringUtils;
import com.jsowell.common.util.YKCUtils;
import com.jsowell.common.util.http.HttpUtils; import com.jsowell.common.util.http.HttpUtils;
import com.jsowell.pile.domain.MemberBasicInfo; import com.jsowell.pile.domain.MemberBasicInfo;
import com.jsowell.pile.domain.OrderBasicInfo; import com.jsowell.pile.domain.OrderBasicInfo;
@@ -21,6 +22,7 @@ import com.jsowell.pile.service.OrderBasicInfoService;
import com.jsowell.pile.service.PileBillingTemplateService; import com.jsowell.pile.service.PileBillingTemplateService;
import com.jsowell.pile.vo.uniapp.customer.CurrentTimePriceDetails; import com.jsowell.pile.vo.uniapp.customer.CurrentTimePriceDetails;
import com.jsowell.pile.vo.uniapp.customer.SendMessageVO; import com.jsowell.pile.vo.uniapp.customer.SendMessageVO;
import com.jsowell.pile.vo.web.BillingTemplateVO;
import com.jsowell.wxpay.config.WeixinLoginProperties; import com.jsowell.wxpay.config.WeixinLoginProperties;
import com.jsowell.wxpay.dto.AppletTemplateMessageSendDTO; import com.jsowell.wxpay.dto.AppletTemplateMessageSendDTO;
import com.jsowell.wxpay.dto.WechatSendMsgDTO; import com.jsowell.wxpay.dto.WechatSendMsgDTO;
@@ -239,9 +241,28 @@ public class WxAppletRemoteService {
startChargingMessage.setStationName(sendMessageVO.getStationName()); // 站点名称 startChargingMessage.setStationName(sendMessageVO.getStationName()); // 站点名称
// 订单编号 // 订单编号
startChargingMessage.setOrderCode(sendMessageVO.getOrderCode()); String orderCode = sendMessageVO.getOrderCode();
startChargingMessage.setOrderCode(orderCode);
// 查询订单信息
OrderBasicInfo orderBasicInfo = orderBasicInfoService.getOrderInfoByOrderCode(orderCode);
if (orderBasicInfo == null) {
return null;
}
String pileSn = orderBasicInfo.getPileSn();
Boolean result = YKCUtils.checkEVPileSn(pileSn);
// 收费标准 // 收费标准
CurrentTimePriceDetails currentTimePriceDetails = pileBillingTemplateService.getCurrentTimePriceDetailsByPileType(sendMessageVO.getStationId(),sendMessageVO.getPileSn()); CurrentTimePriceDetails currentTimePriceDetails = new CurrentTimePriceDetails();
if (result) {
// 查询电动汽车收费标准
currentTimePriceDetails = pileBillingTemplateService.getCurrentTimePriceDetails(sendMessageVO.getStationId());
}else {
// 查询电单车收费标准
currentTimePriceDetails = pileBillingTemplateService.getCurrentTimePriceDetailsForEBike(sendMessageVO.getStationId());
}
// 收费标准
// CurrentTimePriceDetails currentTimePriceDetails = pileBillingTemplateService.getCurrentTimePriceDetailsByPileType(sendMessageVO.getStationId(),sendMessageVO.getPileSn());
startChargingMessage.setTotalPrice(currentTimePriceDetails.getTotalPrice() + " 元/度"); startChargingMessage.setTotalPrice(currentTimePriceDetails.getTotalPrice() + " 元/度");
// 枪口编号 // 枪口编号