ChainLogin.php 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. <?php
  2. /*
  3. * 门店用户申请以及登录
  4. */
  5. namespace app\api\controller;
  6. use think\facade\Lang;
  7. class ChainLogin extends MobileMall {
  8. public function initialize() {
  9. parent::initialize();
  10. Lang::load(base_path() . 'home/lang/' . config('lang.default_lang') . '/chain.lang.php');
  11. }
  12. public function login() {
  13. $client = input('param.client_type');
  14. $condition = array();
  15. $condition[] = array('chain_name', '=', input('post.chain_name'));
  16. $condition[] = array('chain_passwd', '=', md5(input('post.chain_passwd')));
  17. $dp_info = model('chain')->getChainInfo($condition);
  18. if (empty($dp_info)) {
  19. ds_json_encode(10001, lang('login_fail'));
  20. }
  21. //生成登录令牌
  22. $token = self::_get_chain_token($dp_info['chain_id'], $dp_info['chain_name'], $client);
  23. if ($token) {
  24. $result = array();
  25. $result['token'] = $token;
  26. $result['info'] = $this->getChainUser($dp_info);
  27. ds_json_encode(10000, '', $result);
  28. } else {
  29. ds_json_encode(10001, lang('ds_common_op_fail'));
  30. }
  31. }
  32. /**
  33. * 登录生成token
  34. */
  35. public static function _get_chain_token($chain_id, $chain_name, $client) {
  36. $mbchaintoken_model = model('mbchaintoken');
  37. //重新登录后以前的令牌失效
  38. $condition = array();
  39. $condition[] = array('chain_id', '=', $chain_id);
  40. $mbchaintoken_model->delMbchaintoken($condition);
  41. //生成新的token
  42. $mb_chain_token_info = array();
  43. $token = md5($chain_name . strval(TIMESTAMP) . strval(rand(0, 999999)));
  44. $mb_chain_token_info['chain_id'] = $chain_id;
  45. $mb_chain_token_info['chain_name'] = $chain_name;
  46. $mb_chain_token_info['chain_token'] = $token;
  47. $mb_chain_token_info['chain_logintime'] = TIMESTAMP;
  48. $mb_chain_token_info['chain_clienttype'] = $client;
  49. $result = $mbchaintoken_model->addMbchaintoken($mb_chain_token_info);
  50. if ($result) {
  51. return $token;
  52. } else {
  53. return null;
  54. }
  55. }
  56. public function apply() {
  57. $insert = array();
  58. $insert['chain_name'] = input('post.chain_name');
  59. $insert['chain_passwd'] = md5(input('post.password'));
  60. $insert['chain_truename'] = input('post.chain_truename');
  61. $insert['chain_mobile'] = input('post.chain_mobile');
  62. $insert['chain_telephony'] = input('post.chain_telephony', '');
  63. $insert['chain_addressname'] = input('post.chain_addressname');
  64. $insert['chain_area_2'] = input('post.chain_area_2');
  65. $insert['chain_area_3'] = input('post.chain_area_3');
  66. $insert['chain_area_info'] = input('post.chain_area_info');
  67. $insert['chain_address'] = input('post.chain_address');
  68. $insert['chain_idcard'] = input('post.chain_idcard');
  69. $insert['chain_addtime'] = TIMESTAMP;
  70. $insert['chain_state'] = 10;
  71. $insert['chain_if_pickup'] = 0;
  72. $insert['chain_idcardimage'] = input('post.chain_idcardimage', '');
  73. $insert['chain_latitude'] = input('post.chain_latitude', '');
  74. $insert['chain_longitude'] = input('post.chain_longitude', '');
  75. if (input('post.password') != input('post.confirm_password')) {
  76. ds_json_encode(10001, lang('password_not_same'));
  77. }
  78. //验证数据 BEGIN
  79. $chain_validate = ds_validate('chain');
  80. if (!$chain_validate->scene('chain_apply')->check($insert)) {
  81. ds_json_encode(10001, $chain_validate->getError());
  82. }
  83. $chain_model = model('chain');
  84. //判断
  85. $dp_info = $chain_model->getChainInfo(array('chain_name' => $insert['chain_name']));
  86. if ($dp_info) {
  87. ds_json_encode(10001, lang('chain_name_exist'));
  88. }
  89. $result = $chain_model->addChain($insert);
  90. if ($result) {
  91. ds_json_encode(10000, lang('wait_for_verify'));
  92. } else {
  93. ds_json_encode(10001, lang('ds_common_op_fail'));
  94. }
  95. }
  96. /**
  97. * @api {POST} api/ChainLogin/upload_image 上传图片
  98. * @apiVersion 1.0.0
  99. * @apiGroup ChainLogin
  100. *
  101. * @apiHeader {String} X-DS-KEY 用户授权token
  102. *
  103. * @apiParam {File} file 图片
  104. *
  105. * @apiSuccess {String} code 返回码,10000为成功
  106. * @apiSuccess {String} message 返回消息
  107. * @apiSuccess {Object} result 返回数据
  108. *
  109. */
  110. public function upload_image() {
  111. $file = 'file';
  112. //上传文件保存路径
  113. $pic_name = '';
  114. if (!empty($_FILES[$file]['name'])) {
  115. $res = ds_upload_pic(ATTACH_CHAIN, $file);
  116. if ($res['code']) {
  117. $pic_name = $res['data']['file_name'];
  118. } else {
  119. ds_json_encode(10001, $res['msg']);
  120. }
  121. }
  122. ds_json_encode(10000, '', array('path' => $pic_name, 'url' => get_chain_imageurl($pic_name)));
  123. }
  124. }
  125. ?>