修改桩订单结束回调接口

This commit is contained in:
yuyang 2021-08-18 16:00:20 +08:00
parent bf12d65d9a
commit 6a5d11d960
2 changed files with 179 additions and 179 deletions

View File

@ -43,11 +43,11 @@ public interface PileOrderService {
/** /**
* 桩订单结束回调接口 * 桩订单结束回调接口
* @param pileEndOrder 订单结束回调实体类 * @param orderNo 订单号
* @return * @return
*/ */
@PostMapping("/chargeOrder/pileEndOrder") @PostMapping("/chargeOrder/pileEndOrder")
R pileEndOrder(@Validated @RequestBody PileEndOrder pileEndOrder); R pileEndOrder(@RequestParam(value = "orderNo") String orderNo);
/** /**

View File

@ -234,186 +234,186 @@ public class HxpcPileOrderController extends BaseController {
*/ */
@Transactional @Transactional
@PostMapping("/chargeOrder/pileEndOrder") @PostMapping("/chargeOrder/pileEndOrder")
public R pileEndOrder(@Validated @RequestBody PileEndOrder pileEndOrder) { public R pileEndOrder(@RequestParam(value = "orderNo") String orderNo) {
try{ try{
//解析订单编号 //解析订单编号
String s = pileEndOrder.getOrderNo().split("\\.")[0]; // String s = pileEndOrder.getOrderNo().split("\\.")[0];
String s1 = s.split(":")[1]; // String s1 = s.split(":")[1];
Date date = new Date(); // Date date = new Date();
//总金额 // //总金额
BigDecimal money = new BigDecimal((pileEndOrder.getAmountCharged()/100)); // BigDecimal money = new BigDecimal((pileEndOrder.getAmountCharged()/100));
//总电费 // //总电费
BigDecimal powerPrice = new BigDecimal((pileEndOrder.getPowerPrice()/100)); // BigDecimal powerPrice = new BigDecimal((pileEndOrder.getPowerPrice()/100));
//总服务费 // //总服务费
BigDecimal servicePrice = new BigDecimal((pileEndOrder.getServicePrice()/100)); // BigDecimal servicePrice = new BigDecimal((pileEndOrder.getServicePrice()/100));
//剩余的电费 // //剩余的电费
BigDecimal surplusPowerPrice = powerPrice; // BigDecimal surplusPowerPrice = powerPrice;
//剩余的服务费 // //剩余的服务费
BigDecimal surplusServicePrice = servicePrice; // BigDecimal surplusServicePrice = servicePrice;
//
//获取充电订单 // //获取充电订单
HxpcChargeOrder hxpcChargeOrder = hxpcChargeOrderService.getSerialNumberMessage(s1); // HxpcChargeOrder hxpcChargeOrder = hxpcChargeOrderService.getSerialNumberMessage(s1);
hxpcChargeOrder.setStartSoc(pileEndOrder.getStartSoc()); // hxpcChargeOrder.setStartSoc(pileEndOrder.getStartSoc());
hxpcChargeOrder.setEndSoc(pileEndOrder.getEndSoc()); // hxpcChargeOrder.setEndSoc(pileEndOrder.getEndSoc());
hxpcChargeOrder.setStatus(pileEndOrder.getStatus()); // hxpcChargeOrder.setStatus(pileEndOrder.getStatus());
hxpcChargeOrder.setEndTime(pileEndOrder.getCreateTime()); // hxpcChargeOrder.setEndTime(pileEndOrder.getCreateTime());
hxpcChargeOrder.setChargingTime(pileEndOrder.getChargingTime().toString()); // hxpcChargeOrder.setChargingTime(pileEndOrder.getChargingTime().toString());
hxpcChargeOrder.setChargingDegree(pileEndOrder.getChargingDegree().toString()); // hxpcChargeOrder.setChargingDegree(pileEndOrder.getChargingDegree().toString());
hxpcChargeOrder.setAmountCharged(money.toString()); // hxpcChargeOrder.setAmountCharged(money.toString());
hxpcChargeOrder.setErroRemark(pileEndOrder.getErroRemark()); // hxpcChargeOrder.setErroRemark(pileEndOrder.getErroRemark());
//
//历史订单 // //历史订单
Long userId =hxpcChargeOrder.getUserId(); // Long userId =hxpcChargeOrder.getUserId();
//生成一条历史订单 // //生成一条历史订单
XhpcHistoryOrder xhpcHistoryOrder =new XhpcHistoryOrder(); // XhpcHistoryOrder xhpcHistoryOrder =new XhpcHistoryOrder();
//
Map<String, Object> userMessage = hxpcChargeOrderService.getUserMessage(userId); // Map<String, Object> userMessage = hxpcChargeOrderService.getUserMessage(userId);
if(userMessage ==null || userMessage.get("balance") ==null){ // if(userMessage ==null || userMessage.get("balance") ==null){
//订单异常 // //订单异常
hxpcChargeOrder.setStatus(2); // hxpcChargeOrder.setStatus(2);
//异常原因 // //异常原因
hxpcChargeOrder.setErroRemark("桩异常:"+pileEndOrder.getErroRemark()+">>>>用户id:"+userId+"为空"); // hxpcChargeOrder.setErroRemark("桩异常:"+pileEndOrder.getErroRemark()+">>>>用户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));
//
//电站活动抵扣--抵扣的总金额 // //电站活动抵扣--抵扣的总金额
BigDecimal promotionDiscount = new BigDecimal(0); // BigDecimal promotionDiscount = new BigDecimal(0);
//实际价格-用户支付的钱 // //实际价格-用户支付的钱
BigDecimal actPrice =new BigDecimal(0); // BigDecimal actPrice =new BigDecimal(0);
//实收电费-运营商电费 // //实收电费-运营商电费
BigDecimal actPowerPrice =new BigDecimal(0); // BigDecimal actPowerPrice =new BigDecimal(0);
//实收服务费-运营商服务费 // //实收服务费-运营商服务费
BigDecimal actServicePrice =new BigDecimal(0); // BigDecimal actServicePrice =new BigDecimal(0);
//流量方总金额抽成 // //流量方总金额抽成
BigDecimal internetCommission =new BigDecimal(0); // BigDecimal internetCommission =new BigDecimal(0);
//流量方服务费抽成 // //流量方服务费抽成
BigDecimal internetSvcCommission =new BigDecimal(0); // BigDecimal internetSvcCommission =new BigDecimal(0);
//平台总金额抽成 // //平台总金额抽成
BigDecimal platformCommission =new BigDecimal(0); // BigDecimal platformCommission =new BigDecimal(0);
//平台服务费抽成 // //平台服务费抽成
BigDecimal platformSvcCommission =new BigDecimal(0); // BigDecimal platformSvcCommission =new BigDecimal(0);
//运维总抽成 // //运维总抽成
BigDecimal operationCommission =new BigDecimal(0); // BigDecimal operationCommission =new BigDecimal(0);
//运维服务费抽成 // //运维服务费抽成
BigDecimal operationSvcCommission =new BigDecimal(0); // BigDecimal operationSvcCommission =new BigDecimal(0);
//
//判断是C端用户还是流量端用户 // //判断是C端用户还是流量端用户
if(hxpcChargeOrder.getSource() ==0){ // if(hxpcChargeOrder.getSource() ==0){
String state =""; // String state ="";
BigDecimal discount =new BigDecimal(0); // BigDecimal discount =new BigDecimal(0);
//用户第几次充电 // //用户第几次充电
int count = hxpcChargeOrderService.getCount(userId); // int count = hxpcChargeOrderService.getCount(userId);
if(count==0){ // if(count==0){
//活动折扣 // //活动折扣
Map<String, Object> promotion = hxpcChargeOrderService.getPromotion(); // Map<String, Object> promotion = hxpcChargeOrderService.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();
discount = (BigDecimal)promotion.get("discount"); // discount = (BigDecimal)promotion.get("discount");
} // }
} // }
if(!"".equals(state)){ // if(!"".equals(state)){
//
if("1".equals(state)){ // if("1".equals(state)){
//总金额 // //总金额
promotionDiscount=money.multiply(balance); // promotionDiscount=money.multiply(balance);
actPrice = money.subtract(promotionDiscount); // actPrice = money.subtract(promotionDiscount);
surplusPowerPrice = surplusPowerPrice.subtract(promotionDiscount.divide(new BigDecimal(2))); // surplusPowerPrice = surplusPowerPrice.subtract(promotionDiscount.divide(new BigDecimal(2)));
surplusServicePrice= surplusServicePrice.subtract(promotionDiscount.divide(new BigDecimal(2))); // surplusServicePrice= surplusServicePrice.subtract(promotionDiscount.divide(new BigDecimal(2)));
}else if("2".equals(state)){ // }else if("2".equals(state)){
//电费 // //电费
promotionDiscount =powerPrice.multiply(balance); // promotionDiscount =powerPrice.multiply(balance);
actPrice = money.subtract(promotionDiscount); // actPrice = money.subtract(promotionDiscount);
surplusPowerPrice=surplusPowerPrice.subtract(promotionDiscount); // surplusPowerPrice=surplusPowerPrice.subtract(promotionDiscount);
}else if("3".equals(state)){ // }else if("3".equals(state)){
//服务费 // //服务费
promotionDiscount = servicePrice.multiply(balance); // promotionDiscount = servicePrice.multiply(balance);
actPrice = money.subtract(promotionDiscount); // actPrice = money.subtract(promotionDiscount);
surplusServicePrice =surplusServicePrice.subtract(promotionDiscount); // surplusServicePrice =surplusServicePrice.subtract(promotionDiscount);
} // }
} // }
xhpcHistoryOrder.setInternetCommission(internetCommission); // xhpcHistoryOrder.setInternetCommission(internetCommission);
xhpcHistoryOrder.setInternetSvcCommission(internetSvcCommission); // xhpcHistoryOrder.setInternetSvcCommission(internetSvcCommission);
}else{ // }else{
//流量方未实现 // //流量方未实现
} // }
//
//获取运营商 // //获取运营商
Map<String, Object> operatorMessage = hxpcChargeOrderService.getOperatorMessage(hxpcChargeOrder.getChargingStationId()); // Map<String, Object> operatorMessage = hxpcChargeOrderService.getOperatorMessage(hxpcChargeOrder.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");
//运维提成 // //运维提成
BigDecimal maintenanceCommissionRate = new BigDecimal(userMessage.get("maintenanceCommissionRate").toString()).divide(new BigDecimal(100)); // BigDecimal maintenanceCommissionRate = new BigDecimal(userMessage.get("maintenanceCommissionRate").toString()).divide(new BigDecimal(100));
//平台提成 // //平台提成
BigDecimal platformCommissionRate = new BigDecimal(userMessage.get("platformCommissionRate").toString()).divide(new BigDecimal(100)); // BigDecimal platformCommissionRate = new BigDecimal(userMessage.get("platformCommissionRate").toString()).divide(new BigDecimal(100));
//提成类型0总金额提成 1服务费提成 // //提成类型0总金额提成 1服务费提成
if(commissionType==0){ // if(commissionType==0){
BigDecimal multiply1 = surplusPowerPrice.multiply(platformCommissionRate); // BigDecimal multiply1 = surplusPowerPrice.multiply(platformCommissionRate);
BigDecimal multiply2 = surplusServicePrice.multiply(platformCommissionRate); // BigDecimal multiply2 = surplusServicePrice.multiply(platformCommissionRate);
platformCommission = multiply1.add(multiply2); // platformCommission = multiply1.add(multiply2);
//剩下的钱 // //剩下的钱
surplusPowerPrice = surplusPowerPrice.subtract(multiply1); // surplusPowerPrice = surplusPowerPrice.subtract(multiply1);
surplusServicePrice = surplusServicePrice.subtract(multiply2); // surplusServicePrice = surplusServicePrice.subtract(multiply2);
BigDecimal multiply3 = surplusPowerPrice.multiply(maintenanceCommissionRate); // BigDecimal multiply3 = surplusPowerPrice.multiply(maintenanceCommissionRate);
BigDecimal multiply4 = surplusServicePrice.multiply(maintenanceCommissionRate); // BigDecimal multiply4 = surplusServicePrice.multiply(maintenanceCommissionRate);
operationCommission = multiply1.add(multiply2); // operationCommission = multiply1.add(multiply2);
//剩下的钱 // //剩下的钱
surplusPowerPrice = surplusPowerPrice.subtract(multiply3); // surplusPowerPrice = surplusPowerPrice.subtract(multiply3);
surplusServicePrice = surplusServicePrice.subtract(multiply4); // surplusServicePrice = surplusServicePrice.subtract(multiply4);
//
}else if(commissionType==1){ // }else if(commissionType==1){
BigDecimal multiply2 = surplusServicePrice.multiply(platformCommissionRate); // BigDecimal multiply2 = surplusServicePrice.multiply(platformCommissionRate);
platformSvcCommission=multiply2; // platformSvcCommission=multiply2;
//剩下的钱 // //剩下的钱
surplusServicePrice = surplusServicePrice.subtract(multiply2); // surplusServicePrice = surplusServicePrice.subtract(multiply2);
//
BigDecimal multiply4 = surplusServicePrice.multiply(maintenanceCommissionRate); // BigDecimal multiply4 = surplusServicePrice.multiply(maintenanceCommissionRate);
operationCommission = multiply4; // operationCommission = multiply4;
//剩下的钱 // //剩下的钱
surplusServicePrice = surplusServicePrice.subtract(multiply4); // surplusServicePrice = surplusServicePrice.subtract(multiply4);
} // }
}else{ // }else{
//订单异常 // //订单异常
hxpcChargeOrder.setStatus(2); // hxpcChargeOrder.setStatus(2);
//异常原因 // //异常原因
hxpcChargeOrder.setErroRemark("桩异常:"+pileEndOrder.getErroRemark()+">>>>用户id:"+userId+"为空"+">>>>运营商提出为空"); // hxpcChargeOrder.setErroRemark("桩异常:"+pileEndOrder.getErroRemark()+">>>>用户id:"+userId+"为空"+">>>>运营商提出为空");
//
} // }
} // }
//
//
xhpcHistoryOrder.setChargeOrderId(hxpcChargeOrder.getChargeOrderId()); // xhpcHistoryOrder.setChargeOrderId(hxpcChargeOrder.getChargeOrderId());
xhpcHistoryOrder.setChargingStationId(hxpcChargeOrder.getChargingStationId()); // xhpcHistoryOrder.setChargingStationId(hxpcChargeOrder.getChargingStationId());
xhpcHistoryOrder.setUserId(userId); // xhpcHistoryOrder.setUserId(userId);
xhpcHistoryOrder.setTerminalId(hxpcChargeOrder.getTerminalId()); // xhpcHistoryOrder.setTerminalId(hxpcChargeOrder.getTerminalId());
xhpcHistoryOrder.setSerialNumber(hxpcChargeOrder.getSerialNumber()); // xhpcHistoryOrder.setSerialNumber(hxpcChargeOrder.getSerialNumber());
xhpcHistoryOrder.setStartSoc(hxpcChargeOrder.getStartSoc()); // xhpcHistoryOrder.setStartSoc(hxpcChargeOrder.getStartSoc());
xhpcHistoryOrder.setReconciliationStatus(0); // xhpcHistoryOrder.setReconciliationStatus(0);
xhpcHistoryOrder.setSortingStatus(0); // xhpcHistoryOrder.setSortingStatus(0);
xhpcHistoryOrder.setType(1); // xhpcHistoryOrder.setType(1);
xhpcHistoryOrder.setStatus(0); // xhpcHistoryOrder.setStatus(0);
xhpcHistoryOrder.setDelFlag(0); // xhpcHistoryOrder.setDelFlag(0);
//订单总价---运维服务费抽成 // //订单总价---运维服务费抽成
xhpcHistoryOrder.setTotalPrice(money); // xhpcHistoryOrder.setTotalPrice(money);
xhpcHistoryOrder.setPromotionDiscount(promotionDiscount); // xhpcHistoryOrder.setPromotionDiscount(promotionDiscount);
xhpcHistoryOrder.setActPowerPrice(actPowerPrice); // xhpcHistoryOrder.setActPowerPrice(actPowerPrice);
xhpcHistoryOrder.setActPowerPrice(surplusPowerPrice); // xhpcHistoryOrder.setActPowerPrice(surplusPowerPrice);
xhpcHistoryOrder.setActServicePrice(surplusServicePrice); // xhpcHistoryOrder.setActServicePrice(surplusServicePrice);
xhpcHistoryOrder.setInternetCommission(internetCommission); // xhpcHistoryOrder.setInternetCommission(internetCommission);
xhpcHistoryOrder.setInternetSvcCommission(internetSvcCommission); // xhpcHistoryOrder.setInternetSvcCommission(internetSvcCommission);
xhpcHistoryOrder.setPlatformCommission(platformCommission); // xhpcHistoryOrder.setPlatformCommission(platformCommission);
xhpcHistoryOrder.setPlatformSvcCommisssion(platformSvcCommission); // xhpcHistoryOrder.setPlatformSvcCommisssion(platformSvcCommission);
xhpcHistoryOrder.setOperationCommission(operationCommission); // xhpcHistoryOrder.setOperationCommission(operationCommission);
xhpcHistoryOrder.setOperationSvcCommission(operationSvcCommission); // xhpcHistoryOrder.setOperationSvcCommission(operationSvcCommission);
xhpcHistoryOrder.setStartSoc(pileEndOrder.getStartSoc()); // xhpcHistoryOrder.setStartSoc(pileEndOrder.getStartSoc());
xhpcHistoryOrder.setEndSoc(pileEndOrder.getEndSoc()); // xhpcHistoryOrder.setEndSoc(pileEndOrder.getEndSoc());
xhpcHistoryOrder.setReconciliationStatus(0); // xhpcHistoryOrder.setReconciliationStatus(0);
xhpcHistoryOrder.setCreateTime(date); // xhpcHistoryOrder.setCreateTime(date);
//
xhpcHistoryOrderService.insert(xhpcHistoryOrder); // xhpcHistoryOrderService.insert(xhpcHistoryOrder);
hxpcChargeOrderService.updateXhpcChargeOrder(hxpcChargeOrder); // hxpcChargeOrderService.updateXhpcChargeOrder(hxpcChargeOrder);
//删除实时数据获取最新的实时数据 //删除实时数据获取最新的实时数据
//hxpcChargeOrderService.deleteRealTimeOrder(hxpcChargeOrder.getChargeOrderId()); //hxpcChargeOrderService.deleteRealTimeOrder(hxpcChargeOrder.getChargeOrderId());