From 921ff17a24774b96029095c5ee1c2e22fe9105c5 Mon Sep 17 00:00:00 2001 From: yuyang <2265829957@qq.com> Date: Tue, 7 Sep 2021 10:00:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=B0=8F=E7=A8=8B=E5=BA=8F?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E8=B4=A6=E5=8F=B7=E7=94=A8=E4=BA=8E=E5=AE=A1?= =?UTF-8?q?=E6=A0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../XhpcHistoryOrderController.java | 88 ++++- .../domain/XhpcStatisticsTimeInterval.java | 10 +- .../order/dto/XhpcChargeHistoryOrder.java | 341 ++++++++++++++++++ .../order/mapper/XhpcHistoryOrderMapper.java | 3 +- .../service/IXhpcHistoryOrderService.java | 3 +- .../impl/XhpcHistoryOrderServiceImpl.java | 3 +- .../mapper/XhpcHistoryOrderMapper.xml | 17 +- .../resources/mapper/XhpcStatisticsMapper.xml | 38 +- .../service/impl/XhpcAppUserServiceImpl.java | 3 + 9 files changed, 466 insertions(+), 40 deletions(-) create mode 100644 xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/dto/XhpcChargeHistoryOrder.java diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/XhpcHistoryOrderController.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/XhpcHistoryOrderController.java index 128cb811..95d592e4 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/XhpcHistoryOrderController.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/XhpcHistoryOrderController.java @@ -5,6 +5,8 @@ import cn.hutool.core.date.DateUtil; import com.xhpc.common.core.web.controller.BaseController; import com.xhpc.common.core.web.domain.AjaxResult; import com.xhpc.common.core.web.page.TableDataInfo; +import com.xhpc.order.domain.XhpcStatisticsTimeInterval; +import com.xhpc.order.dto.XhpcChargeHistoryOrder; import com.xhpc.order.service.IXhpcChargeOrderService; import com.xhpc.order.service.IXhpcHistoryOrderService; import io.swagger.annotations.Api; @@ -15,6 +17,7 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.Date; import java.util.List; import java.util.Map; @@ -71,16 +74,47 @@ public class XhpcHistoryOrderController extends BaseController { //获取500条待统计历史订单 //跨时段,跨费率,计费模型 //小时统计、日期统计、电站统计、终端统计、运营商统计、流量方统计 - List> list = xhpcHistoryOrderService.getStatistisList(500); + List list = xhpcHistoryOrderService.getStatistisList(500); if(list !=null && list.size()>0){ //开始时间和结束时间之差,是否超过 30分钟 - for (Map map:list) { - Date startTime = (Date) map.get("startTime"); - Date endTime = (Date) map.get("endTime"); - Long rateModelId = Long.valueOf(map.get("rateModelId").toString()); - Long userId =Long.valueOf(map.get("userId").toString()); - Long chargeOrderId =Long.valueOf(map.get("chargeOrderId").toString()); - long betweenDay = DateUtil.between(DateUtil.parse(map.get("startTime").toString(), "yyyy-MM-dd"), DateUtil.parse(map.get("endTime").toString(), "yyyy-MM-dd"), DateUnit.DAY); + for (XhpcChargeHistoryOrder xhpcChargeHistoryOrder:list) { + Date startTime = xhpcChargeHistoryOrder.getStartTime(); + Date endTime = xhpcChargeHistoryOrder.getEndTime(); + Long rateModelId = xhpcChargeHistoryOrder.getRateModelId(); + int source = xhpcChargeHistoryOrder.getSource(); + Long userId =xhpcChargeHistoryOrder.getUserId(); + Long operatorId =xhpcChargeHistoryOrder.getOperatorId(); + Long chargeOrderId =xhpcChargeHistoryOrder.getChargeOrderId(); + //充电时长 + Long chargingTimeNumber =xhpcChargeHistoryOrder.getChargingTimeNumber(); + //电费 + BigDecimal powerPrice =new BigDecimal(0); + //服务费 + BigDecimal servicePrice =new BigDecimal(0); + //订单总价 + BigDecimal totalPrice =new BigDecimal(0); + //电站活动抵扣--抵扣的总金额 + 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); + + long betweenDay = DateUtil.between(DateUtil.parse(xhpcChargeHistoryOrder.getStartTime().toString(), "yyyy-MM-dd"), DateUtil.parse(xhpcChargeHistoryOrder.getEndTime().toString(), "yyyy-MM-dd"), DateUnit.DAY); if(betweenDay==0){ //没有跨天 //获取费率 @@ -88,12 +122,48 @@ public class XhpcHistoryOrderController extends BaseController { String endTime1 = DateUtil.formatTime(endTime); int startHour = DateUtil.hour(startTime, true); int endHour = DateUtil.hour(endTime, true); + if(endHour==startHour){ + //没有跨时段 + List> reatTimeList = xhpcHistoryOrderService.getReatTimeList(startTime1, endTime1, rateModelId); + for (Map mapTime:reatTimeList) { + int size = reatTimeList.size(); + if(size==1){ + BigDecimal totalPrice1 = xhpcChargeHistoryOrder.getTotalPrice(); + BigDecimal powerFee = new BigDecimal(reatTimeList.get(0).get("powerFee").toString()); + powerPrice = powerFee.multiply(totalPrice1).setScale(2, RoundingMode.HALF_UP); + BigDecimal serviceFee = new BigDecimal(reatTimeList.get(0).get("serviceFee").toString()); + servicePrice=serviceFee.multiply(totalPrice1).setScale(2, RoundingMode.HALF_UP); - List> reatTimeList = xhpcHistoryOrderService.getReatTimeList(startTime1, endTime1, rateModelId); + XhpcStatisticsTimeInterval xhpc = new XhpcStatisticsTimeInterval(); + xhpc.setStatus(endHour+1); + xhpc.setChargingDegree(totalPrice1); + xhpc.setChargingTime(new BigDecimal(chargingTimeNumber/3600).setScale(2, RoundingMode.HALF_UP)); + xhpc.setChargingNumber(1); + xhpc.setPowerPrice(powerPrice); + xhpc.setServicePrice(servicePrice); + xhpc.setTotalPrice(totalPrice); + xhpc.setPromotionDiscount(promotionDiscount); + xhpc.setActPrice(actPrice); + xhpc.setActPowerPrice(actPowerPrice); + xhpc.setActServicePrice(actServicePrice); + xhpc.setInternetCommission(internetCommission); + xhpc.setInternetSvcCommission(internetSvcCommission); + xhpc.setPlatformCommission(platformCommission); + xhpc.setPlatformSvcCommisssion(platformSvcCommission); + xhpc.setOperationCommission(operationCommission); + xhpc.setOperationSvcCommission(operationSvcCommission); + xhpc.setOperatorId(operatorId); + + } + + + } + } + } } } diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/domain/XhpcStatisticsTimeInterval.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/domain/XhpcStatisticsTimeInterval.java index 66a7da4d..532bc76b 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/domain/XhpcStatisticsTimeInterval.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/domain/XhpcStatisticsTimeInterval.java @@ -97,7 +97,7 @@ public class XhpcStatisticsTimeInterval extends BaseEntity { /** * 电站id */ - private Long chargingPileId; + private Long chargingStationId; /** * 删除标志(0代表存在 2代表删除) @@ -319,14 +319,14 @@ public class XhpcStatisticsTimeInterval extends BaseEntity { this.delFlag = delFlag; } - public Long getChargingPileId() { + public Long getChargingStationId() { - return chargingPileId; + return chargingStationId; } - public void setChargingPileId(Long chargingPileId) { + public void setChargingStationId(Long chargingStationId) { - this.chargingPileId = chargingPileId; + this.chargingStationId = chargingStationId; } public Long getTerminalId() { diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/dto/XhpcChargeHistoryOrder.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/dto/XhpcChargeHistoryOrder.java new file mode 100644 index 00000000..7f40bff6 --- /dev/null +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/dto/XhpcChargeHistoryOrder.java @@ -0,0 +1,341 @@ +package com.xhpc.order.dto; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @author yuyang + * @date 2021/9/6 17:16 + * @Version 1.0 + */ +public class XhpcChargeHistoryOrder { + + /** + * 历史订单id + */ + private Long historyOrderId; + /** + * 订单总价 + */ + 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; + + /** + * 订单来源(0C端用户 1流量用户) + */ + private Integer source; + + /** + * 充电订单id + */ + private Long chargeOrderId; + + /** + * 电站id + */ + private Long chargingStationId; + /** + * 终端id + */ + private Long terminalId; + + /** + * 开始时间 + */ + private Date startTime; + + /** + * 结束时间 + */ + private Date endTime; + + /** + * 充电时长(秒) + */ + private Long chargingTimeNumber; + + /** + * 运营商id + */ + private Long operatorId; + + /** + * 用户id(当类型为流量方时=流量方id) + */ + private Long userId; + + /** + * 计费模型id + */ + private Long rateModelId; + + public Long getHistoryOrderId() { + + return historyOrderId; + } + + public void setHistoryOrderId(Long historyOrderId) { + + this.historyOrderId = historyOrderId; + } + + 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 getSource() { + + return source; + } + + public void setSource(Integer source) { + + this.source = source; + } + + public Long getChargeOrderId() { + + return chargeOrderId; + } + + public void setChargeOrderId(Long chargeOrderId) { + + this.chargeOrderId = chargeOrderId; + } + + public Long getChargingStationId() { + + return chargingStationId; + } + + public void setChargingStationId(Long chargingStationId) { + + this.chargingStationId = chargingStationId; + } + + public Long getTerminalId() { + + return terminalId; + } + + public void setTerminalId(Long terminalId) { + + this.terminalId = terminalId; + } + + public Date getStartTime() { + + return startTime; + } + + public void setStartTime(Date startTime) { + + this.startTime = startTime; + } + + public Date getEndTime() { + + return endTime; + } + + public void setEndTime(Date endTime) { + + this.endTime = endTime; + } + + public Long getChargingTimeNumber() { + + return chargingTimeNumber; + } + + public void setChargingTimeNumber(Long chargingTimeNumber) { + + this.chargingTimeNumber = chargingTimeNumber; + } + + public Long getOperatorId() { + + return operatorId; + } + + public void setOperatorId(Long operatorId) { + + this.operatorId = operatorId; + } + + public Long getUserId() { + + return userId; + } + + public void setUserId(Long userId) { + + this.userId = userId; + } + + public Long getRateModelId() { + + return rateModelId; + } + + public void setRateModelId(Long rateModelId) { + + this.rateModelId = rateModelId; + } + +} diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/XhpcHistoryOrderMapper.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/XhpcHistoryOrderMapper.java index f5eb1716..14f77f42 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/XhpcHistoryOrderMapper.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/XhpcHistoryOrderMapper.java @@ -1,6 +1,7 @@ package com.xhpc.order.mapper; import com.xhpc.order.domain.XhpcHistoryOrder; +import com.xhpc.order.dto.XhpcChargeHistoryOrder; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -98,5 +99,5 @@ public interface XhpcHistoryOrderMapper { * @param number * @return */ - List> getStatistisList(@Param("number")int number); + List getStatistisList(@Param("number")int number); } diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/IXhpcHistoryOrderService.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/IXhpcHistoryOrderService.java index 9f089e48..35d0b05c 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/IXhpcHistoryOrderService.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/IXhpcHistoryOrderService.java @@ -2,6 +2,7 @@ package com.xhpc.order.service; import com.xhpc.common.core.web.domain.AjaxResult; import com.xhpc.order.domain.XhpcHistoryOrder; +import com.xhpc.order.dto.XhpcChargeHistoryOrder; import java.util.List; import java.util.Map; @@ -64,6 +65,6 @@ public interface IXhpcHistoryOrderService { * @param number * @return */ - List> getStatistisList(int number); + List getStatistisList(int number); } 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 8a27ec1e..1e7d54f8 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 @@ -6,6 +6,7 @@ import cn.hutool.core.date.DateUtil; import com.xhpc.common.core.web.domain.AjaxResult; import com.xhpc.order.domain.XhpcChargeOrder; import com.xhpc.order.domain.XhpcHistoryOrder; +import com.xhpc.order.dto.XhpcChargeHistoryOrder; import com.xhpc.order.mapper.XhpcHistoryOrderMapper; import com.xhpc.order.service.IXhpcChargeOrderService; import com.xhpc.order.service.IXhpcHistoryOrderService; @@ -72,7 +73,7 @@ public class XhpcHistoryOrderServiceImpl implements IXhpcHistoryOrderService { } @Override - public List> getStatistisList(int number) { + public List getStatistisList(int number) { return xhpcHistoryOrderMapper.getStatistisList(number); } diff --git a/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcHistoryOrderMapper.xml b/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcHistoryOrderMapper.xml index df0e3182..85e0afbd 100644 --- a/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcHistoryOrderMapper.xml +++ b/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcHistoryOrderMapper.xml @@ -515,9 +515,20 @@ where ho.history_order_id=#{historyOrderId} - select ho.history_order_id as historyOrderId, + ho.promotion_discount as promotionDiscount, + ho.total_price as totalPrice, + ho.act_price as actPrice, + ho.act_power_price as actPowerPrice, + ho.act_service_price as actServicePrice, + ho.internet_commission as internetCommission, + ho.internet_svc_commission as internetSvcCommission, + ho.platform_commission as platformCommission, + ho.platform_svc_commisssion as platformSvcCommisssion, + ho.operation_commission as operationCommission, + ho.operation_svc_commission as operationSvcCommission, co.source as source, co.charge_order_id as chargeOrderId, co.charging_station_id as chargingStationId, @@ -526,9 +537,9 @@ co.end_time as endTime, co.charging_time_number as chargingTimeNumber, co.charging_degree as chargingDegree, + co.rate_model_id as rateModelId, cs.operator_id as operatorId, - co.user_id as userId, - co.amount_charged as amountCharged + co.user_id as userId from xhpc_history_order ho left join xhpc_charge_order co on co.charge_order_id =ho.charge_order_id left join xhpc_charging_station cs on cs.charging_station_id = co.charging_station_id diff --git a/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcStatisticsMapper.xml b/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcStatisticsMapper.xml index abd295bc..487122ec 100644 --- a/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcStatisticsMapper.xml +++ b/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcStatisticsMapper.xml @@ -22,7 +22,7 @@ - + @@ -166,20 +166,17 @@ and ss.internet_user_id=#{internetUserId} - and charging_station_id in + and ss.charging_station_id in #{chargingStationId} - and operator_id in + and ss.operator_id in #{operatorId} - - and op.name like concat('%', #{operatorName}, '%') - group by ss.charging_station_id @@ -207,12 +204,15 @@ and #{startTime} <=ss.create_time and ss.create_time <=#{endTime} + + and ss.operator_id in + + #{operatorIds} + + - - and ss.operator_id in - - #{operatorId} - + + and ss.operator_id =#{operatorId} @@ -245,16 +245,14 @@ and #{startTime} <=ss.create_time and ss.create_time <=#{endTime} - - - and ss.internet_user_id - - #{internetId} - - + + and ss.internet_user_id + + #{internetId} + - - and iu.name like concat('%', #{internetUserName}, '%') + + and ss.internet_user_id =#{internetUserId} group by ss.internet_user_id diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/impl/XhpcAppUserServiceImpl.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/impl/XhpcAppUserServiceImpl.java index b291956c..ca719805 100644 --- a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/impl/XhpcAppUserServiceImpl.java +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/impl/XhpcAppUserServiceImpl.java @@ -141,6 +141,9 @@ public class XhpcAppUserServiceImpl implements IXhpcAppUserUserService { String code = StringUtils.valueOf(map.get("code")); String phone = StringUtils.valueOf(map.get("phone")); String type = StringUtils.valueOf(map.get("type")); + if("18123374652".equals(phone) && "123456".equals(code)){ + return appLogin(phone, "1", "ot6ul4nlSC5ZZOC4rTLS5hedFTGk"); + } if (StringUtils.isEmpty(code)) { return R.fail(HttpStatus.NOT_NULL, "验证码不能为空"); }