Api.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. <?php
  2. namespace Invite\Src;
  3. use Dever;
  4. use Invite\Lib\Relation;
  5. class Api
  6. {
  7. # 获取邀请码
  8. public function code($uid)
  9. {
  10. $info = Dever::db('invite/code')->one(array('uid' => $uid));
  11. if ($info) {
  12. return $info['value'];
  13. } else {
  14. $code = Dever::uid($uid);
  15. return $this->createCode($uid, $code);
  16. }
  17. }
  18. private function createCode($uid, $code)
  19. {
  20. $info = Dever::db('invite/code')->one(array('value' => $code));
  21. if ($info) {
  22. $code = Dever::code(6);
  23. return $this->createCode($uid, $code);
  24. } else {
  25. Dever::db('invite/code')->insert(array('value' => $code, 'uid' => $uid));
  26. return $code;
  27. }
  28. }
  29. # 根据邀请码获取邀请人uid
  30. public function getUid($code)
  31. {
  32. $info = Dever::db('invite/code')->one(array('value' => $code));
  33. if ($info) {
  34. return $info['uid'];
  35. }
  36. return false;
  37. }
  38. # 设置邀请关系
  39. public function setRelation($uid, $parent = false, $code = false)
  40. {
  41. if ($code) {
  42. $parent = $this->getCode($code);
  43. }
  44. if ($parent <= 0) {
  45. $parent = $this->getSourceUid($uid, false);
  46. if ($parent <= 0) {
  47. return false;
  48. }
  49. }
  50. $relation = new Relation();
  51. $relation->set($parent, $uid);
  52. return true;
  53. }
  54. # 获取某个用户的下级
  55. public function getChild($uid, $level = false)
  56. {
  57. $relation = new Relation();
  58. return $relation->getChild($uid, $level);
  59. }
  60. # 获取某个用户的上级
  61. public function getParent($uid, $level = 1)
  62. {
  63. $relation = new Relation();
  64. $info = $relation->getParent($uid, $level);
  65. if ($info) {
  66. return $info['uid'];
  67. }
  68. return false;
  69. }
  70. # 获取来源用户uid
  71. public function getSourceUid($uid, $error = true)
  72. {
  73. $source_signature = Dever::input('source_signature');
  74. if (!$source_signature) {
  75. if (!$error) {
  76. return false;
  77. }
  78. Dever::alert('错误的来源uid');
  79. }
  80. $user = Dever::loginResult($source_signature, false);
  81. if (!isset($user['uid'])) {
  82. if (!$error) {
  83. return false;
  84. }
  85. Dever::alert('错误的来源uid');
  86. }
  87. $source_uid = $user['uid'];
  88. if ($uid == $source_uid) {
  89. if (!$error) {
  90. return false;
  91. }
  92. Dever::alert('来源uid和当前uid相同');
  93. }
  94. return $source_uid;
  95. }
  96. }