| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268 | 
							- <?php
 
- namespace app\api\controller;
 
- use app\common\controller\Api;
 
- use think\Db;
 
- use think\Exception;
 
- class Companys extends Api
 
- {
 
-     protected $noNeedLogin = ['getList','getInfo'];
 
-     protected $noNeedRight = '*';
 
-     protected $model = null;
 
-     public function _initialize()
 
-     {
 
-         parent::_initialize();
 
-         $this->model = Db::name('company');
 
-     }
 
-     /**
 
-      * 列表
 
-      * @return void
 
-      */
 
-     public function getList()
 
-     {
 
-         try {
 
-             $page = $this->request->param('page',1);
 
-             $limit = $this->request->param('listrow',15);
 
-             $offset = ($page - 1) * $limit;
 
-             //获取门店信息
 
-             $params = [
 
-                 'lng' => $this->request->param('lng',''),
 
-                 'lat' => $this->request->param('lat',''),
 
-             ];
 
-             $companyList = $this->getCompanySort($params);
 
-             $result = array_slice($companyList['data'],$offset,$limit);
 
-             $this->success('获取成功',$result);
 
-         } catch (Exception $e) {
 
-             $this->error($e->getMessage());
 
-         }
 
-     }
 
-     
 
-     /**
 
-      * 获取门店距离排序
 
-      * @return void
 
-      */
 
-     public function getCompanySort($params=[])
 
-     {
 
-         try {
 
-             $result = [
 
-                 'status' => true,
 
-                 'msg' => '获取成功',
 
-                 'data' => [],
 
-             ];
 
-             $lng = isset($params['lng']) ? $params['lng'] : '';
 
-             $lat = isset($params['lat']) ? $params['lat'] : '';
 
-             $field = 'id,name,image,contacts,mobile,full_address,longitude,latitude,is_open,open_hours';
 
-             $where['status'] = 1;
 
-             $data = $this->model->where($where)->field($field)->select();
 
-             if (!empty($data)) {
 
-                 foreach ($data as $key => &$value) {
 
-                     $value['image'] = !empty($value['image']) ? cdnurl($value['image']) : '';
 
-                     $value['distance'] = getDistance($lng, $lat, $value['longitude'], $value['latitude'], true, 2);
 
-                     $value['distance_text'] = !empty($value['distance']) ? $value['distance'].'km' : '';
 
-                 }
 
-                 $n = count($data);
 
-                 for($i=1;$i<$n;$i++) { //从第二个元素开始插入
 
-                     for($j=$i-1;$j>=0;$j--) { //与前面的数比较,找到插入的位置
 
-                         if($data[$j]['distance'] > $data[$j+1]['distance']) { //比前面的数小,交换位置
 
-                             $tmp = $data[$j];
 
-                             $data[$j] = $data[$j+1];
 
-                             $data[$j+1] = $tmp;
 
-                         } else { //大于或等于前面的数,表示已找到插入的位置
 
-                             break;
 
-                         }
 
-                     }
 
-                 }
 
-             }
 
-             $result['data'] = $data;
 
-             return $result;
 
-         } catch (Exception $e) {
 
-             $result['status'] = 0;
 
-             $result['msg'] = $e->getMessage();
 
-             return $result;
 
-         }
 
-     }
 
-     /**
 
-      * 详情
 
-      * @return void
 
-      */
 
-     public function getInfo()
 
-     {
 
-         try {
 
-             $id = $this->request->param('id',0);
 
-             $field = 'id,name,image,contacts,mobile,full_address,longitude,latitude,is_open,open_hours';
 
-             $where['status'] = 1;
 
-             $where['id'] = $id;
 
-             $result = $this->model->where($where)->field($field)->find();
 
-             if (!empty($result)) {
 
-                 !empty($result['image']) && $result['image'] = cdnurl($result['image']);
 
-             }
 
-             $this->success('获取成功',$result);
 
-         } catch (Exception $e) {
 
-             $this->error($e->getMessage());
 
-         }
 
-     }
 
-     /**
 
-      * 绑定门店
 
-      * @return void
 
-      */
 
-     public function bind()
 
-     {
 
-         Db::startTrans();
 
-         try {
 
-             $id = $this->request->param('id',0);
 
-             $comeform = $this->request->param('comeform','');//'自然进店','平台引流','线下新客','老带新'
 
-             $where['id'] = $id;
 
-             $where['status'] = 1;
 
-             $company = $this->model->where($where)->find();
 
-             if (empty($company)) {
 
-                 throw new Exception('未找到门店信息');
 
-             }
 
-             $user = $this->auth->getUser();
 
-             $userId = $this->auth->id;
 
-             if ($user['company_id'] != $id) {//更新绑定门店
 
-                 $userWhere['id'] = $userId;
 
-                 $userData['company_id'] = $id;
 
-                 $userRes = model('User')->where($userWhere)->update($userData);
 
-                 if (!$userRes) {
 
-                     throw new Exception('绑定门店失败');
 
-                 }
 
-             }
 
-             //用户门店钱包
 
-             $walletWhere['user_id'] = $userId;
 
-             $walletWhere['company_id'] = $id;
 
-             $userWallet = model('UserWallet')->where($walletWhere)->find();
 
-             if (empty($userWallet)) {
 
-                 $walletData = [
 
-                     'user_id' => $userId,
 
-                     'company_id' => $id,
 
-                     'money' => 0.00,
 
-                     'comefrom' => $comeform,
 
-                 ];
 
-                 $walletRes = model('UserWallet')->insertGetId($walletData);
 
-                 if (!$walletRes) {
 
-                     throw new Exception('绑定失败');
 
-                 }
 
-             }
 
-             Db::commit();
 
-             $this->success();
 
-         } catch (Exception $e) {
 
-             Db::rollback();
 
-             $this->error($e->getMessage());
 
-         }
 
-     }
 
-     /**
 
-      * 保存
 
-      * @return void
 
-      */
 
-     public function save()
 
-     {
 
-         try {
 
-             //验证参数
 
-             $id = $this->request->param('id',0);
 
-             $userId = $this->auth->id;
 
-             if (empty($id)) {
 
-                 $companyWhere['user_id'] = $userId;
 
-                 $company = $this->model->where($companyWhere)->find();
 
-                 if (!empty($company)) {
 
-                     $id = $company['id'];
 
-                 }
 
-             }
 
-             $scene = !empty($id) ? 'edit' : 'add';
 
-             $validate = validate('Companys');
 
-             if(!$validate->check($this->request->param(),[],$scene)){
 
-                 throw new Exception($validate->getError());
 
-             }
 
-             if (!empty($id)) {
 
-                 $where['user_id'] = $userId;
 
-                 $where['id'] = $id;
 
-                 $companyData = $this->model->where($where)->find();
 
-                 if (empty($companyData)) {
 
-                     throw new Exception('未找到相关信息');
 
-                 }
 
-             } else {
 
-                 $where['user_id'] = $userId;
 
-                 $where['status'] = 1;//状态:-1=新来的,0=待审核,1=审核通过,2=审核不通过
 
-                 $companyData = $this->model->where($where)->find();
 
-                 if (!empty($companyData)) {
 
-                     throw new Exception('您已申请过入驻');
 
-                 }
 
-             }
 
-             $time = time();
 
-             $areaData = getProvince($this->request->param());
 
-             $fullAddress = $areaData['full_address'];
 
-             $data = [
 
-                 'contacts' => $this->request->param('contacts', ''),
 
-                 'mobile'  => $this->request->param('mobile', ''),
 
-                 'province_id'  => $this->request->param('province_id', 0),
 
-                 'city_id'  => $this->request->param('city_id', 0),
 
-                 'area_id'  => $this->request->param('area_id', 0),
 
-                 'province_name'  => $areaData['province_name'],
 
-                 'city_name'  => $areaData['city_name'],
 
-                 'area_name'  => $areaData['area_name'],
 
-                 'address'  => $this->request->param('address', ''),
 
-                 'full_address'  => $fullAddress,
 
-                 'aptitude_images'  => $this->request->param('aptitude_images', ''),
 
-                 'status' => 0,
 
-             ];
 
-             if (empty($id)) {
 
-                 $data['image'] = '/assets/img/avatar.png';//默认头像
 
-                 $data['user_id'] = $userId;
 
-                 $data['createtime'] = $time;
 
-                 $res = $this->model->insertGetId($data);
 
-                 if ($res) {//生成门店钱包
 
-                     $companyAddData = [
 
-                         'user_id' => $res,
 
-                         'money' => 0.00,
 
-                     ];
 
-                     $companyRes = Db::name('company_wallet')->insertGetId($companyAddData);
 
-                     if (!$companyRes) {
 
-                         throw new Exception('入驻提交失败');
 
-                     }
 
-                 }
 
-             } else {
 
-                 $data['updatetime'] = $time;
 
-                 $where['id'] = $id;
 
-                 $where['user_id'] = $userId;
 
-                 $res = $this->model->where($where)->update($data);
 
-             }
 
-             if (!$res) {
 
-                 throw new Exception('操作失败');
 
-             }
 
-             $this->success('操作成功');
 
-         } catch (Exception $e) {
 
-             $this->error($e->getMessage());
 
-         }
 
-     }
 
-     /**
 
-      * 入驻详情
 
-      * @return void
 
-      */
 
-     public function getCompanyInfo()
 
-     {
 
-         try {
 
-             $userId = $this->auth->id;
 
-             $field = 'id,contacts,mobile,province_id,city_id,area_id,province_name,city_name,area_name,address,aptitude_images,status';
 
-             $where['user_id'] = $userId;
 
-             $result = $this->model->where($where)->field($field)->find();
 
-             if (!empty($result)) {
 
-                 $statusArr = model('Company')->getStatusList();
 
-                 $result['status_text'] = isset($statusArr[$result['status']]) ? $statusArr[$result['status']] : '';
 
-                 $result = info_domain_image($result,['aptitude_images']);
 
-             }
 
-             $this->success('获取成功',$result);
 
-         } catch (Exception $e) {
 
-             $this->error($e->getMessage());
 
-         }
 
-     }
 
- }
 
 
  |