Me.php 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: sicilon_IT
  5. * Date: 2019/12/7
  6. * Time: 16:12
  7. */
  8. namespace app\index\controller;
  9. use app\common\model\memodel;
  10. use think\Controller;
  11. //extends controller 为什么不能继承
  12. class Me extends Controller{
  13. public function add(){
  14. //获取参数
  15. // $userinfo['address']=('post.address');
  16. // $userinfo['avatar_url']=I('post.avatarUrl');
  17. // $userinfo['city']=I('post.city');
  18. // $userinfo['company']=I('post.company');
  19. // $userinfo['county']=I('post.county');
  20. // $userinfo['gender']=I('post.gender');
  21. // $userinfo['id']=I('post.id');
  22. // $userinfo['nick_name']=I('post.nickName');
  23. // $userinfo['open_id']=I('post.openid');
  24. // $userinfo['province']=I('post.province');
  25. // $userinfo['tel']=I('post.tel');
  26. // $userinfo['union_id']=I('post.unionId');
  27. //验证部分
  28. $userinfo = request() -> param();
  29. $userinfo['open_id']=$userinfo['openId'];
  30. $userinfo['avatar_url']=$userinfo['avatarUrl'];
  31. $userinfo['nick_name']=$userinfo['nickName'];
  32. $userinfo['create_date']=date('Y-m-d H:i:s',time());
  33. // $userinfo['nick_name']=$userinfo['nickName'];
  34. //var_dump($userinfo);
  35. //openid为空,返回403
  36. //修改一下,文档中说自动处理了大写转成下划线加小写字母
  37. if (!$userinfo['openId']){
  38. //return
  39. $add_res['code']='403';
  40. return json($add_res);
  41. }
  42. $metabel=new memodel();
  43. //先根据open_id判断是否存在,这个以后应当放到logic中
  44. $u_info=$metabel->getinfobyopenid($userinfo['open_id']);
  45. if (!$u_info){
  46. //如果为空就新增
  47. $id=$metabel->saveme($userinfo);
  48. $Resultdata['id']=$id;
  49. //存储之后再查询
  50. $new_info=$metabel->getinfobyopenid($userinfo['open_id']);
  51. $add_res['code']='200';
  52. $add_res['resultData']=$new_info;
  53. return json($add_res);
  54. }else{
  55. //如果有,就另一个处理逻辑,判断是否有电话,没有电话就返回
  56. //返回数据,前端判断
  57. if (!$u_info['tel']){
  58. //看传参中是否有手机,如果有,加上,再返回数据,如果没有,直接返回
  59. if (array_key_exists('tel',$userinfo)){
  60. //传参中有,则更新操作
  61. //tel是另外一个接口,此处后来应该修改
  62. }else{
  63. //传参中也没有手机,直接返回
  64. $add_res['code']='200';
  65. $add_res['resultData']=$u_info;
  66. return json($add_res);
  67. }
  68. }else{
  69. $add_res['code']='200';
  70. $add_res['resultData']=$u_info;
  71. return json($add_res);
  72. }
  73. }
  74. }
  75. //更新手机号用
  76. public function updatemetel(){
  77. $userinfo = request() -> param();
  78. // var_dump($userinfo);
  79. if ($userinfo['tel']){
  80. //有手机号,继续
  81. $metabel=new memodel();
  82. $openid='';
  83. if(array_key_exists('open_id',$userinfo)){
  84. $openid=$userinfo['open_id'];
  85. }else{
  86. $openid=$userinfo['openid'];
  87. }
  88. $metabel->updatetelbyoopenid($openid,$userinfo['tel']);
  89. $u_info=$metabel->getinfobyopenid($openid);
  90. $u_info['openid']=$u_info['open_id'];
  91. $u_info['openId']=$u_info['open_id'];
  92. $update_res['code']='200';
  93. $update_res['resultData']=$u_info;;
  94. }else{
  95. //无手机号,返回错误
  96. $update_res['code']='400';
  97. }
  98. return json($update_res);
  99. }
  100. /*
  101. * 20200221
  102. * steelxu
  103. * 只存入openid的
  104. */
  105. public function samplelogin(){
  106. //
  107. $userinfo = request() -> param();
  108. $openid=$userinfo['openId'];
  109. $mtable=new memodel();
  110. $rinfo=$mtable->getinfobyopenid($openid);
  111. if (!$rinfo){
  112. $insinfo['open_id']=$openid;
  113. //2010303
  114. $insinfo['create_date']=date('Y-m-d H:i:s');
  115. $insinfo['create_pin']=rand(0,1);
  116. //
  117. $rid=$mtable->insopenid($insinfo);
  118. if (array_key_exists('unionid',$userinfo)){
  119. $unionid=$userinfo['unionid'];
  120. $mtable->updunionidbyopenid($openid,$unionid);
  121. }
  122. $Resultdata['id']=$rid;
  123. $Resultdata['openId']=$openid;
  124. $Resultdata['openid']=$openid;
  125. $Resultdata['create_pin']=$insinfo['create_pin'];
  126. }else{
  127. $Resultdata=$rinfo;
  128. $Resultdata['openId']=$rinfo['open_id'];
  129. $Resultdata['openid']=$rinfo['open_id'];
  130. $Resultdata['create_pin']=$rinfo['create_pin'];
  131. }
  132. $res_r['code']=200;
  133. $res_r['resultData']=$Resultdata;
  134. return json($res_r);
  135. }
  136. public function updateme(){
  137. //验证部分
  138. $userinfo = request() -> param();
  139. if (array_key_exists('unionid',$userinfo)){
  140. $userinfo['union_id']=$userinfo['unionId'];
  141. }
  142. $userinfo['open_id']=$userinfo['openId'];
  143. $userinfo['avatar_url']=$userinfo['avatarUrl'];
  144. $userinfo['nick_name']=$userinfo['nickName'];
  145. $userinfo['create_date']=date('Y-m-d H:i:s',time());
  146. // $userinfo['nick_name']=$userinfo['nickName'];
  147. //var_dump($userinfo);
  148. //openid为空,返回403
  149. //修改一下,文档中说自动处理了大写转成下划线加小写字母
  150. if (!$userinfo['openId']){
  151. //return
  152. $add_res['code']='403';
  153. return json($add_res);
  154. }
  155. $metabel=new memodel();
  156. //先根据open_id判断是否存在,这个以后应当放到logic中
  157. $u_info=$metabel->getinfobyopenid($userinfo['open_id']);
  158. if (!$u_info){
  159. //如果为空就新增
  160. $id=$metabel->saveme($userinfo);
  161. $Resultdata['id']=$id;
  162. //存储之后再查询
  163. $new_info=$metabel->getinfobyopenid($userinfo['open_id']);
  164. $new_info['openid']=$new_info['open_id'];
  165. $new_info['openId']=$new_info['open_id'];
  166. $add_res['code']='200';
  167. $add_res['resultData']=$new_info;
  168. return json($add_res);
  169. }else{
  170. //如果已经有open_id,则判断是否授权了union_id,进行二级登录
  171. if (!$u_info['nick_name']){
  172. //数据表中无姓名,则未授权姓名,传参中有姓名,则更新后返回
  173. if (array_key_exists('unionId',$userinfo)){
  174. $update_arr['union_id']=$userinfo['unionId'];
  175. $update_arr['avatar_url']=$userinfo['avatarUrl'];
  176. $update_arr['nick_name']=$userinfo['nickName'];
  177. $update_arr['gender']=$userinfo['gender'];
  178. $update_arr['province']=$userinfo['province'];
  179. $update_arr['city']=$userinfo['city'];
  180. $update_arr['country']=$userinfo['country'];
  181. $update_arr['create_date']=date('Y-m-d H:i:s',time());
  182. $metabel->updateinfobyopenid($userinfo['open_id'],$update_arr);
  183. //重新获取,返回
  184. $u_info=$metabel->getinfobyopenid($userinfo['open_id']);
  185. $u_info['openid']=$u_info['open_id'];
  186. $u_info['openId']=$u_info['open_id'];
  187. $add_res['code']='200';
  188. $add_res['resultData']=$u_info;
  189. return json($add_res);
  190. }else{
  191. //无姓名,则更新直接返回,不影响使用,但下个功能不能使用
  192. $update_arr['avatar_url']=$userinfo['avatarUrl'];
  193. $update_arr['nick_name']=$userinfo['nickName'];
  194. $update_arr['gender']=$userinfo['gender'];
  195. $update_arr['province']=$userinfo['province'];
  196. $update_arr['city']=$userinfo['city'];
  197. $update_arr['country']=$userinfo['country'];
  198. $update_arr['create_date']=date('Y-m-d H:i:s',time());
  199. $metabel->updateinfobyopenid($userinfo['open_id'],$update_arr);
  200. //重新获取,返回
  201. $u_info=$metabel->getinfobyopenid($userinfo['open_id']);
  202. $u_info['openid']=$u_info['open_id'];
  203. $u_info['openId']=$u_info['open_id'];
  204. $add_res['code']='200';
  205. $add_res['resultData']=$u_info;
  206. return json($add_res);
  207. }
  208. }else{
  209. //数据表中有姓名,则判断有无电话,进行三级登录
  210. //如果有,就另一个处理逻辑,判断是否有电话,没有电话就返回
  211. //返回数据,前端判断
  212. if (!$u_info['tel']){
  213. //看传参中是否有手机,如果有,加上,再返回数据,如果没有,直接返回,目前不强制登录手机,
  214. if (array_key_exists('tel',$userinfo)){
  215. //传参中有,则更新操作
  216. //tel是另外一个接口,此处后来应该修改
  217. }else{
  218. //传参中也没有手机,直接返回
  219. $u_info['openid']=$u_info['open_id'];
  220. $u_info['openId']=$u_info['open_id'];
  221. $add_res['code']='200';
  222. $add_res['resultData']=$u_info;
  223. return json($add_res);
  224. }
  225. }else{
  226. //数据表中有手机,说明手机号已授权,直接返回
  227. $u_info['openid']=$u_info['open_id'];
  228. $u_info['openId']=$u_info['open_id'];
  229. $add_res['code']='200';
  230. $add_res['resultData']=$u_info;
  231. return json($add_res);
  232. }
  233. }
  234. }
  235. }
  236. }