用户交易记录查询接口实现

This commit is contained in:
dzl 2025-05-22 13:59:28 +08:00
parent 31d929c99d
commit 6213965135
4 changed files with 33 additions and 12 deletions

View File

@ -1,4 +1,4 @@
package com.cdzy.payment.model.dto; package com.cdzy.orders.model.dto.res;
import lombok.Data; import lombok.Data;
@ -33,7 +33,7 @@ public class OrderRecord {
/** /**
* 创建时间 * 创建时间
*/ */
private LocalDateTime createTime; private LocalDateTime createAt;
/** /**
* 骑行时长 * 骑行时长

View File

@ -16,8 +16,6 @@ import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.List;
/** /**
* 用户订单微信支付 控制层 * 用户订单微信支付 控制层
* *
@ -201,12 +199,12 @@ public class EbikeWxPaymentController {
/** /**
* 退款申请用户退款记录 * 退款申请用户退款记录
* *
* @param reqTradeRecordDto * @param reqRefundRecordDto
* @return * @return
*/ */
@PostMapping("/refundApplyRefundRecord") @PostMapping("/refundApplyRefundRecord")
public JsonResult<?> refundApplyRefundRecord(@RequestBody ReqRefundRecordDto reqTradeRecordDto) { public JsonResult<?> refundApplyRefundRecord(@RequestBody ReqRefundRecordDto reqRefundRecordDto) {
Page<RefundRecordListDto> list = ebikeRefundService.queryRefundRefundRecordById(reqTradeRecordDto); Page<RefundRecordListDto> list = ebikeRefundService.queryRefundRefundRecordById(reqRefundRecordDto);
return JsonResult.success(list); return JsonResult.success(list);
} }
} }

View File

@ -15,7 +15,7 @@ import lombok.Data;
@Data @Data
public class ReqTradeRecordDto { public class ReqTradeRecordDto {
private String refundId; private String phone;
/** /**
* 分页参数 * 分页参数

View File

@ -4,6 +4,7 @@ import com.cdzy.payment.model.dto.*;
import com.cdzy.payment.model.enums.PayMethod; import com.cdzy.payment.model.enums.PayMethod;
import com.ebike.feign.clients.OrdersFeignClient; import com.ebike.feign.clients.OrdersFeignClient;
import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.query.QueryColumn;
import com.mybatisflex.core.query.QueryMethods; import com.mybatisflex.core.query.QueryMethods;
import com.mybatisflex.core.query.QueryWrapper; import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.spring.service.impl.ServiceImpl; import com.mybatisflex.spring.service.impl.ServiceImpl;
@ -251,12 +252,34 @@ public class EbikeRefundServiceImpl extends ServiceImpl<EbikeRefundMapper, Ebike
@Override @Override
public Page<TransactionRecord> queryRefundTradeRecordById(ReqTradeRecordDto reqTradeRecordDto) { public Page<TransactionRecord> queryRefundTradeRecordById(ReqTradeRecordDto reqTradeRecordDto) {
QueryWrapper query = QueryWrapper.create() QueryWrapper query = QueryWrapper.create()
.select(EBIKE_PAYMENT.TOTAL.as("amount"), EBIKE_PAYMENT.CREATE_TIME) .from(EBIKE_REFUND)
.leftJoin(EBIKE_PAYMENT).on(EBIKE_PAYMENT.ORDER_ID.eq(EBIKE_REFUND.ORDER_ID)) .select(EBIKE_REFUND.REFUND.as("amount"), EBIKE_REFUND.CREATE_TIME)
.where(EBIKE_REFUND.REFUND_ID.eq(reqTradeRecordDto.getRefundId())); .select("'退款' as transaction_content")
.select("'收入' as transaction_type")
.leftJoin(EBIKE_USER_ORDERS).on(EBIKE_REFUND.ORDER_ID.eq(EBIKE_USER_ORDERS.ORDER_ID))
.leftJoin(EBIKE_USER).on(EBIKE_USER_ORDERS.USER_ID.eq(EBIKE_USER.USER_ID))
.where(EBIKE_USER.MOBILE.eq(reqTradeRecordDto.getPhone()));
QueryWrapper payQuery = QueryWrapper.create()
.from(EBIKE_REFUND)
.select(EBIKE_PAYMENT.TOTAL.as("amount"), EBIKE_PAYMENT.CREATE_TIME,
QueryMethods.case_(EBIKE_USER_ORDERS.ORDER_TYPE)
.when("1").then("骑行扣费")
.when("2").then("骑行卡购买")
.when("3").then("会员卡续费")
.end().as("transaction_content"))
.select("'支出' as transaction_type")
.leftJoin(EBIKE_PAYMENT).on(EBIKE_REFUND.ORDER_ID.eq(EBIKE_PAYMENT.ORDER_ID))
.leftJoin(EBIKE_USER).on(EBIKE_PAYMENT.USER_ID.eq(EBIKE_USER.USER_ID))
.leftJoin(EBIKE_USER_ORDERS).on(EBIKE_PAYMENT.ORDER_ID.eq(EBIKE_USER_ORDERS.ORDER_ID))
.where(EBIKE_USER.MOBILE.eq(reqTradeRecordDto.getPhone()));
QueryWrapper all = QueryWrapper.create()
.select("amount", "transaction_content", "transaction_type", "create_time")
.from(query.unionAll(payQuery)).as("a");
Page<TransactionRecord> page = reqTradeRecordDto.getPageParam().getPage(); Page<TransactionRecord> page = reqTradeRecordDto.getPageParam().getPage();
return pageAs(page, query, TransactionRecord.class); return pageAs(page, all, TransactionRecord.class);
} }
@Override @Override