StoreCouponsController.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016~2020 https://www.crmeb.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  8. // +----------------------------------------------------------------------
  9. // | Author: CRMEB Team <admin@crmeb.com>
  10. // +----------------------------------------------------------------------
  11. namespace app\controller\api\v1\activity;
  12. use app\Request;
  13. use app\services\activity\coupon\StoreCouponIssueServices;
  14. use app\services\activity\coupon\StoreCouponUserServices;
  15. /**
  16. * 优惠券类
  17. * Class StoreCouponsController
  18. * @package app\controller\api\store
  19. */
  20. class StoreCouponsController
  21. {
  22. protected $services;
  23. public function __construct(StoreCouponIssueServices $services)
  24. {
  25. $this->services = $services;
  26. }
  27. /**
  28. * 可领取优惠券列表
  29. * @param Request $request
  30. * @return mixed
  31. */
  32. public function lst(Request $request)
  33. {
  34. $where = $request->getMore([
  35. ['type', 0],
  36. ['product_id', 0],
  37. ['brand_id', 0]
  38. ]);
  39. if ($request->getFromType() == 'pc') $where['type'] = -1;
  40. return app('json')->successful($this->services->getIssueCouponList($request->uid(), $where)['list']);
  41. }
  42. /**
  43. * 领取优惠券
  44. *
  45. * @param Request $request
  46. * @return mixed
  47. */
  48. public function receive(Request $request)
  49. {
  50. [$couponId] = $request->getMore([
  51. ['couponId', 0]
  52. ], true);
  53. if (!$couponId || !is_numeric($couponId)) return app('json')->fail('参数错误!');
  54. /** @var StoreCouponIssueServices $couponIssueService */
  55. $couponIssueService = app()->make(StoreCouponIssueServices::class);
  56. $coupon = $couponIssueService->issueUserCoupon((int)$couponId, $request->user(), false);
  57. if ($coupon) {
  58. $coupon = $coupon->toArray();
  59. return app('json')->success('领取成功', $coupon);
  60. }
  61. return app('json')->fail('领取失败');
  62. }
  63. /**
  64. * 用户已领取优惠券
  65. * @param Request $request
  66. * @param $types
  67. * @return mixed
  68. * @throws \think\db\exception\DataNotFoundException
  69. * @throws \think\db\exception\ModelNotFoundException
  70. * @throws \think\exception\DbException
  71. */
  72. public function user(Request $request, StoreCouponUserServices $storeCouponUserService, $types)
  73. {
  74. $uid = (int)$request->uid();
  75. return app('json')->successful($storeCouponUserService->getUserCounpon($uid, $types));
  76. }
  77. /**
  78. * 优惠券 订单获取
  79. * @param Request $request
  80. * @param $price
  81. * @return mixed
  82. */
  83. public function order(Request $request, StoreCouponIssueServices $service, $cartId, $new)
  84. {
  85. [$shipping_type, $storeId] = $request->getMore([
  86. ['shipping_type', 1],
  87. ['store_id', 0],
  88. ], true);
  89. return app('json')->successful($service->beUsableCouponList((int)$request->uid(), $cartId, !!$new, (int)$shipping_type, (int)$storeId));
  90. }
  91. }