From ac757f9ea977763a2aaa2fe97d7c688ff83940c4 Mon Sep 17 00:00:00 2001 From: "autumn.g@foxmail.com" Date: Sat, 15 Jul 2023 16:24:17 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E6=9F=A5=E8=AF=A2=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E6=8E=A5=E5=8F=A3=20=E6=8C=89=E7=85=A7?= =?UTF-8?q?=E6=97=A5=E6=9C=9F=E5=80=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adapay/service/AdapayMemberService.java | 6 +- .../pile/service/IOrderBasicInfoService.java | 2 - .../impl/OrderBasicInfoServiceImpl.java | 145 ++++++------------ .../mapper/pile/SettleOrderReportMapper.xml | 1 + 4 files changed, 51 insertions(+), 103 deletions(-) diff --git a/jsowell-pile/src/main/java/com/jsowell/adapay/service/AdapayMemberService.java b/jsowell-pile/src/main/java/com/jsowell/adapay/service/AdapayMemberService.java index 6e39b12b9..20042de67 100644 --- a/jsowell-pile/src/main/java/com/jsowell/adapay/service/AdapayMemberService.java +++ b/jsowell-pile/src/main/java/com/jsowell/adapay/service/AdapayMemberService.java @@ -427,7 +427,11 @@ public class AdapayMemberService { adapayMemberAccountService.insertAdapayMemberAccount(adapayMemberAccount); } - + /** + * 提现逻辑 + * @param dto + * @throws BaseAdaPayException + */ public void withdraw(WithdrawDTO dto) throws BaseAdaPayException { // 通过merchantId 查询出汇付会员id 和 结算账户id,用来查询余额 AdapayMemberAccount adapayMemberAccount = adapayMemberAccountService.selectByMerchantId(dto.getMerchantId()); diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderBasicInfoService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderBasicInfoService.java index cf021be7f..68b0e5b03 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderBasicInfoService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderBasicInfoService.java @@ -138,8 +138,6 @@ public interface IOrderBasicInfoService { void realTimeMonitorDataRedis2DB(String transactionCode, String orderCode); - void updateElecAmount(); - /** * 结算订单退款和用户余额退款调这个方法 */ diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index 198d0ba77..72528095c 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -4,8 +4,6 @@ import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.TypeReference; import com.fasterxml.jackson.core.JsonProcessingException; -import com.github.pagehelper.PageHelper; -import com.github.pagehelper.PageInfo; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Lists; import com.google.common.collect.Maps; @@ -410,6 +408,11 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { updateOrderBasicInfo(orderInfo); } + /** + * 关闭启动失败订单 + * @param startTime + * @param endTime + */ @Override public void closeStartFailedOrder(String startTime, String endTime) { List orderList = orderBasicInfoMapper.selectOrderListByTimeRangeAndStatus(startTime, endTime, OrderStatusEnum.NOT_START.getValue(), OrderPayStatusEnum.paid.getValue()); @@ -473,7 +476,6 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { * @param orderBasicInfo 订单 * @return 结果 */ - @Transactional @Override public int updateOrderBasicInfo(OrderBasicInfo orderBasicInfo) { // 清缓存 @@ -526,7 +528,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { * 通过订单号查询订单信息 * * @param orderCode 订单号 - * @return + * @return 订单信息 */ @Override public OrderBasicInfo getOrderInfoByOrderCode(String orderCode) { @@ -548,6 +550,11 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { return orderBasicInfo; } + /** + * 通过交易流水号查询订单信息 + * @param transactionCode 交易流水号 + * @return 订单信息 + */ @Override public OrderBasicInfo getOrderInfoByTransactionCode(String transactionCode) { if (StringUtils.equals(Constants.ILLEGAL_TRANSACTION_CODE, transactionCode)) { @@ -576,14 +583,17 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { */ @Override public OrderBasicInfo queryChargingByPileSnAndConnectorCode(String pileSn, String connectorCode) { + if (StringUtils.isBlank(pileSn) || StringUtils.isBlank(connectorCode)) { + return null; + } return orderBasicInfoMapper.queryOrderBasicInfo(pileSn, connectorCode, OrderStatusEnum.IN_THE_CHARGING.getValue()); } /** * 根据枪口编号查询正在充电中的订单 * - * @param pileConnectorCode - * @return + * @param pileConnectorCode 枪口编号 + * @return 订单信息 */ @Override public OrderBasicInfo queryChargingByPileConnectorCode(String pileConnectorCode) { @@ -937,83 +947,6 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { } - @Override - public void updateElecAmount() { - // 查询 elecAmount为空的订单数据 - int pageNum = 1; - int pageSize = 500; - - int total = 0; - int batch = 1; - while (true) { - // 分页处理 - PageHelper.startPage(pageNum, pageSize); - List list = orderBasicInfoMapper.queryElecAmountNullList(); - PageInfo pageInfo = new PageInfo<>(list); - if (CollectionUtils.isEmpty(pageInfo.getList())) { - break; - } - - // 计算电量总金额 - List orderDetailList = calculateData(pageInfo.getList()); - - // 更新数据库 - int i = orderBasicInfoMapper.batchUpdateOrderDetail(orderDetailList); - total += i; - logger.info("updateElecAmount==第{}批次更新完成", batch); - batch += 1; - } - logger.info("updateElecAmount==共更新{}条数据", total); - } - - // 计算数据 - private List calculateData(List list) { - for (OrderDetail orderDetail : list) { - try { - // 总电费金额 - BigDecimal totalElectricityAmount = BigDecimal.ZERO; - - // 尖时段用电量 - BigDecimal sharpUsedElectricity = orderDetail.getSharpUsedElectricity(); - if (sharpUsedElectricity != null) { - // 计算该时段电费 - BigDecimal multiply = orderDetail.getSharpElectricityPrice().multiply(sharpUsedElectricity).setScale(2, BigDecimal.ROUND_DOWN); - totalElectricityAmount = totalElectricityAmount.add(multiply); - } - - // 峰时段用电量 - BigDecimal peakUsedElectricity = orderDetail.getPeakUsedElectricity(); - if (peakUsedElectricity != null) { - // 计算该时段电费 - BigDecimal multiply = orderDetail.getPeakElectricityPrice().multiply(peakUsedElectricity).setScale(2, BigDecimal.ROUND_DOWN); - totalElectricityAmount = totalElectricityAmount.add(multiply); - } - - // 平时段用电量 - BigDecimal flatUsedElectricity = orderDetail.getFlatUsedElectricity(); - if (flatUsedElectricity != null) { - // 计算该时段电费 - BigDecimal multiply = orderDetail.getFlatElectricityPrice().multiply(flatUsedElectricity).setScale(2, BigDecimal.ROUND_DOWN); - totalElectricityAmount = totalElectricityAmount.add(multiply); - } - - // 谷时段用电量 - BigDecimal valleyUsedElectricity = orderDetail.getValleyUsedElectricity(); - if (valleyUsedElectricity != null) { - // 计算该时段电费 - BigDecimal multiply = orderDetail.getValleyElectricityPrice().multiply(valleyUsedElectricity).setScale(2, BigDecimal.ROUND_DOWN); - totalElectricityAmount = totalElectricityAmount.add(multiply); - } - - orderDetail.setTotalElectricityAmount(totalElectricityAmount); - orderDetail.setTotalServiceAmount(orderDetail.getTotalOrderAmount().subtract(totalElectricityAmount)); - } catch (Exception e) { - logger.info("发生异常", e); - } - } - return list; - } - /** * 余额支付 计算需要退回的金额 * @@ -1084,6 +1017,10 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { } } + /** + * 保存异常订单到订单主表 + * @param data 交易记录数据 + */ @Override public void saveAbnormalOrder(TransactionRecordsData data) { OrderAbnormalRecord record = new OrderAbnormalRecord(); @@ -1160,7 +1097,6 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { // 创建人 orderBasicInfo.setCreateBy(data.getLogicCard()); - // 订单详情 OrderDetail orderDetail = OrderDetail.builder().build(); // 订单编号 @@ -1178,10 +1114,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { orderDetail.setSharpAmount(new BigDecimal(data.getSharpAmount())); // 尖时段单价 orderDetail.setSharpPrice(new BigDecimal(data.getSharpPrice())); - // 尖时段服务费单价 - // orderDetail.setSharpServicePrice(); - // 尖时段电费单价 - // orderDetail.setSharpElectricityPrice(); + // 尖时段用电量 orderDetail.setSharpUsedElectricity(new BigDecimal(data.getSharpUsedElectricity())); @@ -1189,10 +1122,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { orderDetail.setPeakAmount(new BigDecimal(data.getPeakAmount())); // 峰时段单价 orderDetail.setPeakPrice(new BigDecimal(data.getPeakPrice())); - // 峰时段服务费单价 - // orderDetail.setPeakServicePrice(); - // 峰时段电费单价 - // orderDetail.setPeakElectricityPrice(); + // 峰时段用电量 orderDetail.setPeakUsedElectricity(new BigDecimal(data.getPeakUsedElectricity())); @@ -1200,10 +1130,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { orderDetail.setFlatAmount(new BigDecimal(data.getFlatAmount())); // 平时段单价 orderDetail.setFlatPrice(new BigDecimal(data.getFlatPrice())); - // 平时段服务费单价 - // orderDetail.setFlatServicePrice(); - // 平时段电费单价 - // orderDetail.setFlatElectricityPrice(); + // 平时段用电量 orderDetail.setFlatUsedElectricity(new BigDecimal(data.getFlatUsedElectricity())); @@ -1211,10 +1138,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { orderDetail.setValleyAmount(new BigDecimal(data.getValleyAmount())); // 谷时段单价 orderDetail.setValleyPrice(new BigDecimal(data.getValleyPrice())); - // 谷时段服务费单价 - // orderDetail.setValleyServicePrice(); - // 谷时段电费单价 - // orderDetail.setValleyElectricityPrice(); + // 谷时段用电量 orderDetail.setValleyUsedElectricity(new BigDecimal(data.getValleyUsedElectricity())); @@ -1223,6 +1147,27 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { orderDetail.setCreateTime(data.getCreateTime()); } + // 查到站点计费模板 + BillingTemplateVO billingTemplate = pileBillingTemplateService.queryUsedBillingTemplate(stationId); + if (billingTemplate != null) { + // 尖时段服务费单价 + orderDetail.setSharpServicePrice(billingTemplate.getSharpServicePrice()); + // 尖时段电费单价 + orderDetail.setSharpElectricityPrice(billingTemplate.getSharpElectricityPrice()); + // 峰时段服务费单价 + orderDetail.setPeakServicePrice(billingTemplate.getPeakServicePrice()); + // 峰时段电费单价 + orderDetail.setPeakElectricityPrice(billingTemplate.getPeakElectricityPrice()); + // 平时段服务费单价 + orderDetail.setFlatServicePrice(billingTemplate.getFlatServicePrice()); + // 平时段电费单价 + orderDetail.setFlatElectricityPrice(billingTemplate.getFlatElectricityPrice()); + // 谷时段服务费单价 + orderDetail.setValleyServicePrice(billingTemplate.getValleyServicePrice()); + // 谷时段电费单价 + orderDetail.setValleyElectricityPrice(billingTemplate.getValleyElectricityPrice()); + } + OrderTransactionDTO createOrderTransactionDTO = OrderTransactionDTO.builder() .orderBasicInfo(orderBasicInfo) .orderDetail(orderDetail) diff --git a/jsowell-pile/src/main/resources/mapper/pile/SettleOrderReportMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/SettleOrderReportMapper.xml index 210228de5..f8913ba0e 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/SettleOrderReportMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/SettleOrderReportMapper.xml @@ -152,6 +152,7 @@ and t1.trade_date #{dto.endTime,jdbcType=VARCHAR} + order by t1.trade_date DESC