Comment.php 1.7 KB

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