UserController.php 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Administrator
  5. * Date: 2017/7/31
  6. * Time: 11:43
  7. */
  8. namespace company\modules\wechat\controllers;
  9. use common\models\UserInfo;
  10. use company\modules\wechat\controllers\LoginverifyController;
  11. use common\models\Feedback;
  12. use yii\base\Controller;
  13. use yii\filters\AccessControl;
  14. use common\models\UserCompany;
  15. use Yii;
  16. use common\library\LMUploadFile;
  17. use yii\web\UploadedFile;
  18. use common\models\Designer;
  19. use common\models\Manager;
  20. use common\models\ImageSource;
  21. use yii\data\Pagination;
  22. use company\controllers\UserController as companyuser;
  23. use common\models\Appointment;
  24. use common\models\Comment;
  25. use common\models\Reply;
  26. use common\models\Tel;
  27. use yii\web\User;
  28. use yii\web\ViewAction;
  29. use common\models\Information;
  30. class UserController extends LoginverifyController{
  31. public $layout = 'main';
  32. const PAGESIZE = 20;
  33. public function behaviors()
  34. {
  35. return [
  36. 'access' => [
  37. 'class' => AccessControl::className(),
  38. 'rules' => [
  39. [
  40. 'actions' => [],
  41. 'allow' => true,
  42. 'roles' => ['@'],
  43. ],
  44. ],
  45. ],
  46. ];
  47. }
  48. //用户等级
  49. public static function userlevel(){
  50. if(!empty(Yii::$app->user->id)){
  51. $model = UserCompany::find()->where('uid=:uid',[':uid'=>Yii::$app->user->id])->one();
  52. if(!empty($model)){
  53. $member = $model->member;
  54. return $member;
  55. }
  56. return "数据不对";
  57. }
  58. return "未登录";
  59. }
  60. //我的首页
  61. public function actionIndividual(){
  62. $model = UserCompany::find()->where('uid=:uid',[':uid'=>Yii::$app->user->id])->one();
  63. return $this->render('individual',['model'=>$model]);
  64. }
  65. //我的基础资料
  66. public function actionBasics(){
  67. if(Yii::$app->request->get()){
  68. $id = Yii::$app->request->get('id');
  69. $company = Yii::$app->request->get('company');
  70. $tel = Yii::$app->request->get('tel');
  71. $address = Yii::$app->request->get('address');
  72. $submit_address = Yii::$app->request->get('submit_address');
  73. if(!empty($submit_address)){
  74. $arr_address = explode(',',$submit_address);
  75. $province = $arr_address[0];//省
  76. $city = $arr_address[1];//城市
  77. $district = $arr_address[2];//地区
  78. }
  79. $model = UserCompany::find()->where('id=:id',[':id'=>$id])->one();
  80. $model->province = !empty($province)?$province:$model->province;
  81. $model->company = !empty($company)?$company:$model->company;
  82. $model->tel = !empty($tel)?$tel:$model->tel;
  83. $model->city = !empty($city)?$city:$model->city;
  84. $model->district = !empty($district)?$district:$model->district;
  85. $model->address = !empty($address)?$address:$model->address;
  86. $model->updated_at = time();
  87. if($model->validate()&&$model->save()){
  88. $result=['sign'=>1,'msg'=>'修改成功'];
  89. }else{
  90. $result=['sign'=>4000,'msg'=>'修改失败'];
  91. }
  92. return json_encode($result);
  93. }else{
  94. $model = UserCompany::find()->where('uid=:uid',[':uid'=>Yii::$app->user->id])->one();
  95. return $this->render('basics',
  96. [
  97. 'model'=>$model
  98. ]);
  99. }
  100. }
  101. //logo
  102. public function actionImg(){
  103. $serverid = Yii::$app->request->get('serverid');
  104. $result=['sign'=>4000,'msg'=>'参数有误'];
  105. $id = Yii::$app->request->get('id');
  106. $results = LMUploadFile::wechatUploaImage($serverid,'logo',false,200,200);
  107. if(!empty($id)){
  108. $model = UserCompany::find()->where('id=:id',[':id'=>$id])->one();
  109. if(!empty($results['remote'])){
  110. $model->logo = !empty($results['remote'])?$results['remote']:"";
  111. $model->updated_at = time();
  112. if($model->validate()&&$model->save()){
  113. }else{
  114. $result=['sign'=>4000,'msg'=>'保存失败','imgurl'=>$results['remote']];
  115. }
  116. }
  117. }
  118. if(!empty($results)){
  119. $result=['sign'=>1,'msg'=>'保存成功','imgurl'=>$results['remote']];
  120. }
  121. return json_encode($result);
  122. }
  123. public function actionIndex(){
  124. $model = UserCompany::find()->where('uid=:uid',[':uid'=>Yii::$app->user->id])->one();
  125. $conduct = Yii::$app->request->post('conduct');
  126. $id = Yii::$app->request->post('id');
  127. $picture_form = new LMUploadFile();
  128. switch($conduct){
  129. case "add":
  130. return companyuser::add_company();
  131. break;
  132. case "update":
  133. return companyuser::update_company($id);
  134. break;
  135. case "verify":
  136. return companyuser::verify_company();
  137. break;
  138. default:
  139. return $this->render('index',['model'=>$model,'picture_form'=>$picture_form]);
  140. break;
  141. }
  142. }
  143. //人员管理列表
  144. public function actionPersonnel(){
  145. //设计师
  146. $models_designer = Designer::find()->where('company=:company and status=:status',[':company'=>Yii::$app->user->id,':status'=>Designer::STATUS_YES])->orderBy('created_at DESC')->all();
  147. //项目经理
  148. $models_manager = Manager::find()->where('company=:company and status=:status',[':company'=>Yii::$app->user->id,':status'=>Designer::STATUS_YES])->orderBy('created_at DESC')->all();
  149. return $this->render('personnel',
  150. [
  151. 'models_designer'=>$models_designer,
  152. 'models_manager'=>$models_manager,
  153. ]);
  154. }
  155. //删除设计师 项目经理
  156. public function actionDelete(){
  157. $id = Yii::$app->request->get('id');
  158. $type = Yii::$app->request->get('type');
  159. if($type == "designer"){
  160. return companyuser::delede_designer($id);
  161. }elseif($type == "manager"){
  162. return companyuser::delede_manager($id);
  163. }else{
  164. $result=['sign'=>4000,'msg'=>'数据有误'.$id.$type];
  165. return json_encode($result);
  166. }
  167. }
  168. //更新设计师、项目经理
  169. public function actionUpdate(){
  170. $type = Yii::$app->request->get('type');
  171. $id = Yii::$app->request->get('id');
  172. $realname = Yii::$app->request->get('realname');
  173. $introduction = Yii::$app->request->get('introduction');
  174. $imageurl = Yii::$app->request->get('imageurl');
  175. if(!empty($imageurl)){
  176. $imageurl = $this->imgurl($imageurl);
  177. }
  178. if(!empty($realname)){;
  179. if($type == "designer"){
  180. $model = Designer::find()->where('id=:id and status=:status',[':id'=>$id,':status'=>Designer::STATUS_YES])->one();
  181. $image_model = ImageSource::find()->where('topid=:topid and status=:status and type=:type ',[':type'=>ImageSource::TYPE_DESIGNER,':topid'=>$model->id,':status'=>ImageSource::STATUS_YES])->one();
  182. $model->realname = $realname;
  183. $model->introduction = $introduction;
  184. $model->update_at = time();
  185. if(!empty($image_model)){
  186. $image_model->pic = isset($imageurl)?$imageurl:"";
  187. $image_model->updated_at = time();
  188. }else{
  189. $image_model = new ImageSource();
  190. $image_model->pic = isset($imageurl)?$imageurl:"";
  191. $image_model->updated_at = time();
  192. $image_model->created_at = time();
  193. $image_model->status = 10;
  194. $image_model->type = ImageSource::TYPE_DESIGNER;
  195. $image_model->topid = $model->id;
  196. }
  197. if($model->validate()&&$model->save()){
  198. if(!empty($imageurl)){
  199. if($image_model->validate()&&$image_model->save()){
  200. $result=['sign'=>1,'msg'=>'更新成功'];
  201. }else{
  202. $result=['sign'=>4000,'msg'=>'图片更新失败'];
  203. }
  204. }else{
  205. $result=['sign'=>1,'msg'=>'更新成功'];
  206. }
  207. }else{
  208. $result=['sign'=>4000,'msg'=>'数据有误'];
  209. }
  210. return json_encode($result);
  211. }elseif($type == "manager"){
  212. $model = Manager::find()->where('id=:id and status=:status',[':id'=>$id,':status'=>Manager::STATUS_YES])->one();
  213. $image_model = ImageSource::find()->where('topid=:topid and status=:status and type=:type ',[':type'=>ImageSource::TYPE_MANAGER,':topid'=>$model->id,':status'=>ImageSource::STATUS_YES])->one();
  214. $model->realname = $realname;
  215. $model->introduction = $introduction;
  216. $model->updated_at = time();
  217. if(!empty($image_model)){
  218. $image_model->pic = isset($imageurl)?$imageurl:"";
  219. $image_model->updated_at = time();
  220. }else{
  221. $image_model = new ImageSource();
  222. $image_model->pic = isset($imageurl)?$imageurl:"";
  223. $image_model->updated_at = time();
  224. $image_model->created_at = time();
  225. $image_model->status = 10;
  226. $image_model->type = ImageSource::TYPE_MANAGER;
  227. $image_model->topid = $model->id;
  228. }
  229. if($model->validate()&&$model->save()){
  230. if(!empty($imageurl)) {
  231. if ($image_model->validate() && $image_model->save()) {
  232. $result = ['sign' => 1, 'msg' => '更新成功'];
  233. } else {
  234. $result = ['sign' => 4000, 'msg' => '图片更新失败'];
  235. }
  236. }else{
  237. $result = ['sign' => 1, 'msg' => '更新成功'];
  238. }
  239. }else{
  240. $result=['sign'=>4000,'msg'=>'数据有误'];
  241. }
  242. return json_encode($result);
  243. }
  244. }else{
  245. if($type == "designer"){
  246. $model = Designer::find()->where('id=:id and status=:status',[':id'=>$id,':status'=>Designer::STATUS_YES])->one();
  247. }elseif($type == "manager"){
  248. $model = Manager::find()->where('id=:id and status=:status',[':id'=>$id,':status'=>Manager::STATUS_YES])->one();
  249. }
  250. return $this->render('update',['model'=>$model,'id'=>$id,'type'=>$type]);
  251. }
  252. }
  253. //添加设计师、项目经理
  254. public function actionAdd(){
  255. $type = Yii::$app->request->get('type');
  256. if(!empty($type)){
  257. $imageurl = Yii::$app->request->get('imageurl');
  258. if(!empty($imageurl)){
  259. $imageurl = $this->imgurl($imageurl);
  260. }
  261. $realname = Yii::$app->request->get('realname');
  262. $introduction= Yii::$app->request->get('introduction');
  263. if($type == "designer"){
  264. $model = new Designer();
  265. $image_model = new ImageSource();
  266. $model->realname = $realname;
  267. $model->introduction = $introduction;
  268. $model->company = Yii::$app->user->id;
  269. $model->created_at = time();
  270. $model->status = Designer::STATUS_YES;
  271. $model->update_at = time();
  272. $image_model->type = ImageSource::TYPE_DESIGNER;
  273. $image_model->pic = $imageurl;
  274. $image_model->status = ImageSource::STATUS_YES;
  275. $image_model->created_at = time();
  276. $image_model->updated_at = time();
  277. if($model->validate()&&$model->save()){
  278. $image_model->topid = $model->id;
  279. if($image_model->validate()&&$image_model->save()){
  280. $result=['sign'=>1,'msg'=>'添加成功'];
  281. }else{
  282. $result=['sign'=>4000,'msg'=>'图片添加失败'];
  283. }
  284. }else{
  285. $result=['sign'=>4000,'msg'=>'数据添加失败'];
  286. }
  287. return json_encode($result);
  288. }elseif($type == "manager"){
  289. $model = new Manager();
  290. $image_model = new ImageSource();
  291. $model->realname = $realname;
  292. $model->introduction = $introduction;
  293. $model->company = Yii::$app->user->id;
  294. $model->created_at = time();
  295. $model->status = Manager::STATUS_YES;
  296. $model->updated_at = time();
  297. $image_model->type = ImageSource::TYPE_MANAGER;
  298. $image_model->pic = $imageurl;
  299. $image_model->status = ImageSource::STATUS_YES;
  300. $image_model->created_at = time();
  301. $image_model->updated_at = time();
  302. if($model->validate()&&$model->save()){
  303. $image_model->topid = $model->id;
  304. if($image_model->validate()&&$image_model->save()){
  305. $result=['sign'=>1,'msg'=>'添加成功'];
  306. }else{
  307. $result=['sign'=>4000,'msg'=>'图片添加失败'];
  308. }
  309. }else{
  310. $result=['sign'=>4000,'msg'=>'数据添加失败'];
  311. }
  312. return json_encode($result);
  313. }
  314. $result=['sign'=>1,'msg'=>'更新成功'];
  315. return json_encode($result);
  316. }else{
  317. return $this->render('add');
  318. }
  319. }
  320. /**
  321. * 头像
  322. * @return string
  323. */
  324. public function imgurl($imageurl)
  325. {
  326. $results = LMUploadFile::wechatUploaImage($imageurl,'head',false,200,200);
  327. return $results['remote'];
  328. }
  329. //预约管理
  330. public function actionSubscribe(){
  331. $models = Appointment::find()
  332. ->joinWith('building')->where('bd_building.uid=:userid',[':userid'=>Yii::$app->user->id]);
  333. $pages = $models->count();
  334. $pages = ceil($pages/self::PAGESIZE);
  335. $models = $models->orderBy('bd_appointment.created_at desc')->limit(self::PAGESIZE)->all();
  336. return $this->render('subscribe',['models'=>$models,'pages'=>$pages]);
  337. }
  338. //预约管理分页
  339. public function actionSubscribepage(){
  340. $page = Yii::$app->request->post('page');
  341. $models = Appointment::find()
  342. ->joinWith('building')->where('bd_building.uid=:userid',[':userid'=>Yii::$app->user->id]);
  343. $models = $models->orderBy('bd_appointment.created_at desc')->offset($page*self::PAGESIZE)->limit(self::PAGESIZE)->all();
  344. return $this->renderPartial('subscribepage',['models'=>$models]);
  345. }
  346. //评价管理
  347. public function actionEvaluate(){
  348. $models = Comment::find()->joinWith('houseinfo')->where('bd_building.uid=:uid',[':uid'=>Yii::$app->user->id]);
  349. $pages = $models->count();
  350. $pages = ceil($pages/self::PAGESIZE);
  351. $models = $models->orderBy('created_at desc')->limit(self::PAGESIZE)->all();
  352. return $this->render('evaluate',['models'=>$models,'pages'=>$pages]);
  353. }
  354. //评价管理分页
  355. public function actionEvaluatepage(){
  356. $page = Yii::$app->request->post('page');
  357. $models = Comment::find()->joinWith('houseinfo')->where('bd_building.uid=:uid',[':uid'=>Yii::$app->user->id]);
  358. $models = $models->orderBy('created_at desc')->offset($page*self::PAGESIZE)->limit(self::PAGESIZE)->all();
  359. return $this->renderPartial('evaluatepage',['models'=>$models]);
  360. }
  361. //回复评价
  362. public function actionReply(){
  363. $comment_id = Yii::$app->request->get('comment_id');
  364. $user_id = Yii::$app->request->get('user_id');
  365. $content = Yii::$app->request->get('content');
  366. $model = new Reply();
  367. $model->cid = $comment_id;
  368. $model->from_userid = Yii::$app->user->id;
  369. $model->to_userid = $user_id;
  370. $model->content = $content;
  371. $model->created_at = time();
  372. $model->status = Reply::STATUS_ACTIVE;
  373. if($model->validate()&&$model->save()){
  374. $result=['sign'=>1,'msg'=>'回复成功'];
  375. }else{
  376. $result=['sign'=>4000,'msg'=>'参数有误'];
  377. }
  378. return json_encode($result);
  379. }
  380. //我的设置
  381. public function actionSetting(){
  382. return $this->render('setting');
  383. }
  384. //意见、建议反馈
  385. public function actionFeedback(){
  386. $content = Yii::$app->request->get('content');//内容
  387. $contact = Yii::$app->request->get('contact');//联系方式
  388. if(!empty($content)){
  389. $model = new Feedback();
  390. $model->uid = Yii::$app->user->id;
  391. $model->contact = $contact;
  392. $model->content = isset($content)?$content:"";
  393. $model->created_at = time();
  394. $model->updated_at = time();
  395. $model->status = Feedback::STATUS_ACTIVE;
  396. $model->state = Feedback::STATE_WAIT;
  397. $model->type = Feedback::TYPE_COMPANY;
  398. if($model->validate()&&$model->save()){
  399. $result=['sign'=>1,'msg'=>'提交成功'];
  400. }else{
  401. $result=['sign'=>4000,'msg'=>'提交失败'];
  402. }
  403. return json_encode($result);
  404. }else{
  405. return $this->render('feedback');
  406. }
  407. }
  408. //添加手机
  409. public function actionMessage(){
  410. $tel = Yii::$app->request->get('tel');
  411. $models = Tel::find()->where('uid=:uid and status=:status',[':uid'=>Yii::$app->user->id,':status'=>Tel::STATUS_ACTIVE])->all();
  412. if(!empty($tel)){
  413. $model = new Tel();
  414. $model->uid = Yii::$app->user->id;
  415. $model->tel = isset($tel)?$tel:"";
  416. $model->status = Tel::STATUS_ACTIVE;
  417. $model->type = Tel::TYPE_COMPANY;;
  418. $model->created_at = time();
  419. if($model->validate()&&$model->save()){
  420. $result=['sign'=>1,'msg'=>'添加成功'];
  421. }else{
  422. $result=['sign'=>4000,'msg'=>'添加失败'];
  423. }
  424. return json_encode($result);
  425. }else{
  426. return $this->render('message',
  427. [
  428. 'models'=>$models
  429. ]);
  430. }
  431. }
  432. //删除手机
  433. public function actionDeletetel(){
  434. $id = Yii::$app->request->get('id');
  435. $model = Tel::find()->where('id=:id and status=:status',[':id'=>$id,':status'=>Tel::STATUS_ACTIVE])->one();
  436. $model->status = Tel::STATUS_DELETED;
  437. if($model->validate()&&$model->save()){
  438. $result=['sign'=>1,'msg'=>'删除成功'];
  439. }else{
  440. $result=['sign'=>4000,'msg'=>'删除失败'];
  441. }
  442. return json_encode($result);
  443. }
  444. //项目经理详情
  445. public function actionManagerlist(){
  446. $id = Yii::$app->request->get('id');
  447. $model = Manager::find()->where('id=:id',[':id'=>$id])->one();
  448. return $this->render('managerlist',['model'=>$model]);
  449. }
  450. //设计师详情
  451. public function actionDesignerlist(){
  452. $id = Yii::$app->request->get('id');
  453. $model = Designer::find()->where('id=:id',[':id'=>$id])->one();
  454. return $this->render('designerlist',['model'=>$model]);
  455. }
  456. //关于我们
  457. public function actionProfile(){
  458. $model = Information::find()->where('type=:type',[':type'=>Information::ABOUTWE])->orderBy('created_at desc')->one();
  459. return $this->render('profile',['model'=>$model]);
  460. }
  461. //修改密码
  462. public function actionAlterpassword(){
  463. $result=['sign'=>1,'msg'=>'调用成功'];
  464. $user = \common\models\User::find()->where('id=:id',[':id'=>Yii::$app->user->id])->one();
  465. if(Yii::$app->request->post()){
  466. $password= Yii::$app->request->post('password');
  467. $password1 = Yii::$app->request->post('password1');
  468. if(!empty($password)){
  469. if(!empty($user)){
  470. if(Yii::$app->getSecurity()->validatePassword($password, $user->password_hash)){
  471. $user->password_hash = Yii::$app->security->generatePasswordHash($password1);
  472. $user->updated_at = time();
  473. if($user->save()&&$user->validate()){
  474. $result=['sign'=>1,'msg'=>'修改成功'];
  475. }else{
  476. $result=['sign'=>4000,'msg'=>'数据修改失败'];
  477. }
  478. }else{
  479. $result=['sign'=>4000,'msg'=>'密码错误'];
  480. }
  481. }else{
  482. $result=['sign'=>4000,'msg'=>'用户不存在'];
  483. }
  484. }else{
  485. $result=['sign'=>4000,'msg'=>'密码不能为空'];
  486. }
  487. return json_encode($result);
  488. }else{
  489. return $this->render('alterpassword');
  490. }
  491. }
  492. }