116 lines
4.1 KiB
PHP
116 lines
4.1 KiB
PHP
<?php
|
||
|
||
namespace App\Imports;
|
||
|
||
use App\Models\Promocode;
|
||
use Illuminate\Support\Collection;
|
||
use Log;
|
||
use Maatwebsite\Excel\Concerns\ToCollection;
|
||
|
||
use function Illuminate\Log\log;
|
||
|
||
class PromoImport implements ToCollection
|
||
{
|
||
protected $from;
|
||
|
||
public function __construct($from = 'cafeg')
|
||
{
|
||
$this->from = $from;
|
||
}
|
||
public function collection(Collection $rows)
|
||
{
|
||
if ($this->from == 'cafeg') {
|
||
|
||
foreach ($rows as $row) {
|
||
$data = $row->toArray();
|
||
|
||
if ($data[3] != '提货码') { // 跳過標題行
|
||
$code = $data[3];
|
||
|
||
$promo = Promocode::where('code', $code)
|
||
->where('from', 'cafeg')
|
||
->first();
|
||
|
||
if ($promo) {
|
||
// 如果已存在,且 give_to 不為 null,就更新
|
||
if ($promo->give_to !== null) {
|
||
$promo->update([
|
||
'discount' => 100,
|
||
'type' => 'percent',
|
||
'usage_limit' => 1,
|
||
'valid_from' => date('Y-m-d'),
|
||
'valid_to' => date('Y-m-d', strtotime('+1 day')),
|
||
'is_active' => 1,
|
||
'from' => 'cafeg',
|
||
]);
|
||
Log::info("已更新:{$code}");
|
||
} else {
|
||
Log::info("跳過(give_to 為 null):{$code}");
|
||
}
|
||
} else {
|
||
// 不存在就新增
|
||
Promocode::create([
|
||
'code' => $code,
|
||
'discount' => 100,
|
||
'type' => 'percent',
|
||
'usage_limit' => 1,
|
||
'valid_from' => date('Y-m-d'),
|
||
'valid_to' => date('Y-m-d', strtotime('+1 day')),
|
||
'is_active' => 1,
|
||
'from' => 'cafeg',
|
||
]);
|
||
Log::info("已新增:{$code}");
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
if ($this->from == 'teamaster') {
|
||
Log::info('import-from: teamaster');
|
||
Log::info('row', );
|
||
foreach ($rows->toArray() as $row) {
|
||
|
||
$code = $row[0];
|
||
$promo = Promocode::where('code', $code)
|
||
->where('from', 'teamaster')
|
||
->first();
|
||
|
||
if ($promo) {
|
||
// 如果已存在,且 give_to 不為 null,就更新
|
||
if ($promo->give_to != null) {
|
||
$promo->update([
|
||
'discount' => 70,
|
||
'type' => 'amount',
|
||
'usage_limit' => 1,
|
||
'valid_from' => date('Y-m-d'),
|
||
'valid_to' => date('Y-m-d', strtotime('+7 day')),
|
||
'is_active' => 1,
|
||
'from' => 'teamaster',
|
||
]);
|
||
Log::info("已更新:{$code}");
|
||
} else {
|
||
Log::info("跳過(give_to 為 null):{$code}");
|
||
}
|
||
} else {
|
||
Log::info("新增代碼:{$code}");
|
||
// 不存在就新增
|
||
Promocode::create([
|
||
'code' => $code,
|
||
'discount' => 70,
|
||
'type' => 'amount',
|
||
'usage_limit' => 1,
|
||
'valid_from' => date('Y-m-d'),
|
||
'valid_to' => date('Y-m-d', strtotime('+7 day')),
|
||
'is_active' => 1,
|
||
'from' => 'teamaster',
|
||
]);
|
||
Log::info("已新增:{$code}");
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
}
|
||
|
||
}
|