From f6a3d8a2c453b80db3d54e98286d2bcb4a7801df Mon Sep 17 00:00:00 2001
From: lizhilin <1007915129@qq.com>
Date: Mon, 9 Sep 2024 10:40:21 +0800
Subject: [PATCH] 更新

---
 app/Admin/Controllers/CategoryController.php      | 12 ++++++------
 app/Admin/Controllers/GoodController.php          | 24 ++++++++++++++++++++++++
 app/Admin/Controllers/UserController.php          |  2 +-
 app/Http/Controllers/Api/ArticleController.php    | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 app/Http/Controllers/Api/CategoryController.php   |  3 ++-
 app/Http/Controllers/Api/CommentController.php    | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 app/Http/Controllers/Api/CommentTplController.php | 21 +++++++++++++++++++++
 routes/api.php                                    | 15 +++++++++++++--
 8 files changed, 193 insertions(+), 10 deletions(-)
 create mode 100644 app/Http/Controllers/Api/ArticleController.php
 create mode 100644 app/Http/Controllers/Api/CommentController.php
 create mode 100644 app/Http/Controllers/Api/CommentTplController.php

diff --git a/app/Admin/Controllers/CategoryController.php b/app/Admin/Controllers/CategoryController.php
index d21cb5e..f56c384 100644
--- a/app/Admin/Controllers/CategoryController.php
+++ b/app/Admin/Controllers/CategoryController.php
@@ -90,12 +90,12 @@ protected function form()
                     return $v ?? 0;
                 });
             $form->text('title');
-            $form->image('icon', '分类图标')
-                ->accept('jpg,jpeg,png')
-                ->maxSize(4096)
-                ->url('upload/category')
-                ->help('仅支持jpg、jpeg、png格式图片上传(750px * 420px)')
-                ->autoUpload();
+            // $form->image('icon', '分类图标')
+            //     ->accept('jpg,jpeg,png')
+            //     ->maxSize(4096)
+            //     ->url('upload/category')
+            //     ->help('仅支持jpg、jpeg、png格式图片上传(750px * 420px)')
+            //     ->autoUpload();
             $form->text('order')->help('越小越靠前');
             $form->switch('show', '状态')->default(1);
 
diff --git a/app/Admin/Controllers/GoodController.php b/app/Admin/Controllers/GoodController.php
index 9ad152c..cce9e8e 100644
--- a/app/Admin/Controllers/GoodController.php
+++ b/app/Admin/Controllers/GoodController.php
@@ -164,6 +164,30 @@ protected function form()
 
                     return $sku;
                 })->required();
+            })->tab('文字标签', function (Form $form) {
+                $fieldArr = [
+                    'field1' => '',
+                    'field2' => '',
+                    'field3' => '',
+                    'field4' => '',
+                    'field5' => '',
+                    'field6' => '',
+                    'field7' => '',
+                    'field8' => '',
+                    'field9' => '',
+                    'field10' => '',
+                    'field11' => '',
+                    'field12' => '',
+                    'field13' => '',
+                    'field14' => '',
+                    'field15' => '',
+                    'field16' => '',
+                ];
+                $form->keyValue('tags', '标签')->default($fieldArr)
+                    ->setKeyLabel('键 (field开头拼上数字)')
+                    ->setValueLabel('值');
+                //->disableCreateButton();
+                //->disableDelete();
             })->tab('详情', function (Form $form) {
 
                 $form->editor('goods_desc');
diff --git a/app/Admin/Controllers/UserController.php b/app/Admin/Controllers/UserController.php
index bd99033..5b28b4b 100644
--- a/app/Admin/Controllers/UserController.php
+++ b/app/Admin/Controllers/UserController.php
@@ -46,7 +46,7 @@ protected function grid()
 
             $grid->actions(function (Grid\Displayers\Actions $actions) {
                 // 添加一个按钮,并设置其属性
-                $actions->append('<a href="/user-share?id=' . $this->id . '" alt="查看下级" target="_blank">查看详情</a>');
+                $actions->append('<a href="/user-share?id=' . $this->id . '" alt="查看下级" target="_blank">查看下级</a>');
 
                 // 或者使用 RowAction 来添加按钮
                 //$actions->append(RowAction::make('自定义按钮')->route('custom.route'));
diff --git a/app/Http/Controllers/Api/ArticleController.php b/app/Http/Controllers/Api/ArticleController.php
new file mode 100644
index 0000000..a76d299
--- /dev/null
+++ b/app/Http/Controllers/Api/ArticleController.php
@@ -0,0 +1,59 @@
+<?php
+
+namespace App\Http\Controllers\Api;
+
+use App\Command\Log;
+use App\Models\Article;
+use Illuminate\Http\Request;
+
+class ArticleController extends BaseController
+{
+    public function getList()
+    {
+        $page = $request->page ?? 1;
+        $limit = $request->limit ?? 10;
+        $cat_id = $request->cat_id ?? 0;
+
+        $where = ['is_show' => 1];
+        if ($cat_id) {
+            $where['cat_id'] = $cat_id;
+        }
+        $sql = Article::where($where);
+        $data = [
+            'total' => $sql->count(),
+            'total_page' => ceil($sql->count() / $limit),
+            'list' => []
+        ];
+        $listData = $sql->offset(($page - 1) * $limit)->limit($limit)->orderBy('created_at', 'DESC')->get();
+        if ($listData->toArray()) {
+            foreach ($listData as $item) {
+                $data['list'][] = [
+                    'id' => $item->id,
+                    'title' => $item->title,
+                    'cover' => $item->cover ? env('IMAGE_URL') . $item->cover : '',
+                    'content' => $item->content,
+                    'created_at' => $item->created_at,
+                ];
+            }
+        }
+        return $this->JsonResponse($data);
+    }
+
+    public function getDetail(Request $request)
+    {
+        $aid = $request->aid ?? null;
+
+        $aObj = Article::find($aid);
+        if (!$aObj) {
+            return $this->JsonResponse('', '参数错误', 201);
+        }
+
+        $data = [
+            'id' => $aid,
+            'title' => $aObj->title,
+            'content' => $aObj->content,
+            'created_at' => $aObj->created_at ? date("Y-m-d H:i:s", strtotime($aObj->created_at)) : '',
+        ];
+        return $this->JsonResponse($data);
+    }
+}
diff --git a/app/Http/Controllers/Api/CategoryController.php b/app/Http/Controllers/Api/CategoryController.php
index 1a2e538..c2b3b50 100644
--- a/app/Http/Controllers/Api/CategoryController.php
+++ b/app/Http/Controllers/Api/CategoryController.php
@@ -26,10 +26,11 @@ public function getList(Request $request)
                     'id' => $item->id,
                     'parent_id' => $item->parent_id,
                     'title' => $item->title,
-                    'icon' => (isset($item->icon) ? env('IMAGE_URL') . $item->icon : '')
+                    //'icon' => (isset($item->icon) ? env('IMAGE_URL') . $item->icon : '')
                 ];
             }
         }
+        array_unshift($data['list'], ['id' => 0, 'parent_id' => 0, 'title' => '全部']);
         return $this->JsonResponse($data);
     }
 
diff --git a/app/Http/Controllers/Api/CommentController.php b/app/Http/Controllers/Api/CommentController.php
new file mode 100644
index 0000000..ce60c92
--- /dev/null
+++ b/app/Http/Controllers/Api/CommentController.php
@@ -0,0 +1,67 @@
+<?php
+
+namespace App\Http\Controllers\Api;
+
+use App\Command\Log;
+use App\Handlers\FileUploadHandler;
+use App\Models\Comment;
+use App\Models\CommentTpl;
+use Illuminate\Support\Facades\DB;
+use Illuminate\Http\Request;
+
+class CommentController extends BaseController
+{
+    public function add(Request $request)
+    {
+        $useObj = $request->user();
+        $gid = $request->gid ?? 0;
+        $star = $request->star ?? 0;
+        $content = $request->content ?? '';
+
+        DB::beginTransaction();
+        try {
+            $comObj = new Comment();
+
+            $comObj->goods_id = $gid;
+            $comObj->star = $star;
+            $comObj->content = $content;
+            $comObj->nickname = $useObj->name;
+            $comObj->avatar = $useObj->avatar ?? '';
+            $comObj->phone = $useObj->phone;
+            $comObj->save();
+            DB::commit();
+            return $this->JsonResponse('');
+        } catch (\Exception $exception) {
+            Log::add('添加评论失败', $exception->getMessage());
+            DB::rollBack();
+            return $this->JsonResponse('', '添加评论失败', 201);
+        }
+    }
+
+    public function getList(Request $request)
+    {
+        $gid = $request->gid ?? 0;
+        $page = $request->page ?? 1;
+        $limit = $request->limit ?? 10;
+        $sql = Comment::where(['goods_id' => $gid, 'deleted_at' => null])
+            ->select('id', 'nickname', 'avatar', 'content', 'addtime');
+        $data = [
+            'total' => $sql->count(),
+            'total_page' => ceil($sql->count() / $limit),
+            'list' => []
+        ];
+        $listData = $sql->offset(($page - 1) * $limit)->limit($limit)->orderBy('created_at', 'DESC')->get();
+        if ($listData->toArray()) {
+            foreach ($listData as $item) {
+                $data['list'][] = [
+                    'id' => $item->id,
+                    'nickname' => $item->nickname,
+                    'avatar' => $item->avatar ? env('IMAGE_URL') . $item->avatar : '',
+                    'content' => $item->content,
+                    'addtime' => $item->addtime,
+                ];
+            }
+        }
+        return $this->JsonResponse($data);
+    }
+}
diff --git a/app/Http/Controllers/Api/CommentTplController.php b/app/Http/Controllers/Api/CommentTplController.php
new file mode 100644
index 0000000..1bad8b8
--- /dev/null
+++ b/app/Http/Controllers/Api/CommentTplController.php
@@ -0,0 +1,21 @@
+<?php
+
+namespace App\Http\Controllers\Api;
+
+use App\Command\Log;
+use App\Handlers\FileUploadHandler;
+use App\Models\CommentTpl;
+use Illuminate\Http\Request;
+
+class CommentTplController extends BaseController
+{
+    public function getList()
+    {
+        $list = (new CommentTpl())->select("id", "title", "content")
+            ->orderBy("id", "desc")
+            ->limit(30)
+            ->get();
+
+        return  $this->JsonResponse($list);
+    }
+}
diff --git a/routes/api.php b/routes/api.php
index 48ce4ae..ce1a0bf 100644
--- a/routes/api.php
+++ b/routes/api.php
@@ -39,11 +39,16 @@
 
     Route::get('carousel', 'CarouselController@getList');  //轮播列表
 
+    Route::get('comment-tpl', 'CommentTplController@getList');  //评价模板
+
     Route::get('get-cate-list', 'CategoryController@getList');  //一级分类列表
 
-    Route::get('get-seccate-list', 'CategoryController@getSecList');  //二级分类列表
+    Route::get('article-list', 'ArticleController@getList');  //文章列表
+
+    Route::get('article-detail', 'ArticleController@getDetail');  //文章详情
+    // Route::get('get-seccate-list', 'CategoryController@getSecList');  //二级分类列表
 
-    Route::get('get-third-list', 'CategoryController@getThirdList');  //三级分类列表
+    // Route::get('get-third-list', 'CategoryController@getThirdList');  //三级分类列表
 
     Route::get('recommend-good', 'GoodController@getIndexGoods');  //首页商品列表
 
@@ -61,6 +66,8 @@
 
     Route::get('get-good-detail', 'GoodController@getDetail');  //商品详情
 
+    Route::get('comment-list', 'CommentController@getList');  //评价列表
+
     Route::get('send/config/update', 'SystemController@update');
 
     Route::middleware('auth:sanctum')->group(function () {
@@ -126,5 +133,9 @@
         Route::post('upload-img', 'UserController@uploadImg');  //图片统一上传接口
 
         Route::post('edit-user', 'UserController@editUser');  //更新用户
+
+        Route::post('add-comment', 'CommentController@add');  //去评价
+
+
     });
 });
--
libgit2 0.26.0