app/Console/Commands/ShjMailSendCommand.php を削除
Some checks failed
Deploy main / deploy (push) Has been cancelled

This commit is contained in:
go.unhi 2025-10-23 20:36:36 +09:00
parent d942fed62d
commit 9266a48831

View File

@ -1,177 +0,0 @@
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Log;
use App\Services\ShjMailSendService;
/**
* SHJ メール送信処理コマンド
*
* メールテンプレートを使用したメール送信処理を実行する
* バックグラウンドで実行される定期バッチ処理
*/
class ShjMailSendCommand extends Command
{
/**
* コンソールコマンドの名前とシグネチャ
*
* 引数:
* - mail_address: メールアドレス (必須)
* - backup_mail_address: 予備メールアドレス (必須)
* - mail_template_id: メールテンプレートID (必須)
*
* @var string
*/
protected $signature = 'shj:mail-send {mail_address : メールアドレス} {backup_mail_address : 予備メールアドレス} {mail_template_id : メールテンプレートID}';
/**
* コンソールコマンドの説明
*
* @var string
*/
protected $description = 'SHJ メール送信処理 - テンプレートに基づくメール送信を実行';
/**
* SHJメール送信サービスクラス
*
* @var ShjMailSendService
*/
protected $shjMailSendService;
/**
* コンストラクタ
*
* @param ShjMailSendService $shjMailSendService
*/
public function __construct(ShjMailSendService $shjMailSendService)
{
parent::__construct();
$this->shjMailSendService = $shjMailSendService;
}
/**
* コンソールコマンドを実行
*
* 処理フロー:
* 1. 入力パラメーターをチェックする
* 2. メール送信テンプレート情報を取得する
* 3. メールを送信する
* 4. 処理結果を返却する
*
* @return int
*/
public function handle()
{
try {
// 開始ログ出力
$startTime = now();
$this->info('SHJ メール送信処理を開始します。');
Log::info('SHJ メール送信処理開始', [
'start_time' => $startTime,
'mail_address' => $this->argument('mail_address'),
'backup_mail_address' => $this->argument('backup_mail_address'),
'mail_template_id' => $this->argument('mail_template_id')
]);
// 引数取得
$mailAddress = $this->argument('mail_address');
$backupMailAddress = $this->argument('backup_mail_address');
$mailTemplateId = $this->argument('mail_template_id');
// 【処理1】パラメータ検証
if (!$this->validateParameters($mailAddress, $backupMailAddress, $mailTemplateId)) {
$this->error('パラメータが不正です。');
return self::FAILURE;
}
// SHJメール送信処理実行
$result = $this->shjMailSendService->executeMailSend($mailAddress, $backupMailAddress, $mailTemplateId);
// 処理結果確認
if ($result['success']) {
$endTime = now();
$this->info('SHJ メール送信処理が正常に完了しました。');
$this->info("処理時間: {$startTime->diffInSeconds($endTime)}");
Log::info('SHJ メール送信処理完了', [
'end_time' => $endTime,
'duration_seconds' => $startTime->diffInSeconds($endTime),
'result' => $result
]);
return self::SUCCESS;
} else {
$this->error('SHJ メール送信処理でエラーが発生しました: ' . $result['message']);
Log::error('SHJ メール送信処理エラー', [
'error' => $result['message'],
'details' => $result['details'] ?? null
]);
return self::FAILURE;
}
} catch (\Exception $e) {
$this->error('SHJ メール送信処理で予期しないエラーが発生しました: ' . $e->getMessage());
Log::error('SHJ メール送信処理例外エラー', [
'exception' => $e->getMessage(),
'trace' => $e->getTraceAsString()
]);
return self::FAILURE;
}
}
/**
* 【処理1】パラメータの妥当性を検証
*
* 仕様書に基づく検証内容:
* - メールアドレス: 「メールアドレス」「予備メールアドレス」いずれか必須
* - メールテンプレートID: 必須
*
* @param mixed $mailAddress メールアドレス
* @param mixed $backupMailAddress 予備メールアドレス
* @param mixed $mailTemplateId メールテンプレートID
* @return bool 検証結果
*/
private function validateParameters($mailAddress, $backupMailAddress, $mailTemplateId): bool
{
// メールテンプレートIDチェック
if (empty($mailTemplateId)) {
$this->error('メールテンプレートIDは必須です。');
return false;
}
// 数値形式チェックメールテンプレートID
if (!is_numeric($mailTemplateId)) {
$this->error('メールテンプレートIDは数値である必要があります。');
return false;
}
// 正の整数チェックメールテンプレートID
if ($mailTemplateId <= 0) {
$this->error('メールテンプレートIDは正の整数である必要があります。');
return false;
}
// メールアドレスチェック(いずれか必須)
if (empty($mailAddress) && empty($backupMailAddress)) {
$this->error('メールアドレスまたは予備メールアドレスのいずれかは必須です。');
return false;
}
// メールアドレス形式チェック
if (!empty($mailAddress) && !filter_var($mailAddress, FILTER_VALIDATE_EMAIL)) {
$this->error('メールアドレスの形式が正しくありません。');
return false;
}
if (!empty($backupMailAddress) && !filter_var($backupMailAddress, FILTER_VALIDATE_EMAIL)) {
$this->error('予備メールアドレスの形式が正しくありません。');
return false;
}
return true;
}
}