Login.php 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277
  1. <?php
  2. namespace app\api\controller;
  3. use app\common\model\Config;
  4. use app\common\model\User;
  5. use app\common\controller\Api;
  6. use think\Db;
  7. use think\facade\Validate;
  8. /**
  9. * @title 登录注册
  10. * @controller Login
  11. * @group user
  12. */
  13. class Login extends Api
  14. {
  15. /**
  16. * @title 注册
  17. * @desc 注册
  18. * @url /api/Login/register
  19. * @method POST
  20. * @tag 基础
  21. * @header
  22. * @param name:phone type:string require:1 desc:手机号
  23. * @param name:password type:string require:1 desc:密码
  24. * @param name:ver_code type:string require:1 desc:验证码
  25. * @param name:invite_code type:string require:0 desc:邀请码
  26. */
  27. public function register(){
  28. $phone = input('phone'); //手机号
  29. $password = input('password'); //密码
  30. $confirm_password = input('confirm_password'); //确认密码
  31. $ver_code = input('ver_code'); //验证码
  32. if (!$phone || !$password || !$confirm_password){
  33. $this->error('参数错误');
  34. }
  35. if (!Validate::regex($phone, "^1\d{10}$")) {
  36. $this->error('手机号格式错误');
  37. }
  38. if ($password!=$confirm_password){
  39. $this->error('密码与确认密码不一致');
  40. }
  41. $us = User::register($phone,$password,$ver_code);
  42. if ($us['code']){
  43. $this->success($us['msg'],$us['data']);
  44. }else{
  45. $this->error($us['msg']);
  46. }
  47. }
  48. /**
  49. * @title 登录
  50. * @desc 登录
  51. * @url /api/Login/login
  52. * @method POST
  53. * @tag 基础
  54. * @header
  55. * @param name:phone type:string require:1 desc:手机号
  56. * @param name:type type:string require:1 desc:1:密码登录2:验证码登录
  57. * @param name:password type:string require:0 desc:密码(密码登录时传)
  58. * @param name:ver_code type:string require:0 desc:验证码(验证码登录时传)
  59. * @param name:come type:int require:0 desc:1:用户端2:设计师端(默认为1)
  60. *
  61. *
  62. * @return name:token type:string desc:token
  63. * @return name:type type:int desc:1:未申请2:待审核3:审核失败4:登录成功
  64. */
  65. public function login(){
  66. $phone = input('phone'); //手机号
  67. $type = input('type',1); //1:密码登录 2:验证码登录
  68. $password = input('password'); //密码
  69. $ver_code = input('ver_code'); //验证码
  70. $come = input('come',1); //1:用户端2:设计师端(默认为1)
  71. if (!$phone || !Validate::regex($phone, "^1\d{10}$")) {
  72. $this->error('手机号格式错误');
  73. }
  74. if (!in_array($type,['1','2'])){
  75. $this->error('非法操作');
  76. }
  77. if ($type==1){
  78. if (!$password){
  79. $this->error('密码为空');
  80. }
  81. }elseif ($type==2){
  82. if (!$ver_code){
  83. $this->error('短信验证码为空');
  84. }
  85. }
  86. $result = User::login($phone,$password,$type,$ver_code,$come);
  87. if ($result['code']){
  88. $this->success($result['msg'],$result['data']);
  89. }else{
  90. $this->error($result['msg']);
  91. }
  92. }
  93. /**
  94. * @title 忘记密码
  95. * @desc 忘记密码
  96. * @url /api/Login/forgot_password
  97. * @method POST
  98. * @tag 基础
  99. * @header
  100. * @param name:phone type:string require:1 desc:手机号
  101. * @param name:password type:string require:0 desc:密码
  102. * @param name:ver_code type:string require:0 desc:验证码
  103. *
  104. */
  105. public function forgot_password(){
  106. $phone = input('phone'); //手机号
  107. $password = input('password'); //密码
  108. $ver_code = input('ver_code'); //验证码
  109. if (!$phone || !$password){
  110. $this->error('参数错误');
  111. }
  112. if (!$phone || !Validate::regex($phone, "^1\d{10}$")) {
  113. $this->error('手机号格式错误');
  114. }
  115. $result = User::forgotPassword($phone,$password,$ver_code);
  116. if ($result['code']){
  117. $this->success($result['msg'],$result['data']);
  118. }else{
  119. $this->error($result['msg']);
  120. }
  121. }
  122. /**
  123. * @title 微信授权登录
  124. * @desc 微信授权登录
  125. * @url /api/Login/wechat_login
  126. * @method POST
  127. * @tag 基础
  128. * @header
  129. * @param name:code type:string require:1 desc:微信code
  130. *
  131. */
  132. public function wechat_login(){
  133. $code = input('code');
  134. if (!$code) $this->error('code为空');
  135. $result = User::wechatLogin($code);
  136. if ($result['code']){
  137. $this->success($result['msg'],$result['data']);
  138. }else{
  139. $this->error($result['msg']);
  140. }
  141. }
  142. /**
  143. * @title 微信授权绑定手机号信息
  144. * @desc 微信授权绑定手机号信息
  145. * @url /api/Login/wechat_login_bind_phone
  146. * @method POST
  147. * @tag 基础
  148. * @header
  149. * @param name:code type:string require:1 desc:微信code
  150. * @param name:rawData type:string require:1 desc:用户信息
  151. * @param name:phone type:string require:1 desc:手机号
  152. * @param name:ver_code type:string require:1 desc:验证码
  153. * @param name:password type:string require:1 desc:密码
  154. *
  155. */
  156. public function wechat_login_bind_phone(){
  157. $code = input('code');
  158. if (!$code) $this->error('code为空');
  159. $rawData = input('rawData'); //用户信息
  160. $phone = input('phone'); //手机号
  161. $ver_code = input('ver_code'); //验证码
  162. $password = input('password'); //密码
  163. if (!$phone || !Validate::regex($phone, "^1\d{10}$")) {
  164. $this->error('手机号格式错误');
  165. }
  166. if (!$ver_code){
  167. $this->error('短信验证码为空');
  168. }
  169. if (!$password){
  170. $this->error('密码为空');
  171. }
  172. $result = User::wechatLoginBindPhone($code,$rawData,$phone,$ver_code,$password);
  173. if ($result['code']){
  174. $this->success($result['msg'],$result['data']);
  175. }else{
  176. $this->error($result['msg']);
  177. }
  178. }
  179. /**
  180. * @title 设计师注册
  181. * @desc 设计师注册
  182. * @url /api/Login/designer_register
  183. * @method POST
  184. * @tag 基础
  185. * @header
  186. * @param name:type type:int require:1 desc:1:第一页验证手机号、验证码2:填写设计师信息
  187. * @param name:phone type:string require:1 desc:手机号
  188. * @param name:ver_code type:string require:1 desc:验证码
  189. * @param name:password type:string require:1 desc:密码
  190. *
  191. * @param name:name type:string require:1 desc:姓名
  192. * @param name:design_classifi type:string require:1 desc:设计分类
  193. * @param name:skills_label type:string require:1 desc:技能标签
  194. * @param name:good_type type:string require:1 desc:擅长类型
  195. * @param name:province type:string require:1 desc:省
  196. * @param name:city type:string require:1 desc:市
  197. * @param name:area type:string require:1 desc:区
  198. * @param name:work_year type:string require:1 desc:工作年限
  199. * @param name:identity_card_zheng type:string require:1 desc:身份证正面
  200. * @param name:identity_card_fan type:string require:1 desc:身份证反面
  201. * @param name:related_certificate type:string require:1 desc:相关证书,数组
  202. * @param name:works type:string require:1 desc:作品,数组
  203. * @param name:wd type:string require:1 desc:当前位置纬度
  204. * @param name:jd type:string require:1 desc:当前位置经度
  205. *
  206. *
  207. *
  208. *
  209. * @return name:type type:int desc:1:手机号未注册2:手机号已注册,未申请成为设计师或者正在审核中
  210. */
  211. public function designer_register(){
  212. $phone = input('phone'); //手机号
  213. $password = input('password'); //密码
  214. $ver_code = input('ver_code'); //验证码
  215. $type = input('type'); //1:第一页验证手机号、验证码 2:填写商家信息
  216. if (!$phone || !Validate::regex($phone, "^1\d{10}$")) {
  217. $this->error('手机号格式错误');
  218. }
  219. if (!in_array($type,['1','2'])){
  220. $this->error('非法操作');
  221. }
  222. if ($type==1){
  223. if (!$phone || !$password || !$password){
  224. $this->error('参数错误');
  225. }
  226. $result = User::designer_register_one($phone,$ver_code);
  227. }else{
  228. $data['phone'] = $phone;
  229. $data['name'] = input('name'); //姓名
  230. $data['design_classifi'] = input('design_classifi'); //设计分类
  231. $data['skills_label'] = input('skills_label'); //技能标签
  232. $data['good_type'] = input('good_type'); //擅长类型
  233. $data['province'] = input('province'); //省
  234. $data['city'] = input('city'); //市
  235. $data['area'] = input('area'); //区
  236. $data['work_year'] = input('work_year'); //工作年限
  237. $data['identity_card_zheng'] = input('identity_card_zheng'); //身份证正面
  238. $data['identity_card_fan'] = input('identity_card_fan'); //身份证反面
  239. $data['related_certificate'] = input('related_certificate'); //相关证书
  240. $data['works'] = input('works'); //作品
  241. $data['wd'] = input('wd'); //当前位置纬度
  242. $data['jd'] = input('jd'); //当前位置经度
  243. if (!$data['name'] || !$data['design_classifi'] || !$data['design_classifi'] || !$data['skills_label'] || !$data['good_type'] || !$data['identity_card_zheng'] || !$data['identity_card_fan'] || !$data['province']
  244. || !$data['city'] || !$data['area'] || !$data['work_year'] || !$data['works']){
  245. $this->error('参数错误');
  246. }
  247. $data['related_certificate'] = implode(',',$data['related_certificate']);
  248. $data['works'] = implode(',',$data['works']);
  249. $data['skills_label'] = implode(',',$data['skills_label']);
  250. $data['good_type'] = implode(',',$data['good_type']);
  251. $result = User::designer_register_two($data);
  252. }
  253. if ($result['code']){
  254. $this->success($result['msg'],$result['data']);
  255. }else{
  256. $this->error($result['msg']);
  257. }
  258. }
  259. }