GoodsBuyController.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * Author: 芸众商城 www.yunzshop.com
  5. * Date: 2017/4/11
  6. * Time: 上午10:20
  7. */
  8. namespace app\frontend\modules\order\controllers;
  9. use app\common\components\ApiController;
  10. use app\frontend\models\Member;
  11. use app\frontend\modules\member\services\MemberCartService;
  12. use app\frontend\modules\memberCart\MemberCartCollection;
  13. class GoodsBuyController extends ApiController
  14. {
  15. /**
  16. * @return MemberCartCollection
  17. * @throws \app\common\exceptions\AppException
  18. */
  19. protected function getMemberCarts()
  20. {
  21. $goods_params = [
  22. 'goods_id' => request()->input('goods_id'),
  23. 'total' => request()->input('total'),
  24. 'option_id' => request()->input('option_id'),
  25. ];
  26. $result = new MemberCartCollection();
  27. $result->push(MemberCartService::newMemberCart($goods_params));
  28. event(new \app\common\events\goods\BeforeSaveGoodsVerify(request()->input('goods_id'), request()->input('total')));
  29. return $result;
  30. }
  31. /**
  32. * @throws \app\common\exceptions\ShopException
  33. */
  34. protected function validateParam()
  35. {
  36. $this->validate([
  37. 'goods_id' => 'required|integer',
  38. 'option_id' => 'integer',
  39. 'total' => 'integer|min:1',
  40. ]);
  41. }
  42. /**
  43. * @return \Illuminate\Http\JsonResponse
  44. * @throws \app\common\exceptions\ShopException
  45. */
  46. public function index()
  47. {
  48. $this->validateParam();
  49. $trade = $this->getMemberCarts()->getTrade();
  50. return $this->successJson('成功', $trade);
  51. }
  52. }