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