CouponController.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: zilongs
  5. * Date: 20-10-24
  6. * Time: 上午11:14
  7. */
  8. namespace App\Http\Controllers\Api\V1;
  9. use App\Models\Coupon;
  10. use App\Models\UserCoupon;
  11. class CouponController extends AuthController
  12. {
  13. public function couponList()
  14. {
  15. $data = Coupon::orderBy('id', 'desc')->paginate();
  16. return out($data);
  17. }
  18. public function receiveCoupon()
  19. {
  20. $req = request()->post();
  21. $this->validate(request(), [
  22. 'coupon_id' => 'required|integer'
  23. ]);
  24. $user = $this->user;
  25. if (UserCoupon::where('user_id', $user['id'])->where('coupon_id', $req['coupon_id'])->exists()) {
  26. return out(null, 10001, '您已经领取过该优惠券了');
  27. }
  28. $add = Coupon::select(['id as coupon_id', 'name', 'title', 'desc', 'rules', 'icon', 'type', 'usable_type', 'money', 'discount', 'min_consume_amount', 'max_reduce_amount', 'expire_type', 'effective_days', 'start_time', 'end_time'])->where('id', $req['coupon_id'])->first()->toArray();
  29. unset($add['is_receive']);
  30. $add['user_id'] = $user['id'];
  31. $expire_time = $add['end_time'];
  32. if ($add['expire_type'] == 1) {
  33. $expire_time = time() + $add['effective_days']*24*3600;
  34. }
  35. $add['expire_time'] = $expire_time;
  36. UserCoupon::create($add);
  37. return out();
  38. }
  39. public function userCouponList()
  40. {
  41. $user = $this->user;
  42. $data = UserCoupon::where('user_id', $user['id'])->where('status', 1)->where('expire_time', '>', time())->orderBy('id', 'desc')->paginate();
  43. return out($data);
  44. }
  45. }