胖虎 3 лет назад
Родитель
Сommit
6b50fcdc5b

+ 108 - 0
app/Http/Controllers/AdminApi/NewsController.php

@@ -0,0 +1,108 @@
+<?php
+
+namespace App\Http\Controllers\AdminApi;
+
+use App\Http\Controllers\AdminController;
+use App\Models\NewsModels\News;
+use App\Servers\Common\CommonServer;
+
+class NewsController extends AdminController
+{
+    public function __construct()
+    {
+        parent::__construct();
+    }
+
+    /**
+     * 获取列表
+     * @return \Illuminate\Http\JsonResponse
+     */
+    function getList(){
+        $title = request()->input('title','');//获取标题
+        //查询数据条件
+        $where = [['is_del',0]];
+        //获取数据
+        $banner_list = News::where($where)
+            ->where(function ($q) use ($title){
+                if($title){
+                    $q->orWhere('cn_title','like',"%$title%");
+                    $q->orWhere('en_title','like',"%$title%");
+                }
+            })
+            ->select(['id','image','cn_title','en_title','created_at'])
+            ->orderBy('id','asc')
+            ->paginate(10);
+
+        return $this->apiResponseSuccess('获取列表成功', [
+            'items' => $banner_list->items(),
+            'total' => $banner_list->total(),
+            'limit' => 10,
+        ]);
+    }
+    /**
+     * 获取记录详情
+     * @return \Illuminate\Http\JsonResponse
+     */
+    function getInfo(){
+        $id = request()->input('id','');//获取需要查询的记录id
+        if(empty($id)) return $this->apiResponseError('缺少必要参数');
+        //查询数据
+        $info = News::where('id',$id)->first();
+
+        if(empty($info)) return $this->apiResponseError('没有找到该记录');
+
+        return $this->apiResponseSuccess('获取成功', $info);
+    }
+
+    /**
+     * 编辑&新增
+     * @return \Illuminate\Http\JsonResponse
+     */
+    function saveNews(){
+        $id = request()->input('id','');//记录id
+        $cn_title = CommonServer::creatServer()->filtrationStr('cn_title');
+        $en_title = CommonServer::creatServer()->filtrationStr('en_title');
+        $image = request()->input('image', '');//缩略图
+        $cn_content = request()->input('cn_content', '');//
+        $en_content = request()->input('en_content', '');//
+        if(empty($cn_title) || empty($en_title) || empty($image)){
+            return $this->apiResponseError('缺少必要参数');
+        }
+        $data = compact('cn_title','en_title','cn_content','en_content','image');
+
+        if(empty($id)){//不存在id就创建
+
+            $res = News::create($data);
+        }else{//存在就更新
+            $info = News::where('id',$id)->select(['id'])->first();
+            if (empty($info)) {
+                return $this->apiResponseError('没有找到该记录');
+            }
+            $res = $info->update($data);
+        }
+
+        if ($res) {
+            return $this->apiResponseSuccess('操作成功');
+        } else {
+            return $this->apiResponseError('操作失败');
+        }
+    }
+
+    /**
+     * 删除(批量)文章
+     * @return \Illuminate\Http\JsonResponse
+     */
+    function destroys(){
+        $ids = request()->input('ids','');//获取需要删除的id
+        if(empty($ids)) return $this->apiResponseError('缺少必要参数');
+        //数据条件
+        if(!is_array($ids)) return $this->apiResponseError('数据格式错误');
+
+        $res = News::whereIn('id',$ids)->update(['is_del'=>1]);
+        if ($res) {
+            return $this->apiResponseSuccess('删除成功');
+        } else {
+            return $this->apiResponseError('删除失败');
+        }
+    }
+}

+ 39 - 0
app/Models/NewsModels/News.php

@@ -0,0 +1,39 @@
+<?php
+
+namespace App\Models\NewsModels;
+
+use App\Models\Traits\Timestamp;
+use Illuminate\Database\Eloquent\Model;
+
+class News extends Model
+{
+    use Timestamp;
+    /**
+     * 表名。
+     *
+     * @var string
+     */
+    protected $table = 'news';
+
+    /**
+     * 与表关联的主键。
+     *
+     * @var string
+     */
+    protected $primaryKey = 'id';
+
+    /**
+     * 是否主动维护时间戳
+     *
+     * @var bool
+     */
+    public $timestamps = true;
+
+    /**
+     * 不能被批量赋值的属性
+     *
+     * @var array
+     */
+    protected $guarded = ['id', 'updated_at', 'created_at'];
+
+}

+ 1 - 1
routes/adminApi/banner.php

@@ -7,7 +7,7 @@ use Illuminate\Support\Facades\Route;
 Route::group(['domain' => env('APP_HOST'), 'prefix' => 'adminApi/banner'],function (){
     Route::match(['get','post'],'list', 'BannerController@getList')->name('adminApi.banner.list');//获取列表
     Route::match(['get','post'],'info', 'BannerController@getInfo')->name('adminApi.banner.info');//获取详情
-    Route::match(['get','post'],'save', 'BannerController@save')->name('adminApi.banner.save');//新增&编辑
+    Route::match(['get','post'],'save', 'BannerController@saveBanner')->name('adminApi.banner.save');//新增&编辑
     Route::match(['get','post'],'destroys', 'BannerController@destroys')->name('adminApi.banner.destroys');//删除
 
 });

+ 13 - 0
routes/adminApi/news.php

@@ -0,0 +1,13 @@
+<?php
+
+use Illuminate\Support\Facades\Route;
+
+
+
+Route::group(['domain' => env('APP_HOST'), 'prefix' => 'adminApi/news'],function (){
+    Route::match(['get','post'],'list', 'NewsController@getList')->name('adminApi.news.list');//获取列表
+    Route::match(['get','post'],'info', 'NewsController@getInfo')->name('adminApi.news.info');//获取详情
+    Route::match(['get','post'],'save', 'NewsController@saveNews')->name('adminApi.news.save');//新增&编辑
+    Route::match(['get','post'],'destroys', 'NewsController@destroys')->name('adminApi.news.destroys');//删除
+
+});