Merge branch 'feature/fin' into develop

This commit is contained in:
2025-11-01 14:14:01 +08:00
3 changed files with 15 additions and 11 deletions
@@ -34,7 +34,11 @@ class FinReceiptController extends BaseController
{ {
try { try {
$id = $request->input('id'); $id = $request->input('id');
$raw = $this->service->credit($id); $exchange_rate = $request->input('exchange_rate');
if(empty($exchange_rate) || !is_numeric($exchange_rate)){
return $this->error('请输入汇率');
}
$raw = $this->service->credit($id,$exchange_rate);
return $this->success($raw); return $this->success($raw);
} catch (\Throwable $e) { } catch (\Throwable $e) {
return $this->error($e->getMessage()); return $this->error($e->getMessage());
+2 -2
View File
@@ -14,8 +14,8 @@ class FinReceiptLogic
*/ */
protected string $modelClass = FinReceipt::class; protected string $modelClass = FinReceipt::class;
public function credit($id) public function credit($id, $data)
{ {
return FinReceipt::where('id', $id)->update(['received_at' => time()]); return FinReceipt::where('id', $id)->update($data);
} }
} }
+8 -8
View File
@@ -282,13 +282,19 @@ class FinReceiptService
return $query->paginate($limit, ['*'], 'page', $page); return $query->paginate($limit, ['*'], 'page', $page);
} }
public function credit($id) public function credit($id, $exchange_rate)
{ {
$finReceipt = FinReceipt::find($id); $finReceipt = FinReceipt::find($id);
if(!empty($finReceipt->received_at)){ if(!empty($finReceipt->received_at)){
throw new BusinessException('该记录已将确认入账'); throw new BusinessException('该记录已将确认入账');
} }
$res = $this->logic->credit($id);
$data = [
'received_at' => time(),
'exchange_rate' => $exchange_rate,
'total_amount_cny' => round($finReceipt['amount']*$exchange_rate,2),
];
$res = $this->logic->credit($id,$data);
$this->afterServiceUpdate(['id'=>$id]); $this->afterServiceUpdate(['id'=>$id]);
return $res; return $res;
} }
@@ -303,10 +309,6 @@ class FinReceiptService
public function serviceUpdatePayment(Request $request, array $data = [], string $scene = 'payment') public function serviceUpdatePayment(Request $request, array $data = [], string $scene = 'payment')
{ {
$payment_apply_id = $request->input('payment_apply_id'); $payment_apply_id = $request->input('payment_apply_id');
$exchange_rate = $request->input('exchange_rate');
if(empty($exchange_rate) || !is_numeric($exchange_rate)){
throw new BusinessException('请输入汇率');
}
$id = $request->input('id'); $id = $request->input('id');
$data = $this->preProcess(ucfirst($scene), $data, $request); $data = $this->preProcess(ucfirst($scene), $data, $request);
@@ -319,8 +321,6 @@ class FinReceiptService
$receipt = FinReceipt::find($id); $receipt = FinReceipt::find($id);
$data['discount_amount'] = $payment->amount - $receipt->amount ?? 0; $data['discount_amount'] = $payment->amount - $receipt->amount ?? 0;
$data['submit_files'] = $payment->submit_files ?? ''; $data['submit_files'] = $payment->submit_files ?? '';
$data['exchange_rate'] = $exchange_rate;
$data['total_amount_cny'] = round($data['amount']*$exchange_rate,2);
$updated = $this->logicUpdateBy($config, $data); $updated = $this->logicUpdateBy($config, $data);
return $this->postProcess(ucfirst($scene), $data); return $this->postProcess(ucfirst($scene), $data);