rocket-a


git -C '/home/opc/rocketa.git' show f393a5a -- app/Http/Controllers/Media/Company.php

commit f393a5a0fad5dd498bf6f58ad344360076cf9d89
Author: Satoshi Ujihara <satoshi_ujihara@fivegate.jp>
Date:   Fri Dec 19 19:36:07 2025 +0900

    メニュータイトルの仕様変更
    銀行コピーのアップロード機能

diff --git a/app/Http/Controllers/Media/Company.php b/app/Http/Controllers/Media/Company.php
index ec7c6e9..959b19d 100644
--- a/app/Http/Controllers/Media/Company.php
+++ b/app/Http/Controllers/Media/Company.php
@@ -15,10 +15,12 @@ use App\Http\Controllers\Media\Traits\Common;
 use App\Models\La\MediaCompanyDatas;
 use App\Models\La\MediaDatas;
 use App\Models\La\MediaAccounts;
-
+use App\Http\Controllers\Admin\Traits\ImageManage;
+use Carbon\Carbon;
 
 class Company extends Controller
 {
+    use ImageManage;
     use Common;
 
     /**
@@ -47,10 +49,19 @@ class Company extends Controller
             ->orderByRaw('id ASC')
             ->first();
 
+        $bank_copy_file = [];
+        if($media_company_data->bank_copy_url) {
+            $ext = '.' . pathinfo($media_company_data->bank_copy_url, PATHINFO_EXTENSION);
+            $tmp_ymdhis = substr( pathinfo($media_company_data->bank_copy_url, PATHINFO_FILENAME), -14);
+            $bank_copy_file["time"] = Carbon::createFromFormat('YmdHis', $tmp_ymdhis)->format('Y-m-d H:i:s');
+            $bank_copy_file["name"] = "partner_bank_info" . $media_company_data->id . "_".$tmp_ymdhis .  $ext;
+        }
+
         return view('media.company.detail')
             ->with('media_company_category', \Config::get('const.media_company_category'))
             ->with('media_company_data', $media_company_data)
-            ->with('media_data', $media_data);
+            ->with('media_data', $media_data)
+            ->with('bank_copy_file', $bank_copy_file);
 
     }
 
@@ -65,49 +76,67 @@ class Company extends Controller
 
     public function registConfirm(Request $request)
     {
-        $rules = [
-            'corporate_name' => ['required'],
-            'corporate_name_kana' => ['nullable', 'regex:/^[ァ-ヾ]+$/u'],
-            'representative_name' =>  ['required'],
-            'representative_name_kana' => ['nullable', 'regex:/^[ァ-ヾ]+$/u'],
-            'phone_number' => ['nullable'],
-            'postal_code' => ['nullable'],
-            'corporate_address' => ['required'],
-            'rep_mail_address' => ['required', 'email'],
-            'mail_address' => ['required', 'email'],
-            'password' => ['required', 'between:8,40', 'regex:/^[0-9a-zA-Z-_!.]+$/'],
-            'registration_number' => ['required', 'regex:/^[0-9]+$/'],
-            'bank_name' => ['required'],
-            'bank_branch_name' => ['required'],
-            'bank_account_number' => ['required'],
-            'bank_account_holder_kana' => ['nullable', 'regex:/^[ァ-ヾ]+$/u'],
-        ];
-
-        if ($request->has('home_page') && $request->input('home_page') != '') {
-            $rules['home_page'] = ['url'];
-        }
-
-        $validator = \Validator::make($request->all(), $rules);
-
-        // メールアドレスの重複はエラー
-        $media_company_mail_dup = MediaCompanyDatas::select('id')
-            ->where('id', '!=', Auth::user('medias')->media_company_id)
-            ->where('mail_address', $request->input('mail_address'))
-            ->first();
-
-        if ($media_company_mail_dup) {
-            $validator->after(function ($validator) {
-                $validator->errors()->add('dup_mail_address', 'すでに登録されたメールアドレスです');
-            });
-        }
+        if ($request->has('action') && $request->input('action') == 'confirm') {
+            $rules = [
+                'corporate_name' => ['required'],
+                'corporate_name_kana' => ['nullable', 'regex:/^[ァ-ヾ]+$/u'],
+                'representative_name' =>  ['required'],
+                'representative_name_kana' => ['nullable', 'regex:/^[ァ-ヾ]+$/u'],
+                'phone_number' => ['nullable'],
+                'postal_code' => ['nullable'],
+                'corporate_address' => ['required'],
+                'rep_mail_address' => ['required', 'email'],
+                'mail_address' => ['required', 'email'],
+                'password' => ['required', 'between:8,40', 'regex:/^[0-9a-zA-Z-_!.]+$/'],
+                'registration_number' => ['required', 'regex:/^[0-9]+$/'],
+                'bank_name' => ['required'],
+                'bank_branch_name' => ['required'],
+                'bank_account_number' => ['required'],
+                'bank_account_holder_kana' => ['nullable', 'regex:/^[ァ-ヾ]+$/u'],
+                'bank_copy' => 'nullable|file|mimetypes:image/png,image/jpeg,application/pdf|max:10240',
+            ];
+
+            if ($request->has('home_page') && $request->input('home_page') != '') {
+                $rules['home_page'] = ['url'];
+            }
+            $validator = \Validator::make($request->all(), $rules);
+
+            // メールアドレスの重複はエラー
+            $media_company_mail_dup = MediaCompanyDatas::select('id')
+                ->where('id', '!=', Auth::user('medias')->media_company_id)
+                ->where('mail_address', $request->input('mail_address'))
+                ->first();
+
+            if ($media_company_mail_dup) {
+                $validator->after(function ($validator) {
+                    $validator->errors()->add('dup_mail_address', 'すでに登録されたメールアドレスです');
+                });
+            }
 
-        if ($validator->fails()) {
-            return back()->withInput()->withErrors($validator);
+            if ($validator->fails()) {
+                return back()->withInput()->withErrors($validator);
+            }
         }
-
         if ($request->has('action')) {
             // 確認画面
             if ($request->input('action') == 'confirm') {
+
+                if ($request->hasFile('bank_copy')) {
+
+                    $path = $request->file('bank_copy')->store('public/media/material/bank_copy/'.date('Ymd'));
+                    $request['bank_copy_file_name'] = $request->file('bank_copy')->getClientOriginalName();
+                    $request['bank_copy_file_ext'] = $request->file('bank_copy')->getClientOriginalExtension();
+                    $request['temp_bank_copy_url'] = str_replace('public/', '', $path);
+                    // $request['disp_bank_copy_url'] = str_replace('public/', '', $path);
+                    $request['temp_bank_copy_content_type'] = $request->bank_copy->getClientMimeType();
+
+                    // if ($request['bank_copy_url']) {
+                    //     $request['delete_bank_copy_path'] = $request['delete_bank_copy_path'];
+                    // }
+                } elseif ($request['bank_copy_url']) {
+                    // $request['thumbnail_url'] = $request['bank_copy_url'];
+                    // $request['disp_bank_copy_url'] = 'https://'.$request['bank_copy_url'];
+                }
                 return view('media.company.regist')
                     ->with('media_company_category', \Config::get('const.media_company_category'))
                     ->with('datas', $request->all());
@@ -178,6 +207,29 @@ class Company extends Controller
                 $media_account->password = \Hash::make($request->input('password'));
                 $media_account->save();
 
+
+                // サムネイルをS3へアップロード
+                if ($request->has('temp_bank_copy_url')) {
+                    $media_company_id = Auth::user('medias')->media_company_id;
+                    $image = public_path()."/".$request->input('temp_bank_copy_url');
+                    $extension = \File::extension($image);
+                    
+                    $content_type = $request->input('temp_bank_copy_content_type');
+
+                    $destinationPath = 'bank_copy';
+                    $image_name = $media_company_id.'_'.date('YmdHis') . "." .$request->input('bank_copy_file_ext');
+
+                    $bank_copy_url = $this->uploadImage($image, $destinationPath, $image_name, $extension, $content_type);
+                    MediaCompanyDatas::where('id', $media_company_id)
+                                                ->update(['bank_copy_url'=> $bank_copy_url]);
+
+                    // if ($request['delete_thumbnail_path']) {
+                    //     $this->deleteImage($request['delete_thumbnail_path']);
+                    // }
+                } elseif ($request->has('thumbnail_url')) {
+                    $thumbnail_url = $request->input('thumbnail_url');
+                }
+
                 // 金融機関設定に変更が有った場合アラート
                 $bank_data_change = false;
                 foreach ($before_bank_datas as $key => $before_bank_data) {

diff.txt · 最終更新: by root