45 lines
1.6 KiB
PHP
45 lines
1.6 KiB
PHP
<?php
|
|
|
|
|
|
namespace Yunshop\MicroCommunities\api;
|
|
|
|
|
|
use app\common\components\ApiController;
|
|
use app\common\exceptions\AppException;
|
|
use Yunshop\MicroCommunities\models\MicroCommunitiesStick;
|
|
|
|
class GoodsController extends ApiController
|
|
{
|
|
public function index()
|
|
{
|
|
return $this->successJson('ok', $this->getList());
|
|
}
|
|
|
|
public function getList()
|
|
{
|
|
if (!request()->goods_id) {
|
|
throw new AppException('请输入商品ID');
|
|
}
|
|
$model = MicroCommunitiesStick::uniacid()
|
|
->where(['goods_id' => request()->goods_id, 'is_show' => 1, 'type' => 1])
|
|
->with(['hasOneStickUser' => function ($query) {
|
|
$query->select('avatar', 'nickname', 'uid');
|
|
}, 'hasManyComment' => function ($q2) {
|
|
$q2->select('stick_id', 'id');
|
|
},'hasManyImage'=> function ($query){
|
|
$query->where('is_del',0)->select('id','stick_id','url');
|
|
}])
|
|
->select(['id','praise_num','user_id','title'])
|
|
->orderBy('created_at', 'desc')
|
|
->paginate(10, ['*'], '', (int)request()->page ?: 1);
|
|
$recordsModels = $model->toArray();
|
|
$recordsModels['data'] = collect($recordsModels['data'])->map(function ($item) {
|
|
$item['has_one_stick_user']['avatar'] = yz_tomedia($item['has_one_stick_user']['avatar']);
|
|
$item['has_many_image'] = set_medias($item['has_many_image'], 'url');
|
|
$collection = collect($item)
|
|
->put('comment_num', count($item['has_many_comment']));
|
|
return $collection;
|
|
});
|
|
return $recordsModels;
|
|
}
|
|
} |