123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- <?php
- namespace app\api\controller\mall;
- use app\common\controller\Api;
- use app\common\model\OrderInfo;
- use app\common\model\Orders;
- use think\db\Query;
- /**
- * 商城商品评价接口
- * @inheritdoc
- */
- class GoodsEval extends Api
- {
- protected $noNeedRight='*';
- protected $noNeedLogin=['goods'];
- /**
- * 商品评价列表
- * @ApiParams (name=goods_id,description=商品ID)
- * @ApiParams (name=page,description=分页)
- * @ApiParams (name=limit,description=分页)
- */
- public function goods(){
- $data=$this->_validate([
- 'goods_id|商品'=>['require'],
- ]);
- $list=\app\common\model\GoodsEval::with(['user'])->where('goods_id',$data['goods_id'])
- ->order('id','desc')
- ->paginate(input('limit')?:15);
- $this->success('',$list);
- }
- /**
- * 待评价已评价列表
- * @ApiParams (name=type,description=1待评价2已评价)
- * @ApiParams (name=page,description=分页)
- * @ApiParams (name=limit,description=分页)
- * @ApiReturnParams (name=eval,description=评价对象)
- * @ApiReturnParams (name="eval.content",description=评价内容)
- */
- public function user_list(){
- $data=$this->_validate([
- 'type'=>['require','in:1,2'],
- ]);
- $user=$this->auth->getUser();
- $goods= OrderInfo::order('id','desc')
- ->where('user_id',$user->id)
- ->where(function (Query $query)use ($data){
- $orders=(new Orders())->getTable();
- if($data['type']==1){
- $query
- ->whereNotExists("select * from goods_eval where goods_eval.order_id=order_info.order_id and goods_eval.goods_id=order_info.goods_id")
- ->whereExists("select * from orders where {$orders}.id=order_info.order_id and {$orders}.status=".Orders::S_OVER);
- }else{
- $query
- ->whereExists('select * from goods_eval where goods_eval.order_id=order_info.order_id and goods_eval.goods_id=order_info.goods_id')
- ->whereExists("select * from {$orders} where {$orders}.id=order_info.order_id and {$orders}.status=".Orders::S_OVER);
- }
- })
- ->with('orders')
- ->group('order_id,goods_id')
- ->paginate(input('limit')?:15);
- foreach ($goods as $good){
- $good['eval']=\app\common\model\GoodsEval::getEval($good);
- }
- $this->success('',$goods);
- }
- /**
- * 评价商品
- * @ApiParams (name=goods_id,description=商品ID)
- * @ApiParams (name=order_id,description=订单ID)
- * @ApiParams (name=content,description=内容)
- */
- public function create(){
- $data=$this->_validate([
- 'goods_id'=>['require'],
- 'order_id'=>['require'],
- 'content|内容'=>['require','max:250'],
- ]);
- $user=$this->auth->getUser();
- $orderCheck=$user->orders()->where('id',$data['order_id'])
- ->where('status',Orders::S_OVER)
- ->find();
- if(!$orderCheck){
- $this->error('您无法进行评价');
- }
- $has=\app\common\model\GoodsEval::where('user_id',$user['id'])
- ->where('goods_id',$data['goods_id'])
- ->where('order_id',$data['order_id'])
- ->find();
- if($has){
- $this->error('您已评价');
- }
- $eval=\app\common\model\GoodsEval::create([
- 'user_id'=>$user['id'],
- 'goods_id'=>$data['goods_id'],
- 'order_id'=>$data['order_id'],
- 'content'=>$data['content'],
- ]);
- $this->success('',$eval);
- }
- }
|