You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
106 lines
3.2 KiB
106 lines
3.2 KiB
<?php |
|
/** |
|
* Created by IntelliJ IDEA. |
|
* User: luwei |
|
* Date: 2017/8/15 |
|
* Time: 17:23 |
|
*/ |
|
|
|
namespace app\modules\api\models; |
|
|
|
use app\models\Goods; |
|
use app\models\IntegralOrder; |
|
use app\models\IntegralOrderDetail; |
|
use app\models\Order; |
|
use app\models\OrderDetail; |
|
|
|
class OrderCommentPreview extends ApiModel |
|
{ |
|
public $store_id; |
|
public $user_id; |
|
public $order_id; |
|
public $type; |
|
public function rules() |
|
{ |
|
return [ |
|
[['order_id'], 'required'], |
|
[[ 'type'], 'string'], |
|
]; |
|
} |
|
public function search() |
|
{ |
|
if (!$this->validate()) { |
|
return $this->errorResponse; |
|
} |
|
|
|
switch ($this->type) { |
|
case 'mall': |
|
$order = Order::findOne([ |
|
'is_delete' => 0, |
|
'store_id' => $this->store_id, |
|
'user_id' => $this->user_id, |
|
'id' => $this->order_id, |
|
]); |
|
break; |
|
default: |
|
$order = IntegralOrder::findOne([ |
|
'is_delete' => 0, |
|
'store_id' => $this->store_id, |
|
'user_id' => $this->user_id, |
|
'id' => $this->order_id, |
|
]); |
|
break; |
|
} |
|
if (!$order) { |
|
return [ |
|
'code' => 1, |
|
'msg' => '订单不存在!', |
|
]; |
|
} |
|
if ($order->is_confirm != 1) { |
|
return [ |
|
'code' => 1, |
|
'msg' => '订单尚未确认收货,无法评价!', |
|
]; |
|
} |
|
if ($order->is_comment == 1) { |
|
return [ |
|
'code' => 1, |
|
'msg' => '订单已评价!', |
|
]; |
|
} |
|
|
|
switch ($this->type) { |
|
case 'mall': |
|
$order_detail_list = OrderDetail::find() |
|
->where(['order_id' => $order->id, 'is_delete' => 0]) |
|
->select('id order_detail_id,goods_id')->asArray()->all(); |
|
|
|
foreach ($order_detail_list as $i => $order_detail) { |
|
$order_detail_list[$i]['goods_pic'] = Goods::getGoodsPicStatic($order_detail['goods_id'])->pic_url; |
|
} |
|
return [ |
|
'code' => 0, |
|
'msg' => 'success', |
|
'data' => [ |
|
'order_id' => $order->id, |
|
'goods_list' => $order_detail_list, |
|
], |
|
]; |
|
break; |
|
default: |
|
$order_detail_list = IntegralOrderDetail::find() |
|
->where(['order_id' => $order->id, 'is_delete' => 0]) |
|
->select('id order_detail_id,goods_id,pic goods_pic')->asArray()->all(); |
|
return [ |
|
'code' => 0, |
|
'msg' => 'success', |
|
'data' => [ |
|
'order_id' => $order->id, |
|
'goods_list' => $order_detail_list, |
|
], |
|
]; |
|
break; |
|
} |
|
} |
|
}
|
|
|