todo: 余额不足发短信
This commit is contained in:
parent
f609fb861b
commit
34e5f7d88b
@ -13,6 +13,7 @@ public class StartChargingData {
|
||||
private String gunId; //枪号
|
||||
@Min(value = 5, message = "账户余额不能小于5")
|
||||
private Integer balance; //账户余额(精度:小数点后2位)=实际金额(元)×100
|
||||
private String tel;
|
||||
private String logicCardNo = "0000000000000000"; //逻辑卡号 16进制,无需补零
|
||||
private String physicCardNo = "0000000000000000"; //物理卡号 同上
|
||||
private String version = "0A"; //协议版本号(0A)
|
||||
@ -57,6 +58,16 @@ public class StartChargingData {
|
||||
this.balance = balance;
|
||||
}
|
||||
|
||||
public String getTel() {
|
||||
|
||||
return tel;
|
||||
}
|
||||
|
||||
public void setTel(String tel) {
|
||||
|
||||
this.tel = tel;
|
||||
}
|
||||
|
||||
public String getLogicCardNo() {
|
||||
|
||||
return logicCardNo;
|
||||
|
||||
@ -3,6 +3,7 @@ package com.xhpc.common.data.up;
|
||||
public class BalanceUpdateReplyData extends BaseData {
|
||||
|
||||
private String pileNo; //桩号
|
||||
private String gunId; //枪号
|
||||
private String cardNo; //物理卡号
|
||||
private String modifyResult; //修改结果
|
||||
|
||||
@ -16,6 +17,16 @@ public class BalanceUpdateReplyData extends BaseData {
|
||||
this.pileNo = pileNo;
|
||||
}
|
||||
|
||||
public String getGunId() {
|
||||
|
||||
return gunId;
|
||||
}
|
||||
|
||||
public void setGunId(String gunId) {
|
||||
|
||||
this.gunId = gunId;
|
||||
}
|
||||
|
||||
public String getCardNo() {
|
||||
|
||||
return cardNo;
|
||||
|
||||
@ -201,6 +201,12 @@ public class ChargingController {
|
||||
String seq = seqHex(skey);
|
||||
byte[] msg = translateStart(startChargingData, seq);
|
||||
clientHandler.sendClientBinary(msg);
|
||||
Integer balance = startChargingData.getBalance();
|
||||
String orderkey = "order:".concat(startChargingData.getOrderNo());
|
||||
Map<String, Object> cacheOrder = REDIS.getCacheMap(orderkey);
|
||||
cacheOrder.put("balance", balance);
|
||||
cacheOrder.put("tel", startChargingData.getTel());
|
||||
REDIS.setCacheMap(orderkey, cacheOrder);
|
||||
return R.ok();
|
||||
} catch (IOException e) {
|
||||
log.error("send message failed. " + e.getMessage(), e);
|
||||
|
||||
@ -24,7 +24,7 @@ public class BalanceUpdateReplyDataLogic implements ServiceLogic {
|
||||
Map<String, Object> req = sp.getParameters();
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
BalanceUpdateReplyData balanceUpdateReplyData = objectMapper.convertValue(req, BalanceUpdateReplyData.class);
|
||||
//todo
|
||||
log.info("balanceUpdateResult({}) [{}]", balanceUpdateReplyData.getPileNo().concat(balanceUpdateReplyData.getGunId()), balanceUpdateReplyData.getModifyResult());
|
||||
return new ServiceResult(false);
|
||||
}
|
||||
|
||||
|
||||
@ -31,9 +31,9 @@ public class BmsChargingDataLogic implements ServiceLogic {
|
||||
String orderNo = bmsChargingData.getOrderNo();
|
||||
String orderkey = "order:".concat(orderNo);
|
||||
Map<String, Object> cacheOrder = REDIS.getCacheMap(orderkey);
|
||||
List<BmsChargingData> bmsChargingDataList = (List<BmsChargingData>) cacheOrder.getOrDefault("bmsChargings", new ArrayList<>());
|
||||
List<BmsChargingData> bmsChargingDataList = (List<BmsChargingData>) cacheOrder.getOrDefault("bmsChargingData", new ArrayList<>());
|
||||
bmsChargingDataList.add(bmsChargingData);
|
||||
cacheOrder.put("bmsChargings", bmsChargingDataList);
|
||||
cacheOrder.put("bmsChargingData", bmsChargingDataList);
|
||||
REDIS.setCacheMap(orderkey, cacheOrder);
|
||||
return new ServiceResult(false);
|
||||
}
|
||||
|
||||
@ -62,16 +62,26 @@ public class RealtimeDataLogic implements ServiceLogic {
|
||||
String orderNo = realtimeData.getOrderNo();
|
||||
String orderkey = "order:".concat(orderNo);
|
||||
if (!orderNo.equals("00000000000000000000000000000000")) {
|
||||
Map<String, Object> order = REDIS.getCacheMap(orderkey);
|
||||
List<CacheRealtimeData> realtimeDataList = (List<CacheRealtimeData>) order.get("realtimeDataList");
|
||||
Map<String, Object> cacheOrder = REDIS.getCacheMap(orderkey);
|
||||
List<CacheRealtimeData> realtimeDataList = (List<CacheRealtimeData>) cacheOrder.get("realtimeDataList");
|
||||
if (realtimeDataList == null) {
|
||||
realtimeDataList = new ArrayList<>();
|
||||
}
|
||||
realtimeDataList.add(translate(realtimeData));
|
||||
order.put("soc", realtimeData.getSoc());
|
||||
order.put("status", statusplain);
|
||||
order.put("realtimeDataList", realtimeDataList);
|
||||
REDIS.setCacheMap(orderkey, order);
|
||||
Integer balance = (Integer) cacheOrder.get("balance");
|
||||
CacheRealtimeData cacheRealtimeData = translate(realtimeData);
|
||||
if ((balance - cacheRealtimeData.getAmountCharged()) < 500) {
|
||||
String alerted = (String) cacheOrder.get("alerted");
|
||||
String tel = (String) cacheOrder.get("tel");
|
||||
if (alerted == null && tel != null) {
|
||||
// todo send sms
|
||||
cacheOrder.put("alerted", "true");
|
||||
}
|
||||
}
|
||||
realtimeDataList.add(cacheRealtimeData);
|
||||
cacheOrder.put("soc", realtimeData.getSoc());
|
||||
cacheOrder.put("status", statusplain);
|
||||
cacheOrder.put("realtimeDataList", realtimeDataList);
|
||||
REDIS.setCacheMap(orderkey, cacheOrder);
|
||||
}
|
||||
return new ServiceResult(false);
|
||||
}
|
||||
|
||||
@ -40,7 +40,7 @@ public class RegisterLogic implements ServiceLogic {
|
||||
resultCode = ServiceResult.FAIL;
|
||||
} else if (!EarlierBeanConf.ifreg(pileNo)) {
|
||||
log.info("pile already registered ({}) ", pileNo);
|
||||
hexCode = ServiceResult.HEX_FAIL; //todo we may need optimize it
|
||||
hexCode = ServiceResult.HEX_FAIL;
|
||||
resultCode = ServiceResult.FAIL;
|
||||
} else {
|
||||
String pkey = "pile:".concat(pileNo);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user