新增 后管查询运营商订单报表V2 接口

This commit is contained in:
Lemon
2023-08-28 14:58:34 +08:00
parent 192315089b
commit 282194b761
10 changed files with 245 additions and 4 deletions

View File

@@ -0,0 +1,29 @@
package com.jsowell.pile.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 查询清分账单DTO
*
* @author Lemon
* @Date 2023/8/28 13:47
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class GetClearingBillDTO {
private Integer pageNum;
private Integer pageSize;
private String merchantId;
private String startTime;
private String endTime;
}

View File

@@ -1,6 +1,9 @@
package com.jsowell.pile.mapper;
import com.jsowell.pile.domain.ClearingBillInfo;
import com.jsowell.pile.dto.GetClearingBillDTO;
import com.jsowell.pile.vo.web.ClearingBillVO;
import com.jsowell.pile.vo.web.MerchantClearingBillVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -57,4 +60,11 @@ public interface ClearingBillInfoMapper {
List<ClearingBillInfo> selectByMerchantId(@Param("merchantId") String merchantId, @Param("billStatus") String billStatus);
void updateStatus(@Param("clearingBillIds") List<Integer> clearingBillIds, @Param("billStatus") String billStatus);
/**
* 后管用 查询运营商账单列表
* @param dto
* @return
*/
List<MerchantClearingBillVO> getMerchantClearingBillList(GetClearingBillDTO dto);
}

View File

@@ -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);
}

View File

@@ -2,6 +2,7 @@ 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;
@@ -77,6 +78,8 @@ public interface ISettleOrderReportService {
*/
MerchantOrderReportVO getMerchantOrderReport(MerchantOrderReportDTO dto);
MerchantOrderReportVO getMerchantOrderReportV2(MerchantOrderReportDTO dto);
int deleteByPrimaryKey(Integer id);
int insert(SettleOrderReport record);
@@ -102,4 +105,13 @@ public interface ISettleOrderReportService {
List<SettleOrderReport> queryOrderReport(List<String> stationIdList, String startTime, String endTime);
Map<String, Object> queryUndividedOrder(SettleOrderReportDTO dto);
/**
* 获取运营商清分账单列表
* @param dto
* @return
*/
public PageResponse getMerchantClearingBillList(GetClearingBillDTO dto);
}

View File

@@ -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);
}
}

View File

@@ -12,23 +12,24 @@ import com.jsowell.common.exception.BusinessException;
import com.jsowell.common.util.DateUtils;
import com.jsowell.common.util.PageUtils;
import com.jsowell.common.util.StringUtils;
import com.jsowell.pile.domain.ClearingBillInfo;
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.mapper.AdapayCallbackRecordMapper;
import com.jsowell.pile.mapper.SettleOrderReportMapper;
import com.jsowell.pile.service.ClearingBillInfoService;
import com.jsowell.pile.service.ClearingWithdrawInfoService;
import com.jsowell.pile.service.IPileMerchantInfoService;
import com.jsowell.pile.service.ISettleOrderReportService;
import com.jsowell.pile.vo.web.ClearingBillVO;
import com.jsowell.pile.vo.web.MerchantOrderReportVO;
import com.jsowell.pile.vo.web.OrderSettleDetailVO;
import com.jsowell.pile.vo.web.SettleOrderReportVO;
import com.jsowell.pile.vo.web.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -56,6 +57,9 @@ public class SettleOrderReportServiceImpl implements ISettleOrderReportService {
@Autowired
private ClearingWithdrawInfoService clearingWithdrawInfoService;
@Autowired
private ClearingBillInfoService clearingBillInfoService;
/**
* 查询结算订单报
*
@@ -303,6 +307,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)) {
throw new BusinessException("", "获取运营商清分账单列表为空");
}
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);

View File

@@ -0,0 +1,49 @@
package com.jsowell.pile.vo.web;
import lombok.Data;
/**
* 运营商清分账单VO
*
* @author Lemon
* @Date 2023/8/28 13:30
*/
@Data
public class MerchantClearingBillVO {
// 交易日期
private String tradeDate;
// 账单状态
private String billStatus;
// 清分账单编号
private String clearingBillCode;
// 清分时间
private String clearingTime;
// 运营商id
private String merchantId;
// 运营商名称
private String merchantName;
// 应收金额
private String receivableAmount;
// 应清分金额
private String shouldClearingAmount;
// 实际清分金额
private String actualClearingAmount;
// 手续费
private String feeAmount;
// 可提现金额
private String withdrawAbleAmount;
// 提现单号
private String withdrawCode;
}

View File

@@ -45,5 +45,8 @@ public class MerchantOrderReportVO {
// 虚拟金额
private BigDecimal virtualAmount;
// 白名单支付次数
private BigDecimal whitelistPaymentsNum;
}
}