TechHomeController.php 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. <?php
  2. /**
  3. * 我的评价控制器
  4. * @author zhouxuchen 2015-12-11
  5. */
  6. class TechHomeController extends CController {
  7. public $layout = 'techHomeLayout';
  8. /**
  9. * 我的评价首页
  10. */
  11. public function actionIndex() {
  12. // 环境判断,正式环境需通过微信验证
  13. // if (ENVIRONMENT == 'product') {
  14. if (false) {
  15. if (isset($_COOKIE['weixin_userid']) && isset($_COOKIE['weixin_userid_signature'])) {
  16. $signature = md5($_COOKIE['weixin_userid'].'wozhua=9527');
  17. if ($signature == $_COOKIE['weixin_userid_signature']) {
  18. $userid = $_COOKIE['weixin_userid'];
  19. } else {
  20. $this->render('error', ['msg' => '未查询到用户']);die;
  21. }
  22. } else {
  23. $this->redirect('https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxedb2ce71dfee8aa5&redirect_uri=api.wozhua.mobi%2Findex.php%3Fr%3Do2o%2FtechHome%2FcheckUserid&response_type=code&scope=snsapi_base&state=5e2b4706179f774e94903e1213d2222e#wechat_redirect');
  24. }
  25. } else {
  26. $userid = Yii::app()->request->getParam('weixin_userid', '');
  27. }
  28. $tech = TechInfo::getByUserid($userid);
  29. $name = $tech->name;
  30. $_id = $tech->_id;
  31. $desc = $tech->desc ? $tech->desc : '';
  32. $avatar = $tech->avatar ? $tech->avatar : Yii::app()->params['defaultUserAvatar'];
  33. $qiniu_token = ENVIRONMENT == 'product' ?
  34. // 正式版token
  35. 'JJO5vl65dPW0Jqq2PJCKVq_s1TZToNHbyltRZF5Z:'.
  36. '8zC6c7749vXkIM2kcoZaDi8zQ4U=:'.
  37. 'eyJzY29wZSI6Indvemh1YS1hdmF0YXJzIiwiZGVhZGxpbmUiOjI5OTAwNzU1MTN9':
  38. // 测试版token
  39. 'JJO5vl65dPW0Jqq2PJCKVq_s1TZToNHbyltRZF5Z:'.
  40. 'yNDn75FCU8vu9sMsaiDzxC7CHj0=:'.
  41. 'eyJzY29wZSI6Indvemh1YS10ZXN0IiwiZGVhZGxpbmUiOjI5OTAwNzU1NTZ9';
  42. $qiniu_url = ENVIRONMENT == 'product' ?
  43. // 正式版url前缀
  44. 'http://7o52dq.com2.z0.glb.clouddn.com/':
  45. // 测试版url前缀
  46. 'http://7oxj0w.com2.z0.glb.clouddn.com/';
  47. $data = array(
  48. '_id' => $_id,
  49. 'weixin_userid' => $userid,
  50. 'name' => $name,
  51. 'desc' => $desc,
  52. 'avatar' => $avatar,
  53. 'qiniu_token' => $qiniu_token,
  54. 'qiniu_url' => $qiniu_url
  55. );
  56. $this->render('index', $data);
  57. }
  58. /**
  59. * 获取userid保存至cookie
  60. */
  61. public function actionCheckUserid() {
  62. $check = O2oApp::checkURI(24);
  63. if (!$check['success']) {
  64. $this->render('error', $check);die;
  65. } else {
  66. $userid = $check['userid'];
  67. }
  68. setcookie('weixin_userid', $userid);
  69. setcookie('weixin_userid_signature', md5($userid.'wozhua=9527'));
  70. $this->redirect(['index']);
  71. }
  72. public function actionUpdateInfo() {
  73. $tech_id = intval(Yii::app()->request->getParam('tech_id', ''));
  74. $desc = Yii::app()->request->getParam('desc', '');
  75. $avatar = Yii::app()->request->getParam('avatar', '');
  76. $tech = TechInfo::get($tech_id);
  77. // tech_info存在则更新tech_info
  78. if($tech){
  79. $tech->desc = $desc;
  80. $tech->avatar = $avatar;
  81. if ($tech->update(array('desc','avatar'), true)) {
  82. $data['id'] = $tech->_id;
  83. $data['name'] = $tech->name;
  84. $data['desc'] = $tech->desc;
  85. $data['avatar'] = $tech->avatar;
  86. CommonFn::requestAjax(true,CommonFn::getMessage('message','operation_success'),$data);
  87. } else {
  88. CommonFn::requestAjax(false, '修改失败');
  89. }
  90. // 新建一个tech_info
  91. } else {
  92. $user = User::get($tech_id);
  93. if ($user) {
  94. $tech = new TechInfo();
  95. $tech->_id = $user->_id;
  96. $tech->name = $user->name;
  97. $tech->status = $user->status;
  98. $tech->desc = $desc;
  99. $tech->avatar = $avatar;
  100. $tech->scheme = 'no_scheme';
  101. $tech->weixin_userid = '';
  102. $tech->mobile = '';
  103. $tech->service_type = [];
  104. // 保洁师接单数(状态为已完成的订单)
  105. $criteria = new EMongoCriteria();
  106. $criteria->technician('==', $tech->_id);
  107. $criteria->status('==', 6);
  108. $rOrders = ROrder::model()->findAll($criteria);
  109. $tech->order_count = $rOrders->count();
  110. // 保洁师好评数(分数为5的评价)
  111. $criteria = new EMongoCriteria();
  112. $criteria->score('==', 5);
  113. $criteria->status('==', 1);
  114. $criteria->technician('==', $tech->_id);
  115. $comments = Comment::model()->findAll($criteria);
  116. $tech->favourable_count = $comments->count();
  117. if ($tech->save()) {
  118. $data['id'] = $tech->_id;
  119. $data['name'] = $tech->name;
  120. $data['desc'] = $tech->desc;
  121. $data['avatar'] = $tech->avatar;
  122. CommonFn::requestAjax(true, CommonFn::getMessage('message', 'operation_success'), $data);
  123. }
  124. } else {
  125. CommonFn::requestAjax(false, '此保洁师不存在');
  126. }
  127. }
  128. }
  129. }