MemberCardController.php 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  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\api\controller\v1\user;
  12. use app\Request;
  13. use app\services\activity\coupon\StoreCouponUserServices;
  14. use app\services\order\OtherOrderServices;
  15. use app\services\other\AgreementServices;
  16. use app\services\user\member\MemberCardServices;
  17. use app\services\user\member\MemberRecordServices;
  18. /** 会员卡
  19. * Class MemberCardController
  20. * @package app\api\controller\v1\user
  21. */
  22. class MemberCardController
  23. {
  24. protected $services = NUll;
  25. protected $channelType = ['weixin' => 'wechat', 'weixinh5' => 'weixinh5', 'routine' => 'routine', 'h5' => 'h5'];
  26. /** 初始化service层句柄
  27. * MemberCardController constructor.
  28. * @param MemberCardServices $memberCardServices
  29. */
  30. public function __construct(MemberCardServices $memberCardServices)
  31. {
  32. $this->services = $memberCardServices;
  33. }
  34. /**会员卡主页数据接口
  35. * @param Request $request
  36. * @return mixed
  37. */
  38. public function index(Request $request)
  39. {
  40. $member_rights = $this->services->getMemberRightsInfo();
  41. /** @var AgreementServices $agreementService */
  42. $agreementService = app()->make(AgreementServices::class);
  43. $member_explain = $agreementService->getAgreementBytype(1);
  44. $member_explain = (isset($member_explain['status']) && $member_explain['status'] == 1) ? $member_explain : "";
  45. $member_type = $this->services->DoMemberType();
  46. /** @var OtherOrderServices $OtherOrderServices */
  47. $OtherOrderServices = app()->make(OtherOrderServices::class);
  48. $is_get_free = $OtherOrderServices->isCanGetFree((int)$request->uid());
  49. /** @var StoreCouponUserServices $couponUserService */
  50. $couponUserService = app()->make(StoreCouponUserServices::class);
  51. $coupons = $couponUserService->getMemberCoupon($request->uid());
  52. return app('json')->successful([
  53. 'member_rights' => $member_rights['member_right'],
  54. 'is_get_free' => $is_get_free,
  55. 'member_explain' => $member_explain,
  56. 'member_type' => $member_type,
  57. 'member_coupons' => $coupons
  58. ]);
  59. }
  60. /** 卡密领取会员卡
  61. * @param Request $request
  62. * @return mixed
  63. */
  64. public function draw_member_card(Request $request)
  65. {
  66. $data = $request->postMore([
  67. ['member_card_code', ''],
  68. ['member_card_pwd', ''],
  69. ['from', 'weixin'],
  70. ]);
  71. $data['from'] = strtolower(trim($data['from']));
  72. if (!array_key_exists($data['from'], $this->channelType)) return app('json')->fail('非法渠道');
  73. $data['from'] = $this->channelType[$data['from']];
  74. $uid = (int)$request->uid();
  75. $this->services->drawMemberCard($data, $uid);
  76. return app('json')->successful("激活成功");
  77. }
  78. /** 会员券接口
  79. * @param Request $request
  80. * @return mixed
  81. * @throws \think\db\exception\DataNotFoundException
  82. * @throws \think\db\exception\DbException
  83. * @throws \think\db\exception\ModelNotFoundException
  84. */
  85. public function memberCouponList(Request $request)
  86. {
  87. /** @var StoreCouponUserServices $couponUserService */
  88. $couponUserService = app()->make(StoreCouponUserServices::class);
  89. $coupons = $couponUserService->getMemberCoupon($request->uid());
  90. return app('json')->successful($coupons);
  91. }
  92. /**计算会员天数
  93. * @param Request $request
  94. * @return mixed
  95. */
  96. public function getOverdueTime(Request $request)
  97. {
  98. $params = $request->getMore([
  99. ['member_type', ''],
  100. ['vip_day', ''],
  101. ['mc_id', 0]
  102. ]);
  103. $member_type = $params['member_type'];
  104. $vip_day = $params['vip_day'];
  105. /** @var \app\services\user\UserServices $userServices */
  106. $userServices = app()->make(\app\services\user\UserServices::class);
  107. $user_info = $userServices->getUserInfo($request->uid());
  108. if ($member_type == 'ever') {
  109. $overdue_time = 0;
  110. $is_ever_level = 1;
  111. } else {
  112. if ($user_info['is_money_level'] == 0) {
  113. $overdue_time = bcadd(bcmul($vip_day, 86400, 0), time(), 0);
  114. } else {
  115. $overdue_time = bcadd(bcmul($vip_day, 86400, 0), $user_info['overdue_time'], 0);
  116. }
  117. $is_ever_level = 0;
  118. }
  119. if ($is_ever_level == 1 || $user_info['is_ever_level']) {
  120. $res = "永久会员";
  121. } else {
  122. $res = date('Y-m-d', $overdue_time);
  123. }
  124. return app('json')->successful(['data' => $res]);
  125. }
  126. }