param(); $con = Tool::getOptionalQuery(['poster_location', '='], ['a.i18n_lang_type_guid', '='],); $query = ModelPoster::where($con) ->alias('a') ->leftjoin('i18n_lang_type c', 'a.i18n_lang_type_guid = c.i18n_lang_type_guid') ->field([ 'a.poster_id', 'a.poster_guid', 'a.poster_location', 'a.poster_img', 'a.poster_title', 'a.poster_describe', 'a.poster_sort', 'a.i18n_lang_type_guid', 'c.i18n_lang_type_name', 'c.i18n_lang_type_code', ]) ->order('poster_sort', 'asc'); return msg("获取海报列表成功!", $query); } /** * 编辑海报 */ public function editPoster(Request $request): array { Db::startTrans(); Tool::adminLockTableWrite('poster'); try { $params = $request->param(); $this->validate($params, [ 'poster_location|位置' => 'require', 'poster_img|图片' => 'require', ]); $model = ModelPoster::where('poster_guid', $params['poster_guid'])->find(); if (!$model) throwErrorMsg("该海报不存在", 1); $model->allowField([ 'i18n_lang_type_guid', 'poster_update_user_guid', 'poster_location', 'poster_img', 'poster_title', 'poster_describe', 'poster_sort' ])->save($params); Db::commit(); Tool::unlockTable(); return msg('编辑成功!'); } catch (\Throwable $th) { Db::rollback(); Tool::unlockTable(); throw $th; } } /** * 添加海报 */ public function addPoster(Request $request): array { Db::startTrans(); Tool::adminLockTableWrite('poster'); try { $params = $request->param(); $this->validate($params, [ 'poster_location|位置' => 'require', 'poster_img|图片' => 'require', ]); $model = ModelPoster::create($params, [ 'i18n_lang_type_guid', 'poster_guid', 'poster_create_user_guid', 'poster_update_user_guid', 'poster_location', 'poster_img', 'poster_title', 'poster_describe', 'poster_sort' ]); Db::commit(); Tool::unlockTable(); return msg('添加成功!'); } catch (\Throwable $th) { Db::rollback(); Tool::unlockTable(); throw $th; } } /** * 删除海报 */ public function deletePoster(Request $request): array { Db::startTrans(); Tool::adminLockTableWrite('poster'); try { $params = $request->param(); $this->validate($params, [ 'poster_guid' => 'require', ]); $poster = ModelPoster::where([ 'poster_guid' => explode(',', $params['poster_guid']) ])->select(); $poster->delete(); Db::commit(); Tool::unlockTable(); return msg('删除成功!'); } catch (\Throwable $th) { Db::rollback(); Tool::unlockTable(); throw $th; } } }