mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-05-05 18:40:14 +08:00
实时分账
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
package com.jsowell.adapay.common;
|
package com.jsowell.adapay.common;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
@@ -10,14 +11,18 @@ import lombok.Setter;
|
|||||||
@Setter
|
@Setter
|
||||||
public class DivMember {
|
public class DivMember {
|
||||||
// 分账用户 Member对象 的 id;若是商户本身时,传入0
|
// 分账用户 Member对象 的 id;若是商户本身时,传入0
|
||||||
private String member_id;
|
@JsonProperty(value = "member_id")
|
||||||
|
private String memberId;
|
||||||
|
|
||||||
// 分账金额,精确到分,如0.50,1.00等,分账总金额必须等于主交易金额,金额不能为0.00
|
// 分账金额,精确到分,如0.50,1.00等,分账总金额必须等于主交易金额,金额不能为0.00
|
||||||
|
@JsonProperty(value = "amount")
|
||||||
private String amount;
|
private String amount;
|
||||||
|
|
||||||
// 是否手续费承担方,N-否,Y-是,手续费承担方有且只能有一个
|
// 是否手续费承担方,N-否,Y-是,手续费承担方有且只能有一个
|
||||||
private String fee_flag;
|
@JsonProperty(value = "fee_flag")
|
||||||
|
private String feeFlag;
|
||||||
|
|
||||||
// 控制台 主页面应用的app_id,不上送默认取商户自身app_id
|
// 控制台 主页面应用的app_id,不上送默认取商户自身app_id
|
||||||
private String app_id;
|
@JsonProperty(value = "app_id")
|
||||||
|
private String appId;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -975,9 +975,9 @@ public class AdapayService {
|
|||||||
confirmParams.put("description", jsonObject.toJSONString());
|
confirmParams.put("description", jsonObject.toJSONString());
|
||||||
// 分账对象信息 一次最多7个
|
// 分账对象信息 一次最多7个
|
||||||
DivMember divMember = new DivMember();
|
DivMember divMember = new DivMember();
|
||||||
divMember.setMember_id(adapayMemberAccount.getAdapayMemberId());
|
divMember.setMemberId(adapayMemberAccount.getAdapayMemberId());
|
||||||
divMember.setAmount(AdapayUtil.formatAmount(confirmAmt));
|
divMember.setAmount(AdapayUtil.formatAmount(confirmAmt));
|
||||||
divMember.setFee_flag(Constants.Y);
|
divMember.setFeeFlag(Constants.Y);
|
||||||
confirmParams.put("div_members", Lists.newArrayList(divMember));
|
confirmParams.put("div_members", Lists.newArrayList(divMember));
|
||||||
Map<String, Object> paymentConfirm = null;
|
Map<String, Object> paymentConfirm = null;
|
||||||
try {
|
try {
|
||||||
@@ -1012,7 +1012,7 @@ public class AdapayService {
|
|||||||
// 确认金额,必须大于0,保留两位小数点,如0.10、100.05等。必须小于等于原支付金额-已确认金额-已撤销金额。
|
// 确认金额,必须大于0,保留两位小数点,如0.10、100.05等。必须小于等于原支付金额-已确认金额-已撤销金额。
|
||||||
confirmParams.put("confirm_amt", AdapayUtil.formatAmount(confirmAmt));
|
confirmParams.put("confirm_amt", AdapayUtil.formatAmount(confirmAmt));
|
||||||
// 参与分账的会员列表
|
// 参与分账的会员列表
|
||||||
List<String> collect = adapayMemberAccounts.stream().map(DivMember::getMember_id).collect(Collectors.toList());
|
List<String> collect = adapayMemberAccounts.stream().map(DivMember::getMemberId).collect(Collectors.toList());
|
||||||
// 附加说明
|
// 附加说明
|
||||||
JSONObject jsonObject = new JSONObject();
|
JSONObject jsonObject = new JSONObject();
|
||||||
jsonObject.put("orderCode", orderCode);
|
jsonObject.put("orderCode", orderCode);
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ public class StartChargingCommand {
|
|||||||
private String connectorCode;
|
private String connectorCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 充电金额
|
* 充电金额(元)
|
||||||
*/
|
*/
|
||||||
private BigDecimal chargeAmount;
|
private BigDecimal chargeAmount;
|
||||||
|
|
||||||
|
|||||||
@@ -17,14 +17,15 @@ import io.netty.channel.ChannelHandlerContext;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
public class EBikeSendCommandServiceImpl implements EBikeSendCommandService {
|
public class EBikeSendCommandServiceImpl implements EBikeSendCommandService {
|
||||||
|
|
||||||
// 过载功率, 单位0.1W, 2450 * 0.1 = 2450W
|
// 过载功率, 单位0.1W
|
||||||
private final int OVER_LOAD_POWER = 2450;
|
private final int OVER_LOAD_POWER = 9000;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 电单车发送启动充电指令
|
* 电单车发送启动充电指令
|
||||||
@@ -47,8 +48,9 @@ public class EBikeSendCommandServiceImpl implements EBikeSendCommandService {
|
|||||||
EBikeMessageCmd82.SpecificData data = new EBikeMessageCmd82.SpecificData();
|
EBikeMessageCmd82.SpecificData data = new EBikeMessageCmd82.SpecificData();
|
||||||
// 充电模式
|
// 充电模式
|
||||||
data.setRateMode(3);
|
data.setRateMode(3);
|
||||||
// 余额或有效期
|
// 余额(分)或有效期
|
||||||
data.setBalanceOrValidity(1234);
|
int balance = command.getChargeAmount().multiply(new BigDecimal("100")).intValue();
|
||||||
|
data.setBalanceOrValidity(balance);
|
||||||
// 端口号
|
// 端口号
|
||||||
data.setPortNumber(Integer.parseInt(connectorCode));
|
data.setPortNumber(Integer.parseInt(connectorCode));
|
||||||
// 充电命令
|
// 充电命令
|
||||||
|
|||||||
@@ -3165,24 +3165,6 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
|
|||||||
logger.info("订单:{}支付成功, 发送启动指令", dto.getOrderCode());
|
logger.info("订单:{}支付成功, 发送启动指令", dto.getOrderCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 异步发送预约充电指令
|
|
||||||
*/
|
|
||||||
// if (StringUtils.equals(orderInfo.getStartType(), StartTypeEnum.RESERVED.getValue())) {
|
|
||||||
// ReservationChargingCommand command = ReservationChargingCommand.builder()
|
|
||||||
// .transactionCode(orderInfo.getTransactionCode())
|
|
||||||
// .pileSn(orderInfo.getPileSn())
|
|
||||||
// .connectorCode(orderInfo.getConnectorCode())
|
|
||||||
// .operation(BytesUtil.bcd2Str(new byte[]{0x01}))
|
|
||||||
// .reservedStartTime(orderInfo.getReservedStartTime())
|
|
||||||
// .reservedEndTime(orderInfo.getReservedEndTime())
|
|
||||||
// .amount(new BigDecimal(Constants.FIVE_HUNDRED))
|
|
||||||
// .build();
|
|
||||||
// // 发送预约充电指令
|
|
||||||
// logger.info("订单:{}支付成功, 发送预约充电指令, command:{}", dto.getOrderCode(), JSON.toJSONString(command));
|
|
||||||
// pileRemoteService.reservationCharging(command);
|
|
||||||
// }
|
|
||||||
|
|
||||||
if (OrderStatusEnum.STAY_RETROACTIVE_AMOUNT.getValue().equals(orderInfo.getOrderStatus())) {
|
if (OrderStatusEnum.STAY_RETROACTIVE_AMOUNT.getValue().equals(orderInfo.getOrderStatus())) {
|
||||||
// 如果订单状态是待补缴,表示已经停止充电了,需要补缴费用,补缴完成订单状态改为订单完成,设置结算时间
|
// 如果订单状态是待补缴,表示已经停止充电了,需要补缴费用,补缴完成订单状态改为订单完成,设置结算时间
|
||||||
orderInfo.setOrderStatus(OrderStatusEnum.ORDER_COMPLETE.getValue());
|
orderInfo.setOrderStatus(OrderStatusEnum.ORDER_COMPLETE.getValue());
|
||||||
|
|||||||
Reference in New Issue
Block a user