From 559ef3caba10cf1ac3d1c09c4a65006c5ce28f8d Mon Sep 17 00:00:00 2001
From: yuyang <2265829957@qq.com>
Date: Wed, 25 Aug 2021 15:27:57 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=A1=A9=E8=AE=A2=E5=8D=95?=
=?UTF-8?q?=E7=BB=93=E6=9D=9F=E5=9B=9E=E8=B0=83=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../XhpcChargingStationServiceImpl.java | 3 +-
.../mapper/XhpcChargingStationMapper.xml | 11 ++-
.../general/service/XhpcSmsServiceImpl.java | 3 +-
.../order/api/HxpcPileOrderController.java | 92 ++++++++++++++-----
.../order/domain/XhpcOrderRedisRecord.java | 32 ++++++-
.../order/mapper/HxpcChargeOrderMapper.java | 22 +++++
.../order/mapper/XhpcRealTimeOrderMapper.java | 8 +-
.../service/IHxpcChargeOrderService.java | 21 +++++
.../impl/HxpcChargeOrderServiceImpl.java | 10 ++
.../impl/XhpcHistoryOrderServiceImpl.java | 30 ++++++
.../mapper/XhpcChargeOrderMapper.xml | 8 ++
.../mapper/XhpcHistoryOrderMapper.xml | 6 +-
12 files changed, 209 insertions(+), 37 deletions(-)
diff --git a/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcChargingStationServiceImpl.java b/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcChargingStationServiceImpl.java
index 7fa66b65..7efb6f15 100644
--- a/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcChargingStationServiceImpl.java
+++ b/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcChargingStationServiceImpl.java
@@ -564,8 +564,7 @@ public class XhpcChargingStationServiceImpl implements IXhpcChargingStationServi
xhpcRateTime.setType(type);
xhpcRateTime.setRateValue(rateValue);
xhpcChargingStationMapper.addXhpcRateTime(xhpcRateTime);
- sort = sort + 1;
- return sort;
+ return sort++;
}
@Override
diff --git a/xhpc-modules/xhpc-charging-station/src/main/resources/mapper/XhpcChargingStationMapper.xml b/xhpc-modules/xhpc-charging-station/src/main/resources/mapper/XhpcChargingStationMapper.xml
index 857d5f56..3cea0236 100644
--- a/xhpc-modules/xhpc-charging-station/src/main/resources/mapper/XhpcChargingStationMapper.xml
+++ b/xhpc-modules/xhpc-charging-station/src/main/resources/mapper/XhpcChargingStationMapper.xml
@@ -621,7 +621,10 @@
remark,
- rate_value
+ rate_value,
+
+
+ rate_model_id
@@ -659,8 +662,12 @@
#{remark},
- #{rateValue}
+ #{rateValue},
+
+ #{rateModelId}
+
+
diff --git a/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/service/XhpcSmsServiceImpl.java b/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/service/XhpcSmsServiceImpl.java
index 2d96c6d0..3c9539bc 100644
--- a/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/service/XhpcSmsServiceImpl.java
+++ b/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/service/XhpcSmsServiceImpl.java
@@ -141,11 +141,10 @@ public class XhpcSmsServiceImpl implements IXhpcSmsService{
}else {
xhpcSms.setStatus(1);
}
- xhpcSmsMapper.addXhpcSms(xhpcSms);
} catch (Exception e) {
xhpcSms.setStatus(3);
- xhpcSmsMapper.addXhpcSms(xhpcSms);
}
+ xhpcSmsMapper.addXhpcSms(xhpcSms);
}
public static void main(String[] args) {
diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/api/HxpcPileOrderController.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/api/HxpcPileOrderController.java
index 1acd925a..52176fad 100644
--- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/api/HxpcPileOrderController.java
+++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/api/HxpcPileOrderController.java
@@ -5,6 +5,7 @@ import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
+import com.xhpc.common.api.SmsService;
import com.xhpc.common.core.domain.R;
import com.xhpc.common.core.web.controller.BaseController;
import com.xhpc.common.data.redis.CacheOrderData;
@@ -45,6 +46,9 @@ public class HxpcPileOrderController extends BaseController {
@Autowired
private IXhpcRealTimeOrderService xhpcRealTimeOrderService;
+ @Autowired
+ private SmsService smsService;
+
private static final Logger logger = LoggerFactory.getLogger(HxpcPileOrderController.class);
/**
@@ -186,13 +190,14 @@ public class HxpcPileOrderController extends BaseController {
//解析订单编号
Date date = new Date();
//总金额
- BigDecimal money = new BigDecimal((cacheOrderData.getCost()/10000));
+ BigDecimal bigDecimal = new BigDecimal(10000);
+ BigDecimal money = new BigDecimal(cacheOrderData.getCost()).divide(bigDecimal);
int sumCost =cacheOrderData.getT1Cost()+cacheOrderData.getT2Cost()+cacheOrderData.getT3Cost()+cacheOrderData.getT4Cost();
int sumService = cacheOrderData.getCost()-sumCost;
//总电费
- BigDecimal powerPrice = new BigDecimal((sumCost/10000));
+ BigDecimal powerPrice = new BigDecimal(sumCost).divide(bigDecimal);
//总服务费
- BigDecimal servicePrice = new BigDecimal((sumService/10000));
+ BigDecimal servicePrice = new BigDecimal(sumService).divide(bigDecimal);
//剩余的电费
BigDecimal surplusPowerPrice = powerPrice;
//剩余的服务费
@@ -212,17 +217,18 @@ public class HxpcPileOrderController extends BaseController {
hxpcChargeOrder.setEndTime(endTime);
//充电时长
- Long tiem = endTime.getTime()-startTime.getTime();
+ Long tiem = (endTime.getTime()-startTime.getTime())%1000;
- if(tiem>60000){
- long mins = tiem % 60000;
- long hours = tiem / 60000;
+ if(tiem>60){
+ long mins = tiem % 60;
+ long hours = tiem / 60;
hxpcChargeOrder.setChargingTime(hours+"时"+mins+"分");
}else{
- long mins = tiem % 60000;
+ long mins = tiem % 60;
hxpcChargeOrder.setChargingTime(mins+"分");
}
- hxpcChargeOrder.setChargingDegree(cacheOrderData.getTotalPowerQuantity().toString());
+ BigDecimal divide = new BigDecimal(cacheOrderData.getTotalPowerQuantity()).divide(bigDecimal);
+ hxpcChargeOrder.setChargingDegree(divide.toString());
hxpcChargeOrder.setAmountCharged(money.toString());
String stopReason = cacheOrderData.getStopReason();
hxpcChargeOrder.setErroRemark(stopReason);
@@ -381,9 +387,34 @@ public class HxpcPileOrderController extends BaseController {
xhpcHistoryOrder.setReconciliationStatus(0);
xhpcHistoryOrder.setCreateTime(date);
- xhpcHistoryOrderService.insert(xhpcHistoryOrder);
+
+ //扣除用户实际消费金额,添加消费记录
+ Map user = hxpcChargeOrderService.getUserMessage(userId);
+ //剩余的钱
+ BigDecimal balance1 =(BigDecimal) user.get("balance");
+ BigDecimal subtract = balance1.subtract(actPrice);
+ int i = hxpcChargeOrderService.updateUserBalance(userId, subtract);
+ if(i==0){
+ //扣钱失败
+ xhpcHistoryOrder.setStatus(2);
+ xhpcHistoryOrder.setRemark("扣钱失败");
+ }else{
+ xhpcHistoryOrderService.insert(xhpcHistoryOrder);
+ addPileEndOrder(xhpcHistoryOrder,hxpcChargeOrder,cacheMap,orderNo);
+ //添加流水
+ hxpcChargeOrderService.addUserAccountStatement(userId,actPrice.negate(),subtract,hxpcChargeOrder.getChargeOrderId(),3,date);
+ try{
+ //发送短信
+ if(user.get("phone") !=null){
+ String content="【小华停止充电】尊敬的用户,你的爱车已停止充电,电量为:"+hxpcChargeOrder.getChargingDegree()+",总费用为:"+actPrice+"元,充电费用明细,请查询小华充电小程序,谢谢。";
+ smsService.sendNotice(user.get("phone").toString(),content);
+ }
+ }catch (Exception e){
+ logger.info("<<<<<<<<<<<<<<<<发送短信失败>>>>>>>>>>>>>>>>>");
+ }
+
+ }
hxpcChargeOrderService.updateXhpcChargeOrder(hxpcChargeOrder);
- addPileEndOrder(xhpcHistoryOrder,hxpcChargeOrder,cacheMap,orderNo);
Map map = new HashMap<>();
map.put("code", 500);
map.put("userId", userId);
@@ -442,6 +473,12 @@ public class HxpcPileOrderController extends BaseController {
if(cacheMap.get("rateModelId") !=null){
xhpcOrderRedisRecord.setRateModelId(cacheMap.get("rateModelId").toString());
}
+ if(cacheMap.get("lt5alerted") !=null){
+ xhpcOrderRedisRecord.setLt5alerted(cacheMap.get("lt5alerted").toString());
+ }
+ if(cacheMap.get("orderData") !=null){
+ xhpcOrderRedisRecord.setOrderData(cacheMap.get("orderData").toString());
+ }
xhpcOrderRedisRecord.setCreateTime(date);
hxpcChargeOrderService.addXhpcOrderRedisRecord(xhpcOrderRedisRecord);
@@ -512,7 +549,8 @@ public class HxpcPileOrderController extends BaseController {
BigDecimal chargingDegree = new BigDecimal(cacheRealtimeData.getChargingDegree()).divide(decimal);
xhpcRealTimeOrder.setChargingDegree(chargingDegree);
xhpcRealTimeOrder.setLossChargingDegree(divide);
- xhpcRealTimeOrder.setAmountCharged(divide);
+ BigDecimal amountCharged = new BigDecimal(cacheRealtimeData.getAmountCharged()).divide(decimal);
+ xhpcRealTimeOrder.setAmountCharged(amountCharged);
xhpcRealTimeOrder.setHardwareFault(cacheRealtimeData.getHardwareFault());
if("00".equals(cacheRealtimeData.getStatus())){
xhpcRealTimeOrder.setStatus(0);
@@ -623,18 +661,26 @@ public class HxpcPileOrderController extends BaseController {
public static void main(String[] args) {
- long time = DateUtil.parse("2021-08-18 12:12:12").getTime();
+// long time = DateUtil.parse("2021-08-18 12:12:12").getTime();
+//
+// long time1 = DateUtil.parse("2021-08-19 12:12:12").getTime();
+// String orderNo="order:69852145896547022108191121220010";
+// //解析订单编号
+// String s = orderNo.split("\\.")[0];
+// String s1 = s.split(":")[1];
+// String s2 = orderNo.substring(6);
+//
+// String s3 = s2.substring(0,16);
+// System.out.println(s);
+// System.out.println("<<<<"+s2);
+// System.out.println("<<<<"+s3);
- long time1 = DateUtil.parse("2021-08-19 12:12:12").getTime();
- String orderNo="order:69852145896547022108191121220010";
- //解析订单编号
- String s = orderNo.split("\\.")[0];
- String s1 = s.split(":")[1];
- String s2 = orderNo.substring(6);
+ int cacheRealtimeData =3000;
+ int mins = cacheRealtimeData % 60;
+ int hours = cacheRealtimeData / 60;
+
+ System.out.println("<<<<"+mins);
+ System.out.println("<<<<"+hours);
- String s3 = s2.substring(0,16);
- System.out.println(s);
- System.out.println("<<<<"+s2);
- System.out.println("<<<<"+s3);
}
}
diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/domain/XhpcOrderRedisRecord.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/domain/XhpcOrderRedisRecord.java
index f6c1e98c..7038824f 100644
--- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/domain/XhpcOrderRedisRecord.java
+++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/domain/XhpcOrderRedisRecord.java
@@ -44,7 +44,7 @@ public class XhpcOrderRedisRecord extends BaseEntity {
*/
private String startResult;
/**
- * 实时数据
+ * 实时数据集合
*/
private String realtimeDataList;
/**
@@ -60,6 +60,16 @@ public class XhpcOrderRedisRecord extends BaseEntity {
*/
private String delFlag;
+ /**
+ *
+ */
+ private String lt5alerted;
+
+ /**
+ * 实时数据
+ */
+ private String orderData;
+
public Long getOrderRedisRecordId() {
return orderRedisRecordId;
@@ -190,4 +200,24 @@ public class XhpcOrderRedisRecord extends BaseEntity {
this.delFlag = delFlag;
}
+ public String getLt5alerted() {
+
+ return lt5alerted;
+ }
+
+ public void setLt5alerted(String lt5alerted) {
+
+ this.lt5alerted = lt5alerted;
+ }
+
+ public String getOrderData() {
+
+ return orderData;
+ }
+
+ public void setOrderData(String orderData) {
+
+ this.orderData = orderData;
+ }
+
}
diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/HxpcChargeOrderMapper.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/HxpcChargeOrderMapper.java
index c55e4d18..3555c608 100644
--- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/HxpcChargeOrderMapper.java
+++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/HxpcChargeOrderMapper.java
@@ -6,6 +6,8 @@ import com.xhpc.order.domain.HxpcChargeOrder;
import com.xhpc.order.domain.XhpcOrderRedisRecord;
import org.apache.ibatis.annotations.Param;
+import java.math.BigDecimal;
+import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -39,6 +41,13 @@ public interface HxpcChargeOrderMapper {
*/
Map getUserMessage(@Param("userId")Long userId);
+ /**
+ * 修改余额
+ * @param userId
+ * @param balance
+ * @return
+ */
+ int updateUserBalance(@Param("userId")Long userId, @Param("balance")BigDecimal balance);
/**
* 判断用户是否在充电中
@@ -111,4 +120,17 @@ public interface HxpcChargeOrderMapper {
*/
void addXhpcOrderRedisRecord(XhpcOrderRedisRecord xhpcOrderRedisRecord);
+
+ /**
+ * 添加流水
+ * @param userId 用户id
+ * @param amount 流水金额
+ * @param remainingSum 余额
+ * @param chargeOrderId 充电订单id
+ * @param type 类型(1充值 2退款 3充电)
+ * @param date 时间
+ * @return
+ */
+ int addUserAccountStatement(@Param("userId") Long userId,@Param("amount") BigDecimal amount,@Param("remainingSum") BigDecimal remainingSum,@Param("chargeOrderId") Long chargeOrderId,@Param("type") Integer type,@Param("date") Date date);
+
}
diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/XhpcRealTimeOrderMapper.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/XhpcRealTimeOrderMapper.java
index eaa21653..3eca64ee 100644
--- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/XhpcRealTimeOrderMapper.java
+++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/XhpcRealTimeOrderMapper.java
@@ -100,11 +100,11 @@ public interface XhpcRealTimeOrderMapper {
/**
* 删除之前的实时订单数据
*/
- void deleteRealTimeOrder(@Param("chargingStationId")Long chargingOrderId);
+ void deleteRealTimeOrder(@Param("chargingOrderId")Long chargingOrderId);
- void deleteChargeVoltage(@Param("chargingStationId")Long chargingOrderId);
+ void deleteChargeVoltage(@Param("chargingOrderId")Long chargingOrderId);
- void deleteChargeOrderSoc(@Param("chargingStationId")Long chargingOrderId);
+ void deleteChargeOrderSoc(@Param("chargingOrderId")Long chargingOrderId);
- void deleteChargeOrderCurrent(@Param("chargingStationId")Long chargingOrderId);
+ void deleteChargeOrderCurrent(@Param("chargingOrderId")Long chargingOrderId);
}
diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/IHxpcChargeOrderService.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/IHxpcChargeOrderService.java
index 01729618..a38b5b22 100644
--- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/IHxpcChargeOrderService.java
+++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/IHxpcChargeOrderService.java
@@ -6,6 +6,8 @@ import com.xhpc.order.domain.HxpcChargeOrder;
import com.xhpc.order.domain.XhpcOrderRedisRecord;
import org.apache.ibatis.annotations.Param;
+import java.math.BigDecimal;
+import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -82,6 +84,14 @@ public interface IHxpcChargeOrderService {
*/
Map getUserMessage(Long userId);
+ /**
+ * 修改余额
+ * @param userId
+ * @param balance
+ * @return
+ */
+ int updateUserBalance(Long userId, BigDecimal balance);
+
/**
* 获取运营商信息
* @param chargingStationId
@@ -95,4 +105,15 @@ public interface IHxpcChargeOrderService {
*/
void addXhpcOrderRedisRecord(XhpcOrderRedisRecord xhpcOrderRedisRecord);
+ /**
+ * 添加流水
+ * @param userId 用户id
+ * @param amount 流水金额
+ * @param remainingSum 余额
+ * @param chargeOrderId 充电订单id
+ * @param type 类型(1充值 2退款 3充电)
+ * @param date 时间
+ * @return
+ */
+ int addUserAccountStatement(Long userId, BigDecimal amount, BigDecimal remainingSum, Long chargeOrderId, Integer type, Date date);
}
diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/HxpcChargeOrderServiceImpl.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/HxpcChargeOrderServiceImpl.java
index 8857b716..bb41a06a 100644
--- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/HxpcChargeOrderServiceImpl.java
+++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/HxpcChargeOrderServiceImpl.java
@@ -229,6 +229,11 @@ public class HxpcChargeOrderServiceImpl implements IHxpcChargeOrderService {
return hxpcChargeOrderMapper.getUserMessage(userId);
}
+ @Override
+ public int updateUserBalance(Long userId, BigDecimal balance) {
+ return hxpcChargeOrderMapper.updateUserBalance(userId,balance);
+ }
+
@Override
public Map getOperatorMessage(Long chargingStationId) {
return hxpcChargeOrderMapper.getOperatorMessage(chargingStationId);
@@ -239,5 +244,10 @@ public class HxpcChargeOrderServiceImpl implements IHxpcChargeOrderService {
hxpcChargeOrderMapper.addXhpcOrderRedisRecord(xhpcOrderRedisRecord);
}
+ @Override
+ public int addUserAccountStatement(Long userId, BigDecimal amount, BigDecimal remainingSum, Long chargeOrderId, Integer type, Date date) {
+ return hxpcChargeOrderMapper.addUserAccountStatement(userId, amount, remainingSum, chargeOrderId, type, date);
+ }
+
}
diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcHistoryOrderServiceImpl.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcHistoryOrderServiceImpl.java
index 03117b52..97a83160 100644
--- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcHistoryOrderServiceImpl.java
+++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcHistoryOrderServiceImpl.java
@@ -1,14 +1,17 @@
package com.xhpc.order.service.impl;
import com.xhpc.common.core.web.domain.AjaxResult;
+import com.xhpc.order.domain.HxpcChargeOrder;
import com.xhpc.order.domain.XhpcHistoryOrder;
import com.xhpc.order.mapper.XhpcHistoryOrderMapper;
+import com.xhpc.order.service.IHxpcChargeOrderService;
import com.xhpc.order.service.IXhpcHistoryOrderService;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -21,6 +24,10 @@ public class XhpcHistoryOrderServiceImpl implements IXhpcHistoryOrderService {
@Autowired
private XhpcHistoryOrderMapper xhpcHistoryOrderMapper;
+
+ @Autowired
+ private IHxpcChargeOrderService xhpcChargeOrderService;
+
@Override
public List