123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- <?php
- namespace app\api\controller\mall;
- use app\admin\model\GoodsViewFavCart;
- use app\common\controller\Api;
- use app\common\model\Favourite;
- use app\common\model\GoodsSku;
- use think\Db;
- /**
- * 商城收藏接口
- * @inheritdoc
- */
- class GoodsFav extends Api
- {
- protected $noNeedRight = '*';
- /**
- * 收藏商品列表
- * @ApiParams (name=page,description=分页)
- * @ApiParams (name=limit,description=分页)
- * @ApiReturnParams (name=goods,description=商品对象)
- * @ApiReturnParams (name=sku,description=规格对象)
- */
- public function index(){
- $user=$this->auth->getUser();
- Favourite::delNotExists();
- $list=$user->favourite()
- ->order('id','desc')
- ->with(['goods'])
- ->paginate(input('limit',15))->toArray();
- foreach ($list['data'] as &$item){
- $item['sku']=GoodsSku::find($item['goods_sku_id']);
- }
- $this->success('',$list);
- }
- /**
- * 添加收藏
- * @ApiParams (name=goods_id,dexcription=商品id)
- * @ApiParams (name=goods_sku_id,dexcription=商品skuid)
- */
- public function store(){
- $user=$this->auth->getUser();
- $data=$this->_validate([
- 'goods_id'=>['require'],
- 'goods_sku_id'=>['require'],
- ]);
- $sku=GoodsSku::where('goods_id',$data['goods_id'])->where('id',$data['goods_sku_id'])->findOrFail();
- if(!$user->favourite()->where('fav_id',$data['goods_id'])->where('goods_sku_id',$data['goods_sku_id'])->find()){
- $user->favourite()->save([
- 'fav_type'=>'goods',
- 'fav_id'=>$data['goods_id'],
- 'goods_sku_id'=>$data['goods_sku_id'],
- ]);
- GoodsViewFavCart::increment($sku['goods_id'],'fav');
- }
- $this->success();
- }
- /**
- * 删除收藏
- * @ApiParams (name=goods_id,dexcription=商品id)
- * @ApiParams (name=goods_sku_id,dexcription=商品skuid)
- */
- public function del(){
- $user=$this->auth->getUser();
- $data=$this->_validate([
- 'goods_id'=>['require'],
- 'goods_sku_id'=>['require'],
- ]);
- $user->favourite()->where('fav_id',$data['goods_id'])->where('goods_sku_id',$data['goods_sku_id'])->delete();
- $this->success();
- }
- }
|