mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-19 18:45:03 +08:00
update 查询订单报表接口 按照日期倒序
This commit is contained in:
@@ -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());
|
||||
|
||||
@@ -138,8 +138,6 @@ public interface IOrderBasicInfoService {
|
||||
|
||||
void realTimeMonitorDataRedis2DB(String transactionCode, String orderCode);
|
||||
|
||||
void updateElecAmount();
|
||||
|
||||
/**
|
||||
* 结算订单退款和用户余额退款调这个方法
|
||||
*/
|
||||
|
||||
@@ -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<OrderBasicInfo> 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<OrderDetail> list = orderBasicInfoMapper.queryElecAmountNullList();
|
||||
PageInfo<OrderDetail> pageInfo = new PageInfo<>(list);
|
||||
if (CollectionUtils.isEmpty(pageInfo.getList())) {
|
||||
break;
|
||||
}
|
||||
|
||||
// 计算电量总金额
|
||||
List<OrderDetail> orderDetailList = calculateData(pageInfo.getList());
|
||||
|
||||
// 更新数据库
|
||||
int i = orderBasicInfoMapper.batchUpdateOrderDetail(orderDetailList);
|
||||
total += i;
|
||||
logger.info("updateElecAmount==第{}批次更新完成", batch);
|
||||
batch += 1;
|
||||
}
|
||||
logger.info("updateElecAmount==共更新{}条数据", total);
|
||||
}
|
||||
|
||||
// 计算数据
|
||||
private List<OrderDetail> calculateData(List<OrderDetail> 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)
|
||||
|
||||
@@ -152,6 +152,7 @@
|
||||
<if test="dto.endTime != null and dto.endTime != ''">
|
||||
and t1.trade_date <![CDATA[ <= ]]> #{dto.endTime,jdbcType=VARCHAR}
|
||||
</if>
|
||||
order by t1.trade_date DESC
|
||||
</select>
|
||||
|
||||
<select id="selectByStationIdAndDate" resultMap="SettleOrderReportResult">
|
||||
|
||||
Reference in New Issue
Block a user