Coupon.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  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. $coupons = json_decode(json_encode($coupons),true);
  57. foreach($coupons as $key => $val){
  58. unset($coupons[$key]['user_coupons']);
  59. }
  60. $this->success('获取成功', $coupons);
  61. }
  62. public function get()
  63. {
  64. $id = $this->request->param('id');
  65. $this->repeatFilter(null, 2);
  66. $userCoupon = $this->getCoupon($id);
  67. $this->success('领取成功');
  68. // $this->success('领取成功', $userCoupon);
  69. }
  70. public function detail()
  71. {
  72. $id = $this->request->param('id');
  73. $coupon = CouponModel::where('id', $id)->find();
  74. if (!$coupon) {
  75. $this->error(__('No Results were found'));
  76. }
  77. $coupon->get_status = $coupon->get_status;
  78. $coupon->get_status_text = $coupon->get_status_text;
  79. $coupon->items_value = $coupon->items_value;
  80. $this->success('优惠券详情', $coupon);
  81. }
  82. }