Comment.php 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. namespace app\api\controller\sharing;
  3. use app\api\controller\Controller;
  4. use app\api\model\sharing\Order as OrderModel;
  5. use app\api\model\sharing\OrderGoods as OrderGoodsModel;
  6. use app\api\model\sharing\Comment as CommentModel;
  7. /**
  8. * 拼团订单评价管理
  9. * Class Comment
  10. * @package app\api\controller\sharing
  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. $formData = $this->request->post('formData', '', null);
  42. if ($model->addForOrder($order, $goodsList, $formData)) {
  43. return $this->renderSuccess([], '评价发表成功');
  44. }
  45. return $this->renderError($model->getError() ?: '评价发表失败');
  46. }
  47. return $this->renderSuccess(compact('goodsList'));
  48. }
  49. /**
  50. * 商品评价列表
  51. * @param $goods_id
  52. * @param int $scoreType
  53. * @return array
  54. * @throws \think\exception\DbException
  55. */
  56. public function lists($goods_id, $scoreType = -1)
  57. {
  58. $model = new CommentModel;
  59. $list = $model->getGoodsCommentList($goods_id, $scoreType);
  60. $total = $model->getTotal($goods_id);
  61. return $this->renderSuccess(compact('list', 'total'));
  62. }
  63. }