stanley-king 8 vuotta sitten
vanhempi
commit
8ae6e23d05

+ 5 - 4
data/logic/payment.logic.php

@@ -130,7 +130,6 @@ class paymentLogic
 
 
     /**
-     * 尝试使用预存款, 可以扣除运费
      * @param int $pay_sn
      * @param int $member_id
      */
@@ -149,7 +148,7 @@ class paymentLogic
         $pd_amount = $mod_member->getPdAmount($member_id);
         $order_list = $model_order->getNormalOrderList(array('pay_sn' => $pay_sn));
         $model_pd = Model('predeposit');
-        $pred_helper = new predeposit_helper($member_id);
+        $pred = new predeposit_helper($member_id);
 
         try
         {
@@ -157,9 +156,11 @@ class paymentLogic
             $pd_amount = intval($pd_amount * 100 + 0.5);
             foreach ($order_list as $order_info)
             {
-                $order_pd_amount = $pred_helper->calc_pred($order_info,$pd_amount,$no_cash);
+                $order_pd_amount = $pred->calc_pred($order_info,$pd_amount,$no_cash,$rates);
+                if(!empty($rates)) {
+                    Model()->table('order')->where(array('order_id' => $order_info['order_id']))->update(array('bonus_rate' => serialize($rates)));
+                }
                 $pd_amount -= $order_pd_amount;
-
                 $fEdit = true;
                 if($no_cash) {
                     $order_info['pd_amount'] += floatval($order_pd_amount) / 100; // 余额大于订单金额的情况

+ 6 - 2
data/model/member.model.php

@@ -596,8 +596,8 @@ class memberModel extends Model
      * @param $user_id  用户ID
      * @return array  获取用户预存款, 冻结预存款金额
      */
-    public function getMemberPdInfo($member_id){
-
+    public function getMemberPdInfo($member_id)
+    {
         //查询会员信息
         $member_id = intval($member_id);
         $member_info = $this->getMemberInfo(array('member_id'=>$member_id));
@@ -617,4 +617,8 @@ class memberModel extends Model
             'freeze_relay_balance' => $freeze_relay_balance,
             'rate_version' => $rate_version);
     }
+    public function inc_rate_version($member_id)
+    {
+        $this->where(array('member_id' => $member_id))->update(array('rate_version' => array('exp', "rate_version+1")));
+    }
 }

+ 6 - 6
data/model/predeposit.model.php

@@ -276,7 +276,7 @@ class predepositModel extends Model {
                     $data_msg['freeze_amount'] = 0;
                     $data_msg['desc'] = $data_log['lg_desc'];
 
-                    account_helper::onPredeposit('order_pay',$data['member_id'],$data['amount'],$data['order_sn']);
+                    account_helper::onPredeposit('order_pay',$data['member_id'],$data['order_sn']);
                 }
                 else {
                     $data_log['lg_av_amount'] = -$data['amount'];
@@ -296,7 +296,7 @@ class predepositModel extends Model {
                     $data_msg['av_amount'] = -$data['amount'];
                     $data_msg['desc'] = $data_log['lg_desc'];
 
-                    account_helper::onPredeposit('order_freeze',$data['member_id'],$data['amount'],$data['order_sn']);
+                    account_helper::onPredeposit('order_freeze',$data['member_id'],$data['order_sn']);
                 }
                 else {
                     $data_log['lg_av_amount'] = -$data['amount'];
@@ -313,7 +313,7 @@ class predepositModel extends Model {
                 break;
             case 'order_cancel':
                 if(isBonusExpiryDate()) {
-                    account_helper::onPredeposit('order_cancel',$data['member_id'],$data['amount'],$data['order_sn']);
+                    account_helper::onPredeposit('order_cancel',$data['member_id'],$data['order_sn']);
                     return true;
                 } else {
                     $data_log['lg_av_amount'] = $data['amount'];
@@ -330,7 +330,7 @@ class predepositModel extends Model {
                 break;
             case 'order_comb_pay':
                 if(isBonusExpiryDate()) {
-                    account_helper::onPredeposit('order_comb_pay',$data['member_id'],$data['amount'],$data['order_sn']);
+                    account_helper::onPredeposit('order_comb_pay',$data['member_id'],$data['order_sn']);
                     return true;
                 }
                 else
@@ -356,7 +356,7 @@ class predepositModel extends Model {
                 break;
             case 'refund':
                 if(isBonusExpiryDate()) {
-                    account_helper::onPredeposit('refund',$data['member_id'],$data['amount'],$data['order_sn'],$data['order_sn']);
+                    account_helper::onPredRefund('refund',$data['member_id'],$data['order_sn'],$data['refund_id']);
                     return true;
                 } else {
                     $data_log['lg_av_amount'] = $data['amount'];
@@ -412,7 +412,7 @@ class predepositModel extends Model {
                 break;
             case 'bonus_refund':
                 if(isBonusExpiryDate()) {
-                    account_helper::onPredeposit('bonus_refund',$data['member_id'],$data['amount'],$data['type_sn']);
+                    account_helper::onPredeposit('bonus_refund',$data['member_id'],$data['type_sn']);
                     return true;
                 } else {
                     $data_log['lg_av_amount'] = $data['amount'];

+ 1 - 0
data/model/refund_return.model.php

@@ -174,6 +174,7 @@ class refund_returnModel extends Model
                     if ($refund['refund_amount'] > $predeposit_amount) {
                         $log_array['amount'] = $predeposit_amount;
                     }
+                    $log_array['refund_id'] = $refund_id;
                     $state = $model_predeposit->changePd('refund', $log_array);//增加买家可用预存款金额
                 }
 

+ 122 - 47
helper/account_helper.php

@@ -62,6 +62,7 @@ class account_helper
             $push_param['member_id'] = $from_id;
             $push_param['text']      = "{$thief}偷走了您{$amount}元的红包.";
             $push_param['go_type']   = 'bonus';
+
             QueueClient::push('upushSendMsg',$push_param);
 
             return $bonusex;
@@ -142,36 +143,86 @@ class account_helper
         }
     }
 
-    private static function order_cancel($member_id,$amount,$bonus_name)
+    private static function pay_bonus($order_sn,$member_id)
     {
-        $param = self::base_param($amount,1);
-        self::admin_param($param);
-        $param['make_type'] = \bonus\type::MakeOrderCancelType;
-        $param['type_name'] = $bonus_name;
+        $mod_order = Model('order');
+        $order = $mod_order->getOrderInfo(array('order_sn' => $order_sn));
 
-        $ret = bonus_helper::make_bonus($param);
-        if($ret != false)
-        {
-            bonus_helper::send($ret['type_sn'],array($member_id));
+        $pd_amount = $order['pd_amount'];
+        $bonus_rate = $order['bonus_rate'];
+        if(empty($bonus_rate)) {
+            $bonus_rate = array(30 => $pd_amount);
+        } else {
+            $bonus_rate = unserialize($bonus_rate);
+        }
 
-            $push_param = array();
-            $push_param['member_id'] = $member_id;
-            $push_param['text']      = "取消订单退款通知:金额{$amount}元.";
-            $push_param['go_type']   = 'bonus';
-            QueueClient::push('upushSendMsg',$push_param);
+        $pred = new predeposit_helper($member_id);
+        $pred->pay_bonus($bonus_rate);
+        Model('member')->inc_rate_version($member_id);
+    }
+
+    private static function order_cancel($order_sn,$member_id)
+    {
+        $mod_order = Model('order');
+        $order = $mod_order->getOrderInfo(array('order_sn' => $order_sn));
+
+        $pd_amount = $order['pd_amount'];
+        $bonus_rate = $order['bonus_rate'];
+        if(empty($bonus_rate)) {
+            $bonus_rate = array(30 => $pd_amount);
         } else {
-            Log::record("给用户 {$member_id} 退款{$amount}失败.");
+            $bonus_rate = unserialize($bonus_rate);
         }
+
+        foreach ($bonus_rate as $rate => $amount)
+        {
+            $param = self::base_param($amount,1);
+            self::admin_param($param);
+            $param['make_type'] = \bonus\type::MakeOrderCancelType;
+            $param['type_name'] = '订单退款';
+
+            $rate_moneys = [];
+            $item['amount'] = $amount;
+            $item['num'] = 1;
+            $item['rate'] = $rate;
+            $rate_moneys[] = $item;
+
+            $ret = bonus_helper::make_bonusex($param,$rate_moneys);
+            if($ret != false)
+            {
+                bonus_helper::send($ret['type_sn'],array($member_id));
+
+                $push_param = array();
+                $push_param['member_id'] = $member_id;
+                $push_param['text']      = "取消订单退款通知:抵扣率{$rate}%,金额{$amount}元.";
+                $push_param['go_type']   = 'bonus';
+                QueueClient::push('upushSendMsg',$push_param);
+            } else {
+                Log::record("给用户{$member_id} 退款{$amount}失败.");
+            }
+        }
+        Model('member')->inc_rate_version($member_id);
     }
 
-    private static function bonus_refund($member_id,$amount,$bonus_name)
+    public static function bonus_refund($type_sn,$member_id)
     {
+        $type = \bonus\type::create_by_sn($type_sn);
+        $amount = $type->remain_amount();
+        $rate = $type->bonus_rate();
+        if(empty($rate)) $rate = 30;
+
         $param = self::base_param($amount,1);
         self::admin_param($param);
         $param['make_type'] = \bonus\type::MakeBonusRefundType;
-        $param['type_name'] = $bonus_name;
+        $param['type_name'] = "发送红包过期退款";
 
-        $ret = bonus_helper::make_bonus($param);
+        $rate_moneys = [];
+        $item['amount'] = $amount;
+        $item['num'] = 1;
+        $item['rate'] = $rate;
+        $rate_moneys[] = $item;
+
+        $ret = bonus_helper::make_bonusex($param,$rate_moneys);
         if($ret != false)
         {
             $bonus = bonus_helper::send($ret['type_sn'],array($member_id));
@@ -182,56 +233,80 @@ class account_helper
                 $push_param['go_type']   = 'bonus';
                 QueueClient::push('upushSendMsg',$push_param);
             }
-        } else {
+        }
+        else {
             Log::record("给用户 {$member_id} 红包退款{$amount}失败.");
         }
+        Model('member')->inc_rate_version($member_id);
     }
 
-    public static function register_bonus($member_id,$amount)
+    public static function register_bonus($member_id)
     {
-        $param = self::base_param($amount,1);
-        self::admin_param($param);
-        $param['make_type'] = \bonus\type::MakeRegister;
-        $param['type_name'] = "新用户注册红包";
+        $rate_moneys = [];
+        {
+            $item['amount'] = 30;
+            $item['num'] = 1;
+            $item['rate'] = 40;
+            $rate_moneys[] = $item;
+        }
+        {
+            $item['amount'] = 50;
+            $item['num'] = 1;
+            $item['rate'] = 30;
+            $rate_moneys[] = $item;
+        }
 
-        $ret = bonus_helper::make_bonus($param);
-        if($ret != false)
+        $total = 0;
+        foreach ($rate_moneys as $rate)
         {
-            $bonus = bonus_helper::send($ret['type_sn'],array($member_id));
-            return $bonus;
+            $amount = $rate['amount'];
+            $param = self::base_param($amount,1);
+            self::admin_param($param);
+            $param['make_type'] = \bonus\type::MakeRegister;
+            $param['type_name'] = "新人红包";
+
+            $ret = bonus_helper::make_bonusex($param,array($rate));
+            if($ret != false) {
+                bonus_helper::send($ret['type_sn'],array($member_id));
+                $total += $amount;
+            }
+        }
+
+        Model('member')->inc_rate_version($member_id);
+        if(($total * 100 + 0.5) > 0 ) {
+            return $total;
         } else {
             return false;
         }
     }
 
-    public static function onPredeposit($change_type,$member_id,$pd_amount,$sn)
+    public static function onPredRefund($change_type,$member_id,$sn,$refund_id)
     {
-        Log::record("onPredeposit {$change_type},{$member_id},{$pd_amount}",Log::DEBUG);
+//        $order_sn = $sn;
+//        $order = order::create_by_sn($order_sn);
+//        if($order == false) {
+//            self::pay_refund($member_id,$pd_amount,"退款红包");
+//        } else {
+//            self::pay_refund($member_id,$order->pd_amount(),"退款红包");
+//        }
+    }
 
-        if($change_type == 'order_pay') {
-            bonus_helper::withold($member_id,$pd_amount);
-        }
-        elseif($change_type == 'order_freeze') {
-            bonus_helper::withold($member_id,$pd_amount);
-        }
-        elseif($change_type == 'order_comb_pay') {
 
+    public static function onPredeposit($change_type,$member_id,$sn)
+    {
+        if($change_type == 'order_pay' || $change_type == 'order_freeze') {
+            self::pay_bonus($sn,$member_id);
         }
         elseif($change_type == 'order_cancel') { // 发送给该用户一个同等额度的红包
-            self::order_cancel($member_id,$pd_amount,"退款红包");
+            self::order_cancel($sn,$member_id);
         }
         elseif($change_type == 'refund')
-        { // 发送给该用户一个同等额度的红包
-            $order_sn = $sn;
-            $order = order::create_by_sn($order_sn);
-            if($order == false) {
-                self::pay_refund($member_id,$pd_amount,"退款红包");
-            } else {
-                self::pay_refund($member_id,$order->pd_amount(),"退款红包");
-            }
+        {
+            // 发送给该用户一个同等额度的红包
+
         }
         elseif($change_type == 'bonus_refund') { // 发送给该用户一个同等额度的红包
-            self::bonus_refund($member_id,$pd_amount,"红包过期未领退款");
+            self::bonus_refund($sn,$member_id);
         }
     }
 }

+ 2 - 5
helper/bonus_helper.php

@@ -243,14 +243,11 @@ class bonus_helper
         }
     }
 
-    static public function witholdex($member_id,$rate_moneys)
+    static public function witholdex($member_id,$rates)
     {
         $holder = new \bonus\witholder($member_id);
-        foreach ($rate_moneys as $item)
+        foreach ($rates as $rate => $money)
         {
-            $rate = $item['rate'];
-            $money = $item['amount'];
-
             if($holder->withold($rate,$money) == false) {
                 Log::record("withold user member_id={$member_id} money={$money}.",Log::ERR);
             }

+ 17 - 3
helper/buy_first.php

@@ -57,7 +57,8 @@ class buy_first
 
         //红包信息
         $result['total_pred'] = doubleval($this->mLogicOut['available_predeposit']);
-        $result['available_pred']  = doubleval($this->available_pred($goods_amount,$full_discount,$result['total_pred']));
+        $result['available_pred']  = $this->available_pred($goods_amount,$full_discount,$result['total_pred'],$rates);
+        $result['bonus_rates'] = $this->formate_rates($rates);
 
         $result['usable_pred'] = true;
         $result['pay_cash_pred'] = $result['goods_amount'] + $result['freight'] - $result['full_discount'] - $result['available_pred'];
@@ -71,6 +72,19 @@ class buy_first
         return $result;
     }
 
+    private function formate_rates($rates)
+    {
+        if(empty($rates)) return null;
+
+        $result = [];
+        foreach ($rates as $rate => $val) {
+            $item['rate'] = $rate;
+            $item['val'] = $val;
+            $result[] = $item;
+        }
+        return $result;
+    }
+
     private function full_desc($desc)
     {
         $ret = preg_match('#(.*?)<a.*?title=("|\')(.*?)\2.*?>.*?</a>#s',$desc,$matches);
@@ -214,7 +228,7 @@ class buy_first
         return $this->mLogicOut['inv_info'];
     }
 
-    private function available_pred($goods_amount,$full_discount,$pd_total)
+    private function available_pred($goods_amount,$full_discount,$pd_total,&$rates)
     {
         $full = intval($full_discount * 100 + 0.5);
         $pred_amound = $this->pred_goods_amount();
@@ -223,7 +237,7 @@ class buy_first
             $pred_amound = intval($pred_amound - ($pred_amound / $goods_amount) * $full_discount);
         }
 
-        $pred_amound = $pred_amound - predeposit_helper::bonus_money($pred_amound);
+        $pred_amound = $pred_amound - predeposit_helper::order_cash($pred_amound,$rates);
         $pred_cend = intval($pred_amound * 100 + 0.5);
         $pd_total  = intval($pd_total * 100 + 0.5);
 

+ 1 - 1
helper/model/goods_summary.php

@@ -75,7 +75,7 @@ class goods_summary
         $summary['brand_id'] = intval($this->goods_info['brand_id']);
         $summary['gc_id'] = intval($this->goods_info['gc_id']);
 
-        $summary['bonus_price'] = predeposit_helper::bonus_price($this->goods_info['goods_price']);
+        $summary['bonus_price'] = predeposit_helper::bonus_price($this->goods_info['goods_price'],$rates);
         $summary['goods_price'] = $this->goods_info['goods_price'];
         $summary['goods_marketprice'] = $this->goods_info['goods_marketprice'];
         $summary['goods_promotion_price'] = $this->goods_info['goods_promotion_price'];

+ 36 - 30
helper/predeposit_helper.php

@@ -138,8 +138,9 @@ class RateMoney
         $this->mDirty = false;
     }
 
-    public function calc_money($price)
+    public function calc_money($price,&$rates)
     {
+        $rates = [];
         $disc = 0;
         $left = intval($price * 100 + 0.5);
         foreach ($this->mRates as $rate => $total)
@@ -153,26 +154,15 @@ class RateMoney
             }
             else
             {
-                if($rate == 100)
-                {
-                    if($total >= $left) {
-                        $disc += $left;
-                        $left = 0;
-                    } else {
-                        $disc += $total;
-                        $left -= $total;
-                    }
-                }
-                else
-                {
-                    $max_rate = intval($left * $rate / 100 + 0.5);
-                    if($total >= $max_rate) {
-                        $disc += $max_rate;
-                        $left = 0;
-                    } else {
-                        $disc += $total;
-                        $left -= intval($total * 100 / $rate + 0.5);
-                    }
+                $max_rate = intval($left * $rate / 100 + 0.5);
+                if($total >= $max_rate) {
+                    $disc += $max_rate;
+                    $left = 0;
+                    $rates[$rate] = $max_rate / 100;
+                } else {
+                    $disc += $total;
+                    $left -= intval($total * 100 / $rate + 0.5);
+                    $rates[$rate] = $total / 100;
                 }
             }
         }
@@ -180,9 +170,9 @@ class RateMoney
         return $cur_price / 100;
     }
 
-    public function calc_price($price)
+    public function calc_price($price,&$rates)
     {
-        $cur_price = intval($this->calc_money($price) * 100 + 0.5);
+        $cur_price = intval($this->calc_money($price,$rates) * 100 + 0.5);
         $min_price = intval($price * (100 - self::PRED_RATE) + 0.5);
 
         if($cur_price < $min_price) {
@@ -276,7 +266,7 @@ class predeposit_helper
         return $this->mRates;
     }
 
-    static public function bonus_money($money)
+    static public function order_cash($goods_amount, &$rates)
     {
         if(isset($_SESSION['bonus_rate']) == false) {
             $pred = new predeposit_helper($_SESSION['member_id']);
@@ -285,10 +275,10 @@ class predeposit_helper
             $bonus_rate = new RateMoney($_SESSION['bonus_rate']);
         }
 
-        return $bonus_rate->calc_money($money);
+        return $bonus_rate->calc_money($goods_amount,$rates);
     }
 
-    static public function bonus_price($goods_price)
+    static public function bonus_price($goods_price,&$rates)
     {
         if(session_helper::isLogin())
         {
@@ -299,7 +289,7 @@ class predeposit_helper
                 $bonus_rate = new RateMoney($_SESSION['bonus_rate']);
             }
 
-            return $bonus_rate->calc_price($goods_price);
+            return $bonus_rate->calc_price($goods_price,$rates);
         }
         else
         {
@@ -396,7 +386,14 @@ class predeposit_helper
         $result = bonus_helper::make_bonusex($param,$rate_moneys);
         if($result == false) return false;
 
-        bonus_helper::witholdex($this->member_id,$rate_moneys);
+        $rates = [];
+        foreach ($rate_moneys as $item) {
+            $rate = intval($item['rate']);
+            $val = intval($item['amount']);
+            $rates[$rate] = $val;
+        }
+        bonus_helper::witholdex($this->member_id,$rates);
+
         $type_sn = $result['type_sn'];
         $money = $result['money'];
         $this->handout_bonus($money,$type_sn,session_helper::nickname(),"发送了{$money}元的红包.",\bonus\type::MakeSendType);
@@ -730,7 +727,7 @@ class predeposit_helper
         return $pdlogs;
     }
 
-    public function calc_pred($order_info,$pd_amount,&$no_cash)
+    public function calc_pred($order_info,$pd_amount,&$no_cash,&$rates)
     {
         $order_id = intval($order_info['order_id']);
         $mod_order = Model('order');
@@ -745,7 +742,7 @@ class predeposit_helper
             }
         }
 
-        $pred_amount = $pred_amount - $this->mRates->calc_money($pred_amount);
+        $pred_amount = $pred_amount - $this->mRates->calc_money($pred_amount,$rates);
         $cur_used = intval($pred_amount * 100 + 0.5);
         $cur_used = $cur_used > $pd_amount  ? $pd_amount : $cur_used;
 
@@ -760,4 +757,13 @@ class predeposit_helper
 
         return $cur_used - $order_pd_amount;
     }
+
+    public function pay_bonus($rates)
+    {
+        $ret = bonus_helper::witholdex($this->member_id,$rates);
+        if(!empty($rates)) {
+            $this->del_rates();
+        }
+        return $ret;
+    }
 }

+ 3 - 3
helper/session_helper.php

@@ -170,13 +170,13 @@ class session_helper
                     $push_param['go_type']   = 'bonus';
                     QueueClient::push('upushSendMsg',$push_param);
                 }
-                $bonus = account_helper::register_bonus($member_id,200);
-                if($bonus == false) {
+                $amount = account_helper::register_bonus($member_id);
+                if($amount == false) {
                     sms_helper::send_nostore_message($mobile,Sms::newcomer_code,array('account'=> $mobile,'code'=>$password,'time'=>'5'));
                 }
                 else {
                     sms_helper::send_nostore_message($mobile,Sms::newcomer_bonus_code,
-                        array('account'=> $mobile,'code'=>$password,'amount' => 200,'url' => 'http://a.app.qq.com/o/simple.jsp?pkgname=com.lrlz.beautyshop','time'=>'5'));
+                        array('account'=> $mobile,'code'=>$password,'amount' => $amount,'url' => 'http://a.app.qq.com/o/simple.jsp?pkgname=com.lrlz.beautyshop','time'=>'5'));
                 }
             }
             else

+ 2 - 2
helper/shaker_helper.php

@@ -41,7 +41,7 @@ class friend
 
 class gain_policy
 {
-    const max_amount = 50;
+    const max_amount = 10;
 
     private $strength;
     private $total_amount;
@@ -104,7 +104,7 @@ class gain_policy
 class shaker_helper
 {
     const max_gain_period = 12 * 3600;
-    const max_gain_period_system = 300;
+    const max_gain_period_system = 3 * 3600;
     const max_lost_period = 1800;
     const err_msg = '您此次么有抢到好友红包...邀请更多好友,更多机会哦~';
 

+ 40 - 2
mobile/control/admin_oper.php

@@ -27,7 +27,7 @@ class admin_operControl extends mbMemberControl
         $result = [];
         foreach ($params as $val)
         {
-            if(preg_match_all('/^(\d{1,2})\|(\d{1,4})\|(\d{1,6})$/', $val, $match))
+            if(preg_match_all('/^(\d{1,3})\|(\d{1,4})\|(\d{1,6})$/', $val, $match))
             {
                 $item['rate'] = intval($match[1][0]);
                 $item['amount'] = intval($match[2][0]);
@@ -51,7 +51,7 @@ class admin_operControl extends mbMemberControl
         }
     }
 
-    public function make_bonusOp()
+    public function make_activityOp()
     {
         if(empty($_GET['bonus_rate'])) {
             return self::outerr(errcode::ErrParamter,"bonus_rate 参数为空");
@@ -93,6 +93,44 @@ class admin_operControl extends mbMemberControl
         }
     }
 
+    public function makeOp()
+    {
+        if(empty($_GET['bonus_rate'])) {
+            return self::outerr(errcode::ErrParamter,"bonus_rate 参数为空");
+        }
+
+        $rate_moneys = $this->parse_rate($_GET['bonus_rate'],$total_num,$toal_amount,$max_rate);
+        if($rate_moneys == false) {
+            return self::outerr(errcode::ErrParamter,"bonus_rate 参数错误");
+        } else {
+            $_GET['total_amount'] = $toal_amount;
+            $_GET['total_num'] = $total_num;
+        }
+
+        $param = bonus_helper::check_personal($_GET,$ret);
+        if($param == false) {
+            return self::outerr($ret['code'],$ret['msg']);
+        }
+
+        $param['sender_id'] = $_SESSION['member_id'];
+        $param['sender_mobile'] = $_SESSION['member_mobile'];
+        $param['sender_name'] = session_helper::nickname();
+        $type = bonus_helper::create_type($param);
+
+        $type->set_rate($max_rate);
+
+        $pre_helper = new predeposit_helper($_SESSION['member_id']);
+        $ret = $pre_helper->admin_make_bonus($type->get_param(),$rate_moneys);
+
+        if($ret === false) {
+            return self::outerr(errcode::ErrBonus,"生成红包失败.");
+        } else {
+            $type_sn = $ret['type_sn'];
+            $url = BASE_SITE_URL . "/mobile/index.php?act=bonusex&op=open&client_type=wap&type_sn={$type_sn}";
+            return self::outsuccess(array('type_sn' => $ret,'url' => "{$url}"));
+        }
+    }
+
     public function resort_realtaionOp()
     {
         $mod = Model('member_relation');

+ 0 - 4
mobile/control/control.php

@@ -42,14 +42,10 @@ class mobileControl
         } else {
             $this->cur_page = 1;
         }
-
         $page = $this->cur_page;
         Log::record("curpage = {$page}",Log::DEBUG);
-
         initpage($this->page_size, $this->cur_page);
-
         $this->check_app_type();
-
         statistics_helper::instance()->add_call($_GET);
     }
 

+ 1 - 1
mobile/control/login.php

@@ -243,7 +243,7 @@ class loginControl extends mobileHomeControl
             if ($insert_id == false) {
                 return self::outerr(errcode::ErrRegister);
             } else {
-                account_helper::register_bonus($insert_id,200);
+                account_helper::register_bonus($insert_id);
                 relation_helper::onRegister($insert_id,$mobile,$member_info['member_nickname']);
                 return self::outsuccess(NULL);
             }

+ 0 - 1
mobile/control/member_bonus.php

@@ -352,7 +352,6 @@ class member_bonusControl extends mbMemberControl
                     $item['name'] = $type->sender_name();
                     $item['bonus_value'] = $user_bonus->bonus_value();
                     $item['url'] = $this->bonus_detailurl($user_bonus->type_sn());
-
                     $total_amount += $user_bonus->bonus_value();
                     $minfo = new member_info($type->sender_id());
                 } else {

+ 9 - 0
test/bonus_helperTest.php

@@ -109,6 +109,15 @@ class bonus_helperTest extends PHPUnit_Framework_TestCase
 
         $val = preg_match_all($regxp,$src,$match);
     }
+    public function testMicro()
+    {
+        microtime();
+    }
+
+    public function testRefundBonus()
+    {
+        account_helper::bonus_refund('700532450973112490',36490);
+    }
 
     public function testAndroidUrl()
     {