Răsfoiți Sursa

feat: 收款记录列表/详情接口 GET /payment/facetoface/trade/list, /trade/{id}

alphaH 2 săptămâni în urmă
părinte
comite
bf68994493

+ 17 - 0
java/src/main/java/com/payment/platform/module/payment/facetoface/controller/FacetofaceController.java

@@ -8,6 +8,7 @@ import com.payment.platform.module.payment.facetoface.dto.F2fOrderUpdateDTO;
 import com.payment.platform.module.payment.facetoface.dto.F2fOrderVO;
 import com.payment.platform.module.payment.facetoface.dto.F2fTradePrecreateDTO;
 import com.payment.platform.module.payment.facetoface.dto.F2fTradeQueryDTO;
+import com.payment.platform.module.payment.facetoface.dto.F2fTradeRecordVO;
 import com.payment.platform.module.payment.facetoface.dto.F2fTradeVO;
 import com.payment.platform.module.payment.facetoface.service.FacetofaceService;
 import jakarta.validation.Valid;
@@ -77,4 +78,20 @@ public class FacetofaceController {
     public Result<F2fTradeVO> queryTrade(@Valid F2fTradeQueryDTO dto) {
         return Result.ok(service.queryTrade(dto));
     }
+
+    @GetMapping("/trade/list")
+    public Result<PageResult<F2fTradeRecordVO>> tradeList(
+            @RequestParam(name = "page_no", defaultValue = "1") int pageNo,
+            @RequestParam(name = "page_size", defaultValue = "20") int pageSize,
+            @RequestParam(name = "enterprise_id", required = false) String enterpriseId,
+            @RequestParam(name = "trade_status", required = false) String tradeStatus,
+            @RequestParam(name = "start_date", required = false) String startDate,
+            @RequestParam(name = "end_date", required = false) String endDate) {
+        return Result.ok(service.tradeList(pageNo, pageSize, enterpriseId, tradeStatus, startDate, endDate));
+    }
+
+    @GetMapping("/trade/{id}")
+    public Result<F2fTradeRecordVO> tradeDetail(@PathVariable(name = "id") Long id) {
+        return Result.ok(service.tradeDetail(id));
+    }
 }

+ 36 - 0
java/src/main/java/com/payment/platform/module/payment/facetoface/service/FacetofaceService.java

@@ -563,6 +563,42 @@ public class FacetofaceService {
         return order;
     }
 
+    // ========== 收款记录查询 ==========
+
+    /** 收款记录分页列表 */
+    public PageResult<F2fTradeRecordVO> tradeList(int pageNo, int pageSize,
+            String enterpriseId, String tradeStatus, String startDate, String endDate) {
+        LambdaQueryWrapper<F2fTradeRecordEntity> w = new LambdaQueryWrapper<>();
+        if (StrUtil.isNotBlank(enterpriseId)) {
+            w.eq(F2fTradeRecordEntity::getEnterpriseId, enterpriseId);
+        }
+        if (StrUtil.isNotBlank(tradeStatus)) {
+            w.eq(F2fTradeRecordEntity::getTradeStatus, tradeStatus);
+        }
+        if (StrUtil.isNotBlank(startDate)) {
+            w.ge(F2fTradeRecordEntity::getCreatedTime, OffsetDateTime.parse(startDate + "T00:00:00+08:00"));
+        }
+        if (StrUtil.isNotBlank(endDate)) {
+            w.le(F2fTradeRecordEntity::getCreatedTime, OffsetDateTime.parse(endDate + "T23:59:59+08:00"));
+        }
+        w.orderByDesc(F2fTradeRecordEntity::getId);
+        Page<F2fTradeRecordEntity> page = new Page<>(pageNo, pageSize);
+        Page<F2fTradeRecordEntity> result = tradeRecordMapper.selectPage(page, w);
+        return PageResult.of(pageNo, pageSize, result.getTotal(),
+                result.getRecords().stream()
+                        .map(e -> BeanUtil.copyProperties(e, F2fTradeRecordVO.class))
+                        .collect(Collectors.toList()));
+    }
+
+    /** 收款记录详情 */
+    public F2fTradeRecordVO tradeDetail(Long id) {
+        F2fTradeRecordEntity e = tradeRecordMapper.selectById(id);
+        if (e == null) {
+            throw new BusinessException(404, "收款记录不存在");
+        }
+        return BeanUtil.copyProperties(e, F2fTradeRecordVO.class);
+    }
+
     // ========== 定时轮询 ==========
 
     /** 获取待轮询的交易记录 */