Browse Source

增加Account 事件通知

stanley-king 8 years atrás
parent
commit
ebbc50ad56

+ 175 - 6
helper/account_helper.php

@@ -105,7 +105,80 @@ class account_helper
         return $param;
     }
 
-    public static function invite_bonus($relay_id,&$err)
+    private static function evaluate_param(&$rate_moneys)
+    {
+        $param['make_type'] = \bonus\type::MakeSendType;
+        $param['type_name'] = "评论奖励红包";
+        $param['fixed_money'] = 10;
+        $param['total_num']   = 1;
+        $param['send_type'] = \bonus\type::SendType_Fixed;
+        $param['grab_type'] = \bonus\type::GrabType_All;
+        $param['bonus_rate'] = 50;
+        $param['sender_id']   = self::admin_member_id;
+        $param['sender_name'] = self::admin_name;
+
+        $rate_moneys = [];
+        $item['amount'] = 10;
+        $item['num'] = 1;
+        $item['rate'] = 50;
+        $rate_moneys[] = $item;
+
+        return $param;
+    }
+
+    public static function evaluate_bonus($member_id,&$money)
+    {
+        $param = self::evaluate_param($rates);
+        $type = bonus_helper::create_by_paramer($param);
+        $money = $type->getTotal_amount();
+        $ret = bonus_helper::make_bonus($param,$rates);
+        if($ret != false) {
+            $type_sn = $ret['type_sn'];
+            bonus_helper::send($type_sn,array($member_id));
+            return $type_sn;
+        } else {
+            return false;
+        }
+    }
+
+    private static function guide_param(&$rate_moneys)
+    {
+        $param['make_type'] = \bonus\type::MakeSendType;
+        $param['type_name'] = "评论奖励红包";
+        $param['fixed_money'] = 10;
+        $param['total_num']   = 1;
+        $param['send_type'] = \bonus\type::SendType_Fixed;
+        $param['grab_type'] = \bonus\type::GrabType_All;
+        $param['bonus_rate'] = 50;
+        $param['sender_id']   = self::admin_member_id;
+        $param['sender_name'] = self::admin_name;
+
+        $rate_moneys = [];
+        $item['amount'] = 10;
+        $item['num'] = 1;
+        $item['rate'] = 50;
+        $rate_moneys[] = $item;
+
+        return $param;
+    }
+
+    public static function guide_bonus($member_id,&$money)
+    {
+        $param = self::guide_param($rates);
+        $type = bonus_helper::create_by_paramer($param);
+        $money = $type->getTotal_amount();
+        $ret = bonus_helper::make_bonus($param,$rates);
+        if($ret != false) {
+            $type_sn = $ret['type_sn'];
+            bonus_helper::send($type_sn,array($member_id));
+            return $type_sn;
+        } else {
+            return false;
+        }
+    }
+
+
+    public static function invite_bonus($relay_id)
     {
         $last_type = bonus_helper::last_invite_type($relay_id);
         if(is_null($last_type) == false) {
@@ -402,8 +475,6 @@ class account_helper
     }
     static public function paysuccess_bonus($buyer_id, $total_amount)
     {
-        Log::record("paysuccess_bonus total_amount={$total_amount}");
-
         $rate_moneys = self::make_rates($total_amount);
 
         $val = 0.00;
@@ -447,7 +518,6 @@ class account_helper
 //        }
     }
 
-
     public static function onPredeposit($change_type,$member_id,$sn)
     {
         if($change_type == 'order_pay' || $change_type == 'order_freeze') {
@@ -464,15 +534,114 @@ class account_helper
         }
     }
 
-
+    //和营销相关的事件区域
     public static function onRegister($member_id)
     {
         account_helper::register_bonus($member_id);
-        //relation_helper::onRegister($member_id,$mobile,$member_info['member_nickname']);
+        relation_helper::onRegister($member_id);
+    }
+
+    public static function onRegisterBonus($member_info,\bonus\type $type,$relay_id)
+    {
+        $member_id = intval($member_info['member_id']);
+        relation_helper::onRegister($member_id);
+
+        if($relay_id > 0) {
+            $share_user = $relay_id;
+        } else {
+            $share_user = $type->sender_id();
+        }
+
+        $ret = relation_helper::onSubscribe($member_id,$share_user);
+        if($ret) {
+            $mem = new member_info($member_info);
+            push_helper::notice_subscribe($share_user,$mem);
+        }
+        relation_helper::onInvite($share_user,$member_id);
+        $amount = self::register_bonus($member_id);
+
+        return $amount;
+    }
+
+    public static function onStatus($member_id)
+    {
+        relation_helper::onLogin($member_id);
+
+        $member_info = Model('member')->getMemberInfoByID($member_id);
+
+        $update_info['member_login_num']  = $member_info['member_login_num'] + 1;
+        $update_info['member_login_time'] = time();
+        $update_info['member_old_login_time'] = $member_info['member_login_time'];
+        $update_info['member_login_ip'] = getIp();
+        $update_info['member_old_login_ip'] = $member_info['member_login_ip'];
+
+        Model('member')->editMember(array('member_id' => $member_id), $update_info);
     }
 
+
     public static function onLogin($member_id)
     {
         relation_helper::onLogin($member_id);
     }
+
+    public static function onEvaluate($member_id)
+    {
+        if(self::evaluate_bonus($member_id,$money) != false) {
+            push_helper::evaluation_bonus($member_id,$money);
+        }
+    }
+
+    public static function onInvite($sender_id,$relay_id)
+    {
+        if($relay_id > 0) {
+            $member_id = $relay_id;
+        } else {
+            $member_id = $sender_id;
+        }
+        if($member_id < 0) return false;
+
+        if(self::guide_bonus($member_id,$money) != false) {
+            push_helper::evaluation_bonus($member_id,$money);
+        }
+    }
+    //在发货之后,可以提醒用户留意收货,在订单中查看物流
+    public static function onOrderSend($member_id)
+    {
+        Log::record("account_helper::onOrderSend {$member_id}",Log::DEBUG);
+    }
+    //在支付成功之后,可以提醒用户收到货后,可以收到红包奖励。
+    public static function onPaySuccess($member_id)
+    {
+        Log::record("account_helper::onOrderSuccess {$member_id}",Log::DEBUG);
+    }
+
+    public static function onOrderSuccess($pay_sn)
+    {
+        $data = &$result['data'];
+        $order_amount = 0.0;
+        $goods_amount = 0.0;
+        if(is_array($data['order_list']))
+        {
+            foreach($data['order_list'] as $key => $order) {
+                $order_amount += doubleval($order['order_amount']);
+                $goods_amount += doubleval($order['goods_amount']);
+            }
+
+            $mod = Model('order');
+            $info = $mod->getOrderInfo(array('pay_sn' => $pay_sn));
+            $buyer_id = intval($info['buyer_id']);
+            $goods_amount = intval($info['goods_amount']);
+
+            $ret = account_helper::paysuccess_bonus($buyer_id,$goods_amount);
+            if($ret == false) {
+                Log::record("向用户发送购物后分享红包失败",log::ERR);
+                return false;
+            } else {
+                return true;
+            }
+        }
+        else {
+            return false;
+        }
+    }
 }

+ 2 - 2
helper/goods_helper.php

@@ -55,13 +55,13 @@ class goods_helper
         $mod = Model('goods');
         $common_info = $mod->getGoodeCommonInfoByID($common_id);
         if(empty($common_info)) {
-            $err = errcode::ErrParamter;
+            $err = array('code' => errcode::ErrParamter,'msg' =>'商品不存在或者已经删除');
             return false;
         }
 
         $goods_list = $mod->getGoodsOnlineList(array('goods_commonid' => $common_id),self::fieldstr);
         if(empty($goods_list)) {
-            $err = errcode::ErrParamter;
+            $err = array('code' => errcode::ErrParamter,'msg' =>'抱歉,商品已经下架了,不能查看详情~');
             return false;
         }
 

+ 4 - 27
helper/pay_helper.php

@@ -184,6 +184,7 @@ class pay_helper
             return null;
         }
     }
+
     public function OnSuccess($pay_sn)
     {
         $logic_payment = Logic('payment');
@@ -191,33 +192,9 @@ class pay_helper
 
         if($result['state'] != true) {
             return false;
-        }
-
-        $data = &$result['data'];
-        $order_amount = 0.0;
-        $goods_amount = 0.0;
-        if(is_array($data['order_list']))
-        {
-            foreach($data['order_list'] as $key => $order) {
-                $order_amount += doubleval($order['order_amount']);
-                $goods_amount += doubleval($order['goods_amount']);
-            }
-
-            $mod = Model('order');
-            $info = $mod->getOrderInfo(array('pay_sn' => $pay_sn));
-            $buyer_id = intval($info['buyer_id']);
-            $goods_amount = intval($info['goods_amount']);
-
-            $ret = account_helper::paysuccess_bonus($buyer_id,$goods_amount);
-            if($ret == false) {
-                Log::record("向用户发送购物后分享红包失败",log::ERR);
-                return false;
-            } else {
-                return true;
-            }
-        }
-        else {
-            return false;
+        } else {
+            account_helper::onPaySuccess($pay_sn);
+            return true;
         }
     }
 

+ 9 - 0
helper/push_helper.php

@@ -65,6 +65,15 @@ class push_helper
 
         QueueClient::push('upushSendMsg',$push_param);
     }
+    public static function evaluation_bonus($member_id,$money)
+    {
+        $push_param = array();
+        $push_param['member_id'] = $member_id;
+        $push_param['text']      = "感谢您的评价,熊猫美妆向您奖励了{$money}元的红包,请查收~.";
+        $push_param['go_type']   = 'bonus';
+
+        QueueClient::push('upushSendMsg',$push_param);
+    }
 
     public static function notice_expring($member_id,$amount,$remain_days)
     {

+ 2 - 1
helper/session_helper.php

@@ -189,7 +189,6 @@ class session_helper
             if ($member_id != false)
             {
                 $info = $mod_member->getMemberInfoByID($member_id);
-                relation_helper::onRegister($member_id);
 
                 if($relay_id > 0) {
                     $share_user = $relay_id;
@@ -203,6 +202,8 @@ class session_helper
                 }
                 relation_helper::onInvite($share_user,$member_id);
                 $amount = account_helper::register_bonus($member_id);
+                account_helper::onInvite($type->sender_id(),$relay_id);
+
                 if($amount == false) {
                     sms_helper::send_nostore_message($mobile,Sms::newcomer_code,array('account'=> $mobile,'code'=>$password,'time'=>'5'));
                 }

+ 1 - 1
mobile/control/goods_common.php

@@ -39,7 +39,7 @@ class goods_commonControl extends mobileControl
             $helper = new goods_helper();
             $ret = $helper->get_spu($common_id,$goods_id,$err);
             if($ret == false) {
-                return self::outerr($err);
+                return self::outerr($err['code'],$err['msg']);
             }
             else
             {

+ 4 - 5
mobile/control/login.php

@@ -38,7 +38,7 @@ class loginControl extends mobileHomeControl
     {
         if ($_SESSION['is_login'] == '1') {
             session::instance()->set_cookie($_SESSION['MPHPSESSID']);
-            account_helper::onLogin($_SESSION['member_id']);
+            account_helper::onStatus($_SESSION['member_id']);
             return self::outsuccess(array('member_id' => $_SESSION['member_id'],'HPHPSESSID' => $_SESSION['MPHPSESSID']));
         } else {
             return self::outsuccess(NULL);
@@ -237,7 +237,6 @@ class loginControl extends mobileHomeControl
                 Model('cart')->mergecart($member_info, $_SESSION['store_id']);
                 Model('goods_browse')->mergebrowse($_SESSION['member_id'], $_SESSION['store_id']);
                 account_helper::onRegister($_SESSION['member_id']);
-
                 session::instance()->set_cookie($_SESSION['MPHPSESSID']);
                 return self::outsuccess(array('member_id' => $_SESSION['member_id'],'HPHPSESSID' => $_SESSION['MPHPSESSID']));
             }
@@ -329,6 +328,8 @@ class loginControl extends mobileHomeControl
 
             if(!isset($member_id) || $member_id == false) {
                 return self::outerr(errcode::ErrMemberNotExist);
+            } else {
+                account_helper::onRegister($member_id);
             }
         }
         else {
@@ -352,10 +353,8 @@ class loginControl extends mobileHomeControl
             $model->createSession($info);
             Model('cart')->mergecart($info, $_SESSION['store_id']);
             Model('goods_browse')->mergebrowse($_SESSION['member_id'], $_SESSION['store_id']);
-            account_helper::onRegister($_SESSION['member_id']);
-
             session::instance()->set_cookie($_SESSION['MPHPSESSID']);
             return self::outsuccess(array('member_id' => $_SESSION['member_id'],'HPHPSESSID' => $_SESSION['MPHPSESSID']));
         }
     }
-}
+}

+ 3 - 2
mobile/control/member_bonus.php

@@ -153,7 +153,7 @@ class member_bonusControl extends mbMemberControl
 
     public function inviteOp()
     {
-        $type_sn = account_helper::invite_bonus($_SESSION['member_id'],$err);
+        $type_sn = account_helper::invite_bonus($_SESSION['member_id']);
         if($type_sn == false) {
             return self::outerr(errcode::ErrBonus,"生成邀请红包失败.");
         }
@@ -575,6 +575,7 @@ class member_bonusControl extends mbMemberControl
     {
         switch ($make_type) {
             case bonus\type::MakeSendType: //抢
+            case bonus\type::MakeInviteType:
                 return 1;
             case bonus\type::MakeBonusRefundType: //退
             case bonus\type::MakePayRefundType:
@@ -670,7 +671,7 @@ class member_bonusControl extends mbMemberControl
     {
         $count = ranklist_helper::list_count($_SESSION['member_id']);
         if($count == false) {
-            return self::outerr(errcode::ErrBonusDailyRank,"红包风云榜错误.");
+            return self::outerr(errcode::ErrBonusDailyRank,"您还没有抢红包记录,明天才能看到榜单~");
         }
         $start_index = ($this->page_no() - 1) * $this->page_size();
         $end = $start_index + $this->page_size();

+ 3 - 1
mobile/control/member_evaluate.php

@@ -8,6 +8,7 @@
 
 require_once(BASE_ROOT_PATH . '/helper/FileUploader.php');
 require_once(BASE_ROOT_PATH . '/helper/order_helper.php');
+require_once(BASE_ROOT_PATH . '/helper/account_helper.php');
 
 
 class member_evaluateControl extends mbMemberControl
@@ -255,12 +256,13 @@ class member_evaluateControl extends mbMemberControl
         //更新订单信息并记录订单日志
         $state = $model_order->editOrder(array('evaluation_state'=>1), array('order_id' => $order_id));
         $model_order->editOrderCommon(array('evaluation_time'=>TIMESTAMP), array('order_id' => $order_id));
-        if ($state){
+        if ($state) {
             $data = array();
             $data['order_id'] = $order_id;
             $data['log_role'] = 'buyer';
             $data['log_msg'] = L('order_log_eval');
             $model_order->addOrderLog($data);
+            account_helper::onEvaluate($_SESSION['member_id']);
         }
 
         //添加会员积分