[ 'class' => QueryParamAuth::className(), 'tokenParam' => "token",//access-token修改为token 'optional' => [//不需要认证方法名 array 'share','get-openid' ], ] ]); } /** * 判断是否已经创建信息 * @return array */ public function actionExist() { $model = UserMater::find()->select('company')->where(['uid'=>Yii::$app->user->id])->one(); if(empty($model)) { return Apireturn::sent(1,'success',200,0); }else{ if(empty($model->company)) return Apireturn::sent(1,'success',200,0); else return Apireturn::sent(1,'success',200,1); } } /** * 创建名片 */ public function actionAdd() { $model = UserMater::find()->where(['uid'=>Yii::$app->user->id])->one(); if(empty($model)) { $model = new UserMater(); $model->uid = Yii::$app->user->id; $model->c_time = time(); $model->member = UserMater::MEMBER_NO; } if(empty($model)) return Apireturn::sent(0,'操作错误,请联系管理员',200); $post = Yii::$app->request->post(); if(empty($post['backpic'])) return Apireturn::sent(0,'请上传门面照',200); if(empty($post['company'])) return Apireturn::sent(0,'请输入企业名称',200); if(empty($post['age'])) return Apireturn::sent(0,'请输入经营年限',200); if(!is_numeric($post['age'])) return Apireturn::sent(0,'输入值限纯数字',200); if(empty($post['type_id'])) return Apireturn::sent(0,'请选择建材类型',200); if(empty($post['position'])) return Apireturn::sent(0,'请输入职位',200); if(empty($post['tel'])) return Apireturn::sent(0,'请输入联系号码',200); if(!Common::is_tel($post['tel'])) return Apireturn::sent(0,'请输入有效手机号',200); if(empty($post['province'])) return Apireturn::sent(0,'请选择省份',200); if(empty($post['city'])) return Apireturn::sent(0,'请选择市',200); if(empty($post['area'])) return Apireturn::sent(0,'请选择区',200); if(empty($post['address'])) return Apireturn::sent(0,'请输入详细地址',200); if(empty($post['intro'])) return Apireturn::sent(0,'请输入企业简介',200); if(empty($post['latitude']) || empty($post['longitude'])) return Apireturn::sent(0,'缺少经纬度',200); $model->backpic = Yii::$app->request->post('backpic'); $model->company = Yii::$app->request->post('company'); $model->type_id = Yii::$app->request->post('type_id'); $model->name = Yii::$app->request->post('name'); $model->age = Yii::$app->request->post('age'); $model->position = Yii::$app->request->post('position'); $model->tel = Yii::$app->request->post('tel'); $model->qq = Yii::$app->request->post('qq'); $model->wechat = Yii::$app->request->post('wechat'); $model->latitude = Yii::$app->request->post('latitude'); $model->longitude = Yii::$app->request->post('longitude'); $geohash = new ZM_Geohash(); $geohash->init_codingMap(); $model->hashcode =$geohash->encode($model->latitude,$model->longitude); $model->province = Yii::$app->request->post('province'); $model->city = Yii::$app->request->post('city'); $model->area = Yii::$app->request->post('area'); $model->address = Yii::$app->request->post('address'); $model->intro = Yii::$app->request->post('intro'); $model->u_time = time(); if($model->save()){ $imgs = Yii::$app->request->post('imgs'); $imgs =json_decode($imgs,true);//用户预约的项目 if(!empty($imgs)) { foreach ($imgs as $img_val) { $image = new ImageSource(); $image->type = ImageSource::TYPE_MATER_GOOD; $image->topid = Yii::$app->user->id; $image->pic = $img_val; $image->created_at = time(); $image->updated_at = time(); $image->status = ImageSource::STATUS_YES; $image->save(); } } return Apireturn::sent(1,'创建成功',200); } else{ return Apireturn::sent(0,'创建失败',200); } } /** * 修改名片 */ public function actionEdit() { $model = UserMater::find()->where(['uid'=>Yii::$app->user->id])->one(); if(empty($model)) return Apireturn::sent(0,'未创建名片',200); $post = Yii::$app->request->post(); if(empty($post['backpic'])) return Apireturn::sent(0,'请上传门面照',200); if(empty($post['company'])) return Apireturn::sent(0,'请输入企业名称',200); if(empty($post['age'])) return Apireturn::sent(0,'请输入经营年限',200); if(!is_numeric($post['age'])) return Apireturn::sent(0,'输入值限纯数字',200); if(empty($post['type_id'])) return Apireturn::sent(0,'请选择建材类型',200); if(empty($post['position'])) return Apireturn::sent(0,'请输入职位',200); if(empty($post['tel'])) return Apireturn::sent(0,'请输入联系号码',200); if(!Common::is_tel($post['tel'])) return Apireturn::sent(0,'请输入有效手机号',200); if(empty($post['province'])) return Apireturn::sent(0,'请选择省份',200); if(empty($post['city'])) return Apireturn::sent(0,'请选择市',200); if(empty($post['area'])) return Apireturn::sent(0,'请选择区',200); if(empty($post['address'])) return Apireturn::sent(0,'请输入详细地址',200); if(empty($post['intro'])) return Apireturn::sent(0,'请输入企业简介',200); if(empty($post['latitude']) || empty($post['longitude'])) return Apireturn::sent(0,'缺少经纬度',200); $model->backpic = Yii::$app->request->post('backpic'); $model->company = Yii::$app->request->post('company'); $model->type_id = Yii::$app->request->post('type_id'); $model->name = Yii::$app->request->post('name'); $model->age = Yii::$app->request->post('age'); $model->position = Yii::$app->request->post('position'); $model->tel = Yii::$app->request->post('tel'); $model->qq = Yii::$app->request->post('qq'); $model->wechat = Yii::$app->request->post('wechat'); $model->latitude = Yii::$app->request->post('latitude'); $model->longitude = Yii::$app->request->post('longitude'); $geohash = new ZM_Geohash(); $geohash->init_codingMap(); $model->hashcode =$geohash->encode($model->latitude,$model->longitude); $model->province = Yii::$app->request->post('province'); $model->city = Yii::$app->request->post('city'); $model->area = Yii::$app->request->post('area'); $model->address = Yii::$app->request->post('address'); $model->intro = Yii::$app->request->post('intro'); $model->u_time = time(); if($model->save()){ $imgs = Yii::$app->request->post('imgs'); $imgs =json_decode($imgs,true);//用户预约的项目 if(!empty($imgs)) { $images = ImageSource::find()->select('id,pic')->where(['topid'=>Yii::$app->user->id,'status'=>ImageSource::STATUS_YES,'type'=>ImageSource::TYPE_MATER_GOOD])->all(); if(empty($images)) { foreach ($imgs as $img_val) { $image = new ImageSource(); $image->type = ImageSource::TYPE_MATER_GOOD; $image->topid = Yii::$app->user->id; $image->pic = $img_val; $image->created_at = time(); $image->updated_at = time(); $image->status = ImageSource::STATUS_YES; $image->save(); } }else{ $temp_imgs = array(); foreach ($images as $images_val) { if(!in_array($images_val->pic,$imgs))//不存在 { $data_image = ImageSource::find()->where(['id'=>$images_val->id])->one(); $data_image->status = ImageSource::STATUS_NO; $data_image->save(); } $temp_imgs[] = $images_val->pic; } foreach ($imgs as $imgs_val) { if(!in_array($imgs_val,$temp_imgs)) { $image = new ImageSource(); $image->type = ImageSource::TYPE_MATER_GOOD; $image->topid = Yii::$app->user->id; $image->pic = $imgs_val; $image->created_at = time(); $image->updated_at = time(); $image->status = ImageSource::STATUS_YES; $image->save(); } } } }else{ if(ImageSource::find()->where(['topid'=>Yii::$app->user->id,'status'=>ImageSource::STATUS_YES,'type'=>ImageSource::TYPE_MATER_GOOD])->count()>0) Yii::$app->db->createCommand()->update("{{%image}}",['status'=>ImageSource::STATUS_NO],'topid = :topid AND status = :status AND type = :type',[':topid'=>Yii::$app->user->id,':status'=>ImageSource::STATUS_YES,':type'=>ImageSource::TYPE_MATER_GOOD])->execute(); } return Apireturn::sent(1,'修改成功',200); } else{ return Apireturn::sent(0,'修改失败',200); } } /** * 查看名片 */ public function actionInfo() { $data = UserMater::findBySql("SELECT a.backpic,a.company,a.name,a.age,a.position,a.tel,a.qq,a.wechat,a.latitude,a.longitude,a.address,a.intro,a.type_id,b.name as type_name,a.province,a.city,a.area FROM {{%user_mater}} a LEFT JOIN {{%mater_type}} b ON a.type_id = b.id WHERE a.uid = :uid",[':uid'=>Yii::$app->user->id])->asArray()->one(); if(!empty($data)){ $data['imgs'] = array(); $imgs = ImageSource::find()->where(['topid'=>Yii::$app->user->id,'status'=>ImageSource::STATUS_YES,'type'=>ImageSource::TYPE_MATER_GOOD])->select('pic')->orderBy("created_at ASC")->all(); if(!empty($imgs)){ foreach ($imgs as $key => $val) { $data['imgs'][] = $val->pic; } } $data['province_name'] = !empty($data['province']) ? Area::queryCity($data['province']) : ""; $data['city_name'] = !empty($data['city']) ? Area::queryCity($data['city']) : ""; $data['area_name'] = !empty($data['area']) ? Area::queryCity($data['area']) : ""; return Apireturn::sent(1,'success',200,$data); }else{ return Apireturn::sent(0,'还没创建名片',200); } } /** * 生成名片 */ public function actionShare() { $uid = Yii::$app->request->get('uid'); $data = UserMater::findBySql("SELECT a.uid,a.backpic,a.company,a.name,a.age,a.position,a.tel,a.qq,a.wechat,a.latitude,a.longitude,a.address,a.intro,b.name as type_name FROM {{%user_mater}} a LEFT JOIN {{%mater_type}} b ON a.type_id = b.id WHERE a.uid = :uid",[':uid'=>$uid])->asArray()->one(); if(!empty($data)) $data['imgs'] = ImageSource::find()->where(['topid' =>$data['uid'], 'status' => ImageSource::STATUS_YES,'type'=>ImageSource::TYPE_MATER_GOOD])->select('pic')->orderBy("created_at ASC")->all(); else return Apireturn::sent(0,'找不到该记录',200); return Apireturn::sent(1,'success',200,$data); } /** * 建材商分类 * @return array */ public function actionTypes() { $list = MaterType::find()->select('id,name')->where(['status'=>MaterType::STATUS_YES])->orderBy("sort ASC,id DESC")->asArray()->all(); return Apireturn::sent(1,'success',200,$list); } /** * 获取uid */ public function actionGetUid() { return Apireturn::sent(1,'success',200,Yii::$app->user->id); } /*** * 获得openid * @return array */ public function actionGetOpenid() { $code =\Yii::$app->request->post('code'); header('content-type:application/json; charset=UTF-8;'); if(empty($code)) return Apireturn::sent(0,'NO CODE',200); $data = ''; WxBizDecrypt::$appid = Yii::$app->params['wechatapi']['appidCompany']; WxBizDecrypt::$appSecret =Yii::$app->params['wechatapi']['secretCompany']; $result = WxBizDecrypt::getSessionkey($code,$data); if($result == WxBizDecrypt::$OK){ $dataObj = json_decode($data); return Apireturn::sent(1,'success',200,array('openid'=>$dataObj->openid)); }else{ return Apireturn::sent(0,'获取用户信息出错',200); } } }