Group.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. <?php
  2. namespace Task\Src;
  3. use Dever;
  4. use Task\Lib\Base;
  5. class Group extends Base
  6. {
  7. public function __construct()
  8. {
  9. parent::__construct();
  10. $this->checkUser();
  11. }
  12. /**
  13. * 我的小队
  14. *
  15. * @return mixed
  16. */
  17. public function user()
  18. {
  19. $group = $this->one();
  20. $data = array();
  21. if ($group) {
  22. $data = Dever::db('task/user_group_member')->getAll(array('group_id' => $group['id']));
  23. if ($data) {
  24. foreach ($data as $k => $v) {
  25. $data[$k]['user'] = Dever::db('passport/user')->one($v['uid']);
  26. $data[$k]['time'] = date('Y-m-d H:i', $v['cdate']);
  27. }
  28. }
  29. return $data;
  30. }
  31. return $data;
  32. }
  33. /**
  34. * 根据邀请码搜索队长
  35. *
  36. * @return mixed
  37. */
  38. public function info($code)
  39. {
  40. $where['code'] = $code;
  41. $group = Dever::db('task/user_group')->one($where);
  42. return $group;
  43. }
  44. /**
  45. * 我的邀请码
  46. *
  47. * @return mixed
  48. */
  49. public function one()
  50. {
  51. $where['uid'] = $this->data['uid'];
  52. $group = Dever::db('task/user_group')->one($where);
  53. if (!$group) {
  54. # 生成邀请码
  55. $code = $this->createCode();
  56. $group['uid'] = $where['uid'];
  57. $group['code'] = $code;
  58. $group['id'] = Dever::db('task/user_group')->insert($group);
  59. }
  60. # 生成二维码图片
  61. $url = Dever::url('user/set?qrcode=' . $group['code'], 'main');
  62. $url = Dever::url('reg?refer='.Dever::encode($url), 'main');
  63. $group['url'] = Dever::url('task/group.qrcode?url=' . urlencode($url));
  64. return $group;
  65. }
  66. public function qrcode()
  67. {
  68. Dever::import('qrcode');
  69. $url = urldecode(Dever::input('url'));
  70. return Dever::qrcode($url);
  71. }
  72. private function createCode()
  73. {
  74. $config = Dever::db('main/config')->one();
  75. if ($config['usercode'] > 1) {
  76. if ($config['usercode'] == 2) {
  77. $code = Dever::rand($config['code_len'], 0);
  78. } else {
  79. $code = Dever::rand($config['code_len']);
  80. }
  81. if ($this->info($code)) {
  82. return $this->createCode();
  83. } else {
  84. return $code;
  85. }
  86. } else {
  87. $code = '1';
  88. for ($i = 0; $i < $config['code_len'] -1; $i++) {
  89. $code .= '0';
  90. }
  91. return $code + $this->data['uid'];
  92. }
  93. }
  94. /**
  95. * 加入小队
  96. *
  97. * @return mixed
  98. */
  99. public function submit()
  100. {
  101. $code = Dever::input('code');
  102. if (!$code) {
  103. Dever::alert('邀请码不正确');
  104. }
  105. $where['code'] = $code;
  106. $group = Dever::db('task/user_group')->one($where);
  107. if (!$group) {
  108. Dever::alert('邀请码不正确');
  109. }
  110. $info = Dever::db('task/user_group_member')->one(array('uid' => $this->data['uid']));
  111. if (!$info) {
  112. $insert['uid'] = $this->data['uid'];
  113. $insert['group_id'] = $grou['id'];
  114. $insert['status'] = 2;
  115. return Dever::db('task/user_group_member')->insert($insert);
  116. }
  117. return $info['id'];
  118. }
  119. }