GoodsFav.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. namespace app\api\controller\mall;
  3. use app\common\controller\Api;
  4. use app\common\model\GoodsSku;
  5. /**
  6. * 商城收藏接口
  7. * @inheritdoc
  8. */
  9. class GoodsFav extends Api
  10. {
  11. protected $noNeedRight = '*';
  12. /**
  13. * 收藏商品列表
  14. * @ApiParams (name=page,dexcription=分页)
  15. * @ApiParams (name=limit,dexcription=分页)
  16. */
  17. public function index(){
  18. $user=$this->auth->getUser();
  19. $list=$user->favourite()
  20. ->order('id','desc')
  21. ->with(['goods'])
  22. ->paginate(input('limit',15))->toArray();
  23. foreach ($list['data'] as &$item){
  24. $item['sku']=GoodsSku::find($item['goods_sku_id']);
  25. }
  26. $this->success('',$list);
  27. }
  28. /**
  29. * 添加收藏
  30. * @ApiParams (name=goods_id,dexcription=商品id)
  31. * @ApiParams (name=goods_sku_id,dexcription=商品skuid)
  32. */
  33. public function store(){
  34. $user=$this->auth->getUser();
  35. $data=$this->_validate([
  36. 'goods_id'=>['require'],
  37. 'goods_sku_id'=>['require'],
  38. ]);
  39. GoodsSku::where('goods_id',$data['goods_id'])->where('id',$data['goods_sku_id'])->findOrFail();
  40. if(!$user->favourite()->where('fav_id',$data['goods_id'])->where('goods_sku_id',$data['goods_sku_id'])->find()){
  41. $user->favourite()->save([
  42. 'fav_type'=>'goods',
  43. 'fav_id'=>$data['goods_id'],
  44. 'goods_sku_id'=>$data['goods_sku_id'],
  45. ]);
  46. }
  47. $this->success();
  48. }
  49. /**
  50. * 删除收藏
  51. * @ApiParams (name=goods_id,dexcription=商品id)
  52. * @ApiParams (name=goods_sku_id,dexcription=商品skuid)
  53. */
  54. public function del(){
  55. $user=$this->auth->getUser();
  56. $data=$this->_validate([
  57. 'goods_id'=>['require'],
  58. 'goods_sku_id'=>['require'],
  59. ]);
  60. $user->favourite()->where('fav_id',$data['goods_id'])->where('goods_sku_id',$data['goods_sku_id'])->delete();
  61. $this->success();
  62. }
  63. }