param(); $con = []; $con = Tool::getOptionalQuery(['news_type', '='], ['news_title', 'LIKE'],); $query = ModelNews::where($con) ->field([ 'news_id', 'news_guid', 'news_type', 'news_cover', 'news_title', 'news_intro', 'news_source', 'news_link', 'news_issue_date', 'news_views_num', 'news_sort', 'news_content' ]) ->order('news_sort', 'asc'); return $isExport ? $query->select()->toArray() : msg("获取新闻列表成功!", $query); } /** * 添加新闻 */ public function addNews(Request $request): array { Db::startTrans(); Tool::adminLockTableWrite('news'); try { $params = $request->param(); $this->validate($params, [ 'news_type|新闻类型' => 'require', 'news_title|新闻标题' => 'require', 'news_cover|新闻封面' => 'require', 'news_sort|新闻排序' => 'require' ]); $model = ModelNews::create($params, [ 'news_type', 'news_title', 'news_cover', 'news_intro', 'news_source', 'news_link', 'news_issue_date', 'news_views_num', 'news_sort', 'news_content', 'news_guid', 'news_create_user_guid', 'news_update_user_guid' ]); Db::commit(); Tool::unlockTable(); return msg('添加成功!'); } catch (\Throwable $th) { Db::rollback(); Tool::unlockTable(); throw $th; } } /** * 编辑新闻 */ public function editNews(Request $request): array { Db::startTrans(); Tool::adminLockTableWrite('news'); try { $params = $request->param(); $this->validate($params, [ 'news_type|新闻类型' => 'require', 'news_title|新闻标题' => 'require', 'news_cover|新闻封面' => 'require', 'news_sort|新闻排序' => 'require' ]); $model = ModelNews::where('news_guid', $params['news_guid'])->find(); if (!$model) throwErrorMsg("该新闻不存在", 1); $model->allowField([ 'news_type', 'news_title', 'news_cover', 'news_intro', 'news_source', 'news_link', 'news_issue_date', 'news_views_num', 'news_sort', 'news_content', 'news_update_user_guid' ])->save($params); Db::commit(); Tool::unlockTable(); return msg('编辑成功!'); } catch (\Throwable $th) { Db::rollback(); Tool::unlockTable(); throw $th; } } /** * 删除新闻 */ public function deleteNews(Request $request): array { Db::startTrans(); Tool::adminLockTableWrite('news'); try { $params = $request->param(); $this->validate($params, [ 'news_guid' => 'require', ]); $news = ModelNews::where([ 'news_guid' => explode(',', $params['news_guid']) ])->select(); $news->delete(); Db::commit(); Tool::unlockTable(); return msg('删除成功!'); } catch (\Throwable $th) { Db::rollback(); Tool::unlockTable(); throw $th; } } /** * 导出Excel */ public function exportExcel(Request $request): void { ModelNews::exportExcel(self::getNewsList($request, true)); } /** * 下载导入模板 */ public function downloadTemplate(Request $request): void { $params = $request->param(); $data = [ array_values(ModelNews::EXCELFIELD), [ '公司新闻', '想学嵌入式Linux?领免费的瑞萨RZ/G2L开发板!', 'https://www.myir-tech.com/attached/image/20230609/1-1.jpg', '学习嵌入式系统开发是一个渐进的过程,一般我们从51单片机开始,逐步迁移到STM32微控制器,然后学习使用FreeRTOS操作系统,最终进入嵌入式Linux领域。以下是一个典型的学习路线:51单片机:作为嵌入式系统的入门级平台,学习51单片机可以帮助我们了解基本的嵌入式开发概念和编程技巧。可以学习使用C语言编写简单的驱动程序、控制IO口和外设等。 ', '米尔科技', '', '2023.6.9', '0', '1', '

需要报名RZ/G2L免费开发板请扫码

', ] ]; $excel = (new Excel())->exporTsheet($data); $excel->save('新闻导入模板.xlsx'); } /** * 导入excel */ public function importExcel(Request $request): array { $file = new UploadFile('uploads', 'fileExt:xlsx'); $file->putFile('news'); $msg = ModelNews::importExcel($file); return [ 'code' => 0, 'msg' => $msg ]; } }