Merge branch 'feature/fin' into develop

This commit is contained in:
2025-10-29 18:38:42 +08:00
6 changed files with 165 additions and 16 deletions
+16 -11
View File
@@ -174,11 +174,11 @@ class FinPaymentApplyService
// 构建查询
$query = $this->modelClass::where($where);
// 应用是否有关联收款记录的筛选
// 是否已关联收款记录的筛选
$correlation = $param['correlation']??'';
if ($correlation === 'receipt') {
if ($correlation === 'receipt') { //已关联
$query->whereHas('receipt');
} elseif ($correlation === 'unbind') {
} elseif ($correlation === 'unbind') { //未关联
$query->whereDoesntHave('receipt');
}
@@ -186,7 +186,7 @@ class FinPaymentApplyService
return $query->paginate($limit, ['*'], 'page', $page);
}
// 计算七天前的时间戳
// 计算十天前的时间戳
$sevenDaysAgo = time() - (10 * 24 * 60 * 60);
// 构建相似度排序逻辑
@@ -197,8 +197,18 @@ class FinPaymentApplyService
$similarityOrder[] = "CASE WHEN account_id = {$param['account_id']} THEN 0 ELSE 1 END";
}
if (isset($param['country_id']) && !empty($param['country_id'])) {
$similarityOrder[] = "CASE WHEN country_id = {$param['country_id']} THEN 0 ELSE 1 END";
if (isset($param['currency_id']) && !empty($param['currency_id'])) {
$similarityOrder[] = "CASE WHEN currency_id = {$param['currency_id']} THEN 0 ELSE 1 END";
}
if (isset($param['remitter']) && !empty($param['remitter'])) {
$similarityOrder[] = "CASE WHEN remitter = {$param['remitter']} THEN 0 ELSE 1 END";
}
if (isset($param['amount']) && !empty($param['amount'])) {
$amount = (float)$param['amount'];
$similarityOrder[] = "ABS(amount - {$amount}) ASC";
$similarityOrder[] = "CASE WHEN (ABS(amount - {$amount}) / {$amount} * 100) <= 5 THEN 0 ELSE 1 END";
}
if (isset($param['keyword']) && $param['keyword']) {
@@ -206,11 +216,6 @@ class FinPaymentApplyService
$similarityOrder[] = "CASE WHEN remitter LIKE '%{$keyword}%' THEN 0 ELSE 1 END";
}
if (isset($param['amount']) && !empty($param['amount'])) {
$amount = (float)$param['amount'];
$similarityOrder[] = "ABS(amount - {$amount})";
}
// 构建排序SQL
$orderByClause = "";
if (!empty($similarityOrder)) {
+1 -1
View File
@@ -291,7 +291,7 @@ class FinReceiptService
$id = $request->input('id');
$data = $this->preProcess(ucfirst($scene), $data, $request);
$config = $this->buildQueryConfig($request, $scene);
FinPaymentApply::where('id', $payment_apply_id)->update(['receipt_id' => $id, 'claimed_at' => time()]);
FinPaymentApply::where('id', $payment_apply_id)->update(['receipt_id' => $id, 'claimed_at' => time(), 'claimed_by' => $request->user->uid]);
//折让金额
$payment = FinPaymentApply::where('id', $payment_apply_id)->first();