add 新增后管页面查询引流抽成订单列表 接口

This commit is contained in:
Lemon
2025-07-29 16:56:15 +08:00
parent 96026f3422
commit 11ff85eeba
7 changed files with 1021 additions and 863 deletions

View File

@@ -0,0 +1,47 @@
package com.jsowell.web.controller.pile;
import com.google.common.collect.ImmutableMap;
import com.jsowell.common.core.controller.BaseController;
import com.jsowell.common.response.RestApiResponse;
import com.jsowell.pile.dto.QueryOrderSplitRecordDTO;
import com.jsowell.pile.service.OrderSplitRecordService;
import com.jsowell.pile.vo.web.OrderSplitRecordVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 订单分账记录Controller
*
* @author Lemon
* @Date 2025/7/29 10:21:54
*/
@RestController
@RequestMapping("/order/commission")
public class OrderSplitRecordController extends BaseController {
@Autowired
private OrderSplitRecordService orderSplitRecordService;
/**
* 后管查询引流抽成订单列表
* @param dto
* @return
*/
@PostMapping("/getStationCommissionList")
public RestApiResponse<?> getStationCommissionList(@RequestBody QueryOrderSplitRecordDTO dto) {
RestApiResponse<?> response = null;
try {
List<OrderSplitRecordVO> stationCommissionList = orderSplitRecordService.getStationCommissionList(dto);
response = new RestApiResponse<>(ImmutableMap.of("stationCommissionList", stationCommissionList));
}catch (Exception e) {
logger.error("查询站点引流抽成订单列表 error", e);
response = new RestApiResponse<>(e);
}
return response;
}
}

View File

@@ -0,0 +1,31 @@
package com.jsowell.pile.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 查询站点引流抽成订单列表DTO
*
* @author Lemon
* @Date 2025/7/29 10:38:58
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class QueryOrderSplitRecordDTO {
private Integer pageNum;
private Integer pageSize;
private String startTime;
private String endTime;
private String stationId;
private String orderCode;
private String transactionCode;
}

View File

@@ -2,6 +2,7 @@ package com.jsowell.pile.mapper;
import com.jsowell.pile.domain.OrderSplitRecord;
import com.jsowell.pile.dto.QueryOrderSplitDTO;
import com.jsowell.pile.dto.QueryOrderSplitRecordDTO;
import com.jsowell.pile.dto.SplitConfigStationDTO;
import com.jsowell.pile.vo.web.OrderSplitRecordVO;
import com.jsowell.pile.vo.web.SplitAggregateDataVO;
@@ -61,4 +62,11 @@ public interface OrderSplitRecordMapper {
List<SplitConfigStationVO> queryStationAggregateData(@Param("dto") SplitConfigStationDTO dto);
List<OrderSplitRecord> selectInfoByPaymentConfirmId(String paymentConfirmId);
/**
* 后管配置引流抽成页面查询订单列表
* @param dto
* @return
*/
List<OrderSplitRecordVO> getStationCommissionList(@Param("dto") QueryOrderSplitRecordDTO dto);
}

View File

@@ -7,6 +7,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.QueryOrderSplitRecordDTO;
import com.jsowell.pile.dto.SplitConfigStationDTO;
import com.jsowell.pile.dto.SplitOrderDTO;
import com.jsowell.pile.vo.OrderInfoDetailVO;
@@ -99,5 +100,12 @@ public interface OrderSplitRecordService {
* @param paymentConfirmId
*/
String confirmReverseByPaymentConfirmId(String paymentConfirmId) throws BaseAdaPayException;
/**
* 后管配置引流抽成页面订单列表
* @param dto
* @return
*/
List<OrderSplitRecordVO> getStationCommissionList(QueryOrderSplitRecordDTO dto);
}

View File

@@ -17,12 +17,14 @@ import com.jsowell.common.enums.adapay.AdapayStatusEnum;
import com.jsowell.common.enums.ykc.ReturnCodeEnum;
import com.jsowell.common.exception.BusinessException;
import com.jsowell.common.util.DateUtils;
import com.jsowell.common.util.PageUtils;
import com.jsowell.common.util.SecurityUtils;
import com.jsowell.common.util.StringUtils;
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.QueryOrderSplitRecordDTO;
import com.jsowell.pile.dto.SplitConfigStationDTO;
import com.jsowell.pile.dto.SplitOrderDTO;
import com.jsowell.pile.mapper.OrderSplitRecordMapper;
@@ -560,6 +562,29 @@ public class OrderSplitRecordServiceImpl implements OrderSplitRecordService {
return status;
}
/**
* 后管配置引流抽成页面查询订单列表
* @param dto
* @return
*/
@Override
public List<OrderSplitRecordVO> getStationCommissionList(QueryOrderSplitRecordDTO dto) {
int pageNo = dto.getPageNum() == null ? 1 : dto.getPageNum();
int pageSize = dto.getPageSize() == null ? 10 : dto.getPageSize();
// 分页
PageUtils.startPage(pageNo, pageSize);
List<OrderSplitRecordVO> stationCommissionList = orderSplitRecordMapper.getStationCommissionList(dto);
if (CollectionUtils.isEmpty(stationCommissionList)) {
return new ArrayList<>();
}
for (OrderSplitRecordVO orderSplitRecordVO : stationCommissionList) {
// 计算 抽成总金额 = 抽成电费 + 抽成服务费
BigDecimal commissionAmount = orderSplitRecordVO.getElectricitySplitAmount().add(orderSplitRecordVO.getServiceSplitAmount());
orderSplitRecordVO.setCommissionAmount(commissionAmount);
}
return stationCommissionList;
}
/**
* 根据汇付会员id查询分账汇总数据
* @param dto

View File

@@ -11,6 +11,8 @@ public class OrderSplitRecordVO {
*/
private String orderCode;
private String transactionCode;
/**
* 站点id
*/
@@ -42,6 +44,11 @@ public class OrderSplitRecordVO {
*/
private BigDecimal settleAmount;
/**
* 订单抽成总金额
*/
private BigDecimal commissionAmount;
/**
* 订单电费金额
*/

View File

@@ -4,29 +4,29 @@
<resultMap id="BaseResultMap" type="com.jsowell.pile.domain.OrderSplitRecord">
<!--@mbg.generated-->
<!--@Table order_split_record-->
<id column="id" jdbcType="INTEGER" property="id" />
<result column="order_code" jdbcType="VARCHAR" property="orderCode" />
<result column="merchant_id" jdbcType="VARCHAR" property="merchantId" />
<result column="station_id" jdbcType="VARCHAR" property="stationId" />
<result column="status" jdbcType="VARCHAR" property="status" />
<result column="settle_amount" jdbcType="DECIMAL" property="settleAmount" />
<result column="electricity_amount" jdbcType="DECIMAL" property="electricityAmount" />
<result column="service_amount" jdbcType="DECIMAL" property="serviceAmount" />
<result column="trade_date" jdbcType="VARCHAR" property="tradeDate" />
<result column="adapay_member_id" jdbcType="VARCHAR" property="adapayMemberId" />
<result column="payment_id" jdbcType="VARCHAR" property="paymentId" />
<result column="payment_confirm_id" jdbcType="VARCHAR" property="paymentConfirmId" />
<result column="electricity_split_ratio" jdbcType="DECIMAL" property="electricitySplitRatio" />
<result column="electricity_split_amount" jdbcType="DECIMAL" property="electricitySplitAmount" />
<result column="service_split_ratio" jdbcType="DECIMAL" property="serviceSplitRatio" />
<result column="service_split_amount" jdbcType="DECIMAL" property="serviceSplitAmount" />
<result column="fee_amount" jdbcType="DECIMAL" property="feeAmount" />
<result column="remark" jdbcType="VARCHAR" property="remark" />
<result column="create_by" jdbcType="VARCHAR" property="createBy" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_by" jdbcType="VARCHAR" property="updateBy" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="del_flag" jdbcType="VARCHAR" property="delFlag" />
<id column="id" jdbcType="INTEGER" property="id"/>
<result column="order_code" jdbcType="VARCHAR" property="orderCode"/>
<result column="merchant_id" jdbcType="VARCHAR" property="merchantId"/>
<result column="station_id" jdbcType="VARCHAR" property="stationId"/>
<result column="status" jdbcType="VARCHAR" property="status"/>
<result column="settle_amount" jdbcType="DECIMAL" property="settleAmount"/>
<result column="electricity_amount" jdbcType="DECIMAL" property="electricityAmount"/>
<result column="service_amount" jdbcType="DECIMAL" property="serviceAmount"/>
<result column="trade_date" jdbcType="VARCHAR" property="tradeDate"/>
<result column="adapay_member_id" jdbcType="VARCHAR" property="adapayMemberId"/>
<result column="payment_id" jdbcType="VARCHAR" property="paymentId"/>
<result column="payment_confirm_id" jdbcType="VARCHAR" property="paymentConfirmId"/>
<result column="electricity_split_ratio" jdbcType="DECIMAL" property="electricitySplitRatio"/>
<result column="electricity_split_amount" jdbcType="DECIMAL" property="electricitySplitAmount"/>
<result column="service_split_ratio" jdbcType="DECIMAL" property="serviceSplitRatio"/>
<result column="service_split_amount" jdbcType="DECIMAL" property="serviceSplitAmount"/>
<result column="fee_amount" jdbcType="DECIMAL" property="feeAmount"/>
<result column="remark" jdbcType="VARCHAR" property="remark"/>
<result column="create_by" jdbcType="VARCHAR" property="createBy"/>
<result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
<result column="update_by" jdbcType="VARCHAR" property="updateBy"/>
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
<result column="del_flag" jdbcType="VARCHAR" property="delFlag"/>
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
@@ -38,7 +38,7 @@
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
<!--@mbg.generated-->
select
<include refid="Base_Column_List" />
<include refid="Base_Column_List"/>
from order_split_record
where id = #{id,jdbcType=INTEGER}
</select>
@@ -47,7 +47,8 @@
delete from order_split_record
where id = #{id,jdbcType=INTEGER}
</delete>
<insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.jsowell.pile.domain.OrderSplitRecord" useGeneratedKeys="true">
<insert id="insertSelective" keyColumn="id" keyProperty="id"
parameterType="com.jsowell.pile.domain.OrderSplitRecord" useGeneratedKeys="true">
<!--@mbg.generated-->
insert into order_split_record
<trim prefix="(" suffix=")" suffixOverrides=",">
@@ -433,18 +434,23 @@
remark, create_by, create_time, update_by, update_time, del_flag)
values
<foreach collection="list" item="item" separator=",">
(#{item.orderCode,jdbcType=VARCHAR}, #{item.merchantId,jdbcType=VARCHAR}, #{item.stationId,jdbcType=VARCHAR},
#{item.status,jdbcType=VARCHAR}, #{item.settleAmount,jdbcType=DECIMAL}, #{item.electricityAmount,jdbcType=DECIMAL},
#{item.serviceAmount,jdbcType=DECIMAL}, #{item.tradeDate,jdbcType=VARCHAR}, #{item.adapayMemberId,jdbcType=VARCHAR},
(#{item.orderCode,jdbcType=VARCHAR}, #{item.merchantId,jdbcType=VARCHAR},
#{item.stationId,jdbcType=VARCHAR},
#{item.status,jdbcType=VARCHAR}, #{item.settleAmount,jdbcType=DECIMAL},
#{item.electricityAmount,jdbcType=DECIMAL},
#{item.serviceAmount,jdbcType=DECIMAL}, #{item.tradeDate,jdbcType=VARCHAR},
#{item.adapayMemberId,jdbcType=VARCHAR},
#{item.paymentId,jdbcType=VARCHAR}, #{item.paymentConfirmId,jdbcType=VARCHAR},
#{item.electricitySplitRatio,jdbcType=DECIMAL}, #{item.electricitySplitAmount,jdbcType=DECIMAL},
#{item.serviceSplitRatio,jdbcType=DECIMAL}, #{item.serviceSplitAmount,jdbcType=DECIMAL},
#{item.feeAmount,jdbcType=DECIMAL}, #{item.remark,jdbcType=VARCHAR}, #{item.createBy,jdbcType=VARCHAR},
#{item.createTime,jdbcType=TIMESTAMP}, #{item.updateBy,jdbcType=VARCHAR}, #{item.updateTime,jdbcType=TIMESTAMP},
#{item.createTime,jdbcType=TIMESTAMP}, #{item.updateBy,jdbcType=VARCHAR},
#{item.updateTime,jdbcType=TIMESTAMP},
#{item.delFlag,jdbcType=VARCHAR})
</foreach>
</insert>
<insert id="insertOrUpdate" keyColumn="id" keyProperty="id" parameterType="com.jsowell.pile.domain.OrderSplitRecord" useGeneratedKeys="true">
<insert id="insertOrUpdate" keyColumn="id" keyProperty="id" parameterType="com.jsowell.pile.domain.OrderSplitRecord"
useGeneratedKeys="true">
<!--@mbg.generated-->
insert into order_split_record
<trim prefix="(" suffix=")" suffixOverrides=",">
@@ -531,7 +537,8 @@
del_flag = #{delFlag,jdbcType=VARCHAR},
</trim>
</insert>
<insert id="insertOrUpdateSelective" keyColumn="id" keyProperty="id" parameterType="com.jsowell.pile.domain.OrderSplitRecord" useGeneratedKeys="true">
<insert id="insertOrUpdateSelective" keyColumn="id" keyProperty="id"
parameterType="com.jsowell.pile.domain.OrderSplitRecord" useGeneratedKeys="true">
<!--@mbg.generated-->
insert into order_split_record
<trim prefix="(" suffix=")" suffixOverrides=",">
@@ -753,7 +760,7 @@
<select id="selectByOrderCode" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
<include refid="Base_Column_List"/>
from order_split_record
where del_flag = '0'
and order_code = #{orderCode,jdbcType=VARCHAR}
@@ -761,7 +768,7 @@
<select id="queryOrderSplitDataList" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
<include refid="Base_Column_List"/>
from order_split_record
where del_flag = '0'
and merchant_id = #{merchantId,jdbcType=VARCHAR}
@@ -773,7 +780,7 @@
<select id="queryOrderSplitRecordList" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
<include refid="Base_Column_List"/>
from order_split_record
where del_flag = '0'
and adapay_member_id = #{adapayMemberId,jdbcType=VARCHAR}
@@ -782,7 +789,7 @@
<select id="queryOrderSplitRecordByMemberId" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
<include refid="Base_Column_List"/>
from order_split_record
where del_flag = '0'
and adapay_member_id = #{adapayMemberId,jdbcType=VARCHAR}
@@ -791,7 +798,7 @@
<select id="queryByOrderCodeList" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
<include refid="Base_Column_List"/>
from order_split_record
where del_flag = '0'
and order_code in
@@ -831,12 +838,9 @@
</select>
<select id="queryOrderCodesByParams" resultType="java.lang.String">
SELECT
DISTINCT (order_code)
from
order_split_record
where
station_id = #{dto.stationId,jdbcType=VARCHAR}
SELECT DISTINCT (order_code)
from order_split_record
where station_id = #{dto.stationId,jdbcType=VARCHAR}
AND trade_date BETWEEN #{dto.startTime,jdbcType=VARCHAR} AND #{dto.endTime,jdbcType=VARCHAR}
</select>
@@ -856,7 +860,7 @@
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 != ''" >
<if test="dto.stationId != null and dto.stationId != ''">
and t1.station_id = #{dto.stationId,jdbcType=VARCHAR}
</if>
group by t1.station_id
@@ -878,16 +882,44 @@
t1.adapay_member_id = #{adapayMemberId}
AND t1.del_flag = '0'
AND t1.trade_date BETWEEN #{startTime,jdbcType=VARCHAR} AND #{endTime,jdbcType=VARCHAR}
<if test="dto.stationId != null and dto.stationId != ''" >
<if test="dto.stationId != null and dto.stationId != ''">
and t1.station_id = #{dto.stationId,jdbcType=VARCHAR}
</if>
</select>
<select id="selectInfoByPaymentConfirmId" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
<include refid="Base_Column_List"/>
from order_split_record
where del_flag = '0'
and payment_confirm_id = #{paymentConfirmId,jdbcType=VARCHAR}
</select>
<select id="getStationCommissionList" resultType="com.jsowell.pile.vo.web.OrderSplitRecordVO">
SELECT
t1.order_code AS orderCode,
t2.transaction_code AS transactionCode,
t1.trade_date AS tradeDate,
t1.settle_amount AS settleAmount,
t1.electricity_split_ratio AS electricitySplitRatio,
t1.electricity_split_amount AS electricitySplitAmount,
t1.service_split_ratio AS serviceSplitRatio,
t1.service_split_amount AS serviceSplitAmount
FROM
order_split_record t1
JOIN order_basic_info t2 ON t1.order_code = t2.order_code
WHERE
t1.del_flag = '0'
AND adapay_member_id = '0'
AND t1.station_id = #{dto.stationId,jdbcType=VARCHAR}
<if test="dto.startTime != null and dto.startTime != '' and dto.endTime != null and dto.endTime != ''">
AND t1.trade_date BETWEEN #{dto.startTime,jdbcType=VARCHAR} AND #{dto.endTime,jdbcType=VARCHAR}
</if>
<if test="dto.orderCode != null and dto.orderCode != ''">
AND t1.order_code = #{dto.orderCode,jdbcType=VARCHAR}
</if>
<if test="dto.transactionCode != null and dto.transactionCode != ''">
AND t2.transaction_code = #{dto.transactionCode,jdbcType=VARCHAR}
</if>
</select>
</mapper>