桩回调接口修改

This commit is contained in:
yuyang 2021-08-18 16:52:15 +08:00
parent c8395611ea
commit a551e3a531
2 changed files with 196 additions and 184 deletions

View File

@ -35,7 +35,7 @@ public class PileOrderFallbackFactory implements FallbackFactory<PileOrderServic
}
@Override
public R pileEndOrder(PileEndOrder pileEndOrder) {
public R pileEndOrder(String orderNo) {
return R.fail("桩订单结束回调接口失败:" + cause.getMessage());
}

View File

@ -1,5 +1,7 @@
package com.xhpc.order.api;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
@ -9,6 +11,7 @@ import com.xhpc.common.api.PileOrderService;
import com.xhpc.common.core.domain.R;
import com.xhpc.common.core.web.controller.BaseController;
import com.xhpc.common.core.web.domain.AjaxResult;
import com.xhpc.common.data.redis.CacheOrderData;
import com.xhpc.common.data.redis.CacheRealtimeData;
import com.xhpc.common.dto.PileEndOrder;
import com.xhpc.common.redis.service.RedisService;
@ -125,18 +128,16 @@ public class HxpcPileOrderController extends BaseController {
* @param orderNo 订单号
* @return
*/
@Transactional
@GetMapping("/chargeOrder/pileRimeOrder")
public R pileRealtime(@RequestParam(value = "orderNo")String orderNo) {
Date date = new Date();
//获取实时订单
Map<String, Object> cacheMap = redisService.getCacheMap("order:"+orderNo+".lord");
JSONObject jsonObject = (JSONObject)cacheMap.get("realtimeDataList");
System.out.println(jsonObject.toString());
CacheRealtimeData cacheRealtimeData = redisService.getCacheObject("order:"+orderNo+".lord");
HxpcChargeOrder hxpcChargeOrder = hxpcChargeOrderService.getSerialNumberMessage(orderNo);
try{
CacheRealtimeData cacheRealtimeData = JSON.toJavaObject(jsonObject, CacheRealtimeData.class);
XhpcRealTimeOrder xhpcRealTimeOrder =new XhpcRealTimeOrder();
xhpcRealTimeOrder.setChargingOrderId(hxpcChargeOrder.getChargeOrderId());
xhpcRealTimeOrder.setTransactionNumber(orderNo);
@ -221,9 +222,6 @@ public class HxpcPileOrderController extends BaseController {
}catch (Exception e){
return R.fail(500,"无实时数据");
}
return R.ok();
}
@ -237,188 +235,202 @@ public class HxpcPileOrderController extends BaseController {
public R pileEndOrder(@RequestParam(value = "orderNo") String orderNo) {
try{
//获取实时订单
Map<String, Object> cacheMap = redisService.getCacheMap("order:"+orderNo);
CacheOrderData cacheOrderData = (CacheOrderData)cacheMap.get("orderData");
//解析订单编号
// String s = pileEndOrder.getOrderNo().split("\\.")[0];
// String s1 = s.split(":")[1];
// Date date = new Date();
// //总金额
// BigDecimal money = new BigDecimal((pileEndOrder.getAmountCharged()/100));
// //总电费
// BigDecimal powerPrice = new BigDecimal((pileEndOrder.getPowerPrice()/100));
// //总服务费
// BigDecimal servicePrice = new BigDecimal((pileEndOrder.getServicePrice()/100));
// //剩余的电费
// BigDecimal surplusPowerPrice = powerPrice;
// //剩余的服务费
// BigDecimal surplusServicePrice = servicePrice;
Date date = new Date();
//总金额
BigDecimal money = new BigDecimal((cacheOrderData.getCost()/100));
int sumCost =cacheOrderData.getT1Cost()+cacheOrderData.getT2Cost()+cacheOrderData.getT3Cost()+cacheOrderData.getT4Cost();
int sumService = cacheOrderData.getCost()-sumCost;
//总电费
BigDecimal powerPrice = new BigDecimal((sumCost/100));
//总服务费
BigDecimal servicePrice = new BigDecimal((sumService/100));
//剩余的电费
BigDecimal surplusPowerPrice = powerPrice;
//剩余的服务费
BigDecimal surplusServicePrice = servicePrice;
int startSoc = cacheOrderData.getStartSoc();
int endSoc = cacheOrderData.getEndSoc();
//获取充电订单
HxpcChargeOrder hxpcChargeOrder = hxpcChargeOrderService.getSerialNumberMessage(orderNo);
hxpcChargeOrder.setStartSoc(startSoc+"");
hxpcChargeOrder.setEndSoc(endSoc+"");
hxpcChargeOrder.setStatus(cacheOrderData.getStatus());
DateTime startTime = DateUtil.parse(cacheOrderData.getStartTime());
DateTime endTime = DateUtil.parse(cacheOrderData.getEndTime());
hxpcChargeOrder.setEndTime(endTime);
//充电时长
Long tiem = endTime.getTime()-startTime.getTime();
hxpcChargeOrder.setChargingTime(tiem+"");
hxpcChargeOrder.setChargingDegree(cacheOrderData.getTotalPowerQuantity().toString());
hxpcChargeOrder.setAmountCharged(money.toString());
String stopReason = cacheOrderData.getStopReason();
hxpcChargeOrder.setErroRemark(stopReason);
//历史订单
Long userId =hxpcChargeOrder.getUserId();
//生成一条历史订单
XhpcHistoryOrder xhpcHistoryOrder =new XhpcHistoryOrder();
Map<String, Object> userMessage = hxpcChargeOrderService.getUserMessage(userId);
if(userMessage ==null || userMessage.get("balance") ==null){
//订单异常
hxpcChargeOrder.setStatus(2);
//异常原因
hxpcChargeOrder.setErroRemark("桩异常:"+stopReason+">>>>用户id:"+userId+"为空");
}
BigDecimal balance = new BigDecimal(userMessage.get("balance").toString()).divide(new BigDecimal(100));
//电站活动抵扣--抵扣的总金额
BigDecimal promotionDiscount = new BigDecimal(0);
//实际价格-用户支付的钱
BigDecimal actPrice =new BigDecimal(0);
//实收电费-运营商电费
BigDecimal actPowerPrice =new BigDecimal(0);
//实收服务费-运营商服务费
BigDecimal actServicePrice =new BigDecimal(0);
//流量方总金额抽成
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(hxpcChargeOrder.getSource() ==0){
String state ="";
BigDecimal discount =new BigDecimal(0);
//用户第几次充电
int count = hxpcChargeOrderService.getCount(userId);
if(count==0){
//活动折扣
Map<String, Object> promotion = hxpcChargeOrderService.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)){
if("1".equals(state)){
//总金额
promotionDiscount=money.multiply(balance);
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)){
//电费
promotionDiscount =powerPrice.multiply(balance);
actPrice = money.subtract(promotionDiscount);
surplusPowerPrice=surplusPowerPrice.subtract(promotionDiscount);
}else if("3".equals(state)){
//服务费
promotionDiscount = servicePrice.multiply(balance);
actPrice = money.subtract(promotionDiscount);
surplusServicePrice =surplusServicePrice.subtract(promotionDiscount);
}
}
xhpcHistoryOrder.setInternetCommission(internetCommission);
xhpcHistoryOrder.setInternetSvcCommission(internetSvcCommission);
}else{
//流量方未实现
}
//获取运营商
Map<String, Object> operatorMessage = hxpcChargeOrderService.getOperatorMessage(hxpcChargeOrder.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(userMessage.get("maintenanceCommissionRate").toString()).divide(new BigDecimal(100));
//平台提成
BigDecimal platformCommissionRate = new BigDecimal(userMessage.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{
//订单异常
hxpcChargeOrder.setStatus(2);
//异常原因
hxpcChargeOrder.setErroRemark("桩异常:"+stopReason+">>>>用户id:"+userId+"为空"+">>>>运营商提出为空");
}
}
xhpcHistoryOrder.setChargeOrderId(hxpcChargeOrder.getChargeOrderId());
xhpcHistoryOrder.setChargingStationId(hxpcChargeOrder.getChargingStationId());
xhpcHistoryOrder.setUserId(userId);
xhpcHistoryOrder.setTerminalId(hxpcChargeOrder.getTerminalId());
xhpcHistoryOrder.setSerialNumber(hxpcChargeOrder.getSerialNumber());
xhpcHistoryOrder.setStartSoc(hxpcChargeOrder.getStartSoc());
xhpcHistoryOrder.setReconciliationStatus(0);
xhpcHistoryOrder.setSortingStatus(0);
xhpcHistoryOrder.setType(1);
xhpcHistoryOrder.setStatus(0);
xhpcHistoryOrder.setDelFlag(0);
//订单总价---运维服务费抽成
xhpcHistoryOrder.setTotalPrice(money);
xhpcHistoryOrder.setPromotionDiscount(promotionDiscount);
xhpcHistoryOrder.setActPowerPrice(actPowerPrice);
xhpcHistoryOrder.setActPowerPrice(surplusPowerPrice);
xhpcHistoryOrder.setActServicePrice(surplusServicePrice);
xhpcHistoryOrder.setInternetCommission(internetCommission);
xhpcHistoryOrder.setInternetSvcCommission(internetSvcCommission);
xhpcHistoryOrder.setPlatformCommission(platformCommission);
xhpcHistoryOrder.setPlatformSvcCommisssion(platformSvcCommission);
xhpcHistoryOrder.setOperationCommission(operationCommission);
xhpcHistoryOrder.setOperationSvcCommission(operationSvcCommission);
xhpcHistoryOrder.setStartSoc(startSoc+"");
xhpcHistoryOrder.setEndSoc(endSoc+"");
xhpcHistoryOrder.setReconciliationStatus(0);
xhpcHistoryOrder.setCreateTime(date);
//
// //获取充电订单
// HxpcChargeOrder hxpcChargeOrder = hxpcChargeOrderService.getSerialNumberMessage(s1);
// hxpcChargeOrder.setStartSoc(pileEndOrder.getStartSoc());
// hxpcChargeOrder.setEndSoc(pileEndOrder.getEndSoc());
// hxpcChargeOrder.setStatus(pileEndOrder.getStatus());
// hxpcChargeOrder.setEndTime(pileEndOrder.getCreateTime());
// hxpcChargeOrder.setChargingTime(pileEndOrder.getChargingTime().toString());
// hxpcChargeOrder.setChargingDegree(pileEndOrder.getChargingDegree().toString());
// hxpcChargeOrder.setAmountCharged(money.toString());
// hxpcChargeOrder.setErroRemark(pileEndOrder.getErroRemark());
//
// //历史订单
// Long userId =hxpcChargeOrder.getUserId();
// //生成一条历史订单
// XhpcHistoryOrder xhpcHistoryOrder =new XhpcHistoryOrder();
//
// Map<String, Object> userMessage = hxpcChargeOrderService.getUserMessage(userId);
// if(userMessage ==null || userMessage.get("balance") ==null){
// //订单异常
// hxpcChargeOrder.setStatus(2);
// //异常原因
// hxpcChargeOrder.setErroRemark("桩异常:"+pileEndOrder.getErroRemark()+">>>>用户id:"+userId+"为空");
// }
// BigDecimal balance = new BigDecimal(userMessage.get("balance").toString()).divide(new BigDecimal(100));
//
// //电站活动抵扣--抵扣的总金额
// BigDecimal promotionDiscount = new BigDecimal(0);
// //实际价格-用户支付的钱
// BigDecimal actPrice =new BigDecimal(0);
// //实收电费-运营商电费
// BigDecimal actPowerPrice =new BigDecimal(0);
// //实收服务费-运营商服务费
// BigDecimal actServicePrice =new BigDecimal(0);
// //流量方总金额抽成
// 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(hxpcChargeOrder.getSource() ==0){
// String state ="";
// BigDecimal discount =new BigDecimal(0);
// //用户第几次充电
// int count = hxpcChargeOrderService.getCount(userId);
// if(count==0){
// //活动折扣
// Map<String, Object> promotion = hxpcChargeOrderService.getPromotion();
// if(promotion !=null && promotion.get("state") !=null && promotion.get("discount") !=null){
// //state 1.总金额 2.电费 3.服务费 discount 折扣率
// state = promotion.get("state").toString();
// discount = (BigDecimal)promotion.get("discount");
// }
// }
// if(!"".equals(state)){
//
// if("1".equals(state)){
// //总金额
// promotionDiscount=money.multiply(balance);
// 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)){
// //电费
// promotionDiscount =powerPrice.multiply(balance);
// actPrice = money.subtract(promotionDiscount);
// surplusPowerPrice=surplusPowerPrice.subtract(promotionDiscount);
// }else if("3".equals(state)){
// //服务费
// promotionDiscount = servicePrice.multiply(balance);
// actPrice = money.subtract(promotionDiscount);
// surplusServicePrice =surplusServicePrice.subtract(promotionDiscount);
// }
// }
// xhpcHistoryOrder.setInternetCommission(internetCommission);
// xhpcHistoryOrder.setInternetSvcCommission(internetSvcCommission);
// }else{
// //流量方未实现
// }
//
// //获取运营商
// Map<String, Object> operatorMessage = hxpcChargeOrderService.getOperatorMessage(hxpcChargeOrder.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(userMessage.get("maintenanceCommissionRate").toString()).divide(new BigDecimal(100));
// //平台提成
// BigDecimal platformCommissionRate = new BigDecimal(userMessage.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{
// //订单异常
// hxpcChargeOrder.setStatus(2);
// //异常原因
// hxpcChargeOrder.setErroRemark("桩异常:"+pileEndOrder.getErroRemark()+">>>>用户id:"+userId+"为空"+">>>>运营商提出为空");
//
// }
// }
//
//
// xhpcHistoryOrder.setChargeOrderId(hxpcChargeOrder.getChargeOrderId());
// xhpcHistoryOrder.setChargingStationId(hxpcChargeOrder.getChargingStationId());
// xhpcHistoryOrder.setUserId(userId);
// xhpcHistoryOrder.setTerminalId(hxpcChargeOrder.getTerminalId());
// xhpcHistoryOrder.setSerialNumber(hxpcChargeOrder.getSerialNumber());
// xhpcHistoryOrder.setStartSoc(hxpcChargeOrder.getStartSoc());
// xhpcHistoryOrder.setReconciliationStatus(0);
// xhpcHistoryOrder.setSortingStatus(0);
// xhpcHistoryOrder.setType(1);
// xhpcHistoryOrder.setStatus(0);
// xhpcHistoryOrder.setDelFlag(0);
// //订单总价---运维服务费抽成
// xhpcHistoryOrder.setTotalPrice(money);
// xhpcHistoryOrder.setPromotionDiscount(promotionDiscount);
// xhpcHistoryOrder.setActPowerPrice(actPowerPrice);
// xhpcHistoryOrder.setActPowerPrice(surplusPowerPrice);
// xhpcHistoryOrder.setActServicePrice(surplusServicePrice);
// xhpcHistoryOrder.setInternetCommission(internetCommission);
// xhpcHistoryOrder.setInternetSvcCommission(internetSvcCommission);
// xhpcHistoryOrder.setPlatformCommission(platformCommission);
// xhpcHistoryOrder.setPlatformSvcCommisssion(platformSvcCommission);
// xhpcHistoryOrder.setOperationCommission(operationCommission);
// xhpcHistoryOrder.setOperationSvcCommission(operationSvcCommission);
// xhpcHistoryOrder.setStartSoc(pileEndOrder.getStartSoc());
// xhpcHistoryOrder.setEndSoc(pileEndOrder.getEndSoc());
// xhpcHistoryOrder.setReconciliationStatus(0);
// xhpcHistoryOrder.setCreateTime(date);
//
// xhpcHistoryOrderService.insert(xhpcHistoryOrder);
// hxpcChargeOrderService.updateXhpcChargeOrder(hxpcChargeOrder);
xhpcHistoryOrderService.insert(xhpcHistoryOrder);
hxpcChargeOrderService.updateXhpcChargeOrder(hxpcChargeOrder);
//删除实时数据获取最新的实时数据
//hxpcChargeOrderService.deleteRealTimeOrder(hxpcChargeOrder.getChargeOrderId());
//添加新的实时数据
}catch (Exception e){
e.printStackTrace();
return R.fail(500,"添加订单回调失败");
}
return R.ok();