diff --git a/app/common/controller/FinPaymentApplyController.php b/app/common/controller/FinPaymentApplyController.php index 6f29595..0939646 100644 --- a/app/common/controller/FinPaymentApplyController.php +++ b/app/common/controller/FinPaymentApplyController.php @@ -47,7 +47,7 @@ class FinPaymentApplyController extends BaseController if (isset($data['currency_id'])) //付款币种 $data['currency_name'] = SysCurrency::where('id', $data['currency_id'])->value('currency_name')??''; $OssService = new OssService(); - if (isset($data['submit_files'])){ + if (!empty($data['submit_files'])){ $data['submit_files'] = json_decode($data['submit_files'], true); foreach ($data['submit_files'] as $key => $value) { $data['submit_files'][$key] = [ @@ -56,12 +56,23 @@ class FinPaymentApplyController extends BaseController 'file_name' => $value['file_name'], ]; } + }else{ + $data['submit_files'] = []; } - if (!empty($data['voucher_file'])) { - $data['voucher_file_full'] = $OssService->generatePrivateUrl($data['voucher_file']); - } elseif (isset($data['voucher_file'])) { - $data['voucher_file_full'] = ''; + + if (!empty($data['voucher_file'])){ + $data['voucher_file'] = json_decode($data['voucher_file'], true); + foreach ($data['voucher_file'] as $key => $value) { + $data['voucher_file'][$key] = [ + 'file_src' => $value['file_src'], + 'file_full' => $OssService->generatePrivateUrl($value['file_src']), + 'file_name' => $value['file_name'], + ]; + } + }else{ + $data['voucher_file'] = []; } + if (isset($data['created_at'])) $data['created_at'] = date('Y-m-d H:i:s', $data['created_at']); if (isset($data['updated_at'])) @@ -106,7 +117,7 @@ class FinPaymentApplyController extends BaseController if (isset($data['currency_id'])) //付款币种 $data['currency_name'] = SysCurrency::where('id', $data['currency_id'])->value('currency_name')??''; $OssService = new OssService(); - if (isset($data['submit_files'])){ + if (!empty($data['submit_files'])){ $data['submit_files'] = json_decode($data['submit_files'], true); foreach ($data['submit_files'] as $key => $value) { $data['submit_files'][$key] = [ @@ -115,12 +126,23 @@ class FinPaymentApplyController extends BaseController 'file_name' => $value['file_name'], ]; } + }else{ + $data['submit_files'] = []; } - if (!empty($data['voucher_file'])) { - $data['voucher_file_full'] = $OssService->generatePrivateUrl($data['voucher_file']); - } elseif (isset($data['voucher_file'])) { - $data['voucher_file_full'] = ''; + + if (!empty($data['voucher_file'])){ + $data['voucher_file'] = json_decode($data['voucher_file'], true); + foreach ($data['voucher_file'] as $key => $value) { + $data['voucher_file'][$key] = [ + 'file_src' => $value['file_src'], + 'file_full' => $OssService->generatePrivateUrl($value['file_src']), + 'file_name' => $value['file_name'], + ]; + } + }else{ + $data['voucher_file'] = []; } + if (isset($data['created_at'])) $data['created_at'] = date('Y-m-d H:i:s', $data['created_at']); if (isset($data['updated_at'])) diff --git a/app/common/controller/FinReceiptController.php b/app/common/controller/FinReceiptController.php index 4e9c574..cade259 100644 --- a/app/common/controller/FinReceiptController.php +++ b/app/common/controller/FinReceiptController.php @@ -97,10 +97,19 @@ class FinReceiptController extends BaseController $data['country_name'] = Country::where('id', $data['country_id'])->value('cn_addr')??''; if (isset($data['currency_id'])) //付款币种 $data['currency_name'] = SysCurrency::where('id', $data['currency_id'])->value('currency_name')??''; + + $OssService = new OssService(); if (!empty($data['fx_receipt_file'])){ - $data['fx_receipt_file_full'] = (new OssService)->generatePrivateUrl($data['fx_receipt_file']); - }elseif (isset($data['fx_receipt_file'])){ - $data['fx_receipt_file_full'] = ''; + $data['fx_receipt_file'] = json_decode($data['fx_receipt_file'], true); + foreach ($data['fx_receipt_file'] as $key => $value) { + $data['fx_receipt_file'][$key] = [ + 'file_src' => $value['file_src'], + 'file_full' => $OssService->generatePrivateUrl($value['file_src']), + 'file_name' => $value['file_name'], + ]; + } + }else{ + $data['fx_receipt_file'] = []; } return $data; } @@ -129,12 +138,22 @@ class FinReceiptController extends BaseController $data['country_name'] = Country::where('id', $data['country_id'])->value('cn_addr')??''; if (isset($data['currency_id'])) //付款币种 $data['currency_name'] = SysCurrency::where('id', $data['currency_id'])->value('currency_name')??''; - if (!empty($data['fx_receipt_file'])) { - $data['fx_receipt_file_full'] = (new OssService)->generatePrivateUrl($data['fx_receipt_file']); - } elseif (isset($data['fx_receipt_file'])) { - $data['fx_receipt_file_full'] = ''; + + $OssService = new OssService(); + if (!empty($data['fx_receipt_file'])){ + $data['fx_receipt_file'] = json_decode($data['fx_receipt_file'], true); + foreach ($data['fx_receipt_file'] as $key => $value) { + $data['fx_receipt_file'][$key] = [ + 'file_src' => $value['file_src'], + 'file_full' => $OssService->generatePrivateUrl($value['file_src']), + 'file_name' => $value['file_name'], + ]; + } + }else{ + $data['fx_receipt_file'] = []; } + //查询关联的付款记录 if (!empty($data['payment_apply_id'])) { $paymentApply = FinPaymentApply::where('id', $data['payment_apply_id'])->first(); if(!$paymentApply) diff --git a/app/common/model/FinReceiptHis.php b/app/common/model/FinReceiptHis.php index 814b87f..8a036b3 100644 --- a/app/common/model/FinReceiptHis.php +++ b/app/common/model/FinReceiptHis.php @@ -40,7 +40,7 @@ class FinReceiptHis extends Model /** * 允许自动填充模型字段 */ - protected $fillable = ['id', 'receipt_id', 'receipt_no', 'payment_apply_id', 'country_id', 'remitter', 'account_id', 'currency_id', 'amount', 'discount_amount', 'total_amount_cny', 'exchange_rate', 'arrived_at', 'received_at', 'voucher_no', 'fx_receipt_file', 'is_domestic_return', 'created_by', 'updated_by', 'created_at', 'updated_at']; + protected $fillable = ['id', 'receipt_id', 'receipt_no', 'payment_apply_id', 'country_id', 'remitter', 'account_id', 'currency_id', 'amount', 'discount_amount', 'total_amount_cny', 'exchange_rate', 'arrived_at', 'received_at', 'voucher_no', 'fx_receipt_file', 'is_domestic_return', 'created_by', 'updated_by', 'claimed_by', 'created_at', 'updated_at']; /** * 不允许自动填充模型字段 diff --git a/app/common/service/FinPaymentApplyService.php b/app/common/service/FinPaymentApplyService.php index ce2bbfd..0f6bec7 100644 --- a/app/common/service/FinPaymentApplyService.php +++ b/app/common/service/FinPaymentApplyService.php @@ -87,9 +87,14 @@ class FinPaymentApplyService { $data['apply_no'] = $this->generateUniqueApplyNo(); $data['doc_user_id'] = $request->user->uid; + $data['voucher_file'] = json_encode($data['voucher_file']); $data['submit_files'] = json_encode($data['submit_files']); redis::set('stock_' . $data['doc_user_id'], json_encode($request->post('stock')), 'EX', 30); unset($data['stock']); + if($data['voucher_file'] == '[]' || $data['voucher_file'] == '{}' ) + $data['voucher_file'] = ''; + if($data['submit_files'] == '[]' || $data['submit_files'] == '{}' ) + $data['submit_files'] = ''; return $data; } @@ -112,7 +117,13 @@ class FinPaymentApplyService public function beforeServiceUpdate($data, Request $request) { + unset($data['stock']); $data['submit_files'] = json_encode($data['submit_files']); + if($data['submit_files'] == '[]' || $data['submit_files'] == '{}' ) + $data['submit_files'] = ''; + $data['voucher_file'] = json_encode($data['voucher_file']); + if($data['voucher_file'] == '[]' || $data['voucher_file'] == '{}' ) + $data['voucher_file'] = ''; return $data; } @@ -174,10 +185,9 @@ class FinPaymentApplyService // 入账资料超时 if (isset($param['scene']) && $param['scene'] == 'file_timeout') { + $where[] = ['submit_files', '']; $where[] = ['claimed_at', '<', time()-24*60*60]; $where[] = ['claimed_at', '>', 1]; - $orWhere[] = ['submit_files', '[]']; - $orWhere[] = ['submit_files', '']; } // 关键字 @@ -187,9 +197,7 @@ class FinPaymentApplyService } // 构建查询 - $query = $this->modelClass::where($where)->where(function($query) use ($orWhere) { - $query->orWhere($orWhere); - }); + $query = $this->modelClass::where($where); // 是否已关联收款记录的筛选 $correlation = $param['correlation']??''; diff --git a/app/common/service/FinReceiptService.php b/app/common/service/FinReceiptService.php index d2ec7c7..30d2532 100644 --- a/app/common/service/FinReceiptService.php +++ b/app/common/service/FinReceiptService.php @@ -114,6 +114,8 @@ class FinReceiptService $data['arrived_at'] = strtotime( $data['arrived_at']); $data['created_by'] = $request->user->uid; $data['updated_by'] = $request->user->uid; + if($data['fx_receipt_file'] == '[]' || $data['fx_receipt_file'] == '{}' ) + $data['fx_receipt_file'] = ''; return $data; } @@ -132,7 +134,9 @@ class FinReceiptService $data['arrived_at'] = strtotime($data['arrived_at']); if(isset($data['received_at'])) $data['received_at'] = strtotime($data['received_at']); - + + if($data['fx_receipt_file'] == '[]' || $data['fx_receipt_file'] == '{}' ) + $data['fx_receipt_file'] = ''; return $data; } public function afterServiceUpdate($res) diff --git a/app/process/Task.php b/app/process/Task.php index aab805d..7d8059c 100644 --- a/app/process/Task.php +++ b/app/process/Task.php @@ -53,18 +53,13 @@ class Task return; } Log::info('fin_payment_apply submit_files start', [time()]); - $orWhere = [ - ['submit_files', '=', '[]'], - ['submit_files', '=', ''], - ]; $where = [ + ['submit_files', '=', ''], ['warn', '<', 2], ['created_at', '>', time() - 60 * 60 * 48], ['created_at', '<', time() - 60 * 60 * 24], ]; - $payment = FinPaymentApply::where($where)->where(function($query) use ($orWhere) { - $query->orWhere($orWhere); - })->orderBy('id', 'desc')->get(); + $payment = FinPaymentApply::where($where)->orderBy('id', 'desc')->get(); foreach ($payment as $item) { Log::info('fin_payment_apply submit_files ', [$item->toArray()]); $notice = [