Эх сурвалжийг харах

Merge branch 'test' of git.oschina.net:yiguanjia/php into test

jiaomengxiao 8 жил өмнө
parent
commit
c0b8344bc9

BIN
www/images/qryiguanjia.jpg


+ 1 - 104
www/protected/commands/AsyncWorkCommand.php

@@ -63,110 +63,7 @@ class AsyncWorkCommand extends CConsoleCommand{
                 $input_data = json_decode($res,true);
                 $input_data = json_decode($res,true);
                 try {
                 try {
                     $order = ROrder::get(new MongoId($input_data['order_no']));
                     $order = ROrder::get(new MongoId($input_data['order_no']));
-                    $criteria = new EMongoCriteria();
-                    $criteria->user('==',$order->user);
-                    $criteria->status('notin',array(0,-1,-2));
-                    $order_count = ROrder::model()->count($criteria);
-                    if($order_count == 1){
-                        $criteria = new EMongoCriteria();
-                        $criteria->channel('==','20150814');
-                        $criteria->user('==',$order->user);
-                        $coupon_status = CouponCode::model()->count($criteria);
-                        if($coupon_status){
-                            $criteria = new EMongoCriteria();
-                            $criteria->date('==',(int)date('Ymd'));
-                            $offCountModel = OfflineOrderCount::model()->find($criteria);
-                            if(!$offCountModel){
-                                $offCountModel = new OfflineOrderCount();
-                                $offCountModel->date = intval(date('Ymd'));
-                                $offCountModel->count = 1;
-                                $offCountModel->save();
-                            }else{
-                                $offCountModel->count += 1;
-                                $offCountModel->update(array('count'),true);
-                            }
-                        }
-                    }
-                    $key = $input_data['id'].'_send_sms';
-                    $cache = new ARedisCache();
-                    $have_send = $cache->get($key);
-                    if(!$have_send){
-                        $order_info = $order->parseRow($order);
-                        $month = date('m');
-                        $day = date('d');
-                        $address = $order_info['address']['poi']['name'].$order_info['address']['detail'];
-                        
-                        if(date('w') == 0 || date('w') == 6){
-                            $info = '我们将在工作时间为您安排';
-                        }else{
-                            $info = '我们正在为您安排';
-                        }
-                        $master = '保洁师';//训犬师
-                        CommonSMS::send('order_pay_success',array('month'=>$month,'day'=>$day,'address'=>$address,'info'=>$info,'master'=>$master,'mobile'=>$order_info['address']['mobile']));
-                        $cache->set($key,1,86400);
-                    }
-
-                    //计算订单完成时间
-                    if($order->technician){
-                        $cost_time = Service::factory('OrderTimeCalService')->evaluaTime($order->products);
-                        $cost_hours = ceil($cost_time/60);
-                        $time_stamp = $order->booking_time;
-                        FreeTimeRecord::TechUnsetFreetime($order->technician,$time_stamp - 3600);
-                        for ($i=0; $i < $cost_hours; $i++) { 
-                            $unset_time_stamp = $time_stamp + $i*3600;
-                            FreeTimeRecord::TechUnsetFreetime($order->technician,$unset_time_stamp);
-                        }
-                        FreeTimeRecord::TechUnsetFreetime($order->technician,$unset_time_stamp + 3600);
-                    }
-                    // 通知被选择的保洁师
-                    if ($order->technician) {
-                        $tech = TechInfo::get(intval($order->technician));
-                        if ($tech->weixin_userid) {
-                            $wechat = O2oApp::getWechatActive();
-                            $url_prefix = ENVIRONMENT == 'product' ? 'http://api.yiguanjia.me' : 'http://apitest.yiguanjia.me';
-                            $wechat_data = [
-                                'touser' => $tech->weixin_userid,
-                                'msgtype' => 'news',
-                                'agentid' => '24',
-                                'news' => [
-                                    'articles' => [
-                                        [
-                                            'title' => '壹管家提示-新订单',
-                                            'description' => $tech->name.'你好!刚刚有一个新的订单被分配给你,请点击查看。',
-                                            'url' => $url_prefix.'/index.php?r=o2o/myOrder/info&order='.(string)$order->_id.'&user='.$tech->_id,
-                                        ],
-                                    ],
-                                ],
-                            ];
-                            $wechat->sendMessage($wechat_data);
-                        }
-                    }
-                    
-                    foreach ($order->products as $product) {
-                        $product_obj = Product::get($product['product']);
-                        if($product_obj){
-                            switch ($product_obj->type) {
-                                case '1':
-                                    $start_time = time();
-                                    $end_time = strtotime(date('Y-m-d',$start_time+2592000));
-                                    $coupon_id = new MongoId('556671c20eb9fb2e488be078');
-                                    Service::factory('CouponService')->giveCoupon($order->user,$coupon_id,$start_time,$end_time);
-                                    break;
-                                case '2':
-                                    $start_time = time();
-                                    $end_time = strtotime(date('Y-m-d',$start_time+2592000));
-                                    $coupon_id = new MongoId('55667f6c0eb9fb14518b6e0a');
-                                    Service::factory('CouponService')->giveCoupon($order->user,$coupon_id,$start_time,$end_time);
-                                    break;
-                                case '3':
-                                    $start_time = time();
-                                    $end_time = strtotime(date('Y-m-d',$start_time+2592000));
-                                    $coupon_id = new MongoId('55667f4a0eb9fb39518b6c06');
-                                    Service::factory('CouponService')->giveCoupon($order->user,$coupon_id,$start_time,$end_time);
-                                    break;
-                            }
-                        }
-                    }
+                    CommonFn::sendOrderSms($order,$input_data['id']);
                 } catch (Exception $e) {
                 } catch (Exception $e) {
                     continue;
                     continue;
                 }
                 }

+ 20 - 1
www/protected/components/CommonFn.php

@@ -1075,6 +1075,25 @@ class CommonFn
         }
         }
     }
     }
 
 
- 
+    public static function sendOrderSms($order,$id){
+        $key = $id.'_send_sms';
+        $cache = new ARedisCache();
+        $have_send = $cache->get($key);
+        if(!$have_send){
+            $order_info = $order->parseRow($order);
+            $month = date('m');
+            $day = date('d');
+            $address = $order_info['address']['poi']['name'].$order_info['address']['detail'];
+
+            if(date('w') == 0 || date('w') == 6){
+                $info = '我们将在工作时间为您安排';
+            }else{
+                $info = '我们正在为您安排';
+            }
+            $master = '保洁师';//
+            CommonSMS::send('order_pay_success',array('month'=>$month,'day'=>$day,'address'=>$address,'info'=>$info,'master'=>$master,'mobile'=>$order_info['address']['mobile']));
+            $cache->set($key,1,86400);
+        }
+    }
 
 
 }
 }

+ 3 - 15
www/protected/components/CommonSMS.php

@@ -11,28 +11,16 @@ class CommonSMS{
     public static function send($sms_type,$params = array()){
     public static function send($sms_type,$params = array()){
         switch ($sms_type) {
         switch ($sms_type) {
             case 'order_retrieve'://订单退款后发送短信
             case 'order_retrieve'://订单退款后发送短信
-                Service::factory('SendSMSService')->tpl_send_sms(1150245,'#month#='.$params['month'].'&#day#='.$params['day'].'&#address#='.$params['address'],$params['mobile']);
-                break;
-
-            case 'dianping_final_order'://点评订单完成后发送短信
-                Service::factory('SendSMSService')->send_sms('【壹管家】亲,',$params['mobile']);
+                Service::factory('SendSMSService')->tpl_send_sms(1594478,'#month#='.$params['month'].'&#day#='.$params['day'].'&#address#='.$params['address'],$params['mobile']);
                 break;
                 break;
 
 
             case 'final_order'://订单完成后发送短信
             case 'final_order'://订单完成后发送短信
-                Service::factory('SendSMSService')->tpl_send_sms(862005,'#name#='.$params['name'].'&#num#='.$params['num'],$params['mobile']);
+                Service::factory('SendSMSService')->tpl_send_sms(1594480,'#name#='.$params['name'].'&#num#='.$params['num'],$params['mobile']);
                 // Service::factory('SendSMSService')->tpl_send_sms(862005,'#name#='.$params['name'],$params['mobile']);
                 // Service::factory('SendSMSService')->tpl_send_sms(862005,'#name#='.$params['name'],$params['mobile']);
                 break;
                 break;
 
 
-            case 'shop_order_cancel'://有礼物订单取消后发送短信
-                Service::factory('SendSMSService')->tpl_send_sms(725637,'#order_id#='.$params['order_num'],$params['mobile']);
-                break;
-
-            case 'shop_order_ship'://有礼物订单发货后发送短信
-                Service::factory('SendSMSService')->tpl_send_sms(725639,'#express_company#='.$params['express_company'].'&#express_number#='.$params['express_number'],$params['mobile']);
-                break;
-
             case 'order_pay_success'://订单支付成功后发送短信
             case 'order_pay_success'://订单支付成功后发送短信
-                Service::factory('SendSMSService')->tpl_send_sms(1146233,'#month#='.$params['month'].'&#day#='.$params['day'].'&#address#='.$params['address'].'&#info#='.$params['info'].'&#master#='.$params['master'],$params['mobile']);
+                Service::factory('SendSMSService')->tpl_send_sms(1594484,'#month#='.$params['month'].'&#day#='.$params['day'].'&#address#='.$params['address'].'&#info#='.$params['info'].'&#master#='.$params['master'],$params['mobile']);
                 break;
                 break;
             default:
             default:
                 return false;
                 return false;

+ 1 - 0
www/protected/modules/common/CommonModule.php

@@ -8,6 +8,7 @@ class CommonModule extends CWebModule
         $this->setImport(array(
         $this->setImport(array(
             'common.controllers.*',
             'common.controllers.*',
             'common.components.*',
             'common.components.*',
+            'o2o.components.*',
         ));
         ));
     }
     }
 }
 }

+ 134 - 3
www/protected/modules/common/controllers/ActivityController.php

@@ -5,14 +5,145 @@
  * Date: 2016/10/9
  * Date: 2016/10/9
  * Time: 14:44
  * Time: 14:44
  */
  */
-class ActivityController extends CController  {
+
+class ActivityController extends O2oBaseController  {
     //扫码获取代金券
     //扫码获取代金券
+
+    public function actionIndex(){
+
+    }
+
     public function actionGetCoupon() {
     public function actionGetCoupon() {
-        echo "123";
+        $signPackage = CommonWeixin::get_sign();
         $coupon_id = Yii::app()->request->getParam('coupon_id','');//获取代金券id
         $coupon_id = Yii::app()->request->getParam('coupon_id','');//获取代金券id
-        var_dump( $coupon_id);
+        $code = Yii::app()->getRequest()->getParam("code");
+        $state = Yii::app()->getRequest()->getParam("state");
+        $home_page = Yii::app()->getRequest()->getParam("home_page",'');
+        $userId = '';
+        $appToken = '';
+        if($code && $state){
+            $accessInfo = CommonWeixin::getAccessInfo($code);
+            $userId = '';
+            echo "1";
+            if (!isset($accessInfo['errcode']) && $state == 'yiguanjia') {
+                echo "2";
+                $appToken = md5(substr($accessInfo['openid'],2));
+                //微信校验通过,登录(注册),分发token
+                $userInfo = CommonWeixin::getUserInfo($accessInfo['access_token'], $accessInfo['openid']);
+                if (!isset($accessInfo['errcode'])) {
+                    echo "3";
+                    //检查是否有注册,没有就注册
+                    $criteria = new EMongoCriteria();
+                    $criteria->unionid('==', $accessInfo['unionid']);
+                    $user = RUser::model()->find($criteria);
+                    if ($user) {
+                        echo "4";
+                        $userId = $user->_id;
+                        if(!isset($user->wx_pub_openid) || empty($user->wx_pub_openid)){
+                            $user->wx_pub_openid = $accessInfo['openid'];
+                            $user->wx_have_follow = 1;
+                            $user->update(array('wx_pub_openid','wx_have_follow'),true);
+                        }
+                    }else{
+                        echo "5";
+                        $userAr  = new RUser();
+                        $userAr->user_name = $userInfo['nickname'];
+                        $userAr->avatar = $userInfo['headimgurl'];
+                        $userAr->wx_pub_openid = $userInfo['openid'];
+                        $userAr->unionid = $userInfo['unionid'];
+                        $userAr->sex = $userInfo['sex'];
+                        $userAr->register_time = time();
+                        $userAr->channel = 'wxpub';
+                        $userAr->wx_have_follow = 1;
+                        $u_criteria = new EMongoCriteria();
+                        $u_criteria->user_name('==',$userInfo['nickname']);
+                        $olduser = RUser::model()->find($u_criteria);
+                        if($olduser){
+                            $user_new_neme = $userAr->user_name.'_'.substr(time(),-7);
+                            $userAr->user_name = $user_new_neme;
+                        }
+
+                        $result = $userAr->save();
+                        if($result){
+                            echo "6";
+                            //异步同步微信头像到七牛
+                            if (!empty($userAr->unionid) && (strpos($userAr->avatar, 'qiniu') === false)) {
+                                $list = new ARedisList('after_user_reg');
+                                $user_id = (string)$userAr->_id;
+                                $list->push($user_id);
+                            }
+                            $userId = (string)$userAr->_id;
+                        }else{
+                            var_dump($userAr);exit;
+                        }
+                    }
+                    //用户注册后,发放代金券
+                    echo "7";
+                    $coupon_id =new MongoId($coupon_id);
+                    $start_time = time();                 //发放优惠券可用开始时间
+                    $end_time = $start_time + 86400*30;   //发放优惠券过期时间
+                    if (CommonFn::isMongoId($coupon_id)) {
+                        if (CommonFn::isMongoId($user->_id)) {
+                            echo "8";
+                            Service::factory('CouponService')->giveCoupon($user->_id, $coupon_id, $start_time, $end_time);//发放代金券
+                        }
+                    }
+                }else{
+                    echo $accessInfo['errcode'];
+                    die();
+                }
+            }
+        }
+
+        if($home_page){
+            echo "9";exit;
+            $this->renderpartial('//o2o/web/index', array(
+                'version' => '2015111601',
+                'debug' => 'false',
+                'signPackage' => $signPackage,
+                'userId' => $userId,
+                'appToken' => $appToken,
+            ));
+        }else{
+            exit;
+            $this->renderpartial('getCoupon', array(
+                'version' => '2015111601',
+                'debug' => 'false',
+                'signPackage' => $signPackage,
+                'userId' => $userId,
+                'appToken' => $appToken,
+                'coupon_id' => $coupon_id,
+            ));
+        }
+
+
+
+    }
+
+    //检查微信登录页
+    public function actionWxIndex() {
+
+        $wxConfig = Yii::app()->params['wxConfig'];
+        $home_page = Yii::app()->getRequest()->getParam("home_page",'');
+        $coupon_id = Yii::app()->request->getParam('coupon_id', '');
+        $redirectURI = 'http://' . $_SERVER['HTTP_HOST'] . Yii::app()->request->baseUrl . '/index.php?r=/common/activity/getCoupon&coupon_id='.$coupon_id;
+
+        if($home_page){
+            $appURI = Yii::app()->request->baseUrl . '/common/activity/getCoupon'.'&home_page='.$home_page;
+            $redirectURI = $redirectURI.'/'.$home_page;
+        }else{
+
 
 
+            $appURI = Yii::app()->request->baseUrl . '/common/activity/getCoupon&coupon_id='.$coupon_id;
+        }
+        $scope = 'snsapi_userinfo';
+        $state = 'yiguanjia';
+        $codeURI = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=' . $wxConfig['appId'] . '&redirect_uri=' . urlencode($redirectURI) . '&response_type=code&scope=' . $scope . '&state=' . $state . '#wechat_redirect';
 
 
+        $this->renderpartial('wxIndex', array(
+            'codeURI' => $codeURI,
+            'appURI' => $appURI
+        ));
     }
     }
 
 
 }
 }

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 15 - 0
www/protected/modules/common/views/activity/getCoupon.php


+ 20 - 0
www/protected/modules/common/views/activity/index.php

@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<!--HTML5 doctype-->
+<html>
+
+<head>
+    <title>壹管家</title>
+    <meta http-equiv="Content-type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
+    <meta http-equiv="Pragma" content="no-cache">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+</head>
+
+<body>
+    <h1>扫码关注壹管家获取更多资讯</h1>
+    <img src="<?php echo Yii::app()->request->baseUrl; ?>/images/qryiguanjia.jpg" class="index_logo" />
+</body>
+
+</html>

+ 31 - 0
www/protected/modules/common/views/activity/wxIndex.php

@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<!--HTML5 doctype-->
+<html>
+
+<head>
+    <title>壹管家</title>
+    <meta http-equiv="Content-type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
+    <meta http-equiv="Pragma" content="no-cache">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+</head>
+
+<body>
+    <script type="text/javascript">
+    (function(){
+        var codeURI = '<?php echo $codeURI; ?>';
+        var appURI = '<?php echo $appURI; ?>';
+        var wxUserID = localStorage.getItem('wxUserID');
+
+        if (wxUserID) {
+            location.href = appURI;
+        } else {
+            location.href = codeURI;
+        }
+    })();
+    </script>
+</body>
+
+</html>

+ 2 - 0
www/protected/modules/o2o/controllers/OrderController.php

@@ -170,6 +170,8 @@ class  OrderController extends O2oBaseController{
                 $order->pay_channel = 'balance';
                 $order->pay_channel = 'balance';
             }
             }
             $order->status = 1;
             $order->status = 1;
+
+            CommonFn::sendOrderSms($order,(string)$order->_id);
         }else{
         }else{
             $order->status = 0;
             $order->status = 0;
         }
         }

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно