新增 后管根据汇付会员id查询分账汇总数据 接口

This commit is contained in:
Lemon
2025-04-15 09:53:36 +08:00
parent cba009bcf2
commit dfb46e0fe0
6 changed files with 136 additions and 4 deletions

View File

@@ -3,6 +3,7 @@ package com.jsowell.pile.mapper;
import com.jsowell.pile.domain.OrderSplitRecord;
import com.jsowell.pile.dto.QueryOrderSplitDTO;
import com.jsowell.pile.vo.web.OrderSplitRecordVO;
import com.jsowell.pile.vo.web.SplitAggregateDataVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -47,4 +48,6 @@ public interface OrderSplitRecordMapper {
List<String> queryOrderCodesByParams(@Param("dto") QueryOrderSplitDTO dto);
List<OrderSplitRecordVO> queryOrderSplitData(@Param("orderCodeList") List<String> orderCodeList);
List<SplitAggregateDataVO> getSplitListByAdapyMemberId(@Param("dto") QueryOrderSplitDTO dto);
}

View File

@@ -8,10 +8,7 @@ import com.jsowell.pile.domain.OrderSplitRecord;
import com.jsowell.pile.dto.QueryOrderSplitDTO;
import com.jsowell.pile.dto.SplitOrderDTO;
import com.jsowell.pile.vo.OrderInfoDetailVO;
import com.jsowell.pile.vo.web.OrderSplitDailySummaryData;
import com.jsowell.pile.vo.web.OrderSplitRecordVO;
import com.jsowell.pile.vo.web.SplitOrdersInfoVO;
import com.jsowell.pile.vo.web.SplitRecordInfoVO;
import com.jsowell.pile.vo.web.*;
import java.util.List;
import java.util.Map;
@@ -78,5 +75,12 @@ public interface OrderSplitRecordService {
* 根据汇付会员id查询时间段内订单分账记录
*/
List<OrderSplitRecord> queryOrderSplitRecordByMemberId(String adapayMemberId, String startTime, String endTime);
/**
* 根据汇付会员id查询分账汇总数据
* @param dto
* @return
*/
List<SplitAggregateDataVO> queryStationAggregateData(QueryOrderSplitDTO dto);
}

View File

@@ -350,6 +350,30 @@ public class OrderSplitRecordServiceImpl implements OrderSplitRecordService {
return orderSplitRecordMapper.queryOrderSplitRecordByMemberId(adapayMemberId, startTime, endTime);
}
/**
* 根据汇付会员id查询分账汇总数据
* @param dto
* @return
*/
@Override
public List<SplitAggregateDataVO> queryStationAggregateData(QueryOrderSplitDTO dto) {
// 根据adapyMemberId、开始时间、结束时间查询出信息列表
List<SplitAggregateDataVO> list = orderSplitRecordMapper.getSplitListByAdapyMemberId(dto);
if (CollectionUtils.isEmpty(list)) {
return new ArrayList<>();
}
for (SplitAggregateDataVO splitAggregateDataVO : list) {
splitAggregateDataVO.setTimeRange(dto.getStartTime() + "" + dto.getEndTime());
BigDecimal totalRevenueAmount = new BigDecimal(splitAggregateDataVO.getTotalElectricitySplitAmount())
.add(new BigDecimal(splitAggregateDataVO.getTotalServiceSplitAmount()))
.subtract(new BigDecimal(splitAggregateDataVO.getTotalFeeAmount()));
splitAggregateDataVO.setTotalRevenueAmount(String.valueOf(totalRevenueAmount));
}
return list;
}
/**
* 根据merchantId, 查询从他人分账的金额
* extra income

View File

@@ -0,0 +1,60 @@
package com.jsowell.pile.vo.web;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 分账汇总信息VO
*
* @author Lemon
* @Date 2025/4/14 14:06:06
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class SplitAggregateDataVO {
/**
* 站点id
*/
private String stationId;
/**
* 站点名称
*/
private String stationName;
/**
* 时间范围
*/
private String timeRange;
/**
* 订单数量
*/
private String orderCount;
/**
* 总电费分账金额
*/
private String totalElectricitySplitAmount;
/**
* 总服务费分账金额
*/
private String totalServiceSplitAmount;
/**
* 总手续费
*/
private String totalFeeAmount;
/**
* 总收入金额
* 总收入金额 = 总电费分账金额 + 总手续费分账金额 - 总手续费分账金额
*/
private String totalRevenueAmount;
}

View File

@@ -836,4 +836,26 @@
station_id = #{dto.stationId,jdbcType=VARCHAR}
AND trade_date BETWEEN #{dto.startTime,jdbcType=VARCHAR} AND #{dto.endTime,jdbcType=VARCHAR}
</select>
<select id="getSplitListByAdapyMemberId" resultType="com.jsowell.pile.vo.web.SplitAggregateDataVO">
SELECT
t1.station_id AS stationId,
t2.station_name AS stationName,
count(t1.id) as orderCount,
sum(t1.electricity_split_amount) AS totalElectricitySplitAmount,
sum(t1.service_split_amount) AS totalServiceSplitAmount,
sum(t1.fee_amount) AS totalFeeAmount
FROM
order_split_record t1
JOIN pile_station_info t2 ON t1.station_id = t2.id
AND t1.del_flag = '0'
WHERE
t1.trade_date BETWEEN #{dto.startTime,jdbcType=VARCHAR}
AND #{dto.endTime,jdbcType=VARCHAR}
AND t1.adapay_member_id = #{dto.adapayMemberId,jdbcType=VARCHAR}
<if test="dto.stationId != null and dto.stationId != ''" >
and t1.station_id = #{dto.stationId,jdbcType=VARCHAR}
</if>
group by t1.station_id
</select>
</mapper>