mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-21 11:35:12 +08:00
Merge branch 'dev' of https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web into dev
# Conflicts: # jsowell-admin/src/main/java/com/jsowell/web/controller/pile/OrderBasicInfoController.java # jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderSplitRecordMapper.java # jsowell-pile/src/main/java/com/jsowell/pile/service/OrderSplitRecordService.java # jsowell-pile/src/main/resources/mapper/pile/OrderSplitRecordMapper.xml
This commit is contained in:
@@ -13,4 +13,8 @@ public class SplitConfigStationDTO {
|
||||
* 汇付会员ID
|
||||
*/
|
||||
private String adapayMemberId;
|
||||
|
||||
private String startTime;
|
||||
|
||||
private String endTime;
|
||||
}
|
||||
|
||||
@@ -2,8 +2,10 @@ package com.jsowell.pile.mapper;
|
||||
|
||||
import com.jsowell.pile.domain.OrderSplitRecord;
|
||||
import com.jsowell.pile.dto.QueryOrderSplitDTO;
|
||||
import com.jsowell.pile.dto.SplitConfigStationDTO;
|
||||
import com.jsowell.pile.vo.web.OrderSplitRecordVO;
|
||||
import com.jsowell.pile.vo.web.SplitAggregateDataVO;
|
||||
import com.jsowell.pile.vo.web.SplitConfigStationVO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
@@ -50,4 +52,11 @@ public interface OrderSplitRecordMapper {
|
||||
List<OrderSplitRecordVO> queryOrderSplitData(@Param("orderCodeList") List<String> orderCodeList);
|
||||
|
||||
List<SplitAggregateDataVO> getSplitListByAdapyMemberId(@Param("dto") QueryOrderSplitDTO dto);
|
||||
|
||||
/**
|
||||
* 根据汇付会员id查询分账汇总数据
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
List<SplitConfigStationVO> queryStationAggregateData(SplitConfigStationDTO dto);
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.jsowell.adapay.response.PaymentConfirmResponse;
|
||||
import com.jsowell.common.core.page.PageResponse;
|
||||
import com.jsowell.pile.domain.OrderSplitRecord;
|
||||
import com.jsowell.pile.dto.QueryOrderSplitDTO;
|
||||
import com.jsowell.pile.dto.SplitConfigStationDTO;
|
||||
import com.jsowell.pile.dto.SplitOrderDTO;
|
||||
import com.jsowell.pile.vo.OrderInfoDetailVO;
|
||||
import com.jsowell.pile.vo.web.*;
|
||||
@@ -82,5 +83,7 @@ public interface OrderSplitRecordService {
|
||||
* @return
|
||||
*/
|
||||
List<SplitAggregateDataVO> queryStationAggregateData(QueryOrderSplitDTO dto);
|
||||
|
||||
List<SplitConfigOrderVO> queryStationAggregateData(SplitConfigStationDTO dto);
|
||||
}
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ import com.jsowell.common.core.domain.model.LoginUser;
|
||||
import com.jsowell.common.core.page.PageResponse;
|
||||
import com.jsowell.common.enums.DelFlagEnum;
|
||||
import com.jsowell.common.enums.adapay.AdapayStatusEnum;
|
||||
import com.jsowell.common.exception.BusinessException;
|
||||
import com.jsowell.common.util.DateUtils;
|
||||
import com.jsowell.common.util.SecurityUtils;
|
||||
import com.jsowell.common.util.StringUtils;
|
||||
@@ -19,6 +20,7 @@ import com.jsowell.pile.domain.AdapayMemberAccount;
|
||||
import com.jsowell.pile.domain.OrderSplitRecord;
|
||||
import com.jsowell.pile.domain.PileMerchantInfo;
|
||||
import com.jsowell.pile.dto.QueryOrderSplitDTO;
|
||||
import com.jsowell.pile.dto.SplitConfigStationDTO;
|
||||
import com.jsowell.pile.dto.SplitOrderDTO;
|
||||
import com.jsowell.pile.mapper.OrderSplitRecordMapper;
|
||||
import com.jsowell.pile.service.AdapayMemberAccountService;
|
||||
@@ -350,6 +352,70 @@ public class OrderSplitRecordServiceImpl implements OrderSplitRecordService {
|
||||
return orderSplitRecordMapper.queryOrderSplitRecordByMemberId(adapayMemberId, startTime, endTime);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SplitConfigOrderVO> queryStationAggregateData(SplitConfigStationDTO dto) {
|
||||
//获取该汇付id的所有分账信息
|
||||
List<SplitConfigStationVO> lists=orderSplitRecordMapper.queryStationAggregateData(dto);
|
||||
if(CollectionUtils.isEmpty(lists)){
|
||||
return Lists.newArrayList();
|
||||
}
|
||||
//根据stationId分组
|
||||
Map<String, List<SplitConfigStationVO>> collect = lists.stream()
|
||||
.collect(Collectors.groupingBy(SplitConfigStationVO::getStationId));
|
||||
|
||||
//根据分组进行分账信息的汇总
|
||||
List<SplitConfigOrderVO> resultList = Lists.newArrayList();
|
||||
for (Map.Entry<String, List<SplitConfigStationVO>> entry : collect.entrySet()) {
|
||||
String stationId = entry.getKey();
|
||||
List<SplitConfigStationVO> splitConfigStationVOList = entry.getValue();
|
||||
|
||||
//计算时间范围
|
||||
List<SplitConfigStationVO> sortedList = splitConfigStationVOList.stream()
|
||||
.sorted(Comparator.comparing(SplitConfigStationVO::getTradeDate))
|
||||
.collect(Collectors.toList());
|
||||
String startTime = sortedList.get(0).getTradeDate();
|
||||
String endTime = sortedList.get(sortedList.size() - 1).getTradeDate();
|
||||
|
||||
String timeRange = startTime + "至" + endTime;
|
||||
|
||||
//总的电费分账金额totalElectricitySplitAmount
|
||||
BigDecimal totalElectricitySplitAmount =
|
||||
splitConfigStationVOList.stream()
|
||||
.map(SplitConfigStationVO::getElectricityAmount)
|
||||
.filter(Objects::nonNull) //过滤掉null
|
||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
//总的服务费分账金额totalServiceSplitAmount
|
||||
BigDecimal totalServiceSplitAmount =
|
||||
splitConfigStationVOList.stream()
|
||||
.map(SplitConfigStationVO::getServiceAmount)
|
||||
.filter(Objects::nonNull)
|
||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
//总手续费分账金额totalFeeAmount
|
||||
BigDecimal totalFeeAmount =
|
||||
splitConfigStationVOList.stream()
|
||||
.map(SplitConfigStationVO::getFeeAmount)
|
||||
.filter(Objects::nonNull)
|
||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
|
||||
//总收入分账金额= 总电费分账金额 +总手续费分账金额 -总手续费分账金额
|
||||
BigDecimal totalRevenueAmount = totalElectricitySplitAmount.add(totalServiceSplitAmount).subtract(totalFeeAmount);
|
||||
SplitConfigOrderVO splitConfigOrderVO =
|
||||
SplitConfigOrderVO.builder()
|
||||
.stationId(stationId)
|
||||
.stationName(splitConfigStationVOList.get(0).getStationName())
|
||||
.orderCount(splitConfigStationVOList.size())
|
||||
.timeRange(timeRange)
|
||||
.totalElectricitySplitAmount(totalElectricitySplitAmount)
|
||||
.totalServiceSplitAmount(totalServiceSplitAmount)
|
||||
.totalFeeAmount(totalFeeAmount)
|
||||
.totalRevenueAmount(totalRevenueAmount)
|
||||
.build();
|
||||
|
||||
resultList.add(splitConfigOrderVO);
|
||||
}
|
||||
return resultList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据汇付会员id查询分账汇总数据
|
||||
* @param dto
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
package com.jsowell.pile.vo.web;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class SplitConfigOrderVO {
|
||||
|
||||
/**
|
||||
* 站点ID
|
||||
*/
|
||||
private String stationId;
|
||||
|
||||
/**
|
||||
* 站点名称
|
||||
*/
|
||||
private String stationName;
|
||||
|
||||
/**
|
||||
* 时间范围
|
||||
*/
|
||||
private String timeRange;
|
||||
|
||||
/**
|
||||
* 订单数量
|
||||
*/
|
||||
private int orderCount;
|
||||
|
||||
/**
|
||||
* 总电费分账金额
|
||||
*/
|
||||
private BigDecimal totalElectricitySplitAmount;
|
||||
|
||||
/**
|
||||
* 总服务费分账金额
|
||||
*/
|
||||
private BigDecimal totalServiceSplitAmount;
|
||||
|
||||
/**
|
||||
* 总手续费分账金额
|
||||
*/
|
||||
private BigDecimal totalFeeAmount;
|
||||
|
||||
/**
|
||||
* 总收入分账金额= 总电费分账金额 +总手续费分账金额 -总手续费分账金额
|
||||
*/
|
||||
private BigDecimal totalRevenueAmount;
|
||||
|
||||
}
|
||||
@@ -2,6 +2,8 @@ package com.jsowell.pile.vo.web;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Data
|
||||
public class SplitConfigStationVO {
|
||||
|
||||
@@ -15,4 +17,12 @@ public class SplitConfigStationVO {
|
||||
*/
|
||||
private String stationName;
|
||||
|
||||
private String tradeDate;
|
||||
|
||||
private BigDecimal electricityAmount;
|
||||
|
||||
private BigDecimal serviceAmount;
|
||||
|
||||
private BigDecimal feeAmount;
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user