public function deleteAlbumItem($share_id, $is_update = true) { $share_id = (int) $share_id; if (!$share_id) { return false; } $rec = FDB::fetchFirst('SELECT * FROM ' . FDB::table('album_rec') . ' WHERE ashare_id = ' . $share_id); if ($rec) { FDB::delete('album_rec', 'ashare_id = ' . $share_id); FDB::query('UPDATE ' . FDB::table('share_rec') . " SET rec_count = rec_count - 1 WHERE share_id = " . $rec['share_id']); $res = FDB::query('SELECT share_id FROM ' . FDB::table('share_rec') . ' WHERE rec_count = 0'); $id_list = array(); while ($data = FDB::fetch($res)) { $id_list[$data['share_id']] = $data['share_id']; } if (count($id_list) > 0) { $ids = implode(',', $id_list); $res = FDB::query('SELECT share_id FROM ' . FDB::table('share') . ' WHERE share_id IN (' . $ids . ')'); while ($data = FDB::fetch($res)) { unset($id_list[$data['share_id']]); } foreach ($id_list as $id) { $key = getDirsById($id); clearDir(PUBLIC_ROOT . './upload/share/' . $key, true); } } FDB::delete('share_rec', 'share_id = ' . $rec['share_id'] . ' AND rec_count = 0'); } if ($is_update) { $album_id = (int) FDB::resultFirst('SELECT album_id FROM ' . FDB::table('album_share') . ' WHERE share_id = ' . $share_id); FDB::delete('album_share', ' share_id = ' . $share_id); AlbumService::updateAlbumByShare($album_id, $share_id, false); AlbumService::updateAlbum($album_id); } FS('Share')->deleteShare($share_id); }