mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-29 15:39:59 +08:00
Merge branch 'dev' into merge_adapay
# Conflicts: # jsowell-pile/src/main/java/com/jsowell/pile/service/ISettleOrderReportService.java # jsowell-pile/src/main/java/com/jsowell/pile/service/impl/SettleOrderReportServiceImpl.java
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
package com.jsowell.pile.service;
|
||||
|
||||
import com.jsowell.pile.domain.ClearingBillInfo;
|
||||
import com.jsowell.pile.dto.GetClearingBillDTO;
|
||||
import com.jsowell.pile.vo.web.MerchantClearingBillVO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -22,4 +24,11 @@ public interface ClearingBillInfoService{
|
||||
List<ClearingBillInfo> selectByMerchantId(String merchantId, String billStatus);
|
||||
|
||||
void updateStatus(List<Integer> clearingBillIds, String billStatus);
|
||||
|
||||
/**
|
||||
* 后管用 查询运营商账单列表
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
List<MerchantClearingBillVO> getMerchantClearingBillList(GetClearingBillDTO dto);
|
||||
}
|
||||
|
||||
@@ -2,11 +2,13 @@ package com.jsowell.pile.service;
|
||||
|
||||
import com.jsowell.common.core.page.PageResponse;
|
||||
import com.jsowell.pile.domain.SettleOrderReport;
|
||||
import com.jsowell.pile.dto.GetClearingBillDTO;
|
||||
import com.jsowell.pile.dto.MerchantOrderReportDTO;
|
||||
import com.jsowell.pile.dto.SettleOrderReportDTO;
|
||||
import com.jsowell.pile.vo.web.MerchantOrderReportVO;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 结算订单报Service接口
|
||||
@@ -76,6 +78,8 @@ public interface ISettleOrderReportService {
|
||||
*/
|
||||
MerchantOrderReportVO getMerchantOrderReport(MerchantOrderReportDTO dto);
|
||||
|
||||
MerchantOrderReportVO getMerchantOrderReportV2(MerchantOrderReportDTO dto);
|
||||
|
||||
int deleteByPrimaryKey(Integer id);
|
||||
|
||||
int insert(SettleOrderReport record);
|
||||
@@ -107,4 +111,14 @@ public interface ISettleOrderReportService {
|
||||
* @param tradeDate 交易日期
|
||||
*/
|
||||
void generateDailyOrderReports(String stationId, String tradeDate);
|
||||
Map<String, Object> queryUndividedOrder(SettleOrderReportDTO dto);
|
||||
|
||||
/**
|
||||
* 获取运营商清分账单列表
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
public PageResponse getMerchantClearingBillList(GetClearingBillDTO dto);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -2,8 +2,10 @@ package com.jsowell.pile.service.impl;
|
||||
|
||||
import com.jsowell.common.util.StringUtils;
|
||||
import com.jsowell.pile.domain.ClearingBillInfo;
|
||||
import com.jsowell.pile.dto.GetClearingBillDTO;
|
||||
import com.jsowell.pile.mapper.ClearingBillInfoMapper;
|
||||
import com.jsowell.pile.service.ClearingBillInfoService;
|
||||
import com.jsowell.pile.vo.web.MerchantClearingBillVO;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -59,4 +61,14 @@ public class ClearingBillInfoServiceImpl implements ClearingBillInfoService{
|
||||
clearingBillInfoMapper.updateStatus(clearingBillIds, billStatus);
|
||||
}
|
||||
|
||||
/**
|
||||
* 后管用 查询运营商账单列表
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<MerchantClearingBillVO> getMerchantClearingBillList(GetClearingBillDTO dto) {
|
||||
return clearingBillInfoMapper.getMerchantClearingBillList(dto);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -2828,6 +2828,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
||||
// 2023-07-11 全部改为汇付支付
|
||||
dto.setGoodsTitle("充电费用");
|
||||
dto.setGoodsDesc("充电桩预付款金额");
|
||||
dto.setType(ScenarioEnum.ORDER.getValue());
|
||||
Map<String, Object> weixinMap = adapayService.createPayment(dto);
|
||||
|
||||
// 返回微信支付参数
|
||||
|
||||
@@ -11,6 +11,7 @@ import com.jsowell.common.enums.uniapp.OccupyOrderPayStatusEnum;
|
||||
import com.jsowell.common.enums.uniapp.OccupyOrderStatusEnum;
|
||||
import com.jsowell.common.enums.ykc.OrderPayModeEnum;
|
||||
import com.jsowell.common.enums.ykc.ReturnCodeEnum;
|
||||
import com.jsowell.common.enums.ykc.ScenarioEnum;
|
||||
import com.jsowell.common.exception.BusinessException;
|
||||
import com.jsowell.common.util.DateUtils;
|
||||
import com.jsowell.common.util.PageUtils;
|
||||
@@ -443,6 +444,7 @@ public class OrderPileOccupyServiceImpl implements OrderPileOccupyService {
|
||||
// 返回支付参数
|
||||
dto.setGoodsTitle("占桩费用");
|
||||
dto.setGoodsDesc("占桩订单金额");
|
||||
dto.setType(ScenarioEnum.OCCUPY.getValue());
|
||||
Map<String, Object> weixinMap = adapayService.createPayment(dto);
|
||||
resultMap.put("weixinMap", weixinMap);
|
||||
} else if (StringUtils.equals(dto.getPayMode(), OrderPayModeEnum.PAYMENT_OF_WHITELIST.getValue())) { // 白名单支付
|
||||
|
||||
@@ -13,7 +13,11 @@ import com.jsowell.common.util.DateUtils;
|
||||
import com.jsowell.common.util.PageUtils;
|
||||
import com.jsowell.common.util.StringUtils;
|
||||
import com.jsowell.common.util.id.IdUtils;
|
||||
import com.jsowell.pile.domain.ClearingBillInfo;
|
||||
import com.jsowell.pile.domain.PileBasicInfo;
|
||||
import com.jsowell.pile.domain.PileStationInfo;
|
||||
import com.jsowell.pile.domain.SettleOrderReport;
|
||||
import com.jsowell.pile.dto.GetClearingBillDTO;
|
||||
import com.jsowell.pile.dto.MerchantOrderReportDTO;
|
||||
import com.jsowell.pile.dto.QueryOrderDTO;
|
||||
import com.jsowell.pile.dto.SettleOrderReportDTO;
|
||||
@@ -27,6 +31,8 @@ import com.jsowell.pile.service.ISettleOrderReportService;
|
||||
import com.jsowell.pile.vo.base.SplitSettleAmountVO;
|
||||
import com.jsowell.pile.vo.web.*;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import com.jsowell.pile.service.*;
|
||||
import com.jsowell.pile.vo.web.*;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
@@ -38,6 +44,7 @@ import java.time.LocalTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -70,6 +77,12 @@ public class SettleOrderReportServiceImpl implements ISettleOrderReportService {
|
||||
@Autowired
|
||||
private ClearingWithdrawInfoService clearingWithdrawInfoService;
|
||||
|
||||
@Autowired
|
||||
private ClearingBillInfoService clearingBillInfoService;
|
||||
|
||||
@Autowired
|
||||
private IPileStationInfoService pileStationInfoService;
|
||||
|
||||
/**
|
||||
* 查询结算订单报
|
||||
*
|
||||
@@ -97,30 +110,23 @@ public class SettleOrderReportServiceImpl implements ISettleOrderReportService {
|
||||
*/
|
||||
@Override
|
||||
public PageResponse selectSettleOrderReportDetail(SettleOrderReportDTO dto) {
|
||||
SettleOrderReport orderReport = selectByStationIdAndDate(dto.getStationId(), dto.getTradeDate());
|
||||
if (orderReport == null) {
|
||||
return new PageResponse();
|
||||
}
|
||||
String orderCodes = orderReport.getOrderCodes();
|
||||
if (StringUtils.isBlank(orderCodes)) {
|
||||
return new PageResponse();
|
||||
}
|
||||
List<String> orderCodes = getOrderCodes(dto);
|
||||
|
||||
List<String> orderCodeList = Lists.newArrayList(StringUtils.split(orderCodes, ","));
|
||||
// 查询订单支付信息 分页
|
||||
int pageNum = dto.getPageNum() != null ? dto.getPageNum() : 1;
|
||||
int pageSize = dto.getPageSize() != null ? dto.getPageSize() : 10;
|
||||
PageHelper.startPage(pageNum, pageSize);
|
||||
List<ClearingBillVO> clearingBillVOList = clearingWithdrawInfoService.selectWithdrawInfoByOrderCodeList(orderCodeList);
|
||||
List<ClearingBillVO> clearingBillVOList = clearingWithdrawInfoService.selectWithdrawInfoByOrderCodeList(orderCodes);
|
||||
PageInfo<ClearingBillVO> pageInfo = new PageInfo<>(clearingBillVOList);
|
||||
|
||||
// 封装结果集
|
||||
List<OrderSettleDetailVO> resultList = Lists.newArrayList();
|
||||
OrderSettleDetailVO vo = null;
|
||||
String wechatAppId = pileMerchantInfoService.queryAppIdByMerchantId(orderReport.getMerchantId());
|
||||
String wechatAppId = pileMerchantInfoService.queryAppIdByMerchantId(dto.getMerchantId());
|
||||
for (ClearingBillVO clearingBillVO : pageInfo.getList()) {
|
||||
vo = new OrderSettleDetailVO();
|
||||
vo.setOrderCode(clearingBillVO.getOrderCode());
|
||||
vo.setSettleAmount(clearingBillVO.getSettleAmount());
|
||||
String paymentId = clearingBillVO.getPaymentId();
|
||||
QueryPaymentConfirmDTO build = QueryPaymentConfirmDTO.builder()
|
||||
.wechatAppId(wechatAppId)
|
||||
@@ -158,6 +164,51 @@ public class SettleOrderReportServiceImpl implements ISettleOrderReportService {
|
||||
return pageResponse;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据 merchantId 或 stationId 以及交易日期获取订单号
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
private List<String> getOrderCodes(SettleOrderReportDTO dto) {
|
||||
List<String> orderCodeList = new ArrayList<>();
|
||||
if (StringUtils.isNotBlank(dto.getMerchantId())) {
|
||||
List<PileStationInfo> stationIdInfos = pileStationInfoService.selectStationListByMerchantId(Long.parseLong(dto.getMerchantId()));
|
||||
// 收集出站点id
|
||||
List<String> stationIds = stationIdInfos.stream()
|
||||
.map(PileStationInfo::getId)
|
||||
.collect(Collectors.toList())
|
||||
.stream()
|
||||
.map(String::valueOf)
|
||||
.collect(Collectors.toList());
|
||||
List<SettleOrderReport> list = queryOrderReport(stationIds, dto.getTradeDate(), dto.getTradeDate());
|
||||
if (CollectionUtils.isEmpty(list)) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
List<String> orderCodes = list.stream().map(SettleOrderReport::getOrderCodes)
|
||||
.filter(StringUtils::isNotBlank)
|
||||
.collect(Collectors.toList());
|
||||
if (CollectionUtils.isEmpty(orderCodes)) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
for (String orderCode : orderCodes) {
|
||||
orderCodeList = Lists.newArrayList(StringUtils.split(orderCode, ","));
|
||||
}
|
||||
} else if (StringUtils.isNotBlank(dto.getStationId())){
|
||||
SettleOrderReport orderReport = selectByStationIdAndDate(dto.getStationId(), dto.getTradeDate());
|
||||
|
||||
if (orderReport == null) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
String orderCodes = orderReport.getOrderCodes();
|
||||
if (StringUtils.isBlank(orderCodes)) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
orderCodeList = Lists.newArrayList(StringUtils.split(orderCodes, ","));
|
||||
dto.setMerchantId(orderReport.getMerchantId());
|
||||
}
|
||||
return orderCodeList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SettleOrderReport> selectByMerchantIdAndDate(String merchantId, String date) {
|
||||
return settleOrderReportMapper.selectByMerchantIdAndDate(merchantId, date);
|
||||
@@ -280,6 +331,88 @@ public class SettleOrderReportServiceImpl implements ISettleOrderReportService {
|
||||
return vo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据运营商id查询订单报表V2
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public MerchantOrderReportVO getMerchantOrderReportV2(MerchantOrderReportDTO dto) {
|
||||
int pageNum = dto.getPageNum() == null ? 1 : dto.getPageNum();
|
||||
int pageSize = dto.getPageSize() == null ? 10 : dto.getPageSize();
|
||||
if (StringUtils.isBlank(dto.getStartTime())) {
|
||||
dto.setStartTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.addDays(new Date(), -7)));
|
||||
}
|
||||
if (StringUtils.isBlank(dto.getEndTime())) {
|
||||
dto.setEndTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, new Date()));
|
||||
}
|
||||
MerchantOrderReportVO vo = new MerchantOrderReportVO();
|
||||
MerchantOrderReportVO.MerchantOrderReport report = new MerchantOrderReportVO.MerchantOrderReport();
|
||||
PageUtils.startPage(pageNum, pageSize);
|
||||
GetClearingBillDTO clearingBillDTO = GetClearingBillDTO.builder()
|
||||
.merchantId(dto.getMerchantId())
|
||||
.startTime(dto.getStartTime())
|
||||
.endTime(dto.getEndTime())
|
||||
.pageNum(dto.getPageNum())
|
||||
.pageSize(dto.getPageSize())
|
||||
.build();
|
||||
PageResponse pageResponse = getMerchantClearingBillList(clearingBillDTO);
|
||||
vo.setPageResponse(pageResponse);
|
||||
|
||||
vo.setMerchantId(dto.getMerchantId());
|
||||
// 进行数据汇总
|
||||
List<SettleOrderReportVO> list = settleOrderReportMapper.getMerchantOrderReport(dto);
|
||||
// 用电度数
|
||||
report.setUseElectricity(list.stream().map(SettleOrderReportVO::getUseElectricity).reduce(BigDecimal.ZERO, BigDecimal::add));
|
||||
// 充电次数
|
||||
report.setChargeNum(list.stream().map(SettleOrderReport -> new BigDecimal(SettleOrderReport.getChargeNum())).reduce(BigDecimal.ZERO, BigDecimal::add));
|
||||
// 充电时长
|
||||
report.setChargeTime(list.stream().map(SettleOrderReport -> new BigDecimal(SettleOrderReport.getChargeTime())).reduce(BigDecimal.ZERO, BigDecimal::add));
|
||||
// 电费金额
|
||||
report.setElectricityAmount(list.stream().map(SettleOrderReportVO::getElectricityAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
|
||||
// 服务费金额
|
||||
report.setServiceAmount(list.stream().map(SettleOrderReportVO::getServiceAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
|
||||
// 收入金额
|
||||
report.setTotalAmount(list.stream().map(SettleOrderReportVO::getTotalAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
|
||||
// 虚拟金额
|
||||
report.setVirtualAmount(list.stream().map(SettleOrderReportVO::getVirtualAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
|
||||
// 交易金额
|
||||
report.setTradeAmount(list.stream().map(SettleOrderReportVO::getTradeAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
|
||||
// 交易手续费
|
||||
report.setTradeFee(list.stream().map(SettleOrderReportVO::getTradeFee).reduce(BigDecimal.ZERO, BigDecimal::add));
|
||||
|
||||
vo.setMerchantOrderReport(report);
|
||||
return vo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取运营商清分账单列表
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public PageResponse getMerchantClearingBillList(GetClearingBillDTO dto) {
|
||||
List<MerchantClearingBillVO> resultList;
|
||||
int pageNum = dto.getPageNum() == null ? 1 : dto.getPageNum();
|
||||
int pageSize = dto.getPageSize() == null ? 10 : dto.getPageSize();
|
||||
// 分页
|
||||
PageUtils.startPage(pageNum, pageSize);
|
||||
resultList = clearingBillInfoService.getMerchantClearingBillList(dto);
|
||||
if (CollectionUtils.isEmpty(resultList)) {
|
||||
return null;
|
||||
}
|
||||
PageInfo<MerchantClearingBillVO> pageInfo = new PageInfo<>(resultList);
|
||||
PageResponse response = PageResponse.builder()
|
||||
.pageNum(pageInfo.getPageNum())
|
||||
.pageSize(pageInfo.getPageSize())
|
||||
.list(pageInfo.getList())
|
||||
.total(pageInfo.getTotal())
|
||||
.pages(pageInfo.getPages())
|
||||
.build();
|
||||
return response;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int deleteByPrimaryKey(Integer id) {
|
||||
return settleOrderReportMapper.deleteByPrimaryKey(id);
|
||||
@@ -340,6 +473,11 @@ public class SettleOrderReportServiceImpl implements ISettleOrderReportService {
|
||||
return settleOrderReportMapper.queryOrderReport(stationIdList, startTime, endTime);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> queryUndividedOrder(SettleOrderReportDTO dto) {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算站点订单报表
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user