Jelajahi Sumber

添加评论

whitefang 1 tahun lalu
induk
melakukan
7839f02ff2

+ 19 - 0
app/api/controller/GoodsReviewsController.php

@@ -2,6 +2,8 @@
 namespace app\api\controller;
 
 use app\api\lists\GoodsReviewsLists;
+use app\api\logic\GoodsReviewsLogic;
+use app\api\validate\GoodsReviewsValidate;
 
 /**
  * 商品评论控制器
@@ -16,4 +18,21 @@ class GoodsReviewsController extends BaseApiController
     {
         return $this->dataLists(new GoodsReviewsLists());
     }
+
+    /**
+     * 去评论
+     * @return \think\response\Json
+     */
+    public function review()
+    {
+        $params = (new GoodsReviewsValidate())->post()->goCheck('add', [
+            'user_id' => $this->userId,
+            'user_info' => $this->userInfo
+        ]);
+        $result = GoodsReviewsLogic::add($params);
+        if (false === $result) {
+            return $this->fail(GoodsReviewsLogic::getError());
+        }
+        return $this->data($result);
+    }
 }

+ 1 - 1
app/api/lists/GoodsReviewsLists.php

@@ -49,7 +49,7 @@ class GoodsReviewsLists extends BaseApiDataLists implements ListsSearchInterface
         $lists = GoodsReviews::where($this->searchWhere)
             ->where($this->queryWhere())
             ->limit($this->limitOffset, $this->limitLength)
-            ->field(['id','nickname','rating','comment','review_image','create_time'])
+            ->field(['id','nickname','avatar','rating','comment','review_image','create_time'])
             ->order('create_time desc')
             ->select()
             ->toArray();

+ 47 - 0
app/api/logic/GoodsReviewsLogic.php

@@ -0,0 +1,47 @@
+<?php
+namespace app\api\logic;
+
+use app\common\logic\BaseLogic;
+use app\common\model\goods\Goods;
+use app\common\model\orders\RechargeOrder;
+use app\common\model\recharge\OrderGoods;
+use app\common\model\reviews\GoodsReviews;
+use app\common\model\works\ServiceWork;
+use think\facade\Db;
+
+/**
+ * 服务商品评论逻辑处理
+ * Class GoodsReviewsLogic
+ * @package app\api\logic
+ */
+class GoodsReviewsLogic extends BaseLogic
+{
+    /**
+     * @param $params
+     * @return bool
+     */
+    public function add($params)
+    {
+        Db::startTrans();
+        try {
+            $work = ServiceWork::findOrEmpty($params['work_id'])->toArray();
+            $goods_id = OrderGoods::whereIn('sn', RechargeOrder::where('work_id')->column('sn'))->value('goods_id');
+            GoodsReviews::create([
+                'goods_id'=>$goods_id,
+                'goods_category_id'=>$work['goods_category_id'],
+                'user_id'=>$params['user_id'],
+                'nickname'=>$params['user_info']['nickname'],
+                'avatar'=>$params['user_info']['avatar'],
+                'rating'=>$params['rating'],
+                'comment'=>$params['comment'],
+                'review_image'=>$params['review_image']
+            ]);
+            Db::commit();
+            return true;
+        } catch (\Exception $e) {
+            Db::rollback();
+            self::setError($e->getMessage());
+            return false;
+        }
+    }
+}

+ 45 - 0
app/api/validate/GoodsReviewsValidate.php

@@ -0,0 +1,45 @@
+<?php
+namespace app\api\validate;
+
+
+use app\common\validate\BaseValidate;
+
+
+/**
+ * GoodsReviews验证器
+ * Class GoodsReviewsValidate
+ * @package app\api\validate
+ */
+class GoodsReviewsValidate extends BaseValidate
+{
+
+     /**
+      * 设置校验规则
+      * @var string[]
+      */
+    protected $rule = [
+        'work_id' => 'require',
+        'rating' => 'require',
+        'comment'=>'require',
+    ];
+
+
+    /**
+     * 参数描述
+     * @var string[]
+     */
+    protected $field = [
+        'work_id' => '参数错误',
+        'rating' => '星级',
+        'comment' => '评论内容',
+    ];
+
+    /**
+     * @notes 添加场景
+     * @return GoodsValidate
+     */
+    public function sceneAdd()
+    {
+        return $this->only(['order_id','rating','comment']);
+    }
+}