InviteService.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. <?php
  2. namespace biz\invite\services;
  3. use biz\base\services\BaseService;
  4. use biz\invite\classes\InviteAssetClass;
  5. use biz\invite\classes\InviteClass;
  6. use biz\promote\classes\CouponClass;
  7. use biz\user\classes\UserClass;
  8. use biz\user\services\UserService;
  9. use common\components\util;
  10. class InviteService extends BaseService
  11. {
  12. public static $baseFile = '\biz\invite\classes\InviteClass';
  13. //取详情 shish 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. //用户是否被邀请过 shish 2019.12.14
  37. public static function hasInvited($user)
  38. {
  39. return InviteClass::hasInvited($user);
  40. }
  41. //邀请有礼 新人 优惠券 shish 2019.12.14
  42. public static function hasNewGift($userInfo)
  43. {
  44. return InviteClass::hasNewGift($userInfo);
  45. }
  46. //领取邀请有礼 shish 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. $merchantId = $userInfo['merchantId'];
  54. $gift = InviteAssetClass::newGift($merchantId);
  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. $data = [
  73. 'userId' => $userId,
  74. 'introUserId' => $introUserId,
  75. 'introMobile' => $introMobile,
  76. 'introUserName' => $introUserName,
  77. 'prize' => $prize,
  78. 'addTime' => $time,
  79. 'merchantId' => $merchantId
  80. ];
  81. $invite = InviteClass::add($data);
  82. $id = $invite['id'];
  83. $now = time();
  84. $amount = $gift['amount'];
  85. $miniCost = $gift['miniCost'];
  86. $couponData = [
  87. 'merchantId' => $merchantId,
  88. 'introUserId' => $introUserId,
  89. 'userId' => $userId,
  90. 'mobile' => $userInfo['mobile'],
  91. 'amount' => $amount,
  92. 'miniCost' => $miniCost,
  93. 'beginTime' => $now,
  94. 'deadline' => $deadline,
  95. 'source' => 1,
  96. 'sourceId' => $id,
  97. 'addTime' => $now,
  98. 'createTime' => date("Y-m-d H:i:s")
  99. ];
  100. $coupon = CouponClass::add($couponData);
  101. $couponId = $coupon['id'];
  102. InviteClass::updateById($id, ['couponId' => $couponId]);
  103. }
  104. //检查邀请有礼的权限 shish 2019.12.18
  105. public static function valid($invite, $merchantId)
  106. {
  107. if (empty($invite)) {
  108. util::fail('邀请无效');
  109. }
  110. if ($invite['merchantId'] != $merchantId) {
  111. util::fail('您没有权限操作');
  112. }
  113. }
  114. //兑奖
  115. public static function give($invite)
  116. {
  117. if ($invite['status'] != 1) {
  118. util::fail('请确认是否可以兑奖');
  119. }
  120. $time = time();
  121. $id = $invite['id'];
  122. InviteClass::updateById($id, ['status' => 2, 'giveTime' => $time]);
  123. }
  124. }