App.php 6.7 KB

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