一次成功的重要重构以及一个不骚的操作

This commit is contained in:
ZZ 2021-08-27 16:01:16 +08:00
parent 7b18183318
commit 38920f3b80
16 changed files with 436 additions and 596 deletions

View File

@ -124,6 +124,11 @@
<version>4.5.11</version> <version>4.5.11</version>
</dependency> </dependency>
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>javax.persistence-api</artifactId>
<version>2.2</version>
</dependency>
</dependencies> </dependencies>
</project> </project>

View File

@ -3,6 +3,7 @@ package com.xhpc.common.core.web.domain;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import javax.persistence.Entity;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
@ -13,6 +14,7 @@ import java.util.Map;
* *
* @author ruoyi * @author ruoyi
*/ */
@Entity
public class BaseEntity implements Serializable public class BaseEntity implements Serializable
{ {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@ -42,5 +42,14 @@
<groupId>com.ruoyi</groupId> <groupId>com.ruoyi</groupId>
<artifactId>ruoyi-common-security</artifactId> <artifactId>ruoyi-common-security</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>javax.persistence-api</artifactId>
<version>2.2</version>
</dependency>
</dependencies> </dependencies>
</project> </project>

View File

@ -0,0 +1,158 @@
package com.xhpc.order.domain;
import com.xhpc.common.core.web.domain.BaseEntity;
import lombok.Data;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import java.math.BigDecimal;
/**
* @author
* @description 历史订单 xhpc_history_order
* @date 2021-07-22
*/
@Data
@Entity
@Table(name = "xhpc_history_order")
public class XhpcHistoryOrder extends BaseEntity {
/**
* 历史订单id
*/
@Id
private Long historyOrderId;
/**
* 电站id
*/
private Long chargingStationId;
/**
* 充电订单id
*/
private Long chargeOrderId;
/**
* 用户id
*/
private Long userId;
/**
* 终端id
*/
private Long terminalId;
/**
* 流水号
*/
private String serialNumber;
/**
* 互联网订单流水号
*/
private String internetSerialNumber;
/**
* 订单总价
*/
private BigDecimal totalPrice;
/**
* 电站活动抵扣
*/
private BigDecimal promotionDiscount;
/**
* 实际价格
*/
private BigDecimal actPrice;
/**
* 实收电费
*/
private BigDecimal actPowerPrice;
/**
* 实收服务费
*/
private BigDecimal actServicePrice;
/**
* 流量方总金额抽成
*/
private BigDecimal internetCommission;
/**
* 流量方服务费抽成
*/
private BigDecimal internetSvcCommission;
/**
* 平台总金额抽成
*/
private BigDecimal platformCommission;
/**
* 平台服务费抽成
*/
private BigDecimal platformSvcCommisssion;
/**
* 运维总抽成
*/
private BigDecimal operationCommission;
/**
* 运维服务费抽成
*/
private BigDecimal operationSvcCommission;
/**
* 开始充电soc
*/
private String startSoc;
/**
* 结束时soc
*/
private String endSoc;
/**
* 对账状态0待确认 1已确认2待提交3待审核
*/
private Integer reconciliationStatus;
/**
* 清分状态0待清分 1清分在途2已提现3待提交4待审核
*/
private Integer sortingStatus;
/**
* 1 自动结算 2 平台结算
*/
private Integer type;
/**
* 状态0正常 1停用
*/
private Integer status;
/**
* 删除标志0代表存在 2代表删除
*/
private Integer delFlag;
/**
* 总电费
*/
private BigDecimal powerPriceTotal;
/**
* 总服务费
*/
private BigDecimal servicePriceTotal;
}

View File

@ -3,7 +3,7 @@ package com.xhpc.order.api;
import com.xhpc.common.core.web.controller.BaseController; import com.xhpc.common.core.web.controller.BaseController;
import com.xhpc.common.core.web.domain.AjaxResult; import com.xhpc.common.core.web.domain.AjaxResult;
import com.xhpc.common.core.web.page.TableDataInfo; import com.xhpc.common.core.web.page.TableDataInfo;
import com.xhpc.order.service.IHxpcChargeOrderService; import com.xhpc.order.service.IXhpcChargeOrderService;
import com.xhpc.order.service.IXhpcHistoryOrderService; import com.xhpc.order.service.IXhpcHistoryOrderService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -22,10 +22,10 @@ import java.util.Map;
@RestController @RestController
@RequestMapping("/api/chargeOrder") @RequestMapping("/api/chargeOrder")
@Api(value = "充电订单接口", tags = "充电订单接口") @Api(value = "充电订单接口", tags = "充电订单接口")
public class HxpcChargeOrderController extends BaseController { public class XhpcChargeOrderController extends BaseController {
@Autowired @Autowired
private IHxpcChargeOrderService iHxpcChargeOrderService; private IXhpcChargeOrderService iXhpcChargeOrderService;
@Autowired @Autowired
private IXhpcHistoryOrderService xhpcHistoryOrderService; private IXhpcHistoryOrderService xhpcHistoryOrderService;
@ -36,7 +36,8 @@ public class HxpcChargeOrderController extends BaseController {
@GetMapping("/getHistotyChargeOrderMessage") @GetMapping("/getHistotyChargeOrderMessage")
public AjaxResult getHistotyChargeOrderMessage(@RequestParam Long userId) public AjaxResult getHistotyChargeOrderMessage(@RequestParam Long userId)
{ {
return iHxpcChargeOrderService.getHistotyChargeOrderMessage(userId);
return iXhpcChargeOrderService.getHistotyChargeOrderMessage(userId);
} }
/** /**
@ -46,7 +47,7 @@ public class HxpcChargeOrderController extends BaseController {
public TableDataInfo getHistotyChargeOrderStatusList(@RequestParam Long userId) public TableDataInfo getHistotyChargeOrderStatusList(@RequestParam Long userId)
{ {
startPage(); startPage();
List<Map<String, Object>> list = iHxpcChargeOrderService.getHistotyChargeOrderStatusList(userId); List<Map<String, Object>> list = iXhpcChargeOrderService.getHistotyChargeOrderStatusList(userId);
return getDataTable(list); return getDataTable(list);
} }
@ -61,7 +62,8 @@ public class HxpcChargeOrderController extends BaseController {
*/ */
@GetMapping("/startUp") @GetMapping("/startUp")
public AjaxResult startUp(@RequestParam Long userId,@RequestParam String serialNumber,@RequestParam Integer type){ public AjaxResult startUp(@RequestParam Long userId,@RequestParam String serialNumber,@RequestParam Integer type){
return iHxpcChargeOrderService.startUp(userId, serialNumber,type);
return iXhpcChargeOrderService.startUp(userId, serialNumber, type);
} }
@ -74,7 +76,8 @@ public class HxpcChargeOrderController extends BaseController {
*/ */
@GetMapping("/stopUp") @GetMapping("/stopUp")
public AjaxResult stopUp(@RequestParam Long userId,@RequestParam String serialNumber,@RequestParam Long chargingOrderId){ public AjaxResult stopUp(@RequestParam Long userId,@RequestParam String serialNumber,@RequestParam Long chargingOrderId){
return iHxpcChargeOrderService.stopUp(userId, serialNumber,chargingOrderId);
return iXhpcChargeOrderService.stopUp(userId, serialNumber, chargingOrderId);
} }

View File

@ -13,7 +13,7 @@ import com.xhpc.common.data.redis.CacheRealtimeData;
import com.xhpc.common.redis.service.RedisService; import com.xhpc.common.redis.service.RedisService;
import com.xhpc.common.util.ConnectionRabbitMQUtil; import com.xhpc.common.util.ConnectionRabbitMQUtil;
import com.xhpc.order.domain.*; import com.xhpc.order.domain.*;
import com.xhpc.order.service.IHxpcChargeOrderService; import com.xhpc.order.service.IXhpcChargeOrderService;
import com.xhpc.order.service.IXhpcHistoryOrderService; import com.xhpc.order.service.IXhpcHistoryOrderService;
import com.xhpc.order.service.IXhpcRealTimeOrderService; import com.xhpc.order.service.IXhpcRealTimeOrderService;
import org.slf4j.Logger; import org.slf4j.Logger;
@ -32,13 +32,13 @@ import java.util.List;
import java.util.Map; import java.util.Map;
@RestController @RestController
public class HxpcPileOrderController extends BaseController { public class XhpcPileOrderController extends BaseController {
@Autowired @Autowired
private RedisService redisService; private RedisService redisService;
@Autowired @Autowired
private IHxpcChargeOrderService hxpcChargeOrderService; private IXhpcChargeOrderService xhpcChargeOrderService;
@Autowired @Autowired
private IXhpcHistoryOrderService xhpcHistoryOrderService; private IXhpcHistoryOrderService xhpcHistoryOrderService;
@ -50,7 +50,7 @@ public class HxpcPileOrderController extends BaseController {
private SmsService smsService; private SmsService smsService;
private static final Logger logger = LoggerFactory.getLogger(HxpcPileOrderController.class); private static final Logger logger = LoggerFactory.getLogger(XhpcPileOrderController.class);
/** /**
* 测试 * 测试
*/ */
@ -109,10 +109,10 @@ public class HxpcPileOrderController extends BaseController {
Integer code = 500; Integer code = 500;
Long userId = update(0, remark, orderNo, 1); Long userId = update(0, remark, orderNo, 1);
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
HxpcChargeOrder hxpcChargeOrder = hxpcChargeOrderService.getSerialNumberMessage(orderNo); XhpcChargeOrder xhpcChargeOrder = xhpcChargeOrderService.getSerialNumberMessage(orderNo);
map.put("userId", userId); map.put("userId", userId);
if (status == 1) { if (status == 1) {
hxpcChargeOrder.setStatus(0); xhpcChargeOrder.setStatus(0);
map.put("message", "停止充电成功"); map.put("message", "停止充电成功");
} else if(status==2){ } else if(status==2){
//停止充电失败 //停止充电失败
@ -121,8 +121,8 @@ public class HxpcPileOrderController extends BaseController {
}else if(status==3 || status==4){ }else if(status==3 || status==4){
//订单定位异常,修改充电订单状态 //订单定位异常,修改充电订单状态
if(status==3) { if(status==3) {
hxpcChargeOrder.setStatus(2); xhpcChargeOrder.setStatus(2);
hxpcChargeOrder.setUpdateTime(new Date()); xhpcChargeOrder.setUpdateTime(new Date());
//获取实时订单 //获取实时订单
Map<String, Object> cacheMap = redisService.getCacheMap("order:" + orderNo); Map<String, Object> cacheMap = redisService.getCacheMap("order:" + orderNo);
List<CacheRealtimeData> list = (List<CacheRealtimeData>) cacheMap.get("realtimeDataList"); List<CacheRealtimeData> list = (List<CacheRealtimeData>) cacheMap.get("realtimeDataList");
@ -133,18 +133,18 @@ public class HxpcPileOrderController extends BaseController {
} }
BigDecimal decimal = new BigDecimal(10000); BigDecimal decimal = new BigDecimal(10000);
CacheRealtimeData cacheRealtimeData = list.get(number); CacheRealtimeData cacheRealtimeData = list.get(number);
hxpcChargeOrder.setChargingDegree(new BigDecimal(cacheRealtimeData.getChargingDegree()).divide(decimal)); xhpcChargeOrder.setChargingDegree(new BigDecimal(cacheRealtimeData.getChargingDegree()).divide(decimal));
hxpcChargeOrder.setChargingTimeNumber(cacheRealtimeData.getChargingTime()); xhpcChargeOrder.setChargingTimeNumber(cacheRealtimeData.getChargingTime());
hxpcChargeOrder.setAmountCharged(new BigDecimal(cacheRealtimeData.getAmountCharged()).divide(decimal)); xhpcChargeOrder.setAmountCharged(new BigDecimal(cacheRealtimeData.getAmountCharged()).divide(decimal));
} }
}else{ }else{
if(hxpcChargeOrder.getStatus()==1 || hxpcChargeOrder.getStatus()==3){ if (xhpcChargeOrder.getStatus() == 1 || xhpcChargeOrder.getStatus() == 3) {
//不修改订单 //不修改订单
} else { } else {
hxpcChargeOrder.setStatus(0); xhpcChargeOrder.setStatus(0);
} }
} }
hxpcChargeOrderService.updateXhpcChargeOrder(hxpcChargeOrder); xhpcChargeOrderService.updateXhpcChargeOrder(xhpcChargeOrder);
code = 300; code = 300;
map.put("message", remark); map.put("message", remark);
}else{ }else{
@ -170,17 +170,17 @@ public class HxpcPileOrderController extends BaseController {
//获取实时订单 //获取实时订单
CacheRealtimeData cacheRealtimeData = redisService.getCacheObject("order:" + orderNo + ".lord"); CacheRealtimeData cacheRealtimeData = redisService.getCacheObject("order:" + orderNo + ".lord");
HxpcChargeOrder hxpcChargeOrder = hxpcChargeOrderService.getSerialNumberMessage(orderNo); XhpcChargeOrder xhpcChargeOrder = xhpcChargeOrderService.getSerialNumberMessage(orderNo);
Long userId = hxpcChargeOrder.getUserId(); Long userId = xhpcChargeOrder.getUserId();
try { try {
Map<String, Object> map = addOrderTime(cacheRealtimeData, hxpcChargeOrder, orderNo,1); Map<String, Object> map = addOrderTime(cacheRealtimeData, xhpcChargeOrder, orderNo, 1);
JSONObject json = new JSONObject(map); JSONObject json = new JSONObject(map);
//消息对了内容 //消息对了内容
rabbimt(userId + "##" + json); rabbimt(userId + "##" + json);
} catch (Exception e) { } catch (Exception e) {
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("code", 500); map.put("code", 500);
map.put("userId", hxpcChargeOrder.getUserId()); map.put("userId", xhpcChargeOrder.getUserId());
JSONObject json = new JSONObject(map); JSONObject json = new JSONObject(map);
//消息对了内容 //消息对了内容
rabbimt(userId + "##" + json); rabbimt(userId + "##" + json);
@ -219,49 +219,47 @@ public class HxpcPileOrderController extends BaseController {
int startSoc = cacheOrderData.getStartSoc(); int startSoc = cacheOrderData.getStartSoc();
int endSoc = cacheOrderData.getEndSoc(); int endSoc = cacheOrderData.getEndSoc();
//获取充电订单 //获取充电订单
HxpcChargeOrder hxpcChargeOrder = hxpcChargeOrderService.getSerialNumberMessage(orderNo); XhpcChargeOrder xhpcChargeOrder = xhpcChargeOrderService.getSerialNumberMessage(orderNo);
hxpcChargeOrder.setStartSoc(startSoc+""); xhpcChargeOrder.setStartSoc(startSoc + "");
hxpcChargeOrder.setEndSoc(endSoc+""); xhpcChargeOrder.setEndSoc(endSoc + "");
int status = cacheOrderData.getStatus(); int status = cacheOrderData.getStatus();
hxpcChargeOrder.setStatus(status); xhpcChargeOrder.setStatus(status);
DateTime startTime = DateUtil.parse(cacheOrderData.getStartTime()); DateTime startTime = DateUtil.parse(cacheOrderData.getStartTime());
DateTime endTime = DateUtil.parse(cacheOrderData.getEndTime()); DateTime endTime = DateUtil.parse(cacheOrderData.getEndTime());
hxpcChargeOrder.setStartTime(startTime); xhpcChargeOrder.setEndTime(endTime);
hxpcChargeOrder.setEndTime(endTime);
System.out.println(endTime.getTime());
System.out.println(startTime.getTime());
//充电时长 //充电时长
Long tiem = (endTime.getTime()-startTime.getTime())/1000; Long tiem = (endTime.getTime() - startTime.getTime()) % 1000;
if(tiem>3600){ if (tiem > 60) {
long hours = tiem / 3600; long mins = tiem % 60;
double mins =(double)((tiem-(hours*3600))/60); long hours = tiem / 60;
hxpcChargeOrder.setChargingTime(hours+""+new BigDecimal(mins).setScale(0)+""); xhpcChargeOrder.setChargingTime(hours + "" + mins + "");
} else { } else {
double mins = (double)(tiem / 60); long mins = tiem % 60;
hxpcChargeOrder.setChargingTime(new BigDecimal(mins).setScale(0)+""); xhpcChargeOrder.setChargingTime(mins + "");
} }
hxpcChargeOrder.setChargingTimeNumber(tiem.intValue()); xhpcChargeOrder.setChargingTimeNumber(tiem.intValue());
BigDecimal divide = new BigDecimal(cacheOrderData.getTotalPowerQuantity()).divide(bigDecimal); BigDecimal divide = new BigDecimal(cacheOrderData.getTotalPowerQuantity()).divide(bigDecimal);
hxpcChargeOrder.setChargingDegree(divide); xhpcChargeOrder.setChargingDegree(divide.divide(bigDecimal));
hxpcChargeOrder.setAmountCharged(money); xhpcChargeOrder.setAmountCharged(money.divide(bigDecimal));
String stopReason = cacheOrderData.getStopReason(); String stopReason = cacheOrderData.getStopReason();
hxpcChargeOrder.setErroRemark(stopReason); xhpcChargeOrder.setErroRemark(stopReason);
hxpcChargeOrder.setUpdateTime(date); xhpcChargeOrder.setUpdateTime(date);
hxpcChargeOrder.setStatus(status); xhpcChargeOrder.setStatus(status);
//历史订单 //历史订单
Long userId =hxpcChargeOrder.getUserId(); Long userId = xhpcChargeOrder.getUserId();
//生成一条历史订单 //生成一条历史订单
XhpcHistoryOrder xhpcHistoryOrder = new XhpcHistoryOrder(); XhpcHistoryOrder xhpcHistoryOrder = new XhpcHistoryOrder();
xhpcHistoryOrder.setPowerPriceTotal(powerPrice); xhpcHistoryOrder.setPowerPriceTotal(powerPrice);
xhpcHistoryOrder.setServicePriceTotal(servicePrice); xhpcHistoryOrder.setServicePriceTotal(servicePrice);
Map<String, Object> userMessage = hxpcChargeOrderService.getUserMessage(userId); Map<String, Object> userMessage = xhpcChargeOrderService.getUserMessage(userId);
if (userMessage == null || userMessage.get("balance") == null) { if (userMessage == null || userMessage.get("balance") == null) {
//订单异常 //订单异常
hxpcChargeOrder.setStatus(2); xhpcChargeOrder.setStatus(2);
//异常原因 //异常原因
hxpcChargeOrder.setErroRemark("桩异常:"+stopReason+">>>>用户id:"+userId+"为空"); xhpcChargeOrder.setErroRemark("桩异常:" + stopReason + ">>>>用户id:" + userId + "为空");
} }
BigDecimal balance = new BigDecimal(userMessage.get("balance").toString()).divide(new BigDecimal(100)); BigDecimal balance = new BigDecimal(userMessage.get("balance").toString()).divide(new BigDecimal(100));
@ -283,14 +281,14 @@ public class HxpcPileOrderController extends BaseController {
BigDecimal operationSvcCommission =new BigDecimal(0); BigDecimal operationSvcCommission =new BigDecimal(0);
//判断是C端用户还是流量端用户 //判断是C端用户还是流量端用户
if(hxpcChargeOrder.getSource() ==0){ if (xhpcChargeOrder.getSource() == 0) {
String state = ""; String state = "";
BigDecimal discount = new BigDecimal(0); BigDecimal discount = new BigDecimal(0);
//用户第几次充电 //用户第几次充电
int count = hxpcChargeOrderService.getCount(userId); int count = xhpcChargeOrderService.getCount(userId);
if (count == 0) { if (count == 0) {
//活动折扣 //活动折扣
Map<String, Object> promotion = hxpcChargeOrderService.getPromotion(); Map<String, Object> promotion = xhpcChargeOrderService.getPromotion();
if (promotion != null && promotion.get("state") != null && promotion.get("discount") != null) { if (promotion != null && promotion.get("state") != null && promotion.get("discount") != null) {
//state 1.总金额 2.电费 3.服务费 discount 折扣率 //state 1.总金额 2.电费 3.服务费 discount 折扣率
state = promotion.get("state").toString(); state = promotion.get("state").toString();
@ -336,7 +334,7 @@ public class HxpcPileOrderController extends BaseController {
} }
//获取运营商 //获取运营商
Map<String, Object> operatorMessage = hxpcChargeOrderService.getOperatorMessage(hxpcChargeOrder.getChargingStationId()); Map<String, Object> operatorMessage = xhpcChargeOrderService.getOperatorMessage(xhpcChargeOrder.getChargingStationId());
if(operatorMessage !=null){ if(operatorMessage !=null){
if(operatorMessage.get("maintenanceCommissionRate") !=null && operatorMessage.get("commissionType") !=null && operatorMessage.get("platformCommissionRate") !=null){ if(operatorMessage.get("maintenanceCommissionRate") !=null && operatorMessage.get("commissionType") !=null && operatorMessage.get("platformCommissionRate") !=null){
Integer commissionType = (Integer) operatorMessage.get("commissionType"); Integer commissionType = (Integer) operatorMessage.get("commissionType");
@ -372,18 +370,18 @@ public class HxpcPileOrderController extends BaseController {
} }
}else{ }else{
//订单异常 //订单异常
hxpcChargeOrder.setStatus(2); xhpcChargeOrder.setStatus(2);
//异常原因 //异常原因
hxpcChargeOrder.setErroRemark("桩异常:"+stopReason+">>>>用户id:"+userId+"为空"+">>>>运营商数据为空"); xhpcChargeOrder.setErroRemark("桩异常:" + stopReason + ">>>>用户id:" + userId + "为空" + ">>>>运营商数据为空");
} }
} }
Long chargeOrderId = hxpcChargeOrder.getChargeOrderId(); Long chargeOrderId = xhpcChargeOrder.getChargeOrderId();
xhpcHistoryOrder.setChargeOrderId(chargeOrderId); xhpcHistoryOrder.setChargeOrderId(chargeOrderId);
xhpcHistoryOrder.setChargingStationId(hxpcChargeOrder.getChargingStationId()); xhpcHistoryOrder.setChargingStationId(xhpcChargeOrder.getChargingStationId());
xhpcHistoryOrder.setUserId(userId); xhpcHistoryOrder.setUserId(userId);
xhpcHistoryOrder.setTerminalId(hxpcChargeOrder.getTerminalId()); xhpcHistoryOrder.setTerminalId(xhpcChargeOrder.getTerminalId());
xhpcHistoryOrder.setSerialNumber(hxpcChargeOrder.getSerialNumber()); xhpcHistoryOrder.setSerialNumber(xhpcChargeOrder.getSerialNumber());
xhpcHistoryOrder.setStartSoc(hxpcChargeOrder.getStartSoc()); xhpcHistoryOrder.setStartSoc(xhpcChargeOrder.getStartSoc());
xhpcHistoryOrder.setReconciliationStatus(0); xhpcHistoryOrder.setReconciliationStatus(0);
xhpcHistoryOrder.setSortingStatus(0); xhpcHistoryOrder.setSortingStatus(0);
xhpcHistoryOrder.setType(1); xhpcHistoryOrder.setType(1);
@ -406,24 +404,24 @@ public class HxpcPileOrderController extends BaseController {
//扣除用户实际消费金额添加消费记录 //扣除用户实际消费金额添加消费记录
Map<String, Object> user = hxpcChargeOrderService.getUserMessage(userId); Map<String, Object> user = xhpcChargeOrderService.getUserMessage(userId);
//剩余的钱 //剩余的钱
BigDecimal balance1 =(BigDecimal) user.get("balance"); BigDecimal balance1 =(BigDecimal) user.get("balance");
BigDecimal subtract = balance1.subtract(actPrice); BigDecimal subtract = balance1.subtract(actPrice);
int i = hxpcChargeOrderService.updateUserBalance(userId, subtract); int i = xhpcChargeOrderService.updateUserBalance(userId, subtract);
if(i==0){ if(i==0){
//扣钱失败 //扣钱失败
xhpcHistoryOrder.setStatus(2); xhpcHistoryOrder.setStatus(2);
xhpcHistoryOrder.setRemark("扣钱失败"); xhpcHistoryOrder.setRemark("扣钱失败");
}else{ }else{
xhpcHistoryOrderService.insert(xhpcHistoryOrder); xhpcHistoryOrderService.insert(xhpcHistoryOrder);
addPileEndOrder(xhpcHistoryOrder,hxpcChargeOrder,cacheMap,orderNo); addPileEndOrder(xhpcHistoryOrder, xhpcChargeOrder, cacheMap, orderNo);
//添加流水 //添加流水
hxpcChargeOrderService.addUserAccountStatement(userId,actPrice.negate(),subtract,hxpcChargeOrder.getChargeOrderId(),3,date); xhpcChargeOrderService.addUserAccountStatement(userId, actPrice.negate(), subtract, xhpcChargeOrder.getChargeOrderId(), 3, date);
try{ try{
//发送短信 //发送短信
if(user.get("phone") !=null){ if(user.get("phone") !=null){
String content="【小华停止充电】尊敬的用户,你的爱车已停止充电,电量为:"+endSoc+"%,总费用为:"+actPrice+"元,充电费用明细,请查询小华充电小程序,谢谢。"; String content = "【小华停止充电】尊敬的用户,你的爱车已停止充电,电量为:" + xhpcChargeOrder.getChargingDegree() + ",总费用为:" + actPrice + "元,充电费用明细,请查询小华充电小程序,谢谢。";
smsService.sendNotice(user.get("phone").toString(),content); smsService.sendNotice(user.get("phone").toString(),content);
} }
}catch (Exception e){ }catch (Exception e){
@ -431,7 +429,7 @@ public class HxpcPileOrderController extends BaseController {
} }
} }
hxpcChargeOrderService.updateXhpcChargeOrder(hxpcChargeOrder); xhpcChargeOrderService.updateXhpcChargeOrder(xhpcChargeOrder);
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("code", 500); map.put("code", 500);
map.put("userId", userId); map.put("userId", userId);
@ -445,16 +443,18 @@ public class HxpcPileOrderController extends BaseController {
} }
private void addPileEndOrder(XhpcHistoryOrder xhpcHistoryOrder,HxpcChargeOrder hxpcChargeOrder,Map<String, Object> cacheMap,String orderNo){ private void addPileEndOrder(XhpcHistoryOrder xhpcHistoryOrder, XhpcChargeOrder xhpcChargeOrder,
Map<String, Object> cacheMap, String orderNo) {
Date date = new Date(); Date date = new Date();
Long chargeOrderId = hxpcChargeOrder.getChargeOrderId(); Long chargeOrderId = xhpcChargeOrder.getChargeOrderId();
//删除实时数据获取最新的实时数据 //删除实时数据获取最新的实时数据
xhpcRealTimeOrderService.deleteRealTimeOrder(hxpcChargeOrder.getChargeOrderId()); xhpcRealTimeOrderService.deleteRealTimeOrder(xhpcChargeOrder.getChargeOrderId());
//添加新的实时数据 //添加新的实时数据
List<CacheRealtimeData> list = (List<CacheRealtimeData>) cacheMap.get("realtimeDataList"); List<CacheRealtimeData> list = (List<CacheRealtimeData>) cacheMap.get("realtimeDataList");
if (list != null && list.size() > 0) { if (list != null && list.size() > 0) {
for (CacheRealtimeData cacheRealtimeData : list) { for (CacheRealtimeData cacheRealtimeData : list) {
addOrderTime(cacheRealtimeData,hxpcChargeOrder,orderNo,2); addOrderTime(cacheRealtimeData, xhpcChargeOrder, orderNo, 2);
} }
} }
//添加redis到数据库 //添加redis到数据库
@ -495,7 +495,7 @@ public class HxpcPileOrderController extends BaseController {
xhpcOrderRedisRecord.setOrderData(cacheMap.get("orderData").toString()); xhpcOrderRedisRecord.setOrderData(cacheMap.get("orderData").toString());
} }
xhpcOrderRedisRecord.setCreateTime(date); xhpcOrderRedisRecord.setCreateTime(date);
hxpcChargeOrderService.addXhpcOrderRedisRecord(xhpcOrderRedisRecord); xhpcChargeOrderService.addXhpcOrderRedisRecord(xhpcOrderRedisRecord);
//删除redis //删除redis
//redisService.deleteObject("order:"+orderNo); //redisService.deleteObject("order:"+orderNo);
@ -506,19 +506,21 @@ public class HxpcPileOrderController extends BaseController {
/** /**
* 添加实时数据 * 添加实时数据
*
* @param cacheRealtimeData * @param cacheRealtimeData
* @param hxpcChargeOrder * @param xhpcChargeOrder
* @param orderNo 订单号 * @param orderNo 订单号
* @param type 1.实时数据回调 2.结算回调 * @param type 1.实时数据回调 2.结算回调
* @return * @return
*/ */
private Map<String, Object> addOrderTime(CacheRealtimeData cacheRealtimeData,HxpcChargeOrder hxpcChargeOrder,String orderNo,Integer type){ private Map<String, Object> addOrderTime(CacheRealtimeData cacheRealtimeData, XhpcChargeOrder xhpcChargeOrder,
String orderNo, Integer type) {
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
Date date = new Date(); Date date = new Date();
Long chargeOrderId = hxpcChargeOrder.getChargeOrderId(); Long chargeOrderId = xhpcChargeOrder.getChargeOrderId();
XhpcRealTimeOrder xhpcRealTimeOrder = new XhpcRealTimeOrder(); XhpcRealTimeOrder xhpcRealTimeOrder = new XhpcRealTimeOrder();
xhpcRealTimeOrder.setChargingOrderId(hxpcChargeOrder.getChargeOrderId()); xhpcRealTimeOrder.setChargingOrderId(xhpcChargeOrder.getChargeOrderId());
xhpcRealTimeOrder.setTransactionNumber(orderNo); xhpcRealTimeOrder.setTransactionNumber(orderNo);
xhpcRealTimeOrder.setPileNumber(cacheRealtimeData.getPileNo()); xhpcRealTimeOrder.setPileNumber(cacheRealtimeData.getPileNo());
String gunId = cacheRealtimeData.getGunId(); String gunId = cacheRealtimeData.getGunId();
@ -579,8 +581,8 @@ public class HxpcPileOrderController extends BaseController {
xhpcRealTimeOrder.setStatus(3); xhpcRealTimeOrder.setStatus(3);
} }
xhpcRealTimeOrder.setCreateTime(date); xhpcRealTimeOrder.setCreateTime(date);
xhpcRealTimeOrder.setUserId(hxpcChargeOrder.getUserId()); xhpcRealTimeOrder.setUserId(xhpcChargeOrder.getUserId());
Long chargingStationId = hxpcChargeOrder.getChargingStationId(); Long chargingStationId = xhpcChargeOrder.getChargingStationId();
xhpcRealTimeOrder.setChargingStationId(chargingStationId); xhpcRealTimeOrder.setChargingStationId(chargingStationId);
xhpcRealTimeOrderService.addXhpcRealTimeOrder(xhpcRealTimeOrder); xhpcRealTimeOrderService.addXhpcRealTimeOrder(xhpcRealTimeOrder);
@ -606,7 +608,7 @@ public class HxpcPileOrderController extends BaseController {
if(type==1){ if(type==1){
map.put("code", 200); map.put("code", 200);
map.put("message", "实时数据"); map.put("message", "实时数据");
map.put("userId", hxpcChargeOrder.getUserId()); map.put("userId", xhpcChargeOrder.getUserId());
Map<String, Object> data = new HashMap<>(); Map<String, Object> data = new HashMap<>();
data.put("amountCharged",divide); data.put("amountCharged",divide);
data.put("gunNumber",gunId); data.put("gunNumber",gunId);
@ -615,7 +617,7 @@ public class HxpcPileOrderController extends BaseController {
data.put("chargingTime",xhpcRealTimeOrder.getChargingTime()); data.put("chargingTime",xhpcRealTimeOrder.getChargingTime());
data.put("electricCurrent",c); data.put("electricCurrent",c);
data.put("voltage", v); data.put("voltage", v);
data.put("power",hxpcChargeOrder.getPower()); data.put("power", xhpcChargeOrder.getPower());
data.put("chargingDegree", chargingDegree); data.put("chargingDegree", chargingDegree);
data.put("remainingTime",xhpcRealTimeOrder.getRemainingTime()); data.put("remainingTime",xhpcRealTimeOrder.getRemainingTime());
data.put("serialNumber",orderNo.substring(0,16)); data.put("serialNumber",orderNo.substring(0,16));
@ -635,25 +637,25 @@ public class HxpcPileOrderController extends BaseController {
*/ */
private Long update(Integer status, String remark, String serialNumber, Integer type) { private Long update(Integer status, String remark, String serialNumber, Integer type) {
logger.info("状态:"+status+"备注++"+"remark"+"订单号"+serialNumber); logger.info("状态:"+status+"备注++"+"remark"+"订单号"+serialNumber);
HxpcChargeOrder hxpcChargeOrder = hxpcChargeOrderService.getSerialNumberMessage(serialNumber); XhpcChargeOrder xhpcChargeOrder = xhpcChargeOrderService.getSerialNumberMessage(serialNumber);
Date date = new Date(); Date date = new Date();
if(status==0){ if(status==0){
hxpcChargeOrder.setStatus(0); xhpcChargeOrder.setStatus(0);
hxpcChargeOrder.setStartTime(date); xhpcChargeOrder.setStartTime(date);
} else{ } else{
hxpcChargeOrder.setStatus(-1); xhpcChargeOrder.setStatus(-1);
hxpcChargeOrder.setDelFlag(1); xhpcChargeOrder.setDelFlag(1);
hxpcChargeOrder.setEndTime(date); xhpcChargeOrder.setEndTime(date);
} }
hxpcChargeOrder.setErroRemark(remark); xhpcChargeOrder.setErroRemark(remark);
Long userId = hxpcChargeOrder.getUserId(); Long userId = xhpcChargeOrder.getUserId();
if (type == 1) { if (type == 1) {
//充电订单 --结束soc充电时长充电度数 //充电订单 --结束soc充电时长充电度数
hxpcChargeOrder.setEndTime(date); xhpcChargeOrder.setEndTime(date);
} }
hxpcChargeOrderService.updateXhpcChargeOrder(hxpcChargeOrder); xhpcChargeOrderService.updateXhpcChargeOrder(xhpcChargeOrder);
return userId; return userId;
} }

View File

@ -9,10 +9,11 @@ import java.util.Date;
/** /**
* 充电订单 * 充电订单
*
* @author yuyang * @author yuyang
* @date 2021/8/4 9:41 * @date 2021/8/4 9:41
*/ */
public class HxpcChargeOrder extends BaseEntity { public class XhpcChargeOrder extends BaseEntity {
/** /**
* 充电订单id * 充电订单id

View File

@ -1,373 +0,0 @@
package com.xhpc.order.domain;
import com.xhpc.common.core.web.domain.BaseEntity;
import java.math.BigDecimal;
/**
* @author
* @description 历史订单 xhpc_history_order
* @date 2021-07-22
*/
public class XhpcHistoryOrder extends BaseEntity {
/**
* 历史订单id
*/
private Long historyOrderId;
/**
* 电站id
*/
private Long chargingStationId;
/**
* 充电订单id
*/
private Long chargeOrderId;
/**
* 用户id
*/
private Long userId;
/**
* 终端id
*/
private Long terminalId;
/**
* 流水号
*/
private String serialNumber;
/**
* 互联网订单流水号
*/
private String internetSerialNumber;
/**
* 订单总价
*/
private BigDecimal totalPrice;
/**
* 电站活动抵扣
*/
private BigDecimal promotionDiscount;
/**
* 实际价格
*/
private BigDecimal actPrice;
/**
* 实收电费
*/
private BigDecimal actPowerPrice;
/**
* 实收服务费
*/
private BigDecimal actServicePrice;
/**
* 流量方总金额抽成
*/
private BigDecimal internetCommission;
/**
* 流量方服务费抽成
*/
private BigDecimal internetSvcCommission;
/**
* 平台总金额抽成
*/
private BigDecimal platformCommission;
/**
* 平台服务费抽成
*/
private BigDecimal platformSvcCommisssion;
/**
* 运维总抽成
*/
private BigDecimal operationCommission;
/**
* 运维服务费抽成
*/
private BigDecimal operationSvcCommission;
/**
* 开始充电soc
*/
private String startSoc;
/**
* 结束时soc
*/
private String endSoc;
/**
* 对账状态0待确认 1已确认2待提交3待审核
*/
private Integer reconciliationStatus;
/**
* 清分状态0待清分 1清分在途2已提现3待提交4待审核
*/
private Integer sortingStatus;
/**
* 1 自动结算 2 平台结算
*/
private Integer type;
/**
* 状态0正常 1停用
*/
private Integer status;
/**
* 删除标志0代表存在 2代表删除
*/
private Integer delFlag;
/**
* 总电费
*/
private BigDecimal powerPriceTotal;
/**
* 总服务费
*/
private BigDecimal servicePriceTotal;
public Long getHistoryOrderId() {
return historyOrderId;
}
public void setHistoryOrderId(Long historyOrderId) {
this.historyOrderId = historyOrderId;
}
public Long getChargingStationId() {
return chargingStationId;
}
public void setChargingStationId(Long chargingStationId) {
this.chargingStationId = chargingStationId;
}
public Long getChargeOrderId() {
return chargeOrderId;
}
public void setChargeOrderId(Long chargeOrderId) {
this.chargeOrderId = chargeOrderId;
}
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public Long getTerminalId() {
return terminalId;
}
public void setTerminalId(Long terminalId) {
this.terminalId = terminalId;
}
public String getSerialNumber() {
return serialNumber;
}
public void setSerialNumber(String serialNumber) {
this.serialNumber = serialNumber;
}
public String getInternetSerialNumber() {
return internetSerialNumber;
}
public void setInternetSerialNumber(String internetSerialNumber) {
this.internetSerialNumber = internetSerialNumber;
}
public BigDecimal getTotalPrice() {
return totalPrice;
}
public void setTotalPrice(BigDecimal totalPrice) {
this.totalPrice = totalPrice;
}
public BigDecimal getPromotionDiscount() {
return promotionDiscount;
}
public void setPromotionDiscount(BigDecimal promotionDiscount) {
this.promotionDiscount = promotionDiscount;
}
public BigDecimal getActPrice() {
return actPrice;
}
public void setActPrice(BigDecimal actPrice) {
this.actPrice = actPrice;
}
public BigDecimal getActPowerPrice() {
return actPowerPrice;
}
public void setActPowerPrice(BigDecimal actPowerPrice) {
this.actPowerPrice = actPowerPrice;
}
public BigDecimal getActServicePrice() {
return actServicePrice;
}
public void setActServicePrice(BigDecimal actServicePrice) {
this.actServicePrice = actServicePrice;
}
public BigDecimal getInternetCommission() {
return internetCommission;
}
public void setInternetCommission(BigDecimal internetCommission) {
this.internetCommission = internetCommission;
}
public BigDecimal getInternetSvcCommission() {
return internetSvcCommission;
}
public void setInternetSvcCommission(BigDecimal internetSvcCommission) {
this.internetSvcCommission = internetSvcCommission;
}
public BigDecimal getPlatformCommission() {
return platformCommission;
}
public void setPlatformCommission(BigDecimal platformCommission) {
this.platformCommission = platformCommission;
}
public BigDecimal getPlatformSvcCommisssion() {
return platformSvcCommisssion;
}
public void setPlatformSvcCommisssion(BigDecimal platformSvcCommisssion) {
this.platformSvcCommisssion = platformSvcCommisssion;
}
public BigDecimal getOperationCommission() {
return operationCommission;
}
public void setOperationCommission(BigDecimal operationCommission) {
this.operationCommission = operationCommission;
}
public String getStartSoc() {
return startSoc;
}
public void setStartSoc(String startSoc) {
this.startSoc = startSoc;
}
public String getEndSoc() {
return endSoc;
}
public void setEndSoc(String endSoc) {
this.endSoc = endSoc;
}
public Integer getReconciliationStatus() {
return reconciliationStatus;
}
public void setReconciliationStatus(Integer reconciliationStatus) {
this.reconciliationStatus = reconciliationStatus;
}
public BigDecimal getOperationSvcCommission() {
return operationSvcCommission;
}
public void setOperationSvcCommission(BigDecimal operationSvcCommission) {
this.operationSvcCommission = operationSvcCommission;
}
public Integer getSortingStatus() {
return sortingStatus;
}
public void setSortingStatus(Integer sortingStatus) {
this.sortingStatus = sortingStatus;
}
public Integer getType() {
return type;
}
public void setType(Integer type) {
this.type = type;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public Integer getDelFlag() {
return delFlag;
}
public void setDelFlag(Integer delFlag) {
this.delFlag = delFlag;
}
public BigDecimal getPowerPriceTotal() {
return powerPriceTotal;
}
public void setPowerPriceTotal(BigDecimal powerPriceTotal) {
this.powerPriceTotal = powerPriceTotal;
}
public BigDecimal getServicePriceTotal() {
return servicePriceTotal;
}
public void setServicePriceTotal(BigDecimal servicePriceTotal) {
this.servicePriceTotal = servicePriceTotal;
}
}

View File

@ -1,8 +1,7 @@
package com.xhpc.order.mapper; package com.xhpc.order.mapper;
import com.xhpc.common.domain.XhpcChargingPile;
import com.xhpc.common.domain.XhpcTerminal; import com.xhpc.common.domain.XhpcTerminal;
import com.xhpc.order.domain.HxpcChargeOrder; import com.xhpc.order.domain.XhpcChargeOrder;
import com.xhpc.order.domain.XhpcOrderRedisRecord; import com.xhpc.order.domain.XhpcOrderRedisRecord;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@ -15,12 +14,12 @@ import java.util.Map;
* @author yuyang * @author yuyang
* @date 2021/8/4 9:55 * @date 2021/8/4 9:55
*/ */
public interface HxpcChargeOrderMapper { public interface XhpcChargeOrderMapper {
/** /**
* 实时订单 * 实时订单
*
* @param userId * @param userId
* @return * @return
*/ */
@ -66,24 +65,27 @@ public interface HxpcChargeOrderMapper {
/** /**
* 添加充电订单 * 添加充电订单
* @param hxpcChargeOrder *
* @param xhpcChargeOrder
* @return * @return
*/ */
int addXhpcChargeOrder(HxpcChargeOrder hxpcChargeOrder); int addXhpcChargeOrder(XhpcChargeOrder xhpcChargeOrder);
/** /**
* 修改充电订单 * 修改充电订单
* @param hxpcChargeOrder *
* @param xhpcChargeOrder
* @return * @return
*/ */
void updateXhpcChargeOrder(HxpcChargeOrder hxpcChargeOrder); void updateXhpcChargeOrder(XhpcChargeOrder xhpcChargeOrder);
/** /**
* 获取充电订单数据 * 获取充电订单数据
*
* @param serialNumber 订单编号 * @param serialNumber 订单编号
* @return * @return
*/ */
HxpcChargeOrder getSerialNumberMessage(@Param("serialNumber") String serialNumber); XhpcChargeOrder getSerialNumberMessage(@Param("serialNumber") String serialNumber);
/** /**
* 判断用户是第几次充电 * 判断用户是第几次充电
@ -100,10 +102,11 @@ public interface HxpcChargeOrderMapper {
/** /**
* 获取充电订单数据 * 获取充电订单数据
*
* @param chargingOrderId 订单id * @param chargingOrderId 订单id
* @return * @return
*/ */
HxpcChargeOrder getChargingOrderId(@Param("chargingOrderId") Long chargingOrderId); XhpcChargeOrder getChargingOrderId(@Param("chargingOrderId") Long chargingOrderId);
/** /**
* 获取运营商信息 * 获取运营商信息

View File

@ -1,10 +1,8 @@
package com.xhpc.order.service; package com.xhpc.order.service;
import com.xhpc.common.core.domain.R;
import com.xhpc.common.core.web.domain.AjaxResult; import com.xhpc.common.core.web.domain.AjaxResult;
import com.xhpc.order.domain.HxpcChargeOrder; import com.xhpc.order.domain.XhpcChargeOrder;
import com.xhpc.order.domain.XhpcOrderRedisRecord; import com.xhpc.order.domain.XhpcOrderRedisRecord;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
@ -15,10 +13,11 @@ import java.util.Map;
* @author yuyang * @author yuyang
* @date 2021/8/4 9:54 * @date 2021/8/4 9:54
*/ */
public interface IHxpcChargeOrderService { public interface IXhpcChargeOrderService {
/** /**
* 实时订单 * 实时订单
*
* @param userId * @param userId
* @return * @return
*/ */
@ -50,10 +49,11 @@ public interface IHxpcChargeOrderService {
/** /**
* 获取充电订单数据 * 获取充电订单数据
*
* @param serialNumber 订单编号 * @param serialNumber 订单编号
* @return * @return
*/ */
HxpcChargeOrder getSerialNumberMessage(String serialNumber); XhpcChargeOrder getSerialNumberMessage(String serialNumber);
/** /**
@ -71,10 +71,11 @@ public interface IHxpcChargeOrderService {
/** /**
* 修改充电订单 * 修改充电订单
* @param hxpcChargeOrder *
* @param xhpcChargeOrder
* @return * @return
*/ */
void updateXhpcChargeOrder(HxpcChargeOrder hxpcChargeOrder); void updateXhpcChargeOrder(XhpcChargeOrder xhpcChargeOrder);
/** /**
@ -115,8 +116,9 @@ public interface IHxpcChargeOrderService {
* @param date 时间 * @param date 时间
* @return * @return
*/ */
int addUserAccountStatement(Long userId, BigDecimal amount, BigDecimal remainingSum, Long chargeOrderId, Integer type, Date date); int addUserAccountStatement(Long userId, BigDecimal amount, BigDecimal remainingSum, Long chargeOrderId, Integer type,
Date date);
HxpcChargeOrder getChargingOrderId(Long chargingOrderId); XhpcChargeOrder getChargingOrderId(Long chargingOrderId);
} }

View File

@ -8,10 +8,10 @@ import com.xhpc.common.data.down.StartChargingData;
import com.xhpc.common.data.redis.StaticBeanUtil; import com.xhpc.common.data.redis.StaticBeanUtil;
import com.xhpc.common.domain.XhpcTerminal; import com.xhpc.common.domain.XhpcTerminal;
import com.xhpc.common.redis.service.RedisService; import com.xhpc.common.redis.service.RedisService;
import com.xhpc.order.domain.HxpcChargeOrder; import com.xhpc.order.domain.XhpcChargeOrder;
import com.xhpc.order.domain.XhpcOrderRedisRecord; import com.xhpc.order.domain.XhpcOrderRedisRecord;
import com.xhpc.order.mapper.HxpcChargeOrderMapper; import com.xhpc.order.mapper.XhpcChargeOrderMapper;
import com.xhpc.order.service.IHxpcChargeOrderService; import com.xhpc.order.service.IXhpcChargeOrderService;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -31,18 +31,18 @@ import java.util.regex.Pattern;
* @date 2021/8/4 9:54 * @date 2021/8/4 9:54
*/ */
@Service @Service
public class HxpcChargeOrderServiceImpl implements IHxpcChargeOrderService { public class XhpcChargeOrderServiceImpl implements IXhpcChargeOrderService {
public static RedisService REDIS; public static RedisService REDIS;
@Autowired @Autowired
private HxpcChargeOrderMapper hxpcChargeOrderMapper; private XhpcChargeOrderMapper xhpcChargeOrderMapper;
@Autowired @Autowired
private PowerPileService powerPileService; private PowerPileService powerPileService;
@Autowired @Autowired
private RedisService redisService; private RedisService redisService;
private static final Logger logger = LoggerFactory.getLogger(HxpcChargeOrderServiceImpl.class); private static final Logger logger = LoggerFactory.getLogger(XhpcChargeOrderServiceImpl.class);
//队列名称 //队列名称
private final static String NAME = "webSocket"; private final static String NAME = "webSocket";
@ -53,17 +53,19 @@ public class HxpcChargeOrderServiceImpl implements IHxpcChargeOrderService {
@Override @Override
public AjaxResult getHistotyChargeOrderMessage(Long userId) { public AjaxResult getHistotyChargeOrderMessage(Long userId) {
int count = hxpcChargeOrderMapper.getHistotyChargeOrderMessage(userId);
int count = xhpcChargeOrderMapper.getHistotyChargeOrderMessage(userId);
if(count>0){ if(count>0){
return AjaxResult.success(); return AjaxResult.success();
} }
return AjaxResult.error(1201,"无实时数据"); return AjaxResult.error(1201,"无实时数据");
//return AjaxResult.success(hxpcChargeOrderMapper.getMessage(userId)); //return AjaxResult.success(xhpcChargeOrderMapper.getMessage(userId));
} }
@Override @Override
public List<Map<String, Object>> getHistotyChargeOrderStatusList(Long userId) { public List<Map<String, Object>> getHistotyChargeOrderStatusList(Long userId) {
return hxpcChargeOrderMapper.getHistotyChargeOrderStatusList(userId);
return xhpcChargeOrderMapper.getHistotyChargeOrderStatusList(userId);
} }
@Override @Override
@ -76,7 +78,7 @@ public class HxpcChargeOrderServiceImpl implements IHxpcChargeOrderService {
return AjaxResult.error(1104, "无效的终端编号"); return AjaxResult.error(1104, "无效的终端编号");
} }
//金额是否大于5元 //金额是否大于5元
Map<String, Object> userMessage = hxpcChargeOrderMapper.getUserMessage(userId); Map<String, Object> userMessage = xhpcChargeOrderMapper.getUserMessage(userId);
BigDecimal a = new BigDecimal(5); BigDecimal a = new BigDecimal(5);
if (userMessage == null || userMessage.get("balance") == null || a.compareTo(new BigDecimal(userMessage.get("balance").toString())) == 1) { if (userMessage == null || userMessage.get("balance") == null || a.compareTo(new BigDecimal(userMessage.get("balance").toString())) == 1) {
return AjaxResult.error(1100, "金额小于5元,不能充电,请充值后再进行充电"); return AjaxResult.error(1100, "金额小于5元,不能充电,请充值后再进行充电");
@ -86,13 +88,13 @@ public class HxpcChargeOrderServiceImpl implements IHxpcChargeOrderService {
return AjaxResult.error(1101, "你有申请退款订单在审核中,需要充电请取消申请退款"); return AjaxResult.error(1101, "你有申请退款订单在审核中,需要充电请取消申请退款");
} }
//是否在充电中 //是否在充电中
String i = hxpcChargeOrderMapper.countXhpcRealTimeOrder(userId); String i = xhpcChargeOrderMapper.countXhpcRealTimeOrder(userId);
if (!"".equals(i) && i!=null) { if (!"".equals(i) && i!=null) {
return AjaxResult.error(1102, "车辆正在充电,请查询车辆充电信息"); return AjaxResult.error(1102, "车辆正在充电,请查询车辆充电信息");
} }
//是否存在异常的订单 //是否存在异常的订单
int j = hxpcChargeOrderMapper.countXhpcChargeOrder(userId); int j = xhpcChargeOrderMapper.countXhpcChargeOrder(userId);
if (j > 0) { if (j > 0) {
return AjaxResult.error(1103, "你有异常订单未解决,请拨打客服电话进行解决"); return AjaxResult.error(1103, "你有异常订单未解决,请拨打客服电话进行解决");
} }
@ -122,7 +124,7 @@ public class HxpcChargeOrderServiceImpl implements IHxpcChargeOrderService {
} }
//终端信息 //终端信息
XhpcTerminal xhpcTerminal = hxpcChargeOrderMapper.getXhpcTerminalSerialNumber(serialNumber); XhpcTerminal xhpcTerminal = xhpcChargeOrderMapper.getXhpcTerminalSerialNumber(serialNumber);
if (xhpcTerminal == null || xhpcTerminal.getTerminalId() == null || xhpcTerminal.getChargingPileId() == null || xhpcTerminal.getPileSerialNumber() == null) { if (xhpcTerminal == null || xhpcTerminal.getTerminalId() == null || xhpcTerminal.getChargingPileId() == null || xhpcTerminal.getPileSerialNumber() == null) {
return AjaxResult.error(1104, "无效的终端编号"); return AjaxResult.error(1104, "无效的终端编号");
} }
@ -156,7 +158,7 @@ public class HxpcChargeOrderServiceImpl implements IHxpcChargeOrderService {
number=Integer.parseInt(soc); number=Integer.parseInt(soc);
} }
} }
Map<String, Object> operatorMessage = hxpcChargeOrderMapper.getOperatorMessage(xhpcTerminal.getChargingStationId()); Map<String, Object> operatorMessage = xhpcChargeOrderMapper.getOperatorMessage(xhpcTerminal.getChargingStationId());
if(operatorMessage !=null && operatorMessage.get("soc") !=null && !"".equals(operatorMessage.get("soc"))){ if(operatorMessage !=null && operatorMessage.get("soc") !=null && !"".equals(operatorMessage.get("soc"))){
if(Integer.parseInt(operatorMessage.get("soc").toString())-number<0){ if(Integer.parseInt(operatorMessage.get("soc").toString())-number<0){
number=Integer.parseInt(operatorMessage.get("soc").toString()); number=Integer.parseInt(operatorMessage.get("soc").toString());
@ -174,27 +176,28 @@ public class HxpcChargeOrderServiceImpl implements IHxpcChargeOrderService {
return AjaxResult.error(r1.getMsg()); return AjaxResult.error(r1.getMsg());
} }
//获取桩信息 //获取桩信息
Map<String, Object> xhpcChargingPileById = hxpcChargeOrderMapper.getXhpcChargingPileById(xhpcTerminal.getChargingPileId()); Map<String, Object> xhpcChargingPileById =
xhpcChargeOrderMapper.getXhpcChargingPileById(xhpcTerminal.getChargingPileId());
//创建充电订单(充电启动soc初始值结束是获取,并修改状态) //创建充电订单(充电启动soc初始值结束是获取,并修改状态)
HxpcChargeOrder hxpcChargeOrder = new HxpcChargeOrder(); XhpcChargeOrder xhpcChargeOrder = new XhpcChargeOrder();
hxpcChargeOrder.setChargingStationId(xhpcTerminal.getChargingStationId()); xhpcChargeOrder.setChargingStationId(xhpcTerminal.getChargingStationId());
hxpcChargeOrder.setUserId(userId); xhpcChargeOrder.setUserId(userId);
hxpcChargeOrder.setTerminalId(xhpcTerminal.getTerminalId()); xhpcChargeOrder.setTerminalId(xhpcTerminal.getTerminalId());
hxpcChargeOrder.setSerialNumber(orderNo); xhpcChargeOrder.setSerialNumber(orderNo);
hxpcChargeOrder.setSource(0); xhpcChargeOrder.setSource(0);
hxpcChargeOrder.setStatus(-1); xhpcChargeOrder.setStatus(-1);
if (xhpcChargingPileById != null && xhpcChargingPileById.get("power") != null) { if (xhpcChargingPileById != null && xhpcChargingPileById.get("power") != null) {
hxpcChargeOrder.setPower(xhpcChargingPileById.get("power").toString()); xhpcChargeOrder.setPower(xhpcChargingPileById.get("power").toString());
} }
hxpcChargeOrder.setRateModelId(xhpcTerminal.getRateModelId()); xhpcChargeOrder.setRateModelId(xhpcTerminal.getRateModelId());
if (type == 1) { if (type == 1) {
hxpcChargeOrder.setChargingMode("小华充电微信"); xhpcChargeOrder.setChargingMode("小华充电微信");
} else { } else {
hxpcChargeOrder.setChargingMode("小华充电支付宝"); xhpcChargeOrder.setChargingMode("小华充电支付宝");
} }
hxpcChargeOrder.setCreateTime(date); xhpcChargeOrder.setCreateTime(date);
hxpcChargeOrderMapper.addXhpcChargeOrder(hxpcChargeOrder); xhpcChargeOrderMapper.addXhpcChargeOrder(xhpcChargeOrder);
return AjaxResult.success(); return AjaxResult.success();
} }
@ -209,13 +212,13 @@ public class HxpcChargeOrderServiceImpl implements IHxpcChargeOrderService {
return AjaxResult.error(1104, "无效的终端编号"); return AjaxResult.error(1104, "无效的终端编号");
} }
//终端信息 //终端信息
XhpcTerminal xhpcTerminal = hxpcChargeOrderMapper.getXhpcTerminalSerialNumber(serialNumber); XhpcTerminal xhpcTerminal = xhpcChargeOrderMapper.getXhpcTerminalSerialNumber(serialNumber);
if (xhpcTerminal == null || xhpcTerminal.getTerminalId() == null || xhpcTerminal.getChargingPileId() == null || xhpcTerminal.getPileSerialNumber() == null) { if (xhpcTerminal == null || xhpcTerminal.getTerminalId() == null || xhpcTerminal.getChargingPileId() == null || xhpcTerminal.getPileSerialNumber() == null) {
return AjaxResult.error(1104, "无效的终端编号"); return AjaxResult.error(1104, "无效的终端编号");
} }
HxpcChargeOrder serialNumberMessage = hxpcChargeOrderMapper.getChargingOrderId(chargingOrderId); XhpcChargeOrder serialNumberMessage = xhpcChargeOrderMapper.getChargingOrderId(chargingOrderId);
serialNumberMessage.setType(1); serialNumberMessage.setType(1);
hxpcChargeOrderMapper.updateXhpcChargeOrder(serialNumberMessage); xhpcChargeOrderMapper.updateXhpcChargeOrder(serialNumberMessage);
R oa = powerPileService.stopCharging(xhpcTerminal.getPileSerialNumber(), xhpcTerminal.getSerialNumber(), "OA"); R oa = powerPileService.stopCharging(xhpcTerminal.getPileSerialNumber(), xhpcTerminal.getSerialNumber(), "OA");
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<停止充电返回>>>>>>>>>>>>>>>>>"); logger.info("<<<<<<<<<<<<<<<<<<<<<<<<停止充电返回>>>>>>>>>>>>>>>>>");
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<"+oa.getCode()+">>>>>>>>>>>>>>>>>"); logger.info("<<<<<<<<<<<<<<<<<<<<<<<<"+oa.getCode()+">>>>>>>>>>>>>>>>>");
@ -227,53 +230,64 @@ public class HxpcChargeOrderServiceImpl implements IHxpcChargeOrderService {
} }
@Override @Override
public HxpcChargeOrder getSerialNumberMessage(String serialNumber) { public XhpcChargeOrder getSerialNumberMessage(String serialNumber) {
return hxpcChargeOrderMapper.getSerialNumberMessage(serialNumber);
return xhpcChargeOrderMapper.getSerialNumberMessage(serialNumber);
} }
@Override @Override
public int getCount(Long userId) { public int getCount(Long userId) {
return hxpcChargeOrderMapper.getCount(userId);
return xhpcChargeOrderMapper.getCount(userId);
} }
@Override @Override
public Map<String, Object> getPromotion() { public Map<String, Object> getPromotion() {
return hxpcChargeOrderMapper.getPromotion();
return xhpcChargeOrderMapper.getPromotion();
} }
@Override @Override
public void updateXhpcChargeOrder(HxpcChargeOrder hxpcChargeOrder) { public void updateXhpcChargeOrder(XhpcChargeOrder xhpcChargeOrder) {
hxpcChargeOrderMapper.updateXhpcChargeOrder(hxpcChargeOrder);
xhpcChargeOrderMapper.updateXhpcChargeOrder(xhpcChargeOrder);
} }
@Override @Override
public Map<String, Object> getUserMessage(Long userId){ public Map<String, Object> getUserMessage(Long userId){
return hxpcChargeOrderMapper.getUserMessage(userId);
return xhpcChargeOrderMapper.getUserMessage(userId);
} }
@Override @Override
public int updateUserBalance(Long userId, BigDecimal balance) { public int updateUserBalance(Long userId, BigDecimal balance) {
return hxpcChargeOrderMapper.updateUserBalance(userId,balance);
return xhpcChargeOrderMapper.updateUserBalance(userId, balance);
} }
@Override @Override
public Map<String, Object> getOperatorMessage(Long chargingStationId) { public Map<String, Object> getOperatorMessage(Long chargingStationId) {
return hxpcChargeOrderMapper.getOperatorMessage(chargingStationId);
return xhpcChargeOrderMapper.getOperatorMessage(chargingStationId);
} }
@Override @Override
public void addXhpcOrderRedisRecord(XhpcOrderRedisRecord xhpcOrderRedisRecord) { public void addXhpcOrderRedisRecord(XhpcOrderRedisRecord xhpcOrderRedisRecord) {
hxpcChargeOrderMapper.addXhpcOrderRedisRecord(xhpcOrderRedisRecord);
xhpcChargeOrderMapper.addXhpcOrderRedisRecord(xhpcOrderRedisRecord);
} }
@Override @Override
public int addUserAccountStatement(Long userId, BigDecimal amount, BigDecimal remainingSum, Long chargeOrderId, Integer type, Date date) { public int addUserAccountStatement(Long userId, BigDecimal amount, BigDecimal remainingSum, Long chargeOrderId,
return hxpcChargeOrderMapper.addUserAccountStatement(userId, amount, remainingSum, chargeOrderId, type, date); Integer type, Date date) {
return xhpcChargeOrderMapper.addUserAccountStatement(userId, amount, remainingSum, chargeOrderId, type, date);
} }
@Override @Override
public HxpcChargeOrder getChargingOrderId(Long chargingOrderId) { public XhpcChargeOrder getChargingOrderId(Long chargingOrderId) {
return hxpcChargeOrderMapper.getChargingOrderId(chargingOrderId);
return xhpcChargeOrderMapper.getChargingOrderId(chargingOrderId);
} }

View File

@ -2,18 +2,20 @@ package com.xhpc.order.service.impl;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.xhpc.common.core.web.domain.AjaxResult; import com.xhpc.common.core.web.domain.AjaxResult;
import com.xhpc.order.domain.HxpcChargeOrder; import com.xhpc.order.domain.XhpcChargeOrder;
import com.xhpc.order.domain.XhpcHistoryOrder; import com.xhpc.order.domain.XhpcHistoryOrder;
import com.xhpc.order.mapper.XhpcHistoryOrderMapper; import com.xhpc.order.mapper.XhpcHistoryOrderMapper;
import com.xhpc.order.service.IHxpcChargeOrderService; import com.xhpc.order.service.IXhpcChargeOrderService;
import com.xhpc.order.service.IXhpcHistoryOrderService; import com.xhpc.order.service.IXhpcHistoryOrderService;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.util.*; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/** /**
* @author yuyang * @author yuyang
@ -26,7 +28,7 @@ public class XhpcHistoryOrderServiceImpl implements IXhpcHistoryOrderService {
private XhpcHistoryOrderMapper xhpcHistoryOrderMapper; private XhpcHistoryOrderMapper xhpcHistoryOrderMapper;
@Autowired @Autowired
private IHxpcChargeOrderService xhpcChargeOrderService; private IXhpcChargeOrderService xhpcChargeOrderService;
@Override @Override
public List<Map<String, Object>> list(Long userId) { public List<Map<String, Object>> list(Long userId) {
@ -78,7 +80,7 @@ public class XhpcHistoryOrderServiceImpl implements IXhpcHistoryOrderService {
BigDecimal powerPriceTotal =new BigDecimal(0); BigDecimal powerPriceTotal =new BigDecimal(0);
BigDecimal servicePriceTotal =new BigDecimal(0); BigDecimal servicePriceTotal =new BigDecimal(0);
//充电订单信息 //充电订单信息
HxpcChargeOrder chargeOrder = xhpcChargeOrderService.getSerialNumberMessage(serialNumber); XhpcChargeOrder chargeOrder = xhpcChargeOrderService.getSerialNumberMessage(serialNumber);
//累计充电时间计费模型开始时间结束时间已充金额 //累计充电时间计费模型开始时间结束时间已充金额
Long rateModelId = chargeOrder.getRateModelId(); Long rateModelId = chargeOrder.getRateModelId();

View File

@ -5,16 +5,18 @@ import cn.hutool.core.date.DateUtil;
import com.xhpc.common.core.web.domain.AjaxResult; import com.xhpc.common.core.web.domain.AjaxResult;
import com.xhpc.order.domain.*; import com.xhpc.order.domain.*;
import com.xhpc.order.mapper.XhpcRealTimeOrderMapper; import com.xhpc.order.mapper.XhpcRealTimeOrderMapper;
import com.xhpc.order.service.IHxpcChargeOrderService; import com.xhpc.order.service.IXhpcChargeOrderService;
import com.xhpc.order.service.IXhpcHistoryOrderService; import com.xhpc.order.service.IXhpcHistoryOrderService;
import com.xhpc.order.service.IXhpcRealTimeOrderService; import com.xhpc.order.service.IXhpcRealTimeOrderService;
import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.util.*; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/** /**
* @author yuyang * @author yuyang
@ -27,7 +29,7 @@ public class XhpcRealTimeOrderServiceImpl implements IXhpcRealTimeOrderService {
private XhpcRealTimeOrderMapper xhpcRealTimeOrderMapper; private XhpcRealTimeOrderMapper xhpcRealTimeOrderMapper;
@Autowired @Autowired
private IHxpcChargeOrderService hxpcChargeOrderService; private IXhpcChargeOrderService xhpcChargeOrderService;
@Autowired @Autowired
private IXhpcHistoryOrderService xhpcHistoryOrderService; private IXhpcHistoryOrderService xhpcHistoryOrderService;
@ -92,7 +94,7 @@ public class XhpcRealTimeOrderServiceImpl implements IXhpcRealTimeOrderService {
public AjaxResult getExamine(Long chargingOrderId) { public AjaxResult getExamine(Long chargingOrderId) {
//获取开始充电时间结束时间计费模型充电度数已充金额 //获取开始充电时间结束时间计费模型充电度数已充金额
HxpcChargeOrder chargeOrder = hxpcChargeOrderService.getChargingOrderId(chargingOrderId); XhpcChargeOrder chargeOrder = xhpcChargeOrderService.getChargingOrderId(chargingOrderId);
String startTime = DateUtil.formatTime(chargeOrder.getStartTime()); String startTime = DateUtil.formatTime(chargeOrder.getStartTime());
String endTime = DateUtil.formatTime(chargeOrder.getEndTime()); String endTime = DateUtil.formatTime(chargeOrder.getEndTime());
Long rateModelId = chargeOrder.getRateModelId(); Long rateModelId = chargeOrder.getRateModelId();

View File

@ -2,9 +2,9 @@
<!DOCTYPE mapper <!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xhpc.order.mapper.HxpcChargeOrderMapper"> <mapper namespace="com.xhpc.order.mapper.XhpcChargeOrderMapper">
<resultMap type="com.xhpc.order.domain.HxpcChargeOrder" id="HxpcChargeOrderResult"> <resultMap type="com.xhpc.order.domain.XhpcChargeOrder" id="XhpcChargeOrderResult">
<result column="charge_order_id" property="chargeOrderId"/> <result column="charge_order_id" property="chargeOrderId"/>
<result column="charging_station_id" property="chargingStationId"/> <result column="charging_station_id" property="chargingStationId"/>
<result column="user_id" property="userId"/> <result column="user_id" property="userId"/>
@ -108,7 +108,7 @@
select * from xhpc_terminal where serial_number=#{serialNumber} and del_flag=0 limit 1 select * from xhpc_terminal where serial_number=#{serialNumber} and del_flag=0 limit 1
</select> </select>
<insert id="addXhpcChargeOrder" parameterType="com.xhpc.order.domain.HxpcChargeOrder" useGeneratedKeys="true" <insert id="addXhpcChargeOrder" parameterType="com.xhpc.order.domain.XhpcChargeOrder" useGeneratedKeys="true"
keyProperty="chargeOrderId"> keyProperty="chargeOrderId">
insert into xhpc_charge_order insert into xhpc_charge_order
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">
@ -237,7 +237,7 @@
</trim> </trim>
</insert> </insert>
<update id="updateXhpcChargeOrder" parameterType="com.xhpc.order.domain.HxpcChargeOrder"> <update id="updateXhpcChargeOrder" parameterType="com.xhpc.order.domain.XhpcChargeOrder">
update xhpc_charge_order update xhpc_charge_order
<set> <set>
<if test="startSoc != null">start_soc = #{startSoc},</if> <if test="startSoc != null">start_soc = #{startSoc},</if>
@ -277,8 +277,11 @@
order by cor.update_time desc order by cor.update_time desc
</select> </select>
<select id="getSerialNumberMessage" resultMap="HxpcChargeOrderResult"> <select id="getSerialNumberMessage" resultMap="XhpcChargeOrderResult">
select * from xhpc_charge_order where serial_number=#{serialNumber} limit 1 select *
from xhpc_charge_order
where serial_number = #{serialNumber}
limit 1
</select> </select>
<select id="getCount" resultType="int"> <select id="getCount" resultType="int">
@ -289,8 +292,10 @@
select discount,state from xhpc_promotion where del_flag=0 and status=0 and type=0 and start_time &lt;= now() and end_time &gt;=now() order by update_time desc select discount,state from xhpc_promotion where del_flag=0 and status=0 and type=0 and start_time &lt;= now() and end_time &gt;=now() order by update_time desc
</select> </select>
<select id="getChargingOrderId" resultMap="HxpcChargeOrderResult"> <select id="getChargingOrderId" resultMap="XhpcChargeOrderResult">
select * from xhpc_charge_order where charge_order_id=#{chargingOrderId} select *
from xhpc_charge_order
where charge_order_id = #{chargingOrderId}
</select> </select>
<select id="getOperatorMessage" resultType="map"> <select id="getOperatorMessage" resultType="map">
@ -422,6 +427,7 @@
</insert> </insert>
<insert id="addUserAccountStatement"> <insert id="addUserAccountStatement">
INSERT INTO xhpc_user_account_statement(user_id,amount,remaining_sum,charge_order_id,type,create_time) values(#{userId},#{amount},#{remainingSum},#{chargeOrderId},#{type},#{date}) INSERT INTO xhpc_user_account_statement(user_id, amount, remaining_sum, charge_order_id, type, create_time)
values (#{userId}, #{amount}, #{remainingSum}, #{chargeOrderId}, #{type}, #{date})
</insert> </insert>
</mapper> </mapper>

View File

@ -79,7 +79,6 @@ public class RealtimeDataLogic implements ServiceLogic {
String soc = realtimeData.getSoc(); String soc = realtimeData.getSoc();
String pkey = "pile:".concat(pileNo); String pkey = "pile:".concat(pileNo);
Map<String, Object> cachePile = REDIS.getCacheMap(pkey); Map<String, Object> cachePile = REDIS.getCacheMap(pkey);
String stationTermStatusKey = "stationTerminalStatus:".concat(cachePile.get("stationId").toString());
String statusOrSOC; String statusOrSOC;
Integer socInt = Integer.parseInt(soc, 16); Integer socInt = Integer.parseInt(soc, 16);
if (statusplain.equals("充电中")) { if (statusplain.equals("充电中")) {
@ -91,6 +90,7 @@ public class RealtimeDataLogic implements ServiceLogic {
cacheGun.put("status", statusOrSOC); cacheGun.put("status", statusOrSOC);
cacheGun.put("remainingTime", tr); cacheGun.put("remainingTime", tr);
REDIS.setCacheMap(gunkey, cacheGun); REDIS.setCacheMap(gunkey, cacheGun);
String stationTermStatusKey = "stationTerminalStatus:".concat(cachePile.get("stationId").toString());
Map<String, Object> cacheTerminalStatusMap = REDIS.getCacheMap(stationTermStatusKey); Map<String, Object> cacheTerminalStatusMap = REDIS.getCacheMap(stationTermStatusKey);
cacheTerminalStatusMap.put(terminalId, statusOrSOC); cacheTerminalStatusMap.put(terminalId, statusOrSOC);
REDIS.setCacheMap(stationTermStatusKey, cacheTerminalStatusMap); REDIS.setCacheMap(stationTermStatusKey, cacheTerminalStatusMap);

View File

@ -82,12 +82,16 @@ public class ChargingPileServer {
Map<String, Object> cachePile = REDIS.getCacheMap(pkey); Map<String, Object> cachePile = REDIS.getCacheMap(pkey);
cachePile.put("status", DISCONNECTED); cachePile.put("status", DISCONNECTED);
REDIS.setCacheMap(pkey, cachePile); REDIS.setCacheMap(pkey, cachePile);
String stationTermStatusKey = "stationTerminalStatus:".concat(cachePile.get("stationId").toString());
for (int i = 1; i <= (int) cachePile.get("gunNum"); i++) { for (int i = 1; i <= (int) cachePile.get("gunNum"); i++) {
String gunkey = "gun:".concat(pileNo).concat(String.format("%02d", i)); String gunkey = "gun:".concat(pileNo).concat(String.format("%02d", i));
Map<String, Object> cacheGun = REDIS.getCacheMap(gunkey); Map<String, Object> cacheGun = REDIS.getCacheMap(gunkey);
if (!cacheGun.isEmpty()) { if (!cacheGun.isEmpty()) {
cacheGun.put("status", DISCONNECTED); cacheGun.put("status", DISCONNECTED);
REDIS.setCacheMap(gunkey, cacheGun); REDIS.setCacheMap(gunkey, cacheGun);
Map<String, Object> cacheTerminalStatusMap = REDIS.getCacheMap(stationTermStatusKey);
cacheTerminalStatusMap.put(gunkey, DISCONNECTED);
REDIS.setCacheMap(stationTermStatusKey, cacheTerminalStatusMap);
String orderkey = (String) cacheGun.get("orderkey"); String orderkey = (String) cacheGun.get("orderkey");
if (orderkey != null) { if (orderkey != null) {
Map<String, Object> cacheOrder = REDIS.getCacheMap(orderkey); Map<String, Object> cacheOrder = REDIS.getCacheMap(orderkey);