eventManagementDb = new Event(); $this->itemManagementDb = new Item(); $this->submitManagementDb = new Submit(); } public function getEvents( &$cnt = 0, $orderColumn, $orderDir, $start, $length, $searchValue, $name, $eventDateStart, $eventDateFinal, $archive ) { // 選欄位 $archiveStr = ''; foreach (GeneralConst::$archiveMap as $k => $v) { $archiveStr .= ' when \'' . $k . '\' then \'' . $v . '\''; } $events = $this->eventManagementDb ->select([ \DB::raw("CONCAT('') as chk"), 'id', \DB::raw("CONCAT('', name, '') as name"), \DB::raw("(select count(*) from items where eid=events.id) as cnt"), 'date_begin', 'date_final', 'cdate', 'mdate', \DB::raw("(select name from users where id=events.oid) as oid"), ]); // 過濾搜尋條件 $events = $events ->where('name', 'LIKE', '%' . $name . '%'); if ($archive != '') $events = $events->where('archive', '=', $archive); $events = $events->where('date_begin', '>=', $eventDateStart . ' 00:00:00'); $events = $events->where('date_final', '<=', $eventDateFinal . ' 23:59:59'); // 取總筆數 $cnt = $events->count(); // 排序 $events = $events ->orderByRaw((int)$orderColumn . ' ' . $orderDir); // 彙整 // 分頁 $events = $events ->skip($start)->take($length); // 實際取資料 $events = $events ->get() ->toArray(); // 整理返回值並返回 return $events; } public function getItems($eid) { $items = $this->itemManagementDb ->select([ 'id', 'eid', 'name', 'is_ide', 'id_acc', \DB::raw("CONCAT('" . env('APP_URL') . "', 'main/?h=', HEX(AES_ENCRYPT(TO_BASE64(CONCAT(eid, ',', id)), '" . env('KK') . "'))) as link"), ]) ->where('eid', $eid) ->get() ->toArray(); // 整理返回值並返回 return $items; } public function archive($grp) { $this->eventManagementDb ->whereIn('id', $grp) ->update([ 'archive' => GeneralConst::ARCHIVE_YES, ]); // 整理返回值並返回 return true; } public function unarchive($grp) { $this->eventManagementDb ->whereIn('id', $grp) ->update([ 'archive' => GeneralConst::ARCHIVE_NO, ]); // 整理返回值並返回 return true; } public function clear($grp) { // 找出所有獎項ID $items = $this->itemManagementDb->select([ 'id', ]) ->whereIn('eid', $grp) ->get() ->toArray(); $iid = []; foreach ($items as $i) $iid[] = $i['id']; // 找出所有獎項ID下的申報資料 $submits = $this->submitManagementDb->select([ GeneralConst::$appendixMap[ GeneralConst::APPENDIX_IDENTITY_FRONT ]['sql'], GeneralConst::$appendixMap[ GeneralConst::APPENDIX_IDENTITY_BACK ]['sql'], GeneralConst::$appendixMap[ GeneralConst::APPENDIX_PASSBOOK ]['sql'], GeneralConst::$appendixMap[ GeneralConst::APPENDIX_DECLARE_PDF ]['sql'], ]) ->whereIn('iid', $iid) ->get() ->toArray(); foreach ($submits as $s) { if (file_exists($s[ GeneralConst::$appendixMap[ GeneralConst::APPENDIX_IDENTITY_FRONT ]['sql'] ])) unlink($s[ GeneralConst::$appendixMap[ GeneralConst::APPENDIX_IDENTITY_FRONT ]['sql'] ]); if (file_exists($s[ GeneralConst::$appendixMap[ GeneralConst::APPENDIX_IDENTITY_BACK ]['sql'] ])) unlink($s[ GeneralConst::$appendixMap[ GeneralConst::APPENDIX_IDENTITY_BACK ]['sql'] ]); if (file_exists($s[ GeneralConst::$appendixMap[ GeneralConst::APPENDIX_PASSBOOK ]['sql'] ])) unlink($s[ GeneralConst::$appendixMap[ GeneralConst::APPENDIX_PASSBOOK ]['sql'] ]); if (file_exists($s[ GeneralConst::$appendixMap[ GeneralConst::APPENDIX_DECLARE_PDF ]['sql'] ])) unlink($s[ GeneralConst::$appendixMap[ GeneralConst::APPENDIX_DECLARE_PDF ]['sql'] ]); } // 刪除 $this->submitManagementDb ->whereIn('iid', $iid) ->delete(); return true; } public function getEventById($id) { // 取得參數 // 調用資料庫(或者其他業務邏輯) $events = $this->eventManagementDb->select([ 'id', 'name', 'kv', 'date_begin', 'date_final', 'email', 'tel', 'archive', 'cdate', 'mdate', \DB::raw("(select name from users where id=events.oid) as oid"), ]) ->where('id', $id) ->first() ->toArray(); // 整理返回值並返回 return $events; } public function insertEvent($name, $kv, $date_begin, $date_final, $email, $tel, $oid) { // 取得參數 // 調用資料庫(或者其他業務邏輯) $this->eventManagementDb ->insert([ 'name' => $name, 'kv' => $kv, 'date_begin' => $date_begin, 'date_final' => $date_final, 'email' => $email, 'tel' => $tel, 'cdate' => date('Y-m-d H:i:s'), 'oid' => $oid, ]); $id = \DB::getPdo()->lastInsertId(); // 整理返回值並返回 return $id; } public function modifyEvent($id, $name, $kv, $date_begin, $date_final, $email, $tel, $oid) { // 取得參數 // 調用資料庫(或者其他業務邏輯) $res = $this->eventManagementDb ->where('id', $id) ->update([ 'name' => $name, 'kv' => $kv, 'date_begin' => $date_begin, 'date_final' => $date_final, 'email' => $email, 'tel' => $tel, 'mdate' => date('Y-m-d H:i:s'), 'oid' => $oid, ]); // 整理返回值並返回 return $res; } public function insertItem($eid, $name, $is_ide, $id_acc) { // 取得參數 // 調用資料庫(或者其他業務邏輯) $this->itemManagementDb ->insert([ 'eid' => $eid, 'name' => $name, 'is_ide' => $is_ide, 'id_acc' => $id_acc, ]); $id = \DB::getPdo()->lastInsertId(); // 整理返回值並返回 return $id; } public function modifyItem($id, $eid, $name) { // 取得參數 // 調用資料庫(或者其他業務邏輯) $res = $this->itemManagementDb ->where('id', $id) ->where('eid', $eid) ->update([ 'name' => $name ]); // 整理返回值並返回 return $res; } }