diff --git a/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/SettleOrderReportController.java b/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/SettleOrderReportController.java index dff339fe9..73d02b495 100644 --- a/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/SettleOrderReportController.java +++ b/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/SettleOrderReportController.java @@ -103,6 +103,17 @@ public class SettleOrderReportController extends BaseController { return AjaxResult.success(settleOrderReportService.getMerchantOrderReport(dto)); } + /** + * 查询运营商订单报表V2 + * @param dto + * @return + */ + // @PreAuthorize("@ss.hasPermi('pile:merchant:query')") + @PostMapping("/getMerchantOrderReportV2") + public AjaxResult getMerchantOrderReportV2(@RequestBody MerchantOrderReportDTO dto) { + return AjaxResult.success(settleOrderReportService.getMerchantOrderReportV2(dto)); + } + /** * 查询站点订单日报详情 * http://localhost:8080/order/report/getStationOrderReportDetail diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/dto/GetClearingBillDTO.java b/jsowell-pile/src/main/java/com/jsowell/pile/dto/GetClearingBillDTO.java new file mode 100644 index 000000000..811dfef1e --- /dev/null +++ b/jsowell-pile/src/main/java/com/jsowell/pile/dto/GetClearingBillDTO.java @@ -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; +} diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/ClearingBillInfoMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/ClearingBillInfoMapper.java index ceacec818..adbe40874 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/ClearingBillInfoMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/ClearingBillInfoMapper.java @@ -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 selectByMerchantId(@Param("merchantId") String merchantId, @Param("billStatus") String billStatus); void updateStatus(@Param("clearingBillIds") List clearingBillIds, @Param("billStatus") String billStatus); + + /** + * 后管用 查询运营商账单列表 + * @param dto + * @return + */ + List getMerchantClearingBillList(GetClearingBillDTO dto); } \ No newline at end of file diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/ClearingBillInfoService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/ClearingBillInfoService.java index e2b5ed225..529a4a6d6 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/ClearingBillInfoService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/ClearingBillInfoService.java @@ -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 selectByMerchantId(String merchantId, String billStatus); void updateStatus(List clearingBillIds, String billStatus); + + /** + * 后管用 查询运营商账单列表 + * @param dto + * @return + */ + List getMerchantClearingBillList(GetClearingBillDTO dto); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/ISettleOrderReportService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/ISettleOrderReportService.java index b8b62920d..7d18adc91 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/ISettleOrderReportService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/ISettleOrderReportService.java @@ -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 queryOrderReport(List stationIdList, String startTime, String endTime); Map queryUndividedOrder(SettleOrderReportDTO dto); + + /** + * 获取运营商清分账单列表 + * @param dto + * @return + */ + public PageResponse getMerchantClearingBillList(GetClearingBillDTO dto); + + } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/ClearingBillInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/ClearingBillInfoServiceImpl.java index 377ce9d0f..1c9d3bb1b 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/ClearingBillInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/ClearingBillInfoServiceImpl.java @@ -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 getMerchantClearingBillList(GetClearingBillDTO dto) { + return clearingBillInfoMapper.getMerchantClearingBillList(dto); + } + } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/SettleOrderReportServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/SettleOrderReportServiceImpl.java index 2fa04afbe..2f203fcd6 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/SettleOrderReportServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/SettleOrderReportServiceImpl.java @@ -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 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 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 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); diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/MerchantClearingBillVO.java b/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/MerchantClearingBillVO.java new file mode 100644 index 000000000..759be6d48 --- /dev/null +++ b/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/MerchantClearingBillVO.java @@ -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; +} diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/MerchantOrderReportVO.java b/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/MerchantOrderReportVO.java index a0763c8f8..f02fc712a 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/MerchantOrderReportVO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/MerchantOrderReportVO.java @@ -45,5 +45,8 @@ public class MerchantOrderReportVO { // 虚拟金额 private BigDecimal virtualAmount; + + // 白名单支付次数 + private BigDecimal whitelistPaymentsNum; } } diff --git a/jsowell-pile/src/main/resources/mapper/pile/ClearingBillInfoMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/ClearingBillInfoMapper.xml index 439664219..1e144ee59 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/ClearingBillInfoMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/ClearingBillInfoMapper.xml @@ -268,4 +268,24 @@ #{item,jdbcType=INTEGER} + + \ No newline at end of file