修改防止订单不生成

This commit is contained in:
yuyang 2022-03-16 09:29:17 +08:00
parent 8ef88e78ce
commit 5f87907a80
3 changed files with 213 additions and 183 deletions

View File

@ -72,6 +72,11 @@ public class XhpcPileOrderController extends BaseController {
//解析订单编号
Long userId =0L;
Integer code =200;
XhpcChargeOrder xhpcChargeOrder = xhpcChargeOrderService.getSerialNumberMessage(orderNo);
if(xhpcChargeOrder==null|| xhpcChargeOrder.getUserId()==null){
logger.info("桩启动回调接口--无效订单号>>>>>orderNo" + orderNo);
return R.fail(500,"无效订单号");
}
if (status == 1) {
userId = update(0, remark, orderNo, 0);
} else {
@ -85,7 +90,6 @@ public class XhpcPileOrderController extends BaseController {
JSONObject json = new JSONObject(map);
logger.info("桩启动回调接口>>>>>json"+json.toString());
//消息对了内容
XhpcChargeOrder xhpcChargeOrder = xhpcChargeOrderService.getSerialNumberMessage(orderNo);
if(xhpcChargeOrder.getSource()==0){
webSocketService.getMessage(userId+"",json.toString());
}
@ -113,6 +117,11 @@ public class XhpcPileOrderController extends BaseController {
map.put("userId", userId);
}
XhpcChargeOrder xhpcChargeOrder = xhpcChargeOrderService.getSerialNumberMessage(orderNo);
if(xhpcChargeOrder==null|| xhpcChargeOrder.getUserId()==null){
logger.info("桩停止回调接口--无效订单号>>>>>orderNo" + orderNo);
return R.fail(500,"无效订单号");
}
if (status == 1) {
xhpcChargeOrder.setStatus(0);
map.put("message", "停止充电成功");
@ -192,9 +201,9 @@ public class XhpcPileOrderController extends BaseController {
XhpcChargeOrder xhpcChargeOrder = xhpcChargeOrderService.getSerialNumberMessage(orderNo);
if(xhpcChargeOrder==null|| xhpcChargeOrder.getUserId()==null){
logger.info("桩实时数据回调接口--无效订单号>>>>>orderNo" + orderNo);
return R.fail(500,"无效订单号");
}
Long userId = xhpcChargeOrder.getUserId();
try {
Date date = new Date();
@ -457,6 +466,10 @@ public class XhpcPileOrderController extends BaseController {
//获取实时订单
XhpcChargeOrder xhpcChargeOrder = xhpcChargeOrderService.getSerialNumberMessage(orderNo);
if(xhpcChargeOrder==null|| xhpcChargeOrder.getUserId()==null){
logger.info("订单异常回调接口--无效订单号>>>>>orderNo" + orderNo);
return R.fail(500,"无效订单号");
}
Integer source = xhpcChargeOrder.getSource();
String tenantId = xhpcChargeOrder.getTenantId();
if(!UserTypeUtil.INTERNET_TYPE.equals(source)){

View File

@ -35,6 +35,8 @@ import javax.annotation.PostConstruct;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.util.*;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@ -64,9 +66,9 @@ public class XhpcChargeOrderServiceImpl extends BaseService implements IXhpcChar
@Autowired
private IXhpcRealTimeOrderService xhpcRealTimeOrderService;
private final ExecutorService executorService = Executors.newFixedThreadPool(40);
private static final Logger logger = LoggerFactory.getLogger(XhpcChargeOrderServiceImpl.class);
//队列名称
private final static String NAME = "webSocket";
@PostConstruct
public void init(){
@ -123,186 +125,195 @@ public class XhpcChargeOrderServiceImpl extends BaseService implements IXhpcChar
@Override
@Transactional
public AjaxResult startUp(HttpServletRequest request, Long userId, String terminalSerialNumber, Integer type) {
LoginUser loginUser = tokenService.getLoginUser(request);
if (StringUtils.isNotNull(loginUser)) {
String username = loginUser.getUsername();
Integer userType = loginUser.getUserType();
Long userid = loginUser.getUserid();
logger.info("<<<<<<<<<<<<<<<<<<<<<<<登录用户id>>>>>>>>>>>>>>>>>"+userid);
logger.info("<<<<<<<<<<<<<<<<<<<<<<<桩号>>>>>>>>>>>>>>>>>"+terminalSerialNumber);
String openId = loginUser.getOpenId();
String tenantId = loginUser.getTenantId();
R user = userTypeService.getUser(null, userid, userType, terminalSerialNumber,loginUser.getTenantId());
if (!userid.equals(userId) || user == null || user.getData() == null) {
return AjaxResult.error(UserTypeUtil.LOGIN_TYPE, "请重新登录");
}
Map<String, Object> userMessage = (Map<String, Object>)user.getData();
if(UserTypeUtil.USER_TYPE !=userType){
if(Integer.valueOf(userMessage.get("number").toString())==0){
return AjaxResult.error(UserTypeUtil.LOGIN_TYPE, "此账号不能在该场站充电,请使用手机号登录");
try{
LoginUser loginUser = tokenService.getLoginUser(request);
if (StringUtils.isNotNull(loginUser)) {
String username = loginUser.getUsername();
Integer userType = loginUser.getUserType();
Long userid = loginUser.getUserid();
logger.info("<<<<<<<<<<<<<<<<<<<<<<<登录用户id>>>>>>>>>>>>>>>>>"+userid);
logger.info("<<<<<<<<<<<<<<<<<<<<<<<桩号>>>>>>>>>>>>>>>>>"+terminalSerialNumber);
String openId = loginUser.getOpenId();
String tenantId = loginUser.getTenantId();
R user = userTypeService.getUser(null, userid, userType, terminalSerialNumber,loginUser.getTenantId());
if (!userid.equals(userId) || user == null || user.getData() == null) {
return AjaxResult.error(UserTypeUtil.LOGIN_TYPE, "请重新登录");
}
}
String pattern = "^([0-9]{16})";
Pattern compile = Pattern.compile(pattern);
Matcher m = compile.matcher(terminalSerialNumber);
if (terminalSerialNumber.length() != 16 || !m.matches()) {
return AjaxResult.error(1104, "无效的终端编号");
}
//查看充电用户金额是否大于5元
//Map<String, Object> userMessage = xhpcChargeOrderMapper.getUserMessage(userId);
BigDecimal a = new BigDecimal(5);
if (userMessage == null || userMessage.get("balance") == null || a.compareTo(new BigDecimal(userMessage.get("balance").toString())) == 1) {
return AjaxResult.error(1100, "金额小于5元,不能充电,请充值后再进行充电");
}
//充电用户是否存在异常的订单
int j = xhpcChargeOrderMapper.countXhpcChargeOrder(userId,userType,tenantId);
if (j > 0) {
return AjaxResult.error(1103, "你有异常订单未解决,请拨打客服电话进行解决");
}
//查看充电用户是否有申请退款的订单还未处理
if (Integer.parseInt(userMessage.get("isRefundApplication").toString()) != 0) {
return AjaxResult.error(1101, "你有申请退款订单在审核中,需要充电请取消申请退款");
}
//充电用户是否在充电中
String i = xhpcChargeOrderMapper.countXhpcRealTimeOrder(userId,userType,tenantId);
if (!"".equals(i) && i!=null) {
return AjaxResult.error(1102, "车辆正在充电,请查询车辆充电信息");
}
//终端状态是否空闲
//是否插枪
Map<String, Object> cacheMap = REDIS.getCacheMap("gun:" + terminalSerialNumber);
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<cacheMap>>>>>>>>>>>>>>>>>");
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<cacheMap>>>>>>>>>>>>>>>>>" + terminalSerialNumber);
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<cacheMap>>>>>>>>>>>>>>>>>" + cacheMap.toString());
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<cacheMap>>>>>>>>>>>>>>>>>");
if(cacheMap==null){
return AjaxResult.error(1105, "未注册的终端,请选择其他终端充电");
}else{
if(cacheMap.get("status") ==null){
return AjaxResult.error(1106, "未知的终端状态,请选择其他终端充电");
}else{
String status = cacheMap.get("status").toString();
//不同的状态
if("离线".equals(status)||"故障".equals(status) ||"充电".equals(status)){
return AjaxResult.error(1107, "此终端"+status+"中,请选择其他终端充电");
Map<String, Object> userMessage = (Map<String, Object>)user.getData();
if(UserTypeUtil.USER_TYPE !=userType){
if(Integer.valueOf(userMessage.get("number").toString())==0){
return AjaxResult.error(UserTypeUtil.LOGIN_TYPE, "此账号不能在该场站充电,请使用手机号登录");
}
}
if(cacheMap.get("vehicleGunStatus") ==null){
return AjaxResult.error(1108, "未知的枪状态,请选择其他终端充电");
String pattern = "^([0-9]{16})";
Pattern compile = Pattern.compile(pattern);
Matcher m = compile.matcher(terminalSerialNumber);
if (terminalSerialNumber.length() != 16 || !m.matches()) {
return AjaxResult.error(1104, "无效的终端编号");
}
//查看充电用户金额是否大于5元
//Map<String, Object> userMessage = xhpcChargeOrderMapper.getUserMessage(userId);
BigDecimal a = new BigDecimal(5);
if (userMessage == null || userMessage.get("balance") == null || a.compareTo(new BigDecimal(userMessage.get("balance").toString())) == 1) {
return AjaxResult.error(1100, "金额小于5元,不能充电,请充值后再进行充电");
}
//充电用户是否存在异常的订单
int j = xhpcChargeOrderMapper.countXhpcChargeOrder(userId,userType,tenantId);
if (j > 0) {
return AjaxResult.error(1103, "你有异常订单未解决,请拨打客服电话进行解决");
}
//查看充电用户是否有申请退款的订单还未处理
if (Integer.parseInt(userMessage.get("isRefundApplication").toString()) != 0) {
return AjaxResult.error(1101, "你有申请退款订单在审核中,需要充电请取消申请退款");
}
//充电用户是否在充电中
String i = xhpcChargeOrderMapper.countXhpcRealTimeOrder(userId,userType,tenantId);
if (!"".equals(i) && i!=null) {
return AjaxResult.error(1102, "车辆正在充电,请查询车辆充电信息");
}
//终端状态是否空闲
//是否插枪
Map<String, Object> cacheMap = REDIS.getCacheMap("gun:" + terminalSerialNumber);
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<cacheMap>>>>>>>>>>>>>>>>>");
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<cacheMap>>>>>>>>>>>>>>>>>" + terminalSerialNumber);
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<cacheMap>>>>>>>>>>>>>>>>>" + cacheMap.toString());
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<cacheMap>>>>>>>>>>>>>>>>>");
if(cacheMap==null){
return AjaxResult.error(1105, "未注册的终端,请选择其他终端充电");
}else{
String vehicleGunStatus = cacheMap.get("vehicleGunStatus").toString();
if(!"".equals(vehicleGunStatus)){
return AjaxResult.error(1109, "请插好充电枪");
if(cacheMap.get("status") ==null){
return AjaxResult.error(1106, "未知的终端状态,请选择其他终端充电");
}else{
String status = cacheMap.get("status").toString();
//不同的状态
if("离线".equals(status)||"故障".equals(status) ||"充电".equals(status)){
return AjaxResult.error(1107, "此终端"+status+"中,请选择其他终端充电");
}
}
if(cacheMap.get("vehicleGunStatus") ==null){
return AjaxResult.error(1108, "未知的枪状态,请选择其他终端充电");
}else{
String vehicleGunStatus = cacheMap.get("vehicleGunStatus").toString();
if(!"".equals(vehicleGunStatus)){
return AjaxResult.error(1109, "请插好充电枪");
}
}
}
}
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<终端编号>>>>"+terminalSerialNumber+">>>>>>>>>>>>>"+tenantId);
//终端信息
XhpcTerminal xhpcTerminal = xhpcChargeOrderMapper.getXhpcTerminalSerialNumber(terminalSerialNumber,tenantId);
if (xhpcTerminal == null || xhpcTerminal.getTerminalId() == null || xhpcTerminal.getChargingPileId() == null || xhpcTerminal.getPileSerialNumber() == null) {
return AjaxResult.error(1104, "无效的终端编号");
}
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<终端编号>>>>>>>>>>>>>>>>");
//余额
String balance = new BigDecimal(userMessage.get("balance").toString()).multiply(new BigDecimal(100)).toString();
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<终端编号>>>>"+terminalSerialNumber+">>>>>>>>>>>>>"+tenantId);
//终端信息
XhpcTerminal xhpcTerminal = xhpcChargeOrderMapper.getXhpcTerminalSerialNumber(terminalSerialNumber,tenantId);
if (xhpcTerminal == null || xhpcTerminal.getTerminalId() == null || xhpcTerminal.getChargingPileId() == null || xhpcTerminal.getPileSerialNumber() == null) {
return AjaxResult.error(1104, "无效的终端编号");
}
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<终端编号>>>>>>>>>>>>>>>>");
//余额
String balance = new BigDecimal(userMessage.get("balance").toString()).multiply(new BigDecimal(100)).toString();
//获取桩信息
Map<String, Object> xhpcChargingPileById =xhpcChargeOrderMapper.getXhpcChargingPileById(xhpcTerminal.getChargingPileId(),tenantId);
//启动充电
StartChargingData startChargingData = new StartChargingData();
//订单流水号 终端号+年月日时分秒+自增4位 共32位
String orderNo = genOrder(terminalSerialNumber);
//获取桩信息
Map<String, Object> xhpcChargingPileById =xhpcChargeOrderMapper.getXhpcChargingPileById(xhpcTerminal.getChargingPileId(),tenantId);
//启动充电
StartChargingData startChargingData = new StartChargingData();
//订单流水号 终端号+年月日时分秒+自增4位 共32位
String orderNo = genOrder(terminalSerialNumber);
startChargingData.setOrderNo(orderNo);
if(userMessage.get("phone") !=null){
startChargingData.setTel(userMessage.get("phone").toString());
}
startChargingData.setPileNo(xhpcTerminal.getPileSerialNumber());
startChargingData.setGunId(xhpcTerminal.getSerialNumber().substring(14));
startChargingData.setBalance(Double.valueOf(balance).intValue());
if(xhpcChargingPileById.get("communicationProtocolVersion")!=null && !"".equals(xhpcChargingPileById.get("communicationProtocolVersion").toString())){
startChargingData.setVersion(xhpcChargingPileById.get("communicationProtocolVersion").toString());
}else{
startChargingData.setVersion("0A");
}
//用户平台最小的
int number =0;
if(!"".equals(userMessage.get("socUser")) && userMessage.get("socUser") !=null && userMessage.get("socProtect") !=null && !"0".equals(userMessage.get("socProtect").toString())){
number =Integer.parseInt(userMessage.get("socUser").toString());
}
//平台
String soc = redisService.getCacheObject("global:SOC");
if(!"".equals(soc) && soc!=null){
if(number!=0){
if(Integer.parseInt(soc)-number<0){
startChargingData.setOrderNo(orderNo);
if(userMessage.get("phone") !=null){
startChargingData.setTel(userMessage.get("phone").toString());
}
startChargingData.setPileNo(xhpcTerminal.getPileSerialNumber());
startChargingData.setGunId(xhpcTerminal.getSerialNumber().substring(14));
startChargingData.setBalance(Double.valueOf(balance).intValue());
if(xhpcChargingPileById.get("communicationProtocolVersion")!=null && !"".equals(xhpcChargingPileById.get("communicationProtocolVersion").toString())){
startChargingData.setVersion(xhpcChargingPileById.get("communicationProtocolVersion").toString());
}else{
startChargingData.setVersion("0A");
}
//用户平台最小的
int number =0;
if(!"".equals(userMessage.get("socUser")) && userMessage.get("socUser") !=null && userMessage.get("socProtect") !=null && !"0".equals(userMessage.get("socProtect").toString())){
number =Integer.parseInt(userMessage.get("socUser").toString());
}
//平台
String soc = redisService.getCacheObject("global:SOC");
if(!"".equals(soc) && soc!=null){
if(number!=0){
if(Integer.parseInt(soc)-number<0){
number=Integer.parseInt(soc);
}
}else{
number=Integer.parseInt(soc);
}
}else{
number=Integer.parseInt(soc);
}
}
Map<String, Object> operatorMessage = xhpcChargeOrderMapper.getOperatorMessage(xhpcTerminal.getChargingStationId());
if(operatorMessage !=null && operatorMessage.get("soc") !=null && !"".equals(operatorMessage.get("soc"))){
if(number!=0){
if(Integer.parseInt(operatorMessage.get("soc").toString())-number<0){
Map<String, Object> operatorMessage = xhpcChargeOrderMapper.getOperatorMessage(xhpcTerminal.getChargingStationId());
if(operatorMessage !=null && operatorMessage.get("soc") !=null && !"".equals(operatorMessage.get("soc"))){
if(number!=0){
if(Integer.parseInt(operatorMessage.get("soc").toString())-number<0){
number=Integer.parseInt(operatorMessage.get("soc").toString());
}
}else{
number=Integer.parseInt(operatorMessage.get("soc").toString());
}
}else{
number=Integer.parseInt(operatorMessage.get("soc").toString());
}
}
if(number !=0){
startChargingData.setSoc(number);
}
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<number>>>>>>>>>>>>>>>>>:"+number);
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<Soc>>>>>>>>>>>>>>>>>:"+startChargingData.getSoc());
if(number !=0){
startChargingData.setSoc(number);
}
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<number>>>>>>>>>>>>>>>>>:"+number);
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<Soc>>>>>>>>>>>>>>>>>:"+startChargingData.getSoc());
//创建充电订单(充电启动soc初始值结束是获取,并修改状态)
XhpcChargeOrder xhpcChargeOrder = new XhpcChargeOrder();
xhpcChargeOrder.setChargingStationId(xhpcTerminal.getChargingStationId());
xhpcChargeOrder.setUserId(userId);
xhpcChargeOrder.setTerminalId(xhpcTerminal.getTerminalId());
xhpcChargeOrder.setGunId(xhpcTerminal.getSerialNumber());
xhpcChargeOrder.setSerialNumber(orderNo);
xhpcChargeOrder.setSource(userType);
xhpcChargeOrder.setStatus(-1);
xhpcChargeOrder.setTenantId(tenantId);
if (xhpcChargingPileById != null && xhpcChargingPileById.get("power") != null) {
xhpcChargeOrder.setPower(xhpcChargingPileById.get("power").toString());
}
if (type == 1) {
xhpcChargeOrder.setChargingMode("微信");
} else {
xhpcChargeOrder.setChargingMode("支付宝");
}
xhpcChargeOrder.setCreateTime(Calendar.getInstance().getTime());
xhpcChargeOrder.setType(40);
xhpcChargeOrderMapper.addXhpcChargeOrder(xhpcChargeOrder);
//创建充电订单(充电启动soc初始值结束是获取,并修改状态)
XhpcChargeOrder xhpcChargeOrder = new XhpcChargeOrder();
xhpcChargeOrder.setChargingStationId(xhpcTerminal.getChargingStationId());
xhpcChargeOrder.setUserId(userId);
xhpcChargeOrder.setTerminalId(xhpcTerminal.getTerminalId());
xhpcChargeOrder.setGunId(xhpcTerminal.getSerialNumber());
xhpcChargeOrder.setSerialNumber(orderNo);
xhpcChargeOrder.setSource(userType);
xhpcChargeOrder.setStatus(-1);
xhpcChargeOrder.setTenantId(tenantId);
if (xhpcChargingPileById != null && xhpcChargingPileById.get("power") != null) {
xhpcChargeOrder.setPower(xhpcChargingPileById.get("power").toString());
executorService.execute(new Runnable() {
@Override
public void run() {
R r1 = powerPileService.startCharging(startChargingData);
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<充电返回>>>>>>>>>>>>>>>>>");
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<" + r1.getCode() + ">>>>>>>>>>>>>>>>>");
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<" + r1.getMsg() + ">>>>>>>>>>>>>>>>>");
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<" + r1.getData() + ">>>>>>>>>>>>>>>>>");
if(r1.getCode() == 200){
try{
xhpcChargeOrder.setRateModelId(Long.valueOf(r1.getData().toString()));
xhpcChargeOrderMapper.updateXhpcChargeOrder(xhpcChargeOrder);
//插一帧实时数据
extracted(xhpcChargeOrder);
}catch (Exception e){
e.printStackTrace();
logger.error("update order[{}] failed.", orderNo);
}
}
}
});
logger.info("<<<<<<<<<1111<<<<<<<<<<<<<<<C端订单号>>>>>>>>>>>>>>>>>:" + orderNo+"用户id:"+userId);
logger.info("<<<<<<<<<2222<<<<<<<<<<<<<<<C端订单号>>>>>>>>>>>>>>>>>:" + orderNo+"用户id:"+userId);
logger.info("<<<<<<<<<3333<<<<<<<<<<<<<<<C端订单号>>>>>>>>>>>>>>>>>:" + orderNo+"用户id:"+userId);
logger.info("<<<<<<<<<4444<<<<<<<<<<<<<<<C端订单号>>>>>>>>>>>>>>>>>:" + orderNo+"用户id:"+userId);
return AjaxResult.success();
}else{
return AjaxResult.error(UserTypeUtil.LOGIN_TYPE, "请重新登录");
}
if (type == 1) {
xhpcChargeOrder.setChargingMode("微信");
} else {
xhpcChargeOrder.setChargingMode("支付宝");
}
xhpcChargeOrder.setCreateTime(Calendar.getInstance().getTime());
xhpcChargeOrder.setType(40);
xhpcChargeOrderMapper.addXhpcChargeOrder(xhpcChargeOrder);
R r1 = powerPileService.startCharging(startChargingData);
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<充电返回>>>>>>>>>>>>>>>>>");
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<" + r1.getCode() + ">>>>>>>>>>>>>>>>>");
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<" + r1.getMsg() + ">>>>>>>>>>>>>>>>>");
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<" + r1.getData() + ">>>>>>>>>>>>>>>>>");
if (r1.getCode() != 200) {
return AjaxResult.error(r1.getMsg());
}
try{
xhpcChargeOrder.setRateModelId(Long.valueOf(r1.getData().toString()));
xhpcChargeOrderMapper.updateXhpcChargeOrder(xhpcChargeOrder);
//插一帧实时数据
extracted(xhpcChargeOrder);
}catch (Exception e){
logger.error("update order[{}] failed.", orderNo);
}
return AjaxResult.success();
}else{
return AjaxResult.error(UserTypeUtil.LOGIN_TYPE, "请重新登录");
}catch (Exception e){
e.printStackTrace();
}
return AjaxResult.error(UserTypeUtil.LOGIN_TYPE, "请重新登录");
}
@Override
@ -583,20 +594,26 @@ public class XhpcChargeOrderServiceImpl extends BaseService implements IXhpcChar
int res = xhpcChargeOrderMapper.addXhpcChargeOrder(xhpcChargeOrder);
//int res = xhpcChargeOrderMapper.addBy3rd(internetSerialNumber, orderNo, driverId, chargingAmt, plateNum, status,
// date,null, terminalId, power, chargingStationId, chargingMode, 1, userId);
R r1 = powerPileService.startCharging(startChargingData);
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<第三方充电返回>>>>>>>>>>>>>>>>>");
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<" + r1.getCode() + ">>>>>>>>>>>>>>>>>");
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<" + r1.getMsg() + ">>>>>>>>>>>>>>>>>");
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<" + r1.getData() + ">>>>>>>>>>>>>>>>>");
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<第三方充电返回>>>>>>>>>>>>>>>>>");
try {
Long rateModelId = Long.valueOf(r1.getData().toString());
xhpcChargeOrder.setRateModelId(rateModelId);
xhpcChargeOrderMapper.updateXhpcChargeOrder(xhpcChargeOrder);
} catch (Exception e) {
logger.error("update order[{}] failed.", orderNo);
}
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<第三方启动订单号>>>>>>>>>>>>>>>>>:" + internetSerialNumber);
executorService.execute(new Runnable() {
@Override
public void run() {
R r1 = powerPileService.startCharging(startChargingData);
try {
Long rateModelId = Long.valueOf(r1.getData().toString());
xhpcChargeOrder.setRateModelId(rateModelId);
xhpcChargeOrderMapper.updateXhpcChargeOrder(xhpcChargeOrder);
} catch (Exception e) {
e.printStackTrace();
logger.error("update order[{}] failed.", orderNo);
}
}
});
logger.info("<<<<<<<<<1111<<<<<<<<<<<<<<<第三方启动订单号>>>>>>>>>>>>>>>>>:" + internetSerialNumber);
logger.info("<<<<<<<<<2222<<<<<<<<<<<<<<<第三方启动订单号>>>>>>>>>>>>>>>>>:" + internetSerialNumber);
logger.info("<<<<<<<<<3333<<<<<<<<<<<<<<<第三方启动订单号>>>>>>>>>>>>>>>>>:" + internetSerialNumber);
logger.info("<<<<<<<<<4444<<<<<<<<<<<<<<<第三方启动订单号>>>>>>>>>>>>>>>>>:" + internetSerialNumber);
Map<String, Object> data = new HashMap<>();
data.put("startTime", startTime);
data.put("orderNo", orderNo);
@ -609,7 +626,6 @@ public class XhpcChargeOrderServiceImpl extends BaseService implements IXhpcChar
r.setMsg("内部服务调用错误");
}
return r;
}
@Override

View File

@ -211,7 +211,8 @@
<select id="userSum" resultType="map">
select
count(xau.app_user_id) userSum,
(select count(DISTINCT user_id) from xhpc_charge_order where create_time &gt;= #{time} and tenant_id =#{tenantId}) userVitality
(select count(DISTINCT user_id) from xhpc_charge_order where create_time &gt;= #{time} and tenant_id =#{tenantId}) userVitality,
sum(xau.balance) balance
from xhpc_app_user xau where 1=1
<if test="phone != null and phone != ''">
and xau.phone like concat('%', #{phone}, '%')