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 a83c8dc46..dcd2ba178 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 @@ -7,6 +7,7 @@ import com.jsowell.common.core.page.TableDataInfo; import com.jsowell.common.enums.BusinessType; import com.jsowell.common.util.poi.ExcelUtil; import com.jsowell.pile.domain.SettleOrderReport; +import com.jsowell.pile.dto.MerchantOrderReportDTO; import com.jsowell.pile.service.ISettleOrderReportService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; @@ -88,4 +89,10 @@ public class SettleOrderReportController extends BaseController { public AjaxResult remove(@PathVariable Long[] ids) { return toAjax(settleOrderReportService.deleteSettleOrderReportByIds(ids)); } + + @PreAuthorize("@ss.hasPermi('pile:report:query')") + @PostMapping("/getMerchantOrderReport") + public AjaxResult getMerchantOrderReport(@RequestBody MerchantOrderReportDTO dto) { + return AjaxResult.success(settleOrderReportService.getMerchantOrderReport(dto)); + } } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/dto/MerchantOrderReportDTO.java b/jsowell-pile/src/main/java/com/jsowell/pile/dto/MerchantOrderReportDTO.java new file mode 100644 index 000000000..ae67eb421 --- /dev/null +++ b/jsowell-pile/src/main/java/com/jsowell/pile/dto/MerchantOrderReportDTO.java @@ -0,0 +1,17 @@ +package com.jsowell.pile.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class MerchantOrderReportDTO { + private String merchantId; + private String startTime; + private String endTime; + +} diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/SettleOrderReportMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/SettleOrderReportMapper.java index 03dc51a25..0934c086b 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/SettleOrderReportMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/SettleOrderReportMapper.java @@ -1,6 +1,9 @@ package com.jsowell.pile.mapper; import com.jsowell.pile.domain.SettleOrderReport; +import com.jsowell.pile.dto.MerchantOrderReportDTO; +import com.jsowell.pile.vo.web.MerchantOrderReportVO; +import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; import java.util.List; @@ -60,4 +63,11 @@ public interface SettleOrderReportMapper { * @return 结果 */ public int deleteSettleOrderReportByIds(Long[] ids); + + /** + * 根据运营商id查询订单报表 + * @param dto + * @return + */ + List getMerchantOrderReport(@Param("dto") MerchantOrderReportDTO 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 886b17fa9..aef187e0a 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 @@ -1,6 +1,8 @@ package com.jsowell.pile.service; import com.jsowell.pile.domain.SettleOrderReport; +import com.jsowell.pile.dto.MerchantOrderReportDTO; +import com.jsowell.pile.vo.web.MerchantOrderReportVO; import java.util.List; @@ -58,4 +60,11 @@ public interface ISettleOrderReportService { * @return 结果 */ public int deleteSettleOrderReportById(Long id); + + /** + * 根据运营商id查询订单报表 + * @param dto + * @return + */ + MerchantOrderReportVO getMerchantOrderReport(MerchantOrderReportDTO 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 7111d5b4c..91fcddf12 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 @@ -2,12 +2,17 @@ package com.jsowell.pile.service.impl; import com.jsowell.common.util.DateUtils; import com.jsowell.pile.domain.SettleOrderReport; +import com.jsowell.pile.dto.MerchantOrderReportDTO; import com.jsowell.pile.mapper.SettleOrderReportMapper; import com.jsowell.pile.service.ISettleOrderReportService; +import com.jsowell.pile.vo.web.MerchantOrderReportVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import java.math.BigDecimal; import java.util.List; +import java.util.Objects; /** * 结算订单报Service业务层处理 @@ -86,4 +91,43 @@ public class SettleOrderReportServiceImpl implements ISettleOrderReportService { public int deleteSettleOrderReportById(Long id) { return settleOrderReportMapper.deleteSettleOrderReportById(id); } + + /** + * 根据运营商id查询订单报表 + * @param dto + * @return + */ + @Override + public MerchantOrderReportVO getMerchantOrderReport(MerchantOrderReportDTO dto) { + MerchantOrderReportVO vo = new MerchantOrderReportVO(); + MerchantOrderReportVO.MerchantOrderReport report = new MerchantOrderReportVO.MerchantOrderReport(); + List list = settleOrderReportMapper.getMerchantOrderReport(dto); + if (CollectionUtils.isEmpty(list)) { + return null; + } + vo.setMerchantId(dto.getMerchantId()); + vo.setReportList(list); + // 进行数据汇总 + // 用电度数 + report.setUseElectricity(list.stream().map(SettleOrderReport::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(SettleOrderReport::getElectricityAmount).reduce(BigDecimal.ZERO, BigDecimal::add)); + // 服务费金额 + report.setServiceAmount(list.stream().map(SettleOrderReport::getServiceAmount).reduce(BigDecimal.ZERO, BigDecimal::add)); + // 收入金额 + report.setTotalAmount(list.stream().map(SettleOrderReport::getTotalAmount).reduce(BigDecimal.ZERO, BigDecimal::add)); + // 虚拟金额 + report.setVirtualAmount(list.stream().map(SettleOrderReport::getVirtualAmount).reduce(BigDecimal.ZERO, BigDecimal::add)); + // 交易金额 + report.setTradeAmount(list.stream().map(SettleOrderReport::getTradeAmount).reduce(BigDecimal.ZERO, BigDecimal::add)); + // 交易手续费 + report.setTradeFee(list.stream().map(SettleOrderReport::getTradeFee).reduce(BigDecimal.ZERO, BigDecimal::add)); + + vo.setMerchantOrderReport(report); + return vo; + } } 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 new file mode 100644 index 000000000..009920655 --- /dev/null +++ b/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/MerchantOrderReportVO.java @@ -0,0 +1,46 @@ +package com.jsowell.pile.vo.web; + +import com.jsowell.pile.domain.SettleOrderReport; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; + +@Data +public class MerchantOrderReportVO { + private String merchantId; + + private MerchantOrderReport merchantOrderReport; + + private List reportList; + + @Data + public static class MerchantOrderReport{ + // 用电度数 + private BigDecimal useElectricity; + + // 充电次数 + private BigDecimal chargeNum; + + // 充电时长 + private BigDecimal chargeTime; + + // 电费金额 + private BigDecimal electricityAmount; + + // 服务费金额 + private BigDecimal serviceAmount; + + // 收入金额 + private BigDecimal totalAmount; + + // 交易金额 + private BigDecimal tradeAmount; + + // 交易手续费 + private BigDecimal tradeFee; + + // 虚拟金额 + private BigDecimal virtualAmount; + } +} diff --git a/jsowell-pile/src/main/resources/mapper/pile/SettleOrderReportMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/SettleOrderReportMapper.xml index ee6ccc9bd..685100c5a 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/SettleOrderReportMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/SettleOrderReportMapper.xml @@ -4,7 +4,7 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -26,7 +26,11 @@ select id, merchant_id, station_id, use_electricity, charge_num, charge_time, electricity_amount, service_amount, total_amount, virtual_amount, trade_date, trade_amount, trade_fee, create_time, del_flag from settle_order_report - and merchant_id = #{merchantId} @@ -49,7 +53,7 @@ where id = #{id} - + insert into settle_order_report id, @@ -87,7 +91,7 @@ - + update settle_order_report merchant_id = #{merchantId}, @@ -118,4 +122,22 @@ #{id} + + \ No newline at end of file