git -C '/home/opc/rocketa.git' show f393a5a -- app/Http/Controllers/Media/Company.phpcommit 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) {