mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-19 18:45:03 +08:00
订单实时数据保存到数据库
This commit is contained in:
@@ -842,6 +842,15 @@ public class OrderService {
|
||||
MemberVO memberVO = memberService.getMemberInfoByMemberId(orderBasicInfo.getMemberId());
|
||||
vo.setMemberInfo(memberVO);
|
||||
|
||||
try {
|
||||
// 因为原来的数据在redis中是永久保存,所以这里做下查询详情的时候,发现已经是完成的订单,redis数据存到表中
|
||||
if (StringUtils.equals(orderBasicInfo.getOrderStatus(), OrderStatusEnum.ORDER_COMPLETE.getValue())) {
|
||||
// 如果是已完成的订单,把redis中的实时数据存到表中
|
||||
orderBasicInfoService.realTimeMonitorDataRedis2DB(orderBasicInfo.getTransactionCode(), orderBasicInfo.getOrderCode());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("后管查询订单详情时把redis中的实时数据存到表发生异常", e);
|
||||
}
|
||||
return vo;
|
||||
}
|
||||
|
||||
@@ -934,10 +943,17 @@ public class OrderService {
|
||||
UniAppOrderVO.BillingDetails billingDetails = new UniAppOrderVO.BillingDetails();
|
||||
BeanUtils.copyBeanProp(billingDetails, orderDetail);
|
||||
vo.setBillingDetails(billingDetails);
|
||||
|
||||
// orderDetail.getSharpElectricityPrice()
|
||||
}
|
||||
|
||||
|
||||
try {
|
||||
// 因为原来的数据在redis中是永久保存,所以这里做下查询详情的时候,发现已经是完成的订单,redis数据存到表中
|
||||
if (StringUtils.equals(orderBasicInfo.getOrderStatus(), OrderStatusEnum.ORDER_COMPLETE.getValue())) {
|
||||
// 如果是已完成的订单,把redis中的实时数据存到表中
|
||||
orderBasicInfoService.realTimeMonitorDataRedis2DB(orderBasicInfo.getTransactionCode(), orderBasicInfo.getOrderCode());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("后管查询订单详情时把redis中的实时数据存到表发生异常", e);
|
||||
}
|
||||
return vo;
|
||||
}
|
||||
|
||||
@@ -77,6 +77,11 @@
|
||||
<groupId>com.fasterxml.jackson.dataformat</groupId>
|
||||
<artifactId>jackson-dataformat-avro</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.alibaba.fastjson2</groupId>
|
||||
<artifactId>fastjson2</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<properties>
|
||||
|
||||
@@ -119,6 +119,8 @@ public interface IOrderBasicInfoService {
|
||||
|
||||
List<OrderVO> getListByMemberIdAndOrderStatus(String memberId, List<String> orderStatusList, LocalDateTime dateTime);
|
||||
|
||||
void realTimeMonitorDataRedis2DB(String transactionCode, String orderCode);
|
||||
|
||||
void updateElecAmount();
|
||||
|
||||
/**
|
||||
|
||||
@@ -706,7 +706,8 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
||||
* 从redis中取出实时记录保存到表中
|
||||
* 当订单完成的时候调用
|
||||
*/
|
||||
private void realTimeMonitorDataRedis2DB(String transactionCode, String orderCode) {
|
||||
@Override
|
||||
public void realTimeMonitorDataRedis2DB(String transactionCode, String orderCode) {
|
||||
if (StringUtils.isBlank(transactionCode)) {
|
||||
return;
|
||||
}
|
||||
@@ -1060,6 +1061,15 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
||||
RealTimeMonitorData data = JSONObject.parseObject((String) o, RealTimeMonitorData.class);
|
||||
resultList.add(data);
|
||||
}
|
||||
} else {
|
||||
logger.debug("redis中没有实时数据了,去数据库查");
|
||||
// redis中为空,去查库
|
||||
OrderMonitorData orderMonitorData = orderMonitorDataService.selectByTransactionCode(transactionCode);
|
||||
if (orderMonitorData != null) {
|
||||
String monitorData = orderMonitorData.getMonitorData();
|
||||
List<RealTimeMonitorData> dataList = JSON.parseArray(monitorData, RealTimeMonitorData.class);
|
||||
resultList.addAll(dataList);
|
||||
}
|
||||
}
|
||||
return resultList;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user