App.php 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. <?php
  2. namespace Passport\Src;
  3. use Dever;
  4. use Passport\Lib\Base;
  5. class App extends Base
  6. {
  7. /**
  8. * 更新用户信息
  9. *
  10. * @return mixed
  11. */
  12. public function update()
  13. {
  14. $uid = $this->check();
  15. $name = Dever::input('username');
  16. $avatar = Dever::input('avatar');
  17. $sex = Dever::input('gender');
  18. $city = Dever::input('city');
  19. $mobile = Dever::input('mobile');
  20. $province = Dever::input('province');
  21. $country = Dever::input('country');
  22. $info = Dever::load('passport/user-one', $uid);
  23. if ($info) {
  24. $update['set_username'] = $name;
  25. $update['set_avatar'] = $avatar;
  26. $update['set_sex'] = $sex;
  27. $update['set_city'] = $city;
  28. $update['set_province'] = $province;
  29. $update['set_country'] = $country;
  30. if ($country && $province && $city) {
  31. $update['set_area'] = $country . ',' . $province . ',' . $city;
  32. }
  33. $update['where_id'] = $uid;
  34. Dever::load('passport/user-update', $update);
  35. } else {
  36. Dever::alert('无效的用户id,请重新登录');
  37. }
  38. $result = Dever::db('passport/user')->one($uid);
  39. if ($name) {
  40. $result['username'] = $name;
  41. }
  42. if ($avatar) {
  43. $result['avatar'] = $avatar;
  44. }
  45. if ($sex) {
  46. $result['sex'] = $sex;
  47. }
  48. if ($city) {
  49. $result['city'] = $city;
  50. }
  51. if ($province) {
  52. $result['province'] = $province;
  53. }
  54. if ($country) {
  55. $result['country'] = $country;
  56. }
  57. if ($country && $province && $city) {
  58. $result['area'] = $update['set_area'];
  59. }
  60. $result['uid'] = $uid;
  61. $result['signature'] = Dever::login($uid);
  62. return $result;
  63. }
  64. /**
  65. * 注册用户信息:app端已经拿到了openid了
  66. *
  67. * @return mixed
  68. */
  69. public function wechat_reg()
  70. {
  71. $user = array();
  72. $user['temp'] = 2;
  73. $user['username'] = Dever::input('username');
  74. $user['avatar'] = Dever::input('avatar');
  75. $user['sex'] = Dever::input('gender');
  76. $user['city'] = Dever::input('city');
  77. $user['province'] = Dever::input('province');
  78. $user['country'] = Dever::input('country');
  79. $data = array();
  80. $data['openid'] = Dever::input('openid');
  81. $data['unionid'] = Dever::input('unionid');
  82. $data['access_token'] = Dever::input('access_token');
  83. $data['refresh_token'] = Dever::input('refresh_token');
  84. $data['expires_in'] = Dever::input('expires_in');
  85. $account = Dever::input('account', 1);
  86. $system = Dever::input('system', 1);
  87. $source_type = Dever::input('source_type');
  88. $source = Dever::input('source');
  89. $result = $this->wechat($data, $user, $account, $system, $source_type, $source);
  90. if (isset($result['uid']) && $result['uid']) {
  91. # 记录app登录日志
  92. $appData = array('uid' => $result['uid'], 'source_type' => $source_type);
  93. $app = Dever::db('passport/app')->one($appData);
  94. if (!$app) {
  95. $appData['system_id'] = $system;
  96. Dever::db('passport/app')->insert($appData);
  97. }
  98. }
  99. return $result;
  100. }
  101. /**
  102. * 生成用户或者登录
  103. *
  104. * @return int
  105. */
  106. public function login()
  107. {
  108. $mobile = Dever::input('mobile');
  109. $code = Dever::input('mcode');
  110. $system = Dever::input('system', 1);
  111. $source_type = Dever::input('source_type', 'ios');
  112. # 添加测试账号
  113. if ($mobile == '18710005124') {
  114. } else {
  115. $mobile = Dever::load('passport/reg')->checkMobileExists(false, -1);
  116. }
  117. $uid = false;
  118. $info = Dever::load('passport/user-one', array('mobile' => $mobile));
  119. if (!$info) {
  120. $data['username'] = Dever::hide($mobile);
  121. $data['mobile'] = $mobile;
  122. $data['system'] = $system;
  123. $data['source_type'] = $source_type;
  124. $uid = $this->reg($source_type, $data);
  125. Dever::score($uid, 'mobile_reg', '手机号注册');
  126. } else {
  127. $uid = $this->combine($info['id'], $mobile, 'mobile');
  128. }
  129. # 记录app登录日志
  130. $appData = array('uid' => $uid, 'source_type' => $source_type);
  131. $app = Dever::db('passport/app')->one($appData);
  132. if (!$app) {
  133. $appData['system_id'] = $system;
  134. Dever::db('passport/app')->insert($appData);
  135. }
  136. $result = Dever::db('passport/user')->one($uid);
  137. $result['uid'] = $uid;
  138. $result['signature'] = Dever::login($uid);
  139. return $result;
  140. }
  141. /**
  142. * uuid登录
  143. *
  144. * @return int
  145. */
  146. public function login_uuid()
  147. {
  148. # 这里后续要加密
  149. $uuid = Dever::input('uuid');
  150. $system = Dever::input('system', 1);
  151. $source_type = Dever::input('source_type', 'applet');
  152. $appData = array('uuid' => $uuid, 'source_type' => $source_type);
  153. $app = Dever::db('passport/app')->one($appData);
  154. if (!$app) {
  155. $user['add_username'] = '';
  156. $user['add_bind'] = 2;
  157. $user['add_temp'] = 1;
  158. $user['add_source_type'] = $source_type;
  159. $user['add_system_id'] = $system;
  160. $uid = Dever::load('passport/user-insert', $user);
  161. $this->createUsername($uid, '', true);
  162. $appData['uid'] = $uid;
  163. $appData['system_id'] = $system;
  164. Dever::db('passport/app')->insert($appData);
  165. } else {
  166. $uid = $app['uid'];
  167. }
  168. $result = Dever::db('passport/user')->one($uid);
  169. $result['uid'] = $uid;
  170. $result['signature'] = Dever::login($uid);
  171. return $result;
  172. }
  173. //获取用户信息
  174. public function user() {
  175. $uid = $this->check();
  176. $data=Dever::db('passport/user')->one($uid);
  177. if(!$data['pic']){
  178. $data['pic']=DEVER_APP_HOST . '../data/upload/pic.png';
  179. }
  180. return $data;
  181. }
  182. }