MyOrderController.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  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 == 'test') {
  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 = "apitest.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(24);
  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 actionTechSetout() {
  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. if (!$order_obj || $order_obj->technician != $user) {
  88. O2oApp::response(false, '用户或订单ID错误', []);
  89. }
  90. $order_obj->status = 4;
  91. $success = $order_obj->save();
  92. O2oApp::response($success, '保存失败,请重试', []);
  93. }
  94. /**
  95. * 保洁师确认上门
  96. */
  97. public function actionTechCome() {
  98. $order = Yii::app()->request->getParam('order', '');
  99. $user = intval(Yii::app()->request->getParam('user', 0));
  100. if (!CommonFn::isMongoId($order) || $user == 0) {
  101. O2oApp::response(false, '订单或用户不存在', []);
  102. }
  103. $order_obj = ROrder::get(new MongoId($order));
  104. if (!$order_obj || $order_obj->technician != $user) {
  105. O2oApp::response(false, '用户或订单ID错误', []);
  106. }
  107. $order_obj->status = 5;
  108. $success = $order_obj->save();
  109. O2oApp::response($success, '保存失败,请重试', []);
  110. }
  111. }