Comment.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. namespace app\api\controller\user;
  3. use app\api\controller\Controller;
  4. use app\api\model\Order as OrderModel;
  5. use app\api\model\OrderGoods as OrderGoodsModel;
  6. use app\api\model\Comment as CommentModel;
  7. /**
  8. * 订单评价管理
  9. * Class Comment
  10. * @package app\api\controller\user
  11. */
  12. class Comment extends Controller
  13. {
  14. /**
  15. * 待评价订单商品列表
  16. * @param $order_id
  17. * @return array
  18. * @throws \Exception
  19. * @throws \app\common\exception\BaseException
  20. * @throws \think\exception\DbException
  21. */
  22. public function order($order_id)
  23. {
  24. // 用户信息
  25. $user = $this->getUser();
  26. // 订单信息
  27. $order = OrderModel::getUserOrderDetail($order_id, $user['user_id']);
  28. // 验证订单是否已完成
  29. $model = new CommentModel;
  30. if (!$model->checkOrderAllowComment($order)) {
  31. return $this->renderError($model->getError());
  32. }
  33. // 待评价商品列表
  34. /* @var \think\Collection $goodsList */
  35. $goodsList = OrderGoodsModel::getNotCommentGoodsList($order_id);
  36. if ($goodsList->isEmpty()) {
  37. return $this->renderError('该订单没有可评价的商品');
  38. }
  39. // 提交商品评价
  40. if ($this->request->isPost()) {
  41. $post = $this->request->post('formData');
  42. if ($model->addForOrder($order, $goodsList, $post)) {
  43. return $this->renderSuccess([], '评价发表成功');
  44. }
  45. return $this->renderError($model->getError() ?: '评价发表失败');
  46. }
  47. return $this->renderSuccess(compact('goodsList'));
  48. }
  49. }