StoreCouponsController.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. <?php
  2. namespace app\api\controller\store;
  3. use app\models\store\StoreCouponIssue;
  4. use app\Request;
  5. use crmeb\services\UtilService;
  6. use app\models\store\StoreCouponUser;
  7. /**
  8. * 优惠券类
  9. * Class StoreCouponsController
  10. * @package app\api\controller\store
  11. */
  12. class StoreCouponsController
  13. {
  14. /**
  15. * 可领取优惠券列表
  16. * @param Request $request
  17. * @return mixed
  18. * @throws \Exception
  19. */
  20. public function lst(Request $request)
  21. {
  22. $data = UtilService::getMore([
  23. ['type', 0],
  24. ['page', 0],
  25. ['limit', 0],
  26. ['product_id', 0]
  27. ], $request);
  28. return app('json')->successful(StoreCouponIssue::getIssueCouponList($request->uid(), $data['limit'], $data['page'], $data['type'], $data['product_id'], $request->mer_id()));
  29. }
  30. /**
  31. * 领取优惠券
  32. *
  33. * @param Request $request
  34. * @return mixed
  35. */
  36. public function receive(Request $request)
  37. {
  38. list($couponId) = UtilService::getMore([['couponId', 0]], $request, true);
  39. if (!$couponId || !is_numeric($couponId)) return app('json')->fail('参数错误!');
  40. if (StoreCouponIssue::issueUserCoupon($couponId, $request->uid(), $request->mer_id())) {
  41. return app('json')->successful('领取成功');
  42. } else {
  43. return app('json')->fail(StoreCouponIssue::getErrorInfo('领取失败!'));
  44. }
  45. }
  46. /**
  47. * 用户已领取优惠券
  48. * @param Request $request
  49. * @param $types
  50. * @return mixed
  51. * @throws \think\db\exception\DataNotFoundException
  52. * @throws \think\db\exception\ModelNotFoundException
  53. * @throws \think\exception\DbException
  54. */
  55. public function user(Request $request, $types)
  56. {
  57. switch ($types) {
  58. case 0:
  59. case '':
  60. $list = StoreCouponUser::getUserAllCoupon($request->uid(), $request->mer_id());
  61. break;
  62. case 1:
  63. $list = StoreCouponUser::getUserValidCoupon($request->uid(), $request->mer_id());
  64. break;
  65. case 2:
  66. $list = StoreCouponUser::getUserAlreadyUsedCoupon($request->uid(), $request->mer_id());
  67. break;
  68. default:
  69. $list = StoreCouponUser::getUserBeOverdueCoupon($request->uid(), $request->mer_id());
  70. break;
  71. }
  72. foreach ($list as &$v) {
  73. $v['add_time'] = date('Y/m/d', $v['add_time']);
  74. $v['end_time'] = date('Y/m/d', $v['end_time']);
  75. }
  76. return app('json')->successful($list);
  77. }
  78. /**
  79. * 批量领取优惠券
  80. * @param Request $request
  81. * @return mixed
  82. */
  83. public function receive_batch(Request $request)
  84. {
  85. list($couponIds) = UtilService::postMore([
  86. ['couponId', []],
  87. ], $request, true);
  88. if (!count($couponIds)) return app('json')->fail('参数错误');
  89. $couponIdsError = [];
  90. $count = 0;
  91. $msg = '';
  92. foreach ($couponIds as $key => &$item) {
  93. if (!StoreCouponIssue::issueUserCoupon($item, $request->uid(), $request->mer_id())) {
  94. $couponIdsError[$count]['id'] = $item;
  95. $couponIdsError[$count]['msg'] = StoreCouponIssue::getErrorInfo('领取失败');
  96. } else {
  97. $couponIdsError[$count]['id'] = $item;
  98. $couponIdsError[$count]['msg'] = '领取成功';
  99. }
  100. $count++;
  101. }
  102. foreach ($couponIdsError as $key => &$value) {
  103. $msg = $msg . StoreCouponIssue::getIssueCouponTitle($value['id']) . ',' . $value['msg'];
  104. }
  105. return app('json')->fail($msg);
  106. }
  107. /**
  108. * 优惠券 订单获取
  109. * @param Request $request
  110. * @param $price
  111. * @return mixed
  112. */
  113. public function order(Request $request, $cartId, $price)
  114. {
  115. return app('json')->successful(StoreCouponUser::beUsableCouponList($request->uid(), $cartId, $price, $request->mer_id()));
  116. }
  117. }