mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-25 13:35:15 +08:00
Merge branch 'dev' into dev-g
This commit is contained in:
@@ -109,4 +109,17 @@ public interface AdapayMemberAccountService {
|
||||
* @return
|
||||
*/
|
||||
String selectMerchantNameByAdapayMemberId(String adapayMemberId);
|
||||
|
||||
/**
|
||||
* 根据运营商id删除记录
|
||||
* @param merchantId
|
||||
*/
|
||||
void deleteAccountByMerchantId(String merchantId);
|
||||
|
||||
/**
|
||||
* 根据运营商Id查询最近一条的信息
|
||||
* @param merchantId
|
||||
* @return
|
||||
*/
|
||||
AdapayMemberAccount selectRecentInfoByMerchantId(String merchantId);
|
||||
}
|
||||
|
||||
@@ -566,4 +566,11 @@ public interface OrderBasicInfoService{
|
||||
* @param dto
|
||||
*/
|
||||
void setOrderSupplementAmount(OrderSupplementAmountDTO dto);
|
||||
|
||||
/**
|
||||
* 鉴权并充订单
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
Map<String, Object> verifyMergeChargeOrder(VerifyMergeChargeOrderDTO dto) throws Exception;
|
||||
}
|
||||
|
||||
@@ -278,44 +278,44 @@ public class PileRemoteService {
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
public boolean publishBillingTemplateOld(PublishBillingTemplateDTO dto) {
|
||||
// 获取计费模板信息
|
||||
BillingTemplateVO billingTemplateVO = pileBillingTemplateService.selectBillingTemplateByTemplateId(dto.getTemplateId());
|
||||
if (billingTemplateVO == null) {
|
||||
log.warn("获取计费模板信息, 通过模板id:{}查询计费模板为null", dto.getTemplateId());
|
||||
return false;
|
||||
}
|
||||
// 会员优惠计费模板不发布
|
||||
if (Constants.ONE.equals(billingTemplateVO.getMemberFlag())) {
|
||||
return false;
|
||||
}
|
||||
// 电单车计费模板不发布
|
||||
if (Constants.TWO.equals(billingTemplateVO.getDeviceType())) {
|
||||
return false;
|
||||
}
|
||||
// 更新计费模板的发布时间
|
||||
PileBillingTemplate pileBillingTemplate = new PileBillingTemplate();
|
||||
pileBillingTemplate.setId(Long.valueOf(billingTemplateVO.getTemplateId()));
|
||||
pileBillingTemplate.setPublishTime(new Date());
|
||||
pileBillingTemplateService.updatePileBillingTemplate(pileBillingTemplate);
|
||||
// 获取到站点下所有的桩
|
||||
List<PileDetailVO> pileList = pileBasicInfoService.selectPileListByStationIds(Lists.newArrayList(Long.valueOf(dto.getStationId())));
|
||||
if (CollectionUtils.isNotEmpty(pileList)) {
|
||||
// 删除缓存
|
||||
List<String> collect = pileList.parallelStream()
|
||||
.map(vo -> CacheConstants.BILLING_TEMPLATE_BY_PILE_SN + vo.getPileSn())
|
||||
.collect(Collectors.toList());
|
||||
redisCache.deleteObject(collect);
|
||||
// 下发计费模板, 电单车不支持
|
||||
if (StringUtils.equals(billingTemplateVO.getDeviceType(), Constants.ONE)) {
|
||||
// 下发指令
|
||||
pileList.parallelStream().forEach(pileInfoVO -> publishPileBillingTemplate(pileInfoVO.getPileSn(), billingTemplateVO));
|
||||
}
|
||||
}
|
||||
// 修改计费模板状态
|
||||
pileBillingTemplateService.changeStationTemplate(dto.getStationId(), dto.getTemplateId(), billingTemplateVO.getDeviceType(), billingTemplateVO.getMemberFlag());
|
||||
return true;
|
||||
}
|
||||
// public boolean publishBillingTemplateOld(PublishBillingTemplateDTO dto) {
|
||||
// // 获取计费模板信息
|
||||
// BillingTemplateVO billingTemplateVO = pileBillingTemplateService.selectBillingTemplateByTemplateId(dto.getTemplateId());
|
||||
// if (billingTemplateVO == null) {
|
||||
// log.warn("获取计费模板信息, 通过模板id:{}查询计费模板为null", dto.getTemplateId());
|
||||
// return false;
|
||||
// }
|
||||
// // 会员优惠计费模板不发布
|
||||
// if (Constants.ONE.equals(billingTemplateVO.getMemberFlag())) {
|
||||
// return false;
|
||||
// }
|
||||
// // 电单车计费模板不发布
|
||||
// if (Constants.TWO.equals(billingTemplateVO.getDeviceType())) {
|
||||
// return false;
|
||||
// }
|
||||
// // 更新计费模板的发布时间
|
||||
// PileBillingTemplate pileBillingTemplate = new PileBillingTemplate();
|
||||
// pileBillingTemplate.setId(Long.valueOf(billingTemplateVO.getTemplateId()));
|
||||
// pileBillingTemplate.setPublishTime(new Date());
|
||||
// pileBillingTemplateService.updatePileBillingTemplate(pileBillingTemplate);
|
||||
// // 获取到站点下所有的桩
|
||||
// List<PileDetailVO> pileList = pileBasicInfoService.selectPileListByStationIds(Lists.newArrayList(Long.valueOf(dto.getStationId())));
|
||||
// if (CollectionUtils.isNotEmpty(pileList)) {
|
||||
// // 删除缓存
|
||||
// List<String> collect = pileList.parallelStream()
|
||||
// .map(vo -> CacheConstants.BILLING_TEMPLATE_BY_PILE_SN + vo.getPileSn())
|
||||
// .collect(Collectors.toList());
|
||||
// redisCache.deleteObject(collect);
|
||||
// // 下发计费模板, 电单车不支持
|
||||
// if (StringUtils.equals(billingTemplateVO.getDeviceType(), Constants.ONE)) {
|
||||
// // 下发指令
|
||||
// pileList.parallelStream().forEach(pileInfoVO -> publishPileBillingTemplate(pileInfoVO.getPileSn(), billingTemplateVO));
|
||||
// }
|
||||
// }
|
||||
// // 修改计费模板状态
|
||||
// pileBillingTemplateService.changeStationTemplate(dto.getStationId(), dto.getTemplateId(), billingTemplateVO.getDeviceType(), billingTemplateVO.getMemberFlag());
|
||||
// return true;
|
||||
// }
|
||||
|
||||
/**
|
||||
* 下发计费模板
|
||||
|
||||
@@ -259,5 +259,19 @@ public class AdapayMemberAccountServiceImpl implements AdapayMemberAccountServic
|
||||
return pileMerchantInfo.getMerchantName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteAccountByMerchantId(String merchantId) {
|
||||
adapayMemberAccountMapper.deleteAccountByMerchantId(merchantId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据运营商id查询最近一条的信息
|
||||
* @param merchantId
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public AdapayMemberAccount selectRecentInfoByMerchantId(String merchantId) {
|
||||
return adapayMemberAccountMapper.selectRecentInfoByMerchantId(merchantId);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4558,6 +4558,12 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
|
||||
*/
|
||||
@Override
|
||||
public OrderBasicInfo saveOrderForEV(GenerateOrderDTO dto) throws ParseException {
|
||||
String pileConnectorCode = dto.getPileSn() + dto.getConnectorCode();
|
||||
// 先根据枪口号查询是否有未启动的并充订单
|
||||
OrderBasicInfo orderBasicInfo = selectNotStartMergeOrder(pileConnectorCode);
|
||||
if (orderBasicInfo != null) {
|
||||
return orderBasicInfo;
|
||||
}
|
||||
String orderCode = generateNewOrderCode();
|
||||
String transactionCode = dto.getTransactionCode();
|
||||
if (StringUtils.isBlank(transactionCode)) {
|
||||
@@ -4574,16 +4580,17 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
|
||||
String merchantId = pileStationInfo != null ? String.valueOf(pileStationInfo.getMerchantId()) : "";
|
||||
String plateNumber = dto.getPlateNumber() != null ? dto.getPlateNumber() : "";
|
||||
// 订单基本信息
|
||||
OrderBasicInfo orderBasicInfo = OrderBasicInfo.builder()
|
||||
orderBasicInfo = OrderBasicInfo.builder()
|
||||
.orderCode(orderCode)
|
||||
.transactionCode(transactionCode)
|
||||
.orderStatus(OrderStatusEnum.NOT_START.getValue())
|
||||
.orderType(OrderTypeEnum.NORMAL_ORDER.getValue()) // 订单类型(1-普通订单;2-并充订单)
|
||||
.memberId(dto.getMemberId())
|
||||
.stationId(stationId)
|
||||
.merchantId(merchantId)
|
||||
.pileSn(dto.getPileSn())
|
||||
.connectorCode(dto.getConnectorCode())
|
||||
.pileConnectorCode(dto.getPileSn() + dto.getConnectorCode())
|
||||
.pileConnectorCode(pileConnectorCode)
|
||||
.startMode(dto.getStartMode())
|
||||
.payStatus(Constants.ZERO)
|
||||
// .payAmount(dto.getChargeAmount()) // 支付完成后填入支付金额
|
||||
@@ -4594,6 +4601,18 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
|
||||
.settleAmount(BigDecimal.ZERO)
|
||||
.startType(dto.getStartType())
|
||||
.build();
|
||||
if (StringUtils.equals(OrderTypeEnum.MERGE_CHARGE_ORDER.getValue(), dto.getOrderType())) {
|
||||
// 并充订单
|
||||
orderBasicInfo.setOrderType(dto.getOrderType());
|
||||
if (StringUtils.isNotBlank(dto.getMergeChargeNumber())) {
|
||||
// 并充订单序号
|
||||
orderBasicInfo.setMergeChargeNumber(dto.getMergeChargeNumber());
|
||||
}
|
||||
if (StringUtils.isNotBlank(dto.getMainConnectorCode())) {
|
||||
// 主枪枪编号
|
||||
orderBasicInfo.setMainConnectorCode(dto.getMainConnectorCode());
|
||||
}
|
||||
}
|
||||
if (StringUtils.equals(dto.getStartMode(), StartModeEnum.AUTH_CARD.getValue())) {
|
||||
// 鉴权卡启动
|
||||
orderBasicInfo.setLogicCard(dto.getPileAuthCardInfo().getLogicCard());
|
||||
@@ -4668,6 +4687,19 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
|
||||
return orderBasicInfo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询未启动的并充订单
|
||||
* @param pileConnectorCode
|
||||
* @return
|
||||
*/
|
||||
private OrderBasicInfo selectNotStartMergeOrder(String pileConnectorCode) {
|
||||
OrderBasicInfo orderBasicInfo = new OrderBasicInfo();
|
||||
orderBasicInfo.setOrderType(OrderTypeEnum.MERGE_CHARGE_ORDER.getValue());
|
||||
orderBasicInfo.setOrderStatus(OrderStatusEnum.NOT_START.getValue());
|
||||
orderBasicInfo.setPileConnectorCode(pileConnectorCode);
|
||||
return getOrderBasicInfo(orderBasicInfo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存电单车订单信息
|
||||
* @param dto
|
||||
@@ -5158,5 +5190,55 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
|
||||
logger.info("设置订单待补缴金额, orderCode:{}, supplementAmount:{}, 备注:{}", dto.getOrderCode(), dto.getSupplementAmount(), dto.getRemark());
|
||||
}
|
||||
|
||||
/**
|
||||
* 鉴权并充订单
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> verifyMergeChargeOrder(VerifyMergeChargeOrderDTO dto) throws Exception {
|
||||
Map<String, Object> map = new LinkedHashMap<>();
|
||||
|
||||
GenerateOrderDTO generateOrderDTO = new GenerateOrderDTO();
|
||||
generateOrderDTO.setPileSn(dto.getPileSn());
|
||||
generateOrderDTO.setConnectorCode(dto.getConnectorCode());
|
||||
generateOrderDTO.setMergeChargeNumber(dto.getMergeChargeNumber());
|
||||
|
||||
// 判断是否为主枪
|
||||
if (StringUtils.equals(Constants.DOUBLE_ZERO, dto.getConnectorMark())) {
|
||||
// 主枪
|
||||
generateOrderDTO.setMainConnectorCode(dto.getPileConnectorCode());
|
||||
}
|
||||
// 区分是卡还是vin充电
|
||||
String startMode = dto.getStartMode();
|
||||
if (StringUtils.equals(Constants.ZERO_ONE, startMode)) {
|
||||
// 刷卡鉴权
|
||||
// 根据卡号查询用户信息
|
||||
String physicsCard = dto.getPhysicsCard();
|
||||
PileAuthCard pileAuthCardInfo = pileAuthCardService.selectCardInfoByLogicCard(physicsCard);
|
||||
if (pileAuthCardInfo == null) {
|
||||
// 未查到此卡信息
|
||||
throw new BusinessException(ReturnCodeEnum.CODE_THIS_CARD_HAS_NO_INFO);
|
||||
}
|
||||
generateOrderDTO.setPileAuthCardInfo(pileAuthCardInfo);
|
||||
generateOrderDTO.setStartMode(StartModeEnum.AUTH_CARD.getValue());
|
||||
generateOrderDTO.setMemberId(pileAuthCardInfo.getMemberId());
|
||||
}else if (StringUtils.equals(Constants.ZERO_THREE, startMode)) {
|
||||
// vin鉴权
|
||||
// 根据vin查询绑定用户信息
|
||||
String vinCode = dto.getVinCode();
|
||||
MemberPlateNumberRelation memberInfo = memberPlateNumberRelationService.getMemberPlateInfoByVinCode(vinCode);
|
||||
if (memberInfo == null) {
|
||||
throw new BusinessException(ReturnCodeEnum.CODE_THIS_VIN_INFO_IS_NULL);
|
||||
}
|
||||
generateOrderDTO.setMemberPlateNumberRelation(memberInfo);
|
||||
generateOrderDTO.setStartMode(StartModeEnum.VIN_CODE.getValue());
|
||||
generateOrderDTO.setMemberId(memberInfo.getMemberId());
|
||||
}
|
||||
// 鉴权通过,生成订单启动充电
|
||||
map = generateOrderByCard(generateOrderDTO);
|
||||
|
||||
return map;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user