修改模板和结算订单
This commit is contained in:
parent
79686e62d2
commit
f453d8afbd
@ -197,7 +197,7 @@ public class XhpcPileOrderController extends BaseController {
|
||||
xhpcChargeOrder.setEndTime(date);
|
||||
xhpcChargeOrder.setUpdateTime(date);
|
||||
xhpcChargeOrderService.updateXhpcChargeOrder(xhpcChargeOrder);
|
||||
Map<String, Object> map = addOrderTime(cacheRealtimeData, xhpcChargeOrder, orderNo, 1);
|
||||
Map<String, Object> map = xhpcRealTimeOrderService.addOrderTime(cacheRealtimeData, xhpcChargeOrder, orderNo, 1);
|
||||
JSONObject json = new JSONObject(map);
|
||||
//消息对了内容
|
||||
rabbimt(userId + "##" + json);
|
||||
@ -284,7 +284,6 @@ public class XhpcPileOrderController extends BaseController {
|
||||
int startSoc = cacheOrderData.getStartSoc();
|
||||
int endSoc = cacheOrderData.getEndSoc();
|
||||
|
||||
|
||||
xhpcChargeOrder.setStartSoc(startSoc + "");
|
||||
xhpcChargeOrder.setEndSoc(endSoc + "");
|
||||
int status = cacheOrderData.getStatus();
|
||||
@ -324,173 +323,11 @@ public class XhpcPileOrderController extends BaseController {
|
||||
xhpcChargeOrder.setStatus(2);
|
||||
//异常原因
|
||||
xhpcChargeOrder.setErroRemark("桩异常:" + stopReason + ">>>>用户id:" + userId + "为空");
|
||||
xhpcChargeOrderService.updateXhpcChargeOrder(xhpcChargeOrder);
|
||||
R.ok();
|
||||
}
|
||||
BigDecimal balance = new BigDecimal(userMessage.get("balance").toString()).divide(new BigDecimal(100));
|
||||
|
||||
//电站活动抵扣--抵扣的总金额
|
||||
BigDecimal promotionDiscount = new BigDecimal(0);
|
||||
//实际价格-用户支付的钱
|
||||
BigDecimal actPrice =money;
|
||||
//流量方总金额抽成
|
||||
BigDecimal internetCommission =new BigDecimal(0);
|
||||
//流量方服务费抽成
|
||||
BigDecimal internetSvcCommission =new BigDecimal(0);
|
||||
//平台总金额抽成
|
||||
BigDecimal platformCommission =new BigDecimal(0);
|
||||
//平台服务费抽成
|
||||
BigDecimal platformSvcCommission =new BigDecimal(0);
|
||||
//运维总抽成
|
||||
BigDecimal operationCommission =new BigDecimal(0);
|
||||
//运维服务费抽成
|
||||
BigDecimal operationSvcCommission =new BigDecimal(0);
|
||||
|
||||
//判断是C端用户还是流量端用户
|
||||
if (xhpcChargeOrder.getSource() == 0) {
|
||||
String state = "";
|
||||
BigDecimal discount = new BigDecimal(0);
|
||||
//用户第几次充电
|
||||
int count = xhpcChargeOrderService.getCount(userId,xhpcChargeOrder.getChargeOrderId());
|
||||
if (count == 0) {
|
||||
//活动折扣
|
||||
Map<String, Object> promotion = xhpcChargeOrderService.getPromotion();
|
||||
if (promotion != null && promotion.get("state") != null && promotion.get("discount") != null) {
|
||||
//state 1.总金额 2.电费 3.服务费 discount 折扣率
|
||||
state = promotion.get("state").toString();
|
||||
discount =new BigDecimal(promotion.get("discount").toString());
|
||||
}
|
||||
}
|
||||
if(!"".equals(state)){
|
||||
//查看是否优惠为0
|
||||
boolean fan = true;
|
||||
if(discount.compareTo(new BigDecimal(0))==0){
|
||||
fan=false;
|
||||
}
|
||||
if("1".equals(state)){
|
||||
//总金额
|
||||
if(fan){
|
||||
promotionDiscount=money.multiply(discount);
|
||||
actPrice = money.subtract(promotionDiscount);
|
||||
surplusPowerPrice = surplusPowerPrice.subtract(promotionDiscount.divide(new BigDecimal(2)));
|
||||
surplusServicePrice= surplusServicePrice.subtract(promotionDiscount.divide(new BigDecimal(2)));
|
||||
}
|
||||
}else if("2".equals(state)){
|
||||
if(fan){
|
||||
//电费
|
||||
promotionDiscount =powerPrice.multiply(balance);
|
||||
actPrice = money.subtract(promotionDiscount);
|
||||
surplusPowerPrice=surplusPowerPrice.subtract(promotionDiscount);
|
||||
}
|
||||
}else if("3".equals(state)){
|
||||
if(fan){
|
||||
//服务费
|
||||
promotionDiscount = servicePrice.multiply(balance);
|
||||
actPrice = money.subtract(promotionDiscount);
|
||||
surplusServicePrice =surplusServicePrice.subtract(promotionDiscount);
|
||||
}
|
||||
}
|
||||
}
|
||||
xhpcHistoryOrder.setInternetCommission(internetCommission);
|
||||
xhpcHistoryOrder.setInternetSvcCommission(internetSvcCommission);
|
||||
}else{
|
||||
//流量方,未实现
|
||||
}
|
||||
|
||||
//获取运营商
|
||||
Map<String, Object> operatorMessage = xhpcChargeOrderService.getOperatorMessage(xhpcChargeOrder.getChargingStationId());
|
||||
if(operatorMessage !=null){
|
||||
if(operatorMessage.get("maintenanceCommissionRate") !=null && operatorMessage.get("commissionType") !=null && operatorMessage.get("platformCommissionRate") !=null){
|
||||
Integer commissionType = (Integer) operatorMessage.get("commissionType");
|
||||
//运维提成
|
||||
BigDecimal maintenanceCommissionRate = new BigDecimal(operatorMessage.get("maintenanceCommissionRate").toString()).divide(new BigDecimal(100));
|
||||
//平台提成
|
||||
BigDecimal platformCommissionRate = new BigDecimal(operatorMessage.get("platformCommissionRate").toString()).divide(new BigDecimal(100));
|
||||
//提成类型(0总金额提成 1服务费提成)
|
||||
if(commissionType==0){
|
||||
BigDecimal multiply1 = surplusPowerPrice.multiply(platformCommissionRate);
|
||||
BigDecimal multiply2 = surplusServicePrice.multiply(platformCommissionRate);
|
||||
platformCommission = multiply1.add(multiply2);
|
||||
//剩下的钱
|
||||
surplusPowerPrice = surplusPowerPrice.subtract(multiply1);
|
||||
surplusServicePrice = surplusServicePrice.subtract(multiply2);
|
||||
BigDecimal multiply3 = surplusPowerPrice.multiply(maintenanceCommissionRate);
|
||||
BigDecimal multiply4 = surplusServicePrice.multiply(maintenanceCommissionRate);
|
||||
operationCommission = multiply1.add(multiply2);
|
||||
//剩下的钱
|
||||
surplusPowerPrice = surplusPowerPrice.subtract(multiply3);
|
||||
surplusServicePrice = surplusServicePrice.subtract(multiply4);
|
||||
|
||||
}else if(commissionType==1){
|
||||
BigDecimal multiply2 = surplusServicePrice.multiply(platformCommissionRate);
|
||||
platformSvcCommission=multiply2;
|
||||
//剩下的钱
|
||||
surplusServicePrice = surplusServicePrice.subtract(multiply2);
|
||||
|
||||
BigDecimal multiply4 = surplusServicePrice.multiply(maintenanceCommissionRate);
|
||||
operationCommission = multiply4;
|
||||
//剩下的钱
|
||||
surplusServicePrice = surplusServicePrice.subtract(multiply4);
|
||||
}
|
||||
}else{
|
||||
//订单异常
|
||||
xhpcChargeOrder.setStatus(2);
|
||||
//异常原因
|
||||
xhpcChargeOrder.setErroRemark("桩异常:" + stopReason + ">>>>用户id:" + userId + "为空" + ">>>>运营商数据为空");
|
||||
}
|
||||
}
|
||||
Long chargeOrderId = xhpcChargeOrder.getChargeOrderId();
|
||||
xhpcHistoryOrder.setChargeOrderId(chargeOrderId);
|
||||
xhpcHistoryOrder.setChargingStationId(xhpcChargeOrder.getChargingStationId());
|
||||
xhpcHistoryOrder.setUserId(userId);
|
||||
xhpcHistoryOrder.setTerminalId(xhpcChargeOrder.getTerminalId());
|
||||
xhpcHistoryOrder.setSerialNumber(xhpcChargeOrder.getSerialNumber());
|
||||
xhpcHistoryOrder.setStartSoc(xhpcChargeOrder.getStartSoc());
|
||||
xhpcHistoryOrder.setReconciliationStatus(0);
|
||||
xhpcHistoryOrder.setSortingStatus(0);
|
||||
xhpcHistoryOrder.setType(1);
|
||||
//订单总价---运维服务费抽成
|
||||
xhpcHistoryOrder.setTotalPrice(money.setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||
xhpcHistoryOrder.setPromotionDiscount(promotionDiscount.setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||
xhpcHistoryOrder.setActPrice(actPrice.setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||
xhpcHistoryOrder.setActPowerPrice(surplusPowerPrice.setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||
xhpcHistoryOrder.setActServicePrice(surplusServicePrice.setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||
xhpcHistoryOrder.setInternetCommission(internetCommission.setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||
xhpcHistoryOrder.setInternetSvcCommission(internetSvcCommission.setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||
xhpcHistoryOrder.setPlatformCommission(platformCommission.setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||
xhpcHistoryOrder.setPlatformSvcCommisssion(platformSvcCommission.setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||
xhpcHistoryOrder.setOperationCommission(operationCommission.setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||
xhpcHistoryOrder.setOperationSvcCommission(operationSvcCommission.setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||
xhpcHistoryOrder.setStartSoc(startSoc+"");
|
||||
xhpcHistoryOrder.setEndSoc(endSoc+"");
|
||||
xhpcHistoryOrder.setReconciliationStatus(0);
|
||||
xhpcHistoryOrder.setCreateTime(date);
|
||||
|
||||
//扣除用户实际消费金额,添加消费记录
|
||||
Map<String, Object> user = xhpcChargeOrderService.getUserMessage(userId);
|
||||
//剩余的钱
|
||||
BigDecimal balance1 =(BigDecimal) user.get("balance");
|
||||
BigDecimal subtract = balance1.subtract(actPrice);
|
||||
int i = xhpcChargeOrderService.updateUserBalance(userId, subtract);
|
||||
if(i==0){
|
||||
//扣钱失败
|
||||
xhpcHistoryOrder.setStatus(2);
|
||||
xhpcHistoryOrder.setRemark("扣钱失败");
|
||||
}else{
|
||||
xhpcHistoryOrderService.insert(xhpcHistoryOrder);
|
||||
addPileEndOrder(xhpcHistoryOrder, xhpcChargeOrder, cacheMap, orderNo);
|
||||
//添加流水
|
||||
xhpcChargeOrderService.addUserAccountStatement(userId, actPrice.negate(), subtract, xhpcChargeOrder.getChargeOrderId(), 3, date);
|
||||
try{
|
||||
//发送短信
|
||||
if(user.get("phone") !=null){
|
||||
String content = "【小华停止充电】尊敬的用户,你的爱车已停止充电,电量为:" + endSoc + "%,总费用为:" + actPrice + "元,充电费用明细,请查询小华充电小程序,谢谢。";
|
||||
smsService.sendNotice(user.get("phone").toString(),content);
|
||||
}
|
||||
}catch (Exception e){
|
||||
logger.info("<<<<<<<<<<<<<<<<发送短信失败>>>>>>>>>>>>>>>>>");
|
||||
}
|
||||
|
||||
}
|
||||
xhpcChargeOrderService.updateXhpcChargeOrder(xhpcChargeOrder);
|
||||
//结算
|
||||
xhpcRealTimeOrderService.addSettlement(powerPrice,servicePrice,money,surplusPowerPrice,surplusServicePrice,xhpcChargeOrder,userId,userMessage,1);
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("code", 500);
|
||||
map.put("userId", userId);
|
||||
@ -503,192 +340,6 @@ public class XhpcPileOrderController extends BaseController {
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
|
||||
private void addPileEndOrder(XhpcHistoryOrder xhpcHistoryOrder, XhpcChargeOrder xhpcChargeOrder,
|
||||
Map<String, Object> cacheMap, String orderNo) {
|
||||
|
||||
Date date = new Date();
|
||||
Long chargeOrderId = xhpcChargeOrder.getChargeOrderId();
|
||||
//删除实时数据,获取最新的实时数据
|
||||
xhpcRealTimeOrderService.deleteRealTimeOrder(xhpcChargeOrder.getChargeOrderId());
|
||||
//添加新的实时数据
|
||||
List<CacheRealtimeData> list = (List<CacheRealtimeData>) cacheMap.get("realtimeDataList");
|
||||
if (list != null && list.size() > 0) {
|
||||
for (CacheRealtimeData cacheRealtimeData : list) {
|
||||
addOrderTime(cacheRealtimeData, xhpcChargeOrder, orderNo, 2);
|
||||
}
|
||||
}
|
||||
//添加redis到数据库
|
||||
XhpcOrderRedisRecord xhpcOrderRedisRecord =new XhpcOrderRedisRecord();
|
||||
xhpcOrderRedisRecord.setChargeOrderId(chargeOrderId);
|
||||
xhpcOrderRedisRecord.setHistoryOrderOd(xhpcHistoryOrder.getHistoryOrderId());
|
||||
if(cacheMap.get("endSoc") !=null){
|
||||
xhpcOrderRedisRecord.setEndSoc(cacheMap.get("endSoc").toString());
|
||||
}
|
||||
if(cacheMap.get("status") !=null){
|
||||
xhpcOrderRedisRecord.setStatus(cacheMap.get("status").toString());
|
||||
}
|
||||
if(cacheMap.get("balance") !=null){
|
||||
xhpcOrderRedisRecord.setBalance(cacheMap.get("balance").toString());
|
||||
}
|
||||
if(cacheMap.get("tel") !=null){
|
||||
xhpcOrderRedisRecord.setTel(cacheMap.get("tel").toString());
|
||||
}
|
||||
if(cacheMap.get("startSoc") !=null){
|
||||
xhpcOrderRedisRecord.setStartSoc(cacheMap.get("startSoc").toString());
|
||||
}
|
||||
if(cacheMap.get("startResult") !=null){
|
||||
xhpcOrderRedisRecord.setStartResult(cacheMap.get("startResult").toString());
|
||||
}
|
||||
if(cacheMap.get("realtimeDataList") !=null){
|
||||
xhpcOrderRedisRecord.setRealtimeDataList(cacheMap.get("realtimeDataList").toString());
|
||||
}
|
||||
if(cacheMap.get("remainingTime") !=null){
|
||||
xhpcOrderRedisRecord.setRemainingTime(cacheMap.get("remainingTime").toString());
|
||||
}
|
||||
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);
|
||||
xhpcChargeOrderService.addXhpcOrderRedisRecord(xhpcOrderRedisRecord);
|
||||
|
||||
//删除redis
|
||||
//redisService.deleteObject("order:"+orderNo);
|
||||
logger.info("<<<<<<<<<<<<<<<<订单结束回调成功>>>>>>>>>>>>>>>>>");
|
||||
logger.info("<<<<<<<<<<<<<<<<订单结束回调成功>>>>>>>>>>>>>>>>>");
|
||||
logger.info("<<<<<<<<<<<<<<<<订单结束回调成功>>>>>>>>>>>>>>>>>");
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加实时数据
|
||||
*
|
||||
* @param cacheRealtimeData
|
||||
* @param xhpcChargeOrder
|
||||
* @param orderNo 订单号
|
||||
* @param type 1.实时数据回调 2.结算回调
|
||||
* @return
|
||||
*/
|
||||
private Map<String, Object> addOrderTime(CacheRealtimeData cacheRealtimeData, XhpcChargeOrder xhpcChargeOrder,
|
||||
String orderNo, Integer type) {
|
||||
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
Date date = new Date();
|
||||
Long chargeOrderId = xhpcChargeOrder.getChargeOrderId();
|
||||
XhpcRealTimeOrder xhpcRealTimeOrder = new XhpcRealTimeOrder();
|
||||
xhpcRealTimeOrder.setChargingOrderId(xhpcChargeOrder.getChargeOrderId());
|
||||
xhpcRealTimeOrder.setTransactionNumber(orderNo);
|
||||
xhpcRealTimeOrder.setPileNumber(cacheRealtimeData.getPileNo());
|
||||
String gunId = cacheRealtimeData.getGunId();
|
||||
xhpcRealTimeOrder.setGunNumber(gunId);
|
||||
if("00".equals(cacheRealtimeData.getPileGunStatus())){
|
||||
xhpcRealTimeOrder.setPileGunStatus(0);
|
||||
}else if("01".equals(cacheRealtimeData.getPileGunStatus())){
|
||||
xhpcRealTimeOrder.setPileGunStatus(1);
|
||||
}else{
|
||||
xhpcRealTimeOrder.setPileGunStatus(2);
|
||||
}
|
||||
if("00".equals(cacheRealtimeData.getVehicleGunStatus())){
|
||||
xhpcRealTimeOrder.setVehicleGunStatus(0);
|
||||
}else{
|
||||
xhpcRealTimeOrder.setVehicleGunStatus(1);
|
||||
}
|
||||
BigDecimal v = new BigDecimal(cacheRealtimeData.getWorkingVoltage()).divide(new BigDecimal(10));
|
||||
BigDecimal c = new BigDecimal(cacheRealtimeData.getWorkingCurrent()).divide(new BigDecimal(10));
|
||||
xhpcRealTimeOrder.setVoltage(v);
|
||||
xhpcRealTimeOrder.setElectricCurrent(c);
|
||||
xhpcRealTimeOrder.setGunLineTemperature(cacheRealtimeData.getGunLineTemperature());
|
||||
xhpcRealTimeOrder.setGunLineNumber(cacheRealtimeData.getGunLineNumber());
|
||||
Integer soc = cacheRealtimeData.getSoc();
|
||||
xhpcRealTimeOrder.setSoc(soc.toString());
|
||||
xhpcRealTimeOrder.setMaxTemperature(cacheRealtimeData.getMaxTemperature());
|
||||
Integer chargingTime = cacheRealtimeData.getChargingTime();
|
||||
if(chargingTime>60){
|
||||
int hours = chargingTime / 60;
|
||||
int mins = (chargingTime-(hours*60)) % 60;
|
||||
xhpcRealTimeOrder.setChargingTime(hours+"时"+mins+"分");
|
||||
}else{
|
||||
xhpcRealTimeOrder.setChargingTime(chargingTime+"分");
|
||||
}
|
||||
Integer remainingTime = cacheRealtimeData.getRemainingTime();
|
||||
if(remainingTime>60){
|
||||
int hours = remainingTime / 60;
|
||||
double mins = (remainingTime-(hours*60))/60;
|
||||
xhpcRealTimeOrder.setRemainingTime(hours+"时"+new BigDecimal(mins).setScale(0)+"分");
|
||||
}else{
|
||||
double mins = (double)(remainingTime/60);
|
||||
xhpcRealTimeOrder.setRemainingTime(new BigDecimal(mins).setScale(0)+"分");
|
||||
}
|
||||
BigDecimal decimal = new BigDecimal(10000);
|
||||
BigDecimal divide = new BigDecimal(cacheRealtimeData.getLossChargingDegree()).divide(decimal);
|
||||
BigDecimal chargingDegree = new BigDecimal(cacheRealtimeData.getChargingDegree()).divide(decimal);
|
||||
xhpcRealTimeOrder.setChargingDegree(chargingDegree);
|
||||
xhpcRealTimeOrder.setLossChargingDegree(divide);
|
||||
BigDecimal amountCharged = new BigDecimal(cacheRealtimeData.getAmountCharged()).divide(decimal);
|
||||
xhpcRealTimeOrder.setAmountCharged(amountCharged);
|
||||
xhpcRealTimeOrder.setHardwareFault(cacheRealtimeData.getHardwareFault());
|
||||
if ("00".equals(cacheRealtimeData.getStatus())) {
|
||||
xhpcRealTimeOrder.setStatus(0);
|
||||
} else if ("01".equals(cacheRealtimeData.getStatus())) {
|
||||
xhpcRealTimeOrder.setStatus(1);
|
||||
} else if ("02".equals(cacheRealtimeData.getStatus())) {
|
||||
xhpcRealTimeOrder.setStatus(2);
|
||||
} else {
|
||||
xhpcRealTimeOrder.setStatus(3);
|
||||
}
|
||||
xhpcRealTimeOrder.setCreateTime(date);
|
||||
xhpcRealTimeOrder.setUserId(xhpcChargeOrder.getUserId());
|
||||
Long chargingStationId = xhpcChargeOrder.getChargingStationId();
|
||||
xhpcRealTimeOrder.setChargingStationId(chargingStationId);
|
||||
|
||||
xhpcRealTimeOrderService.addXhpcRealTimeOrder(xhpcRealTimeOrder);
|
||||
//实时数据存入MYsql、soc、电流、电压
|
||||
|
||||
XhpcChargeOrderSoc xhpcChargeOrderSoc = new XhpcChargeOrderSoc();
|
||||
xhpcChargeOrderSoc.setChargeOrderId(chargeOrderId);
|
||||
xhpcChargeOrderSoc.setSoc(soc.toString());
|
||||
xhpcChargeOrderSoc.setCreateTime(date);
|
||||
xhpcRealTimeOrderService.addSOC(xhpcChargeOrderSoc);
|
||||
|
||||
XhpcChargeOrderCurrent xhpcChargeOrderCurrent =new XhpcChargeOrderCurrent();
|
||||
xhpcChargeOrderCurrent.setChargeOrderId(chargeOrderId);
|
||||
xhpcChargeOrderCurrent.setCurrent(c.toString());
|
||||
xhpcChargeOrderCurrent.setCreateTime(date);
|
||||
xhpcRealTimeOrderService.addCurrent(xhpcChargeOrderCurrent);
|
||||
|
||||
XhpcChargeOrderVoltage xhpcChargeOrderVoltage =new XhpcChargeOrderVoltage();
|
||||
xhpcChargeOrderVoltage.setChargeOrderId(chargeOrderId);
|
||||
xhpcChargeOrderVoltage.setVoltage(v.toString());
|
||||
xhpcChargeOrderVoltage.setCreateTime(date);
|
||||
xhpcRealTimeOrderService.addVoltage(xhpcChargeOrderVoltage);
|
||||
if(type==1){
|
||||
map.put("code", 200);
|
||||
map.put("message", "实时数据");
|
||||
map.put("userId", xhpcChargeOrder.getUserId());
|
||||
Map<String, Object> data = new HashMap<>();
|
||||
data.put("amountCharged",divide);
|
||||
data.put("gunNumber",gunId);
|
||||
data.put("chargingOrderId",chargeOrderId);
|
||||
data.put("soc",soc);
|
||||
data.put("chargingTime",xhpcRealTimeOrder.getChargingTime());
|
||||
data.put("electricCurrent",c);
|
||||
data.put("voltage", v);
|
||||
data.put("power", xhpcChargeOrder.getPower());
|
||||
data.put("chargingDegree", chargingDegree);
|
||||
data.put("remainingTime",xhpcRealTimeOrder.getRemainingTime());
|
||||
data.put("serialNumber",orderNo.substring(0,16));
|
||||
data.put("parkingInstructions","在非充电情况下占用车位按照0.30元/分钟收费");
|
||||
map.put("data", data);
|
||||
}
|
||||
return map;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param status 状态
|
||||
* @param remark 备注
|
||||
|
||||
@ -21,7 +21,7 @@ import java.util.Map;
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/histotyOrder")
|
||||
@Api(value = "历史订单清接口", tags = "历史订单接口")
|
||||
@Api(value = "历史订单接口", tags = "历史订单接口")
|
||||
public class XhpcHistoryOrderController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
|
||||
@ -0,0 +1,39 @@
|
||||
package com.xhpc.order.controller;
|
||||
|
||||
import com.xhpc.common.core.web.controller.BaseController;
|
||||
import com.xhpc.common.core.web.domain.BaseEntity;
|
||||
import com.xhpc.common.core.web.page.TableDataInfo;
|
||||
import io.swagger.annotations.Api;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author yuyang
|
||||
* @date 2021/8/31 16:20
|
||||
* @Version 1.0
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/statistics")
|
||||
@Api(value = "统计接口", tags = "统计接口")
|
||||
public class XhpcStatisticsController extends BaseController {
|
||||
|
||||
/**
|
||||
* 小时统计
|
||||
*/
|
||||
@GetMapping("/getTimeIntervalPage")
|
||||
public TableDataInfo getTimeIntervalPage(String phone, String transactionNumber, @RequestParam("status")Integer status, String chargingStationName, Long operatorId, Integer source, String startTime, String endTime, @RequestParam("userId") Long userId, Integer type)
|
||||
{
|
||||
startPage();
|
||||
//List<Map<String, Object>> listPage = xhpcHistoryOrderService.getListPage(phone, transactionNumber, status, chargingStationName, operatorId, source, startTime, endTime, userId, type);
|
||||
return getDataTable(new ArrayList<>());
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,312 @@
|
||||
package com.xhpc.order.domain;
|
||||
|
||||
import com.xhpc.common.core.web.domain.BaseEntity;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 时段订单统计
|
||||
* @author yuyang
|
||||
* @date 2021/8/31 14:43
|
||||
* @Version 1.0
|
||||
*/
|
||||
public class XhpcStatisticsTimeInterval extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 时段订单统计id
|
||||
*/
|
||||
private Long statisticsTimeIntervalId;
|
||||
|
||||
/**
|
||||
* 24个时段每个时段 每个时段一小时
|
||||
*/
|
||||
private Integer status;
|
||||
/**
|
||||
* 电量
|
||||
*/
|
||||
private BigDecimal chargingDegree;
|
||||
/**
|
||||
* 充电时长(小时)
|
||||
*/
|
||||
private BigDecimal chargingTime;
|
||||
/**
|
||||
* 充电次数
|
||||
*/
|
||||
private Integer chargingNumber;
|
||||
/**
|
||||
* 电费
|
||||
*/
|
||||
private BigDecimal powerPrice;
|
||||
/**
|
||||
* 服务费
|
||||
*/
|
||||
private BigDecimal servicePrice;
|
||||
/**
|
||||
* 订单总价
|
||||
*/
|
||||
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;
|
||||
/**
|
||||
* 0 平台 1 运营商 2流量方
|
||||
*/
|
||||
private Integer type;
|
||||
/**
|
||||
* 运营商和流量方id
|
||||
*/
|
||||
private BigDecimal operatorInternetId;
|
||||
/**
|
||||
* 删除标志(0代表存在 2代表删除)
|
||||
*/
|
||||
private Integer delFlag;
|
||||
|
||||
|
||||
public Long getStatisticsTimeIntervalId() {
|
||||
|
||||
return statisticsTimeIntervalId;
|
||||
}
|
||||
|
||||
public void setStatisticsTimeIntervalId(Long statisticsTimeIntervalId) {
|
||||
|
||||
this.statisticsTimeIntervalId = statisticsTimeIntervalId;
|
||||
}
|
||||
|
||||
public Integer getStatus() {
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(Integer status) {
|
||||
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
public BigDecimal getChargingDegree() {
|
||||
|
||||
return chargingDegree;
|
||||
}
|
||||
|
||||
public void setChargingDegree(BigDecimal chargingDegree) {
|
||||
|
||||
this.chargingDegree = chargingDegree;
|
||||
}
|
||||
|
||||
public BigDecimal getChargingTime() {
|
||||
|
||||
return chargingTime;
|
||||
}
|
||||
|
||||
public void setChargingTime(BigDecimal chargingTime) {
|
||||
|
||||
this.chargingTime = chargingTime;
|
||||
}
|
||||
|
||||
public Integer getChargingNumber() {
|
||||
|
||||
return chargingNumber;
|
||||
}
|
||||
|
||||
public void setChargingNumber(Integer chargingNumber) {
|
||||
|
||||
this.chargingNumber = chargingNumber;
|
||||
}
|
||||
|
||||
public BigDecimal getPowerPrice() {
|
||||
|
||||
return powerPrice;
|
||||
}
|
||||
|
||||
public void setPowerPrice(BigDecimal powerPrice) {
|
||||
|
||||
this.powerPrice = powerPrice;
|
||||
}
|
||||
|
||||
public BigDecimal getServicePrice() {
|
||||
|
||||
return servicePrice;
|
||||
}
|
||||
|
||||
public void setServicePrice(BigDecimal servicePrice) {
|
||||
|
||||
this.servicePrice = servicePrice;
|
||||
}
|
||||
|
||||
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 BigDecimal getOperationSvcCommission() {
|
||||
|
||||
return operationSvcCommission;
|
||||
}
|
||||
|
||||
public void setOperationSvcCommission(BigDecimal operationSvcCommission) {
|
||||
|
||||
this.operationSvcCommission = operationSvcCommission;
|
||||
}
|
||||
|
||||
public Integer getType() {
|
||||
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(Integer type) {
|
||||
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public BigDecimal getOperatorInternetId() {
|
||||
|
||||
return operatorInternetId;
|
||||
}
|
||||
|
||||
public void setOperatorInternetId(BigDecimal operatorInternetId) {
|
||||
|
||||
this.operatorInternetId = operatorInternetId;
|
||||
}
|
||||
|
||||
public Integer getDelFlag() {
|
||||
|
||||
return delFlag;
|
||||
}
|
||||
|
||||
public void setDelFlag(Integer delFlag) {
|
||||
|
||||
this.delFlag = delFlag;
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,10 @@
|
||||
package com.xhpc.order.service;
|
||||
|
||||
/**
|
||||
* @author yuyang
|
||||
* @date 2021/8/31 16:21
|
||||
* @Version 1.0
|
||||
*/
|
||||
public interface IStatisticsService {
|
||||
|
||||
}
|
||||
@ -1,10 +1,8 @@
|
||||
package com.xhpc.order.service;
|
||||
|
||||
import com.xhpc.common.core.web.domain.AjaxResult;
|
||||
import com.xhpc.order.domain.XhpcChargeOrderCurrent;
|
||||
import com.xhpc.order.domain.XhpcChargeOrderSoc;
|
||||
import com.xhpc.order.domain.XhpcChargeOrderVoltage;
|
||||
import com.xhpc.order.domain.XhpcRealTimeOrder;
|
||||
import com.xhpc.common.data.redis.CacheRealtimeData;
|
||||
import com.xhpc.order.domain.*;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
@ -103,4 +101,39 @@ public interface IXhpcRealTimeOrderService {
|
||||
* @return
|
||||
*/
|
||||
AjaxResult getExamine(Long chargingOrderId, BigDecimal powerPrice,BigDecimal servicePrice);
|
||||
|
||||
|
||||
/**
|
||||
* 结算订单
|
||||
* @param powerPrice
|
||||
* @param servicePrice
|
||||
* @param money
|
||||
* @param surplusPowerPrice
|
||||
* @param surplusServicePrice
|
||||
* @param xhpcChargeOrder
|
||||
* @param userId
|
||||
* @param userMessage
|
||||
* @param type 0 不发短信 1发短信
|
||||
*/
|
||||
void addSettlement(BigDecimal powerPrice, BigDecimal servicePrice, BigDecimal money, BigDecimal surplusPowerPrice, BigDecimal surplusServicePrice, XhpcChargeOrder xhpcChargeOrder, Long userId, Map<String, Object> userMessage,Integer type);
|
||||
|
||||
/**
|
||||
* 添加redis到数据库
|
||||
* @param xhpcHistoryOrder
|
||||
* @param xhpcChargeOrder
|
||||
* @param orderNo
|
||||
* @param type 1.审核 2.自动结算
|
||||
*/
|
||||
void addPileEndOrder(XhpcHistoryOrder xhpcHistoryOrder, XhpcChargeOrder xhpcChargeOrder, String orderNo, Integer type);
|
||||
/**
|
||||
* 添加实时数据
|
||||
*
|
||||
* @param cacheRealtimeData
|
||||
* @param xhpcChargeOrder
|
||||
* @param orderNo 订单号
|
||||
* @param type 1.实时数据回调 2.结算回调
|
||||
* @return
|
||||
*/
|
||||
Map<String, Object> addOrderTime(CacheRealtimeData cacheRealtimeData, XhpcChargeOrder xhpcChargeOrder,
|
||||
String orderNo, Integer type);
|
||||
}
|
||||
|
||||
@ -0,0 +1,12 @@
|
||||
package com.xhpc.order.service.impl;
|
||||
|
||||
import com.xhpc.order.service.IStatisticsService;
|
||||
|
||||
/**
|
||||
* @author yuyang
|
||||
* @date 2021/8/31 16:22
|
||||
* @Version 1.0
|
||||
*/
|
||||
public class StatisticsServiceImpl implements IStatisticsService {
|
||||
|
||||
}
|
||||
@ -21,6 +21,7 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@ -134,7 +135,7 @@ public class XhpcChargeOrderServiceImpl implements IXhpcChargeOrderService {
|
||||
//启动充电
|
||||
StartChargingData startChargingData = new StartChargingData();
|
||||
//订单流水号 终端号+年月日时分秒+自增4位 共32位
|
||||
Date date = new Date();
|
||||
Date date = Calendar.getInstance().getTime();
|
||||
String format = DateUtil.format(date, "yyMMddHHmmss");
|
||||
//自增
|
||||
String orderNo = serialNumber + format + StaticBeanUtil.seqDec("gun:" + serialNumber + ".seqdec");
|
||||
|
||||
@ -75,7 +75,6 @@ public class XhpcHistoryOrderServiceImpl implements IXhpcHistoryOrderService {
|
||||
* 历史信息费率时段
|
||||
*/
|
||||
private Map<String, Object> getRateTime(String serialNumber,String actPrice){
|
||||
Map<String, Object> map =new HashMap<>();
|
||||
BigDecimal powerPriceTotal =new BigDecimal(0);
|
||||
BigDecimal servicePriceTotal =new BigDecimal(0);
|
||||
//累计充电时间、计费模型、开始时间、结束时间、已充金额
|
||||
@ -83,11 +82,8 @@ public class XhpcHistoryOrderServiceImpl implements IXhpcHistoryOrderService {
|
||||
Long rateModelId = chargeOrder.getRateModelId();
|
||||
Date startTime2 = chargeOrder.getStartTime();
|
||||
Date updateTime2 = chargeOrder.getEndTime();
|
||||
BigDecimal amountCharged = chargeOrder.getAmountCharged();
|
||||
//充电度数
|
||||
BigDecimal chargingDegree = chargeOrder.getChargingDegree();
|
||||
//每分钟充电度数=累计时间/60
|
||||
BigDecimal chargingTimeNumber = chargeOrder.getChargingDegree();
|
||||
List<Map<String, Object>> list =new ArrayList<>();
|
||||
//1时间没有跨天
|
||||
long betweenDay = DateUtil.between(startTime2, updateTime2, DateUnit.DAY);
|
||||
@ -116,8 +112,6 @@ public class XhpcHistoryOrderServiceImpl implements IXhpcHistoryOrderService {
|
||||
//算出相差时间,分
|
||||
double time = (updateTime2.getTime()-startTime2.getTime())/60000;
|
||||
BigDecimal decimal = new BigDecimal(time).setScale(2);
|
||||
//每分钟多少度
|
||||
BigDecimal degree =chargingDegree.divide(decimal,2,BigDecimal.ROUND_HALF_UP);
|
||||
//获取费率时间段
|
||||
String startTime = DateUtil.formatTime(startTime2);
|
||||
String endTime = DateUtil.formatTime(updateTime2);
|
||||
|
||||
@ -12,6 +12,8 @@ import com.xhpc.order.mapper.XhpcRealTimeOrderMapper;
|
||||
import com.xhpc.order.service.IXhpcChargeOrderService;
|
||||
import com.xhpc.order.service.IXhpcHistoryOrderService;
|
||||
import com.xhpc.order.service.IXhpcRealTimeOrderService;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@ -37,10 +39,12 @@ public class XhpcRealTimeOrderServiceImpl implements IXhpcRealTimeOrderService {
|
||||
private IXhpcHistoryOrderService xhpcHistoryOrderService;
|
||||
|
||||
@Autowired
|
||||
private SmsService smsService;
|
||||
private RedisService redisService;
|
||||
|
||||
@Autowired
|
||||
private RedisService redisService;
|
||||
private SmsService smsService;
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(XhpcRealTimeOrderServiceImpl.class);
|
||||
|
||||
@Override
|
||||
public List<Map<String, Object>> list(String phone, String transactionNumber, Integer source, String chargingStationName, String terminalName, Long operatorId, String startTime, String endTime,Integer status,Long userId,Integer type) {
|
||||
@ -160,10 +164,6 @@ public class XhpcRealTimeOrderServiceImpl implements IXhpcRealTimeOrderService {
|
||||
}
|
||||
xhpcChargeOrder.setStatus(3);
|
||||
xhpcChargeOrder.setAmountCharged(money);
|
||||
//生成一条历史订单
|
||||
XhpcHistoryOrder xhpcHistoryOrder = new XhpcHistoryOrder();
|
||||
xhpcHistoryOrder.setPowerPriceTotal(powerPrice);
|
||||
xhpcHistoryOrder.setServicePriceTotal(servicePrice);
|
||||
Long userId = xhpcChargeOrder.getUserId();
|
||||
Map<String, Object> userMessage = xhpcChargeOrderService.getUserMessage(userId);
|
||||
if (userMessage == null || userMessage.get("balance") == null) {
|
||||
@ -171,7 +171,32 @@ public class XhpcRealTimeOrderServiceImpl implements IXhpcRealTimeOrderService {
|
||||
xhpcChargeOrder.setStatus(2);
|
||||
//异常原因
|
||||
xhpcChargeOrder.setErroRemark("用户id:" + userId + "为空");
|
||||
xhpcChargeOrderService.updateXhpcChargeOrder(xhpcChargeOrder);
|
||||
return AjaxResult.error("用户id:" + userId + "为空");
|
||||
}
|
||||
//生成一条历史订单
|
||||
addSettlement(powerPrice, servicePrice, money, surplusPowerPrice, surplusServicePrice, xhpcChargeOrder, userId, userMessage,0);
|
||||
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 结算订单
|
||||
* @param powerPrice
|
||||
* @param servicePrice
|
||||
* @param money
|
||||
* @param surplusPowerPrice
|
||||
* @param surplusServicePrice
|
||||
* @param xhpcChargeOrder
|
||||
* @param userId
|
||||
* @param userMessage
|
||||
* @param type 0 不发短信 1发短信
|
||||
*/
|
||||
@Override
|
||||
public void addSettlement(BigDecimal powerPrice, BigDecimal servicePrice, BigDecimal money, BigDecimal surplusPowerPrice, BigDecimal surplusServicePrice, XhpcChargeOrder xhpcChargeOrder, Long userId, Map<String, Object> userMessage,Integer type) {
|
||||
XhpcHistoryOrder xhpcHistoryOrder =new XhpcHistoryOrder();
|
||||
xhpcHistoryOrder.setPowerPriceTotal(powerPrice);
|
||||
xhpcHistoryOrder.setServicePriceTotal(servicePrice);
|
||||
BigDecimal balance = new BigDecimal(userMessage.get("balance").toString()).divide(new BigDecimal(100));
|
||||
//电站活动抵扣--抵扣的总金额
|
||||
BigDecimal promotionDiscount = new BigDecimal(0);
|
||||
@ -309,7 +334,6 @@ public class XhpcRealTimeOrderServiceImpl implements IXhpcRealTimeOrderService {
|
||||
xhpcHistoryOrder.setReconciliationStatus(0);
|
||||
Date date = new Date();
|
||||
xhpcHistoryOrder.setCreateTime(date);
|
||||
|
||||
//扣除用户实际消费金额,添加消费记录
|
||||
Map<String, Object> user = xhpcChargeOrderService.getUserMessage(userId);
|
||||
//剩余的钱
|
||||
@ -318,17 +342,24 @@ public class XhpcRealTimeOrderServiceImpl implements IXhpcRealTimeOrderService {
|
||||
int i = xhpcChargeOrderService.updateUserBalance(userId, subtract);
|
||||
if(i==0){
|
||||
//扣钱失败
|
||||
xhpcHistoryOrder.setStatus(2);
|
||||
xhpcHistoryOrder.setRemark("扣钱失败");
|
||||
xhpcChargeOrder.setStatus(2);
|
||||
xhpcChargeOrder.setErroRemark("扣钱失败");
|
||||
}else{
|
||||
xhpcHistoryOrderService.insert(xhpcHistoryOrder);
|
||||
// addPileEndOrder(xhpcHistoryOrder, xhpcChargeOrder, xhpcChargeOrder.getSerialNumber());
|
||||
addPileEndOrder(xhpcHistoryOrder, xhpcChargeOrder, xhpcChargeOrder.getSerialNumber(),1);
|
||||
//添加流水
|
||||
xhpcChargeOrderService.addUserAccountStatement(userId, actPrice.negate(), subtract, xhpcChargeOrder.getChargeOrderId(), 3, date);
|
||||
try{
|
||||
//发送短信
|
||||
if(user.get("phone") !=null){
|
||||
String content = "【小华停止充电】尊敬的用户,你的爱车已停止充电,电量为:" + xhpcChargeOrder.getEndSoc() + "%,总费用为:" + actPrice + "元,充电费用明细,请查询小华充电小程序,谢谢。";
|
||||
smsService.sendNotice(user.get("phone").toString(),content);
|
||||
}
|
||||
}catch (Exception e){
|
||||
logger.info("<<<<<<<<<<<<<<<<发送短信失败>>>>>>>>>>>>>>>>>");
|
||||
}
|
||||
}
|
||||
xhpcChargeOrderService.updateXhpcChargeOrder(xhpcChargeOrder);
|
||||
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
|
||||
@ -388,7 +419,8 @@ public class XhpcRealTimeOrderServiceImpl implements IXhpcRealTimeOrderService {
|
||||
xhpcRealTimeOrderMapper.deleteChargeVoltage(chargingOrderId);
|
||||
}
|
||||
|
||||
private void addPileEndOrder(XhpcHistoryOrder xhpcHistoryOrder, XhpcChargeOrder xhpcChargeOrder,String orderNo) {
|
||||
@Override
|
||||
public void addPileEndOrder(XhpcHistoryOrder xhpcHistoryOrder, XhpcChargeOrder xhpcChargeOrder, String orderNo,Integer type) {
|
||||
Map<String, Object> cacheMap = redisService.getCacheMap("order:" + orderNo);
|
||||
Date date = new Date();
|
||||
Long chargeOrderId = xhpcChargeOrder.getChargeOrderId();
|
||||
@ -398,7 +430,7 @@ public class XhpcRealTimeOrderServiceImpl implements IXhpcRealTimeOrderService {
|
||||
List<CacheRealtimeData> list = (List<CacheRealtimeData>) cacheMap.get("realtimeDataList");
|
||||
if (list != null && list.size() > 0) {
|
||||
for (CacheRealtimeData cacheRealtimeData : list) {
|
||||
addOrderTime(cacheRealtimeData, xhpcChargeOrder, orderNo, 2);
|
||||
addOrderTime(cacheRealtimeData, xhpcChargeOrder, orderNo, type);
|
||||
}
|
||||
}
|
||||
//添加redis到数据库
|
||||
@ -443,7 +475,9 @@ public class XhpcRealTimeOrderServiceImpl implements IXhpcRealTimeOrderService {
|
||||
|
||||
//删除redis
|
||||
//redisService.deleteObject("order:"+orderNo);
|
||||
|
||||
logger.info("<<<<<<<<<<<<<<<<订单结束回调成功>>>>>>>>>>>>>>>>>");
|
||||
logger.info("<<<<<<<<<<<<<<<<订单结束回调成功>>>>>>>>>>>>>>>>>");
|
||||
logger.info("<<<<<<<<<<<<<<<<订单结束回调成功>>>>>>>>>>>>>>>>>");
|
||||
}
|
||||
|
||||
|
||||
@ -457,7 +491,8 @@ public class XhpcRealTimeOrderServiceImpl implements IXhpcRealTimeOrderService {
|
||||
* @param type 1.实时数据回调 2.结算回调
|
||||
* @return
|
||||
*/
|
||||
private void addOrderTime(CacheRealtimeData cacheRealtimeData, XhpcChargeOrder xhpcChargeOrder,
|
||||
@Override
|
||||
public Map<String, Object> addOrderTime(CacheRealtimeData cacheRealtimeData, XhpcChargeOrder xhpcChargeOrder,
|
||||
String orderNo, Integer type) {
|
||||
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
@ -549,6 +584,25 @@ public class XhpcRealTimeOrderServiceImpl implements IXhpcRealTimeOrderService {
|
||||
xhpcChargeOrderVoltage.setVoltage(v.toString());
|
||||
xhpcChargeOrderVoltage.setCreateTime(date);
|
||||
addVoltage(xhpcChargeOrderVoltage);
|
||||
|
||||
if(type==1){
|
||||
map.put("code", 200);
|
||||
map.put("message", "实时数据");
|
||||
map.put("userId", xhpcChargeOrder.getUserId());
|
||||
Map<String, Object> data = new HashMap<>();
|
||||
data.put("amountCharged",divide);
|
||||
data.put("gunNumber",gunId);
|
||||
data.put("chargingOrderId",chargeOrderId);
|
||||
data.put("soc",soc);
|
||||
data.put("chargingTime",xhpcRealTimeOrder.getChargingTime());
|
||||
data.put("electricCurrent",c);
|
||||
data.put("voltage", v);
|
||||
data.put("power", xhpcChargeOrder.getPower());
|
||||
data.put("chargingDegree", chargingDegree);
|
||||
data.put("remainingTime",xhpcRealTimeOrder.getRemainingTime());
|
||||
data.put("serialNumber",orderNo.substring(0,16));
|
||||
data.put("parkingInstructions","在非充电情况下占用车位按照0.30元/分钟收费");
|
||||
map.put("data", data);
|
||||
}
|
||||
return map;
|
||||
}
|
||||
}
|
||||
|
||||
@ -361,6 +361,7 @@
|
||||
<if test="chargingOrderId !=null">
|
||||
and ho.charge_order_id =#{chargingOrderId}
|
||||
</if>
|
||||
order by ho.create_time desc
|
||||
</select>
|
||||
|
||||
<select id="getListPage" resultType="map">
|
||||
|
||||
@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
|
||||
import com.xhpc.wxma.domain.WebSocketClient;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import javax.websocket.*;
|
||||
@ -99,17 +100,18 @@ public class OrderNotificationWebSocket {
|
||||
map.put("message", "实时数据");
|
||||
map.put("userId", this.userId);
|
||||
Map<String, Object> data = new HashMap<>();
|
||||
data.put("amountCharged","-");
|
||||
data.put("gunNumber","-");
|
||||
data.put("chargingOrderId","-");
|
||||
data.put("soc","-");
|
||||
data.put("chargingTime","-");
|
||||
data.put("electricCurrent","-");
|
||||
data.put("voltage", "-");
|
||||
data.put("power", "-");
|
||||
data.put("chargingDegree", "-");
|
||||
data.put("remainingTime","-");
|
||||
data.put("serialNumber","-");
|
||||
BigDecimal decimal = new BigDecimal(0);
|
||||
data.put("amountCharged",decimal);
|
||||
data.put("gunNumber","0");
|
||||
data.put("chargingOrderId",0L);
|
||||
data.put("soc",0);
|
||||
data.put("chargingTime","0");
|
||||
data.put("electricCurrent",decimal);
|
||||
data.put("voltage", decimal);
|
||||
data.put("power", "0");
|
||||
data.put("chargingDegree", decimal);
|
||||
data.put("remainingTime","0");
|
||||
data.put("serialNumber","0");
|
||||
data.put("parkingInstructions","在非充电情况下占用车位按照0.30元/分钟收费");
|
||||
map.put("data", data);
|
||||
JSONObject json = new JSONObject(map);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user