Coupon.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. <?php
  2. namespace addons\shopro\controller;
  3. use app\admin\model\shopro\Coupon as CouponModel;
  4. use addons\shopro\traits\CouponSend;
  5. use app\admin\model\shopro\goods\Goods as GoodsModel;
  6. class Coupon extends Common
  7. {
  8. use CouponSend;
  9. protected $noNeedLogin = ['index', 'listByGoods', 'detail'];
  10. protected $noNeedRight = ['*'];
  11. public function index()
  12. {
  13. $ids = $this->request->param('ids', '');
  14. $coupons = CouponModel::with(['user_coupons'])
  15. ->normal() // 正常的可以展示的优惠券
  16. ->canGet() // 在领取时间之内的
  17. ->order('id', 'desc');
  18. if ($ids) {
  19. $coupons = $coupons->whereIn('id', $ids);
  20. }
  21. $coupons = $coupons->paginate($this->request->param('list_rows', 10))->each(function ($coupon) {
  22. $coupon->get_status = $coupon->get_status;
  23. $coupon->get_status_text = $coupon->get_status_text;
  24. });
  25. $this->success('获取成功', $coupons);
  26. }
  27. /**
  28. * 商品相关的优惠券列表,前端商品详情使用
  29. *
  30. * @param Request $request
  31. * @param int $goods_id
  32. * @return void
  33. */
  34. public function listByGoods()
  35. {
  36. $user = auth_user();
  37. $goods_id = $this->request->param('goods_id');
  38. $goods = GoodsModel::field('id,category_ids')->where('id', $goods_id)->find();
  39. if (!$goods) {
  40. $this->error(__('No Results were found'));
  41. }
  42. $coupons = CouponModel::with(['user_coupons'])
  43. ->normal() // 正常的可以展示的优惠券
  44. ->canGet() // 在领取时间之内的
  45. ->goods($goods) // 符合指定商品,并且检测商品所属分类
  46. ->order('id', 'desc');
  47. if ($user) {
  48. // 关联用户优惠券
  49. $coupons = $coupons->with(['userCoupons']);
  50. }
  51. $coupons = $coupons->select();
  52. $coupons = collection($coupons)->each(function ($coupon) {
  53. $coupon->get_status = $coupon->get_status;
  54. $coupon->get_status_text = $coupon->get_status_text;
  55. });
  56. $this->success('获取成功', $coupons);
  57. }
  58. public function get()
  59. {
  60. $id = $this->request->param('id');
  61. $this->repeatFilter(null, 2);
  62. $userCoupon = $this->getCoupon($id);
  63. $this->success('领取成功');
  64. // $this->success('领取成功', $userCoupon);
  65. }
  66. public function detail()
  67. {
  68. $id = $this->request->param('id');
  69. $coupon = CouponModel::where('id', $id)->find();
  70. if (!$coupon) {
  71. $this->error(__('No Results were found'));
  72. }
  73. $coupon->get_status = $coupon->get_status;
  74. $coupon->get_status_text = $coupon->get_status_text;
  75. $coupon->items_value = $coupon->items_value;
  76. $this->success('优惠券详情', $coupon);
  77. }
  78. }