app/Console/Commands/ShjMailSendCommand.php を削除
Some checks failed
Deploy main / deploy (push) Has been cancelled
Some checks failed
Deploy main / deploy (push) Has been cancelled
This commit is contained in:
parent
d942fed62d
commit
9266a48831
@ -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;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user