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}"); } } } } }