123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366 |
- <?php
- /**
- * 建材商
- */
- namespace api\modules\v1\controllers;
- use api\libs\WxBizDecrypt;
- use api\models\Common;
- use common\library\ZM_Geohash;
- use common\models\Area;
- use common\models\ImageSource;
- use common\models\MaterType;
- use common\models\UserMater;
- use yii\rest\ActiveController;
- use common\library\Apireturn;
- use yii\helpers\ArrayHelper;
- use yii\filters\auth\QueryParamAuth;
- use yii;
- class CompanyMaterController extends ActiveController
- {
- public $modelClass = 'common\models';
- public function behaviors()
- {
- return ArrayHelper::merge(parent::behaviors(), [
- 'authenticator' => [
- '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);
- }
- }
- }
|