OrderCommentPreview.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <?php
  2. /**
  3. * 重庆赤晓店信息科技有限公司
  4. * https://www.chixiaodian.com
  5. * Copyright (c) 2023 赤店商城 All rights reserved.
  6. */
  7. namespace app\modules\client\models\v1;
  8. use app\models\Goods;
  9. use app\models\Order;
  10. use app\models\OrderDetail;
  11. use yii\base\Model;
  12. class OrderCommentPreview extends Model
  13. {
  14. public $store_id;
  15. public $user_id;
  16. public $order_id;
  17. public $type;
  18. public function rules()
  19. {
  20. return [
  21. [['order_id'], 'required'],
  22. [[ 'type'], 'string'],
  23. ];
  24. }
  25. public function search()
  26. {
  27. if (!$this->validate()) {
  28. return $this->errorResponse;
  29. }
  30. switch ($this->type) {
  31. case 'mall':
  32. $order = Order::findOne([
  33. 'is_delete' => 0,
  34. 'store_id' => $this->store_id,
  35. 'user_id' => $this->user_id,
  36. 'id' => $this->order_id,
  37. ]);
  38. break;
  39. default:
  40. $order = IntegralOrder::findOne([
  41. 'is_delete' => 0,
  42. 'store_id' => $this->store_id,
  43. 'user_id' => $this->user_id,
  44. 'id' => $this->order_id,
  45. ]);
  46. break;
  47. }
  48. if (!$order) {
  49. return [
  50. 'code' => 1,
  51. 'msg' => '订单不存在!',
  52. ];
  53. }
  54. if ($order->trade_status != Order::ORDER_FLOW_CONFIRM) {
  55. return [
  56. 'code' => 1,
  57. 'msg' => '订单尚未确认收货,无法评价!',
  58. ];
  59. }
  60. if ($order->is_comment == 1) {
  61. return [
  62. 'code' => 1,
  63. 'msg' => '订单已评价!',
  64. ];
  65. }
  66. switch ($this->type) {
  67. case 'mall':
  68. $order_detail_list = OrderDetail::find()
  69. ->where(['order_id' => $order->id, 'is_delete' => 0])->asArray()->all();
  70. // foreach ($order_detail_list as $i => $order_detail) {
  71. // $order_detail_list[$i]['goods_pic'] = $order_detail->pic ?: Goods::getGoodsPicStatic($order_detail['goods_id'])->pic_url;
  72. // }
  73. return [
  74. 'code' => 0,
  75. 'msg' => 'success',
  76. 'data' => [
  77. 'order_id' => $order->id,
  78. 'goods_list' => $order_detail_list,
  79. ],
  80. ];
  81. break;
  82. default:
  83. // $order_detail_list = IntegralOrderDetail::find()
  84. // ->where(['order_id' => $order->id, 'is_delete' => 0])
  85. // ->select('id order_detail_id,goods_id,pic goods_pic')->asArray()->all();
  86. // return [
  87. // 'code' => 0,
  88. // 'msg' => 'success',
  89. // 'data' => [
  90. // 'order_id' => $order->id,
  91. // 'goods_list' => $order_detail_list,
  92. // ],
  93. // ];
  94. break;
  95. }
  96. }
  97. }