MyOrderController.php 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. <?php
  2. /**
  3. * 我的订单控制器
  4. * @author 2015-12-15
  5. */
  6. class MyOrderController extends CController {
  7. public $layout = 'qyindex';
  8. public function actionIndex() {
  9. // 环境判断
  10. if (ENVIRONMENT == 'product') {
  11. // if (false) {
  12. if (isset($_COOKIE['weixin_userid']) && isset($_COOKIE['weixin_userid_signature'])) {
  13. $signature = md5($_COOKIE['weixin_userid'].'wozhua=9527');
  14. if ($signature == $_COOKIE['weixin_userid_signature']) {
  15. $userid = $_COOKIE['weixin_userid'];
  16. } else {
  17. $this->render('error', ['msg' => '未查询到用户']);die;
  18. }
  19. } else {
  20. $reditect = "api.yiguanjia.me/index.php?r=o2o/myOrder/checkUserid";
  21. $reditect = urlencode($reditect);
  22. $this->redirect('https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx08ddb347281baf39&redirect_uri='.$reditect.'&response_type=code&scope=snsapi_base&state=5e2b4706179f774e94903e1213d2222e#wechat_redirect');
  23. }
  24. } else {
  25. $userid = Yii::app()->request->getParam('weixin_userid', '');
  26. }
  27. $tech = TechInfo::getByUserid($userid);
  28. if (!$tech) {
  29. $this->render('error', ['msg' => '未查询到用户']);die;
  30. }
  31. $username = $tech->name;
  32. $user = $tech->_id;
  33. $timelist = O2oApp::getTimeList();
  34. $info = array(
  35. 'userid' => $userid,
  36. 'username' => $username,
  37. 'user' => $user,
  38. 'timelist' => $timelist,
  39. );
  40. $data = array_merge($info);
  41. $this->render('index', $data);
  42. }
  43. /**
  44. * 获取userid保存至cookie
  45. */
  46. public function actionCheckUserid() {
  47. $check = O2oApp::checkURI(1);
  48. if (!$check['success']) {
  49. $this->render('error', $check);die;
  50. } else {
  51. $userid = $check['userid'];
  52. }
  53. setcookie('weixin_userid', $userid);
  54. setcookie('weixin_userid_signature', md5($userid.'wozhua=9527'));
  55. $this->redirect(['index']);
  56. }
  57. public function actionList() {
  58. $start = Yii::app()->request->getParam('start', 0);
  59. $end = Yii::app()->request->getParam('end', 0);
  60. $userid = Yii::app()->request->getParam('userid', 0);
  61. $start = strtotime($start);
  62. $end = $end == 0 ? strtotime('+1 month', $start) : $end;
  63. $o2oApp = new O2oApp($userid);
  64. $orderData = $o2oApp->getOrder($start, $end, true);
  65. echo json_encode($orderData);
  66. }
  67. public function actionInfo() {
  68. $order = Yii::app()->request->getParam('order', '');
  69. $user = Yii::app()->request->getParam('user', '');
  70. $this->layout = 'qyinfo';
  71. $data = array(
  72. 'order' => $order,
  73. 'user' => $user
  74. );
  75. $this->render('info', $data);
  76. }
  77. /**
  78. * 保洁师确认订单
  79. */
  80. public function actionTechConfirmOrder() {
  81. $order = Yii::app()->request->getParam('order', '');
  82. $user = intval(Yii::app()->request->getParam('user', 0));
  83. if (!CommonFn::isMongoId($order) || $user == 0) {
  84. O2oApp::response(false, '订单或用户不存在', []);
  85. }
  86. $order_obj = ROrder::get(new MongoId($order));
  87. $flag = false;
  88. foreach($order_obj->technicians as $data){
  89. if ($user == $data['technician_id']) {
  90. $flag = true;break;
  91. }
  92. }
  93. if (!$order_obj || !$flag) {
  94. O2oApp::response(false, '用户或订单ID错误', []);
  95. }
  96. $order_obj->status = 3;
  97. $success = $order_obj->save();
  98. O2oApp::response($success, '保存失败,请重试', []);
  99. }
  100. /**
  101. * 保洁师确认出发
  102. */
  103. public function actionTechSetout() {
  104. $order = Yii::app()->request->getParam('order', '');
  105. $user = intval(Yii::app()->request->getParam('user', 0));
  106. if (!CommonFn::isMongoId($order) || $user == 0) {
  107. O2oApp::response(false, '订单或用户不存在', []);
  108. }
  109. $order_obj = ROrder::get(new MongoId($order));
  110. $flag = false;
  111. foreach($order_obj->technicians as $data){
  112. if ($user == $data['technician_id']) {
  113. $flag = true;break;
  114. }
  115. }
  116. if (!$order_obj || !$flag) {
  117. O2oApp::response(false, '用户或订单ID错误', []);
  118. }
  119. $order_obj->status = 4;
  120. $success = $order_obj->save();
  121. O2oApp::response($success, '保存失败,请重试', []);
  122. }
  123. /**
  124. * 保洁师确认上门
  125. */
  126. public function actionTechCome() {
  127. $order = Yii::app()->request->getParam('order', '');
  128. $user = intval(Yii::app()->request->getParam('user', 0));
  129. if (!CommonFn::isMongoId($order) || $user == 0) {
  130. O2oApp::response(false, '订单或用户不存在', []);
  131. }
  132. $order_obj = ROrder::get(new MongoId($order));
  133. $flag = false;
  134. foreach($order_obj->technicians as $data){
  135. if ($user == $data['technician_id']) {
  136. $flag = true;break;
  137. }
  138. }
  139. if (!$order_obj || !$flag) {
  140. O2oApp::response(false, '用户或订单ID错误', []);
  141. }
  142. $order_obj->status = 5;
  143. $success = $order_obj->save();
  144. O2oApp::response($success, '保存失败,请重试', []);
  145. }
  146. /**
  147. * 用户签字保洁师确认完成
  148. */
  149. public function actionTechComplete() {
  150. $order = Yii::app()->request->getParam('order', '');
  151. $user = intval(Yii::app()->request->getParam('user', 0));
  152. $url = Yii::app()->request->getParam('o2oImage', '');
  153. if (!CommonFn::isMongoId($order) || $user == 0) {
  154. O2oApp::response(false, '订单或用户不存在', []);
  155. }
  156. $order_obj = ROrder::get(new MongoId($order));
  157. $flag = false;
  158. foreach($order_obj->technicians as $data){
  159. if ($user == $data['technician_id']) {
  160. $flag = true;break;
  161. }
  162. }
  163. if (!$order_obj || !$flag) {
  164. O2oApp::response(false, '用户或订单ID错误', []);
  165. }
  166. $url = get_object_vars(json_decode($url));
  167. $order_obj->signUrl = 'http://avatar.yiguanjia.me/'.$url['hash'];
  168. $order_obj->status = 6;
  169. $success = $order_obj->save();
  170. O2oApp::response($success, '保存失败,请重试', []);
  171. }
  172. }