mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-20 11:05:18 +08:00
update 电单车
This commit is contained in:
@@ -69,7 +69,7 @@ public class JumpController extends BaseController {
|
||||
}
|
||||
|
||||
// 如果pileSN长度为8位需要解析一下
|
||||
if (pileSn.length() == 8) {
|
||||
if (YouDianUtils.isEBikePileSn(pileSn)) {
|
||||
pileSn = YouDianUtils.resolvePhysicalId(pileSn);
|
||||
}
|
||||
|
||||
@@ -107,7 +107,7 @@ public class JumpController extends BaseController {
|
||||
}
|
||||
|
||||
// 如果pileSN长度为8位需要解析一下
|
||||
if (pileSn.length() == 8) {
|
||||
if (YouDianUtils.isEBikePileSn(pileSn)) {
|
||||
pileSn = YouDianUtils.resolvePhysicalId(pileSn);
|
||||
}
|
||||
|
||||
|
||||
@@ -13,6 +13,22 @@ import java.util.Arrays;
|
||||
@Slf4j
|
||||
public class YouDianUtils {
|
||||
|
||||
public static boolean isEBikePileSn(String pileSn) {
|
||||
// 判断是否为电单车桩号, 电单车pileSn长度为8, 前6位是十六进制, 尾部是07
|
||||
if (pileSn.length() == 8 && pileSn.endsWith("07")) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
String pileSN = "15540507";
|
||||
if (isEBikePileSn(pileSN)) {
|
||||
pileSN = resolvePhysicalId(pileSN);
|
||||
}
|
||||
System.out.println(pileSN);
|
||||
}
|
||||
|
||||
/**
|
||||
* 解析物理id
|
||||
* 电单车二维码地址:https://api.jsowellcloud.com/app-xcx-h5/pile/pileDetail/1921ed07/ff
|
||||
@@ -23,7 +39,12 @@ public class YouDianUtils {
|
||||
public static String resolvePhysicalId(String pileSN) {
|
||||
byte[] bytes = BytesUtil.str2Bcd(pileSN);
|
||||
int i = convertToPhysicalId(bytes);
|
||||
return i + "";
|
||||
String resolvedPhysicalID = String.valueOf(i);
|
||||
if (resolvedPhysicalID.length() < 8) {
|
||||
// 转换完成后长度小于8, 返回原字符串
|
||||
return pileSN;
|
||||
}
|
||||
return resolvedPhysicalID;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -767,20 +767,31 @@ public abstract class AbstractProgramLogic implements InitializingBean {
|
||||
|
||||
/**
|
||||
* 计算余额支付下发金额
|
||||
* xixiao在用
|
||||
*/
|
||||
protected Map<String, BigDecimal> calculateTheAmount(MemberVO memberVO) {
|
||||
return calculateTheAmount(memberVO, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算余额支付下发金额
|
||||
*/
|
||||
protected Map<String, BigDecimal> calculateTheAmount(MemberVO memberVO, BigDecimal payAmount) {
|
||||
BigDecimal principalBalancePay;
|
||||
BigDecimal giftBalancePay;
|
||||
BigDecimal totalAccountAmount = memberVO.getTotalBalance();
|
||||
// 余额支付最大下发200
|
||||
// 余额支付默认金额200
|
||||
BigDecimal defaultAmount = Constants.BALANCE_PAY_MAX_AMOUNT;
|
||||
if (payAmount != null) {
|
||||
defaultAmount = payAmount;
|
||||
}
|
||||
if (totalAccountAmount.compareTo(defaultAmount) < 0) {
|
||||
// 总余额小于200,下发全部余额
|
||||
// 总余额小于默认金额,下发全部余额
|
||||
principalBalancePay = memberVO.getPrincipalBalance(); // 本金余额全部支付
|
||||
giftBalancePay = memberVO.getGiftBalance(); // 赠送金额全部支付
|
||||
} else {
|
||||
// 总余额大于200,下发200
|
||||
principalBalancePay = defaultAmount.min(memberVO.getPrincipalBalance()); // 本金余额与200取最小值
|
||||
// 总余额大于默认金额
|
||||
principalBalancePay = defaultAmount.min(memberVO.getPrincipalBalance()); // 本金余额与默认金额取最小值
|
||||
giftBalancePay = defaultAmount.subtract(principalBalancePay); // defaultAmount - principalBalancePay 为赠送金支付金额
|
||||
}
|
||||
Map<String, BigDecimal> resultMap = Maps.newHashMap();
|
||||
|
||||
@@ -330,7 +330,7 @@ public class DelayMerchantProgramLogic extends AbstractProgramLogic {
|
||||
// 赠送金支付金额
|
||||
BigDecimal giftBalancePay = BigDecimal.ZERO;
|
||||
// 计算下发金额
|
||||
Map<String, BigDecimal> stringBigDecimalMap = calculateTheAmount(memberVO);
|
||||
Map<String, BigDecimal> stringBigDecimalMap = calculateTheAmount(memberVO, chargeAmount);
|
||||
if (stringBigDecimalMap != null) {
|
||||
principalBalancePay = stringBigDecimalMap.get("principalBalancePay");
|
||||
giftBalancePay = stringBigDecimalMap.get("giftBalancePay");
|
||||
|
||||
Reference in New Issue
Block a user