public static function genUpdateFlagQueryByContent(PosMemberImportContent $content) { $sql = 'UPDATE CCS_MemberFlags SET '; foreach ($content->flags as $key => $flag) { $key = Flater::resoveKey($key); $sql .= "Distflags_{$key}='{$flag}',"; } return substr($sql, 0, -1) . " WHERE MemberSerNoStr='{$content->serno}'"; }
public function proc() { //======================================================// // 取得上傳暫存檔路徑 $filePath = storage_path("exports/posmember/{$this->getTask()->id}.xls"); if (!file_exists($filePath)) { Log::error("{$filePath} Not exists!"); } // 透過直接指定選擇第一個sheet的方式,繞過 chunk 的 bug $reader = Excel::filter('chunk')->selectSheetsByIndex(0)->load($filePath)->skip(1); $totalRows = $reader->getTotalRowsOfFile(); $this->getTask()->status_code = PosMemberImportTask::STATUS_IMPORTING; $this->getTask()->total_count = $totalRows - 1; $this->getTask()->save(); //======================================================// $kind = $this->getTask()->kind()->first(); $factoryClass = $kind->factory; $adapterClass = $kind->adapter; $this->modelFactory = new $factoryClass(); $this->adapter = new $adapterClass([_Import::OPTIONS_TASK => $this->getTask(), _Import::OPTIONS_DISTINCTION => PosMemberImportTask::getBDSerNo($this->getTask()->distinction), _Import::OPTIONS_CATEGORY => PosMemberImportTask::getCategorySerNo($this->getTask()->category), _Import::OPTIONS_INSERTFLAG => Flater::getFlagString($this->getTask()->insert_flags), _Import::OPTIONS_UPDATEFLAG => Flater::getFlagString($this->getTask()->update_flags)]); $reader->chunk(_Import::CHUNK_SIZE, $this->getChunkCallback()); $this->_removeDuplicate(); $this->_saveTaskStatic(); }
public function getFlagPrototype() { $flags = []; for ($i = 1; $i <= 40; $i++) { $flags[Flater::genKey($i)] = Import::DEFAULT_FLAG_VALUE; } return $flags; }
protected function createNewTask() { $task = new PosMemberImportTask(); $task->user_id = Auth::user()->id; $task->name = Input::get('name'); $task->status_code = PosMemberImportTask::STATUS_INIT; $task->distinction = Input::get(_Import::OPTIONS_DISTINCTION); $task->category = Input::get(_Import::OPTIONS_CATEGORY); $task->update_flags = Flater::getInflateFlag(Input::get(_Import::OPTIONS_UPDATEFLAG)); $task->insert_flags = Flater::getInflateFlag(Input::get(_Import::OPTIONS_INSERTFLAG)); $task->kind_id = Input::get('kind_id'); $task->memo = Input::get(_Import::OPTIONS_OBMEMO); $task->save(); return $task; }
private function _getFlagString($flags) { return Flater::getFlagString($flags); }