InviteService.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. <?php
  2. namespace bizMall\invite\services;
  3. use bizMall\base\services\BaseService;
  4. use bizMall\invite\classes\InviteAssetClass;
  5. use bizMall\invite\classes\InviteClass;
  6. use bizMall\promote\classes\CouponClass;
  7. use bizMall\user\classes\UserClass;
  8. use bizMall\user\services\UserService;
  9. use common\components\util;
  10. class InviteService extends BaseService
  11. {
  12. public static $baseFile = '\bizMall\invite\classes\InviteClass';
  13. //取详情 ssh 2019.12.18
  14. public static function getDetail($id)
  15. {
  16. $list = InviteClass::getByIds([$id]);
  17. $list = InviteClass::groupInviteBaseInfo($list);
  18. $info = current($list);
  19. $introUserId = $info['introUserId'];
  20. //用户的邀请资产
  21. $stat = InviteStatService::getStat($introUserId);
  22. $info['inviteNum'] = isset($stat['inviteNum']) ? $stat['inviteNum'] : 0;
  23. $info['orderNum'] = isset($stat['orderNum']) ? $stat['orderNum'] : 0;
  24. return $info;
  25. }
  26. public static function getInviteList($where)
  27. {
  28. $data = InviteClass::getList('*', $where, 'addTime DESC');
  29. $list = isset($data['list']) && !empty($data['list']) ? $data['list'] : [];
  30. if (empty($list)) {
  31. return $data;
  32. }
  33. $data['list'] = InviteClass::groupInviteBaseInfo($list);
  34. return $data;
  35. }
  36. //用户是否被邀请过 ssh 2019.12.14
  37. public static function hasInvited($user)
  38. {
  39. return InviteClass::hasInvited($user);
  40. }
  41. //邀请有礼 新人 优惠券 ssh 2019.12.14
  42. public static function hasNewGift($userInfo)
  43. {
  44. return InviteClass::hasNewGift($userInfo);
  45. }
  46. //领取邀请有礼 ssh 2019.12.14
  47. public static function getNewGift($userInfo, $introUserId)
  48. {
  49. $newUser = UserService::newUser($userInfo);
  50. if ($newUser == false) {
  51. util::fail('新人才能领哦');
  52. }
  53. $sjId = $userInfo['sjId'];
  54. $gift = InviteAssetClass::newGift($sjId);
  55. if (empty($gift)) {
  56. util::fail('没有找到奖励');
  57. }
  58. $hasInvite = InviteClass::hasInvited($userInfo);
  59. if ($hasInvite) {
  60. util::fail('已经领过了');
  61. }
  62. $userId = $userInfo['id'];
  63. $time = time();
  64. $deadline = $time + $gift['duration'] * 86400;
  65. $prize = $gift['prize'];
  66. $introduce = UserClass::getById($introUserId);
  67. if (empty($introduce)) {
  68. util::fail('没有找到介绍人');
  69. }
  70. $introMobile = $introduce['mobile'];
  71. $introUserName = $introduce['userName'];
  72. $userName = $userInfo['userName'];
  73. $mobile = $userInfo['mobile'];
  74. $data = [
  75. 'userId' => $userId,
  76. 'userName' => $userName,
  77. 'mobile' => $mobile,
  78. 'introUserId' => $introUserId,
  79. 'introMobile' => $introMobile,
  80. 'introUserName' => $introUserName,
  81. 'prize' => $prize,
  82. 'addTime' => $time,
  83. 'sjId' => $sjId
  84. ];
  85. $invite = InviteClass::add($data);
  86. $id = $invite['id'];
  87. $now = time();
  88. $amount = $gift['amount'];
  89. $miniCost = $gift['miniCost'];
  90. $couponData = [
  91. 'sjId' => $sjId,
  92. 'introUserId' => $introUserId,
  93. 'userId' => $userId,
  94. 'mobile' => $userInfo['mobile'],
  95. 'amount' => $amount,
  96. 'miniCost' => $miniCost,
  97. 'beginTime' => $now,
  98. 'deadline' => $deadline,
  99. 'source' => 1,
  100. 'sourceId' => $id,
  101. 'addTime' => $now,
  102. 'createTime' => date("Y-m-d H:i:s")
  103. ];
  104. $coupon = CouponClass::add($couponData);
  105. $couponId = $coupon['id'];
  106. InviteClass::updateById($id, ['couponId' => $couponId]);
  107. }
  108. //检查邀请有礼的权限 ssh 2019.12.18
  109. public static function valid($invite, $sjId)
  110. {
  111. if (empty($invite)) {
  112. util::fail('邀请无效');
  113. }
  114. if ($invite['sjId'] != $sjId) {
  115. util::fail('您无法操作');
  116. }
  117. }
  118. //兑奖
  119. public static function give($invite)
  120. {
  121. if ($invite['status'] != 1) {
  122. util::fail('请确认是否可以兑奖');
  123. }
  124. $time = time();
  125. $id = $invite['id'];
  126. InviteClass::updateById($id, ['status' => 2, 'giveTime' => $time]);
  127. }
  128. }