瀏覽代碼

fix activity_bonus bug

stanley-king 6 年之前
父節點
當前提交
720c824d22

+ 3 - 113
admin/control/person_bonus.php

@@ -14,118 +14,8 @@ require_once(BASE_ROOT_PATH . '/helper/sms_helper.php');
 require_once(BASE_ROOT_PATH . '/mobile/util/errcode.php');
 require_once(BASE_ROOT_PATH . '/helper/util_helper.php');
 require_once(BASE_ROOT_PATH . '/helper/employee_award.php');
+require_once(BASE_ROOT_PATH . '/admin/control/control.php');
 
-
-class activity_bonus
-{
-    const admin_member_id = 36429;
-    private $mErrMessage;
-    public function err() {
-        return $this->mErrMessage;
-    }
-    private function parse_rate($bonus_rate)
-    {
-        $params = explode('#', urldecode($bonus_rate));
-        $result = [];
-        foreach ($params as $val)
-        {
-            if(preg_match_all('/^(\d{1,3})\|(\d{1,7})\|(\d{1,4})$/', $val, $match))
-            {
-                $item['rate'] = intval($match[1][0]);
-                $item['amount'] = intval($match[2][0]);
-                $item['num'] = intval($match[3][0]);
-                $result[] = $item;
-            }
-        }
-
-        if(empty($result)) {
-            return false;
-        }
-        else {
-            return $result;
-        }
-    }
-
-    private function check_param($input, &$ret)
-    {
-        if(!isset($input['start_time'])) {
-            $ret = array('code' => errcode::ErrParamter,'msg' => "请输入活动开始和结束时间.");
-            return false;
-        }
-
-        $start_tm = strtotime($input['start_time']);
-        if($start_tm == false || $start_tm <  time()) {
-            $start_tm = time();
-        }
-
-        if(isset($input['end_time'])) {
-            $end_tm = strtotime($input['end_time']);
-        } else {
-            $end_tm = $start_tm + 24 * 3600;
-        }
-
-        if($end_tm <= $start_tm) {
-            $end_tm = $start_tm + 24 * 3600;
-        }
-
-        $param = [];
-        $param['send_start_date'] = $start_tm;
-        $param['send_end_date']   = $end_tm;
-
-        return $param;
-    }
-
-    public function make($input)
-    {
-        if(empty($input['bonus_rate'])) {
-            $this->mErrMessage = "bonus_rate 参数为空";
-            return false;
-        }
-
-        $result = [];
-        $result['type_name']   = $input['type_name'];
-        $result['type_bless'] = $input['type_bless'];
-        $result['sender_id']   = self::admin_member_id;
-        $result['sender_name'] = "熊猫美妆";
-        $result['send_type']   = $input['send_type'];
-        $result['usable_days']   = $input['usable_days'];
-
-        $rate_moneys = $this->parse_rate($input['bonus_rate']);
-        if($rate_moneys == false) {
-            $this->mErrMessage = "bonus_rate 或者 send_type 参数错误";
-            return false;
-
-        } else {
-            $result['rate_money'] = $rate_moneys;
-        }
-
-        $param = $this->check_param($input,$ret);
-        if($param == false) {
-            $this->mErrMessage = $ret['msg'];
-            return false;
-        }
-
-        $result = array_merge($param,$result);
-
-        $ret = bonus_helper::make_bonus($result,$rate_moneys);
-        if($ret === false) {
-            return false;
-        }
-        else
-        {
-            $type_sn = $ret['type_sn'];
-            if(BASE_SITE_URL == 'https://manager.lrlz.com') {
-                $url = "https://passport.lrlz.com/mobile/index.php?act=bonusex&op=open&client_type=wap&type_sn={$type_sn}";
-            } else {
-                $url = BASE_SITE_URL . "/mobile/index.php?act=bonusex&op=open&client_type=wap&type_sn={$type_sn}";
-            }
-
-            return array('type_sn' => $type_sn,'url' => "{$url}");
-        }
-    }
-}
-
-require_once (BASE_ROOT_PATH . '/admin/control/control.php');
 class person_bonusControl extends SystemControl
 {
     const EXPORT_SIZE = 5000;
@@ -258,7 +148,7 @@ class person_bonusControl extends SystemControl
 
             if($copies == 1)
             {
-                $maker = new activity_bonus();
+                $maker = new bonus\activity_bonus();
                 $ret = $maker->make($_POST);
                 if($ret == false) {
                     $err = $maker->err();
@@ -274,7 +164,7 @@ class person_bonusControl extends SystemControl
                 $urls = [];
                 for($i = 0; $i < $copies; ++$i)
                 {
-                    $maker = new activity_bonus();
+                    $maker = new bonus\activity_bonus();
                     $ret = $maker->make($_POST);
                     if($ret != false) {
                         $urls[] = $ret['url'];

+ 2 - 0
crontab/control/date.php

@@ -92,9 +92,11 @@ class dateControl extends BaseCronControl
 
         $this->_stat_daily();
     }
+
     public function third_clockOp()
     {
         stat_helper::onDaiyBehavior(time() - 86400);
+        bonus\activity_bonus::gen_daily_bonus();
     }
 
     public function nine_clockOp()

+ 156 - 0
helper/bonus/activity_bonus.php

@@ -0,0 +1,156 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: stanley-king
+ * Date: 2018/10/15
+ * Time: 下午5:55
+ */
+
+namespace bonus;
+
+use bonus_helper;
+use errcode;
+use Log;
+
+class activity_bonus
+{
+    const admin_member_id = 36429;
+    private $mErrMessage;
+
+    public function err()
+    {
+        return $this->mErrMessage;
+    }
+
+    private function parse_rate($bonus_rate)
+    {
+        $params = explode('#', urldecode($bonus_rate));
+        $result = [];
+        foreach ($params as $val) {
+            if (preg_match_all('/^(\d{1,3})\|(\d{1,7})\|(\d{1,4})$/', $val, $match)) {
+                $item['rate'] = intval($match[1][0]);
+                $item['amount'] = intval($match[2][0]);
+                $item['num'] = intval($match[3][0]);
+                $result[] = $item;
+            }
+        }
+
+        if (empty($result)) {
+            return false;
+        } else {
+            return $result;
+        }
+    }
+
+    private function check_param($input, &$ret)
+    {
+        if (!isset($input['start_time'])) {
+            $ret = array('code' => errcode::ErrParamter, 'msg' => "请输入活动开始和结束时间.");
+            return false;
+        }
+
+        $start_tm = strtotime($input['start_time']);
+        if ($start_tm == false || $start_tm < time()) {
+            $start_tm = time();
+        }
+
+        if (isset($input['end_time'])) {
+            $end_tm = strtotime($input['end_time']);
+        } else {
+            $end_tm = $start_tm + 24 * 3600;
+        }
+
+        if ($end_tm <= $start_tm) {
+            $end_tm = $start_tm + 24 * 3600;
+        }
+
+        $param = [];
+        $param['send_start_date'] = $start_tm;
+        $param['send_end_date'] = $end_tm;
+
+        return $param;
+    }
+
+    public function make($input)
+    {
+        if (empty($input['bonus_rate'])) {
+            $this->mErrMessage = "bonus_rate 参数为空";
+            return false;
+        }
+
+        $result = [];
+        $result['type_name'] = $input['type_name'];
+        $result['type_bless'] = $input['type_bless'];
+        $result['sender_id'] = self::admin_member_id;
+        $result['sender_name'] = "熊猫美妆";
+        $result['send_type'] = $input['send_type'];
+        $result['usable_days'] = $input['usable_days'];
+
+        $rate_moneys = $this->parse_rate($input['bonus_rate']);
+        if ($rate_moneys == false) {
+            $this->mErrMessage = "bonus_rate 或者 send_type 参数错误";
+            return false;
+
+        } else {
+            $result['rate_money'] = $rate_moneys;
+        }
+
+        $param = $this->check_param($input, $ret);
+        if ($param == false) {
+            $this->mErrMessage = $ret['msg'];
+            return false;
+        }
+
+        $result = array_merge($param, $result);
+
+        $ret = bonus_helper::make_bonus($result, $rate_moneys);
+        if ($ret === false) {
+            return false;
+        } else {
+            $type_sn = $ret['type_sn'];
+            if (BASE_SITE_URL == 'https://manager.lrlz.com') {
+                $url = "https://passport.lrlz.com/mobile/index.php?act=bonusex&op=open&client_type=wap&type_sn={$type_sn}";
+            } else {
+                $url = BASE_SITE_URL . "/mobile/index.php?act=bonusex&op=open&client_type=wap&type_sn={$type_sn}";
+            }
+
+            return array('type_sn' => $type_sn, 'url' => "{$url}");
+        }
+    }
+
+    public static function daliy_bonus_url()
+    {
+        $url = rkcache('daliy_bonus_url');
+        if (!empty($url)) {
+            return $url;
+        } else {
+            return "";
+        }
+    }
+
+    public static function gen_daily_bonus()
+    {
+        $now = time();
+        $today = date('Y-m-d', $now);
+
+        $maker = new activity_bonus();
+        $input['bonus_rate'] = "30|200|100";                     //红包参数
+        $input['type_name'] = "每日签到红包";                     //红包名称
+        $input['type_bless'] = "每天10点 试试手气";                //红包祝福语
+        $input['usable_days'] = 30;                               //使用时间
+        $input['send_type'] = 1;                               //1:随机红包
+        $input['start_time'] = $today . ' 10:00:00';
+        $input['end_time'] = $today . ' 23:59:59';
+        $input['can_share'] = 0;
+
+        $ret = $maker->make($input);
+        if ($ret == false) {
+            Log::record("daliy_bonus_url failed", Log::DEBUG);
+            return "";
+        } else {
+            $expire = strtotime($input['end_time']) - $now + 86400;
+            wkcache('daliy_bonus_url', $ret['url'], $expire);
+            return $ret['url'];
+        }
+    }
+}

+ 2 - 1
helper/bonus_helper.php

@@ -26,12 +26,13 @@ require_once (BASE_ROOT_PATH . '/helper/bonus/norate_holder.php');
 require_once (BASE_ROOT_PATH . '/helper/bonus/open_sharer.php');
 require_once (BASE_ROOT_PATH . '/helper/bonus/scaler.php');
 require_once (BASE_ROOT_PATH . '/helper/bonus/thief_vilator.php');
-
 require_once (BASE_ROOT_PATH . '/helper/bonus/IMoneyCalc.php');
 require_once (BASE_ROOT_PATH . '/helper/bonus/RateMoney.php');
 require_once (BASE_ROOT_PATH . '/helper/bonus/BonusAmount.php');
 require_once (BASE_ROOT_PATH . '/helper/bonus/account.php');
 require_once (BASE_ROOT_PATH . '/helper/bonus/recorder.php');
+require_once (BASE_ROOT_PATH . '/helper/bonus/activity_bonus.php');
+
 
 
 class bonus_helper

+ 3 - 34
mobile/control/index.php

@@ -7,6 +7,8 @@
  */
 
 
+use bonus\activity_bonus;
+
 defined('InShopNC') or exit('Access Invalid!');
 
 require_once(BASE_ROOT_PATH . '/helper/goods_helper.php');
@@ -46,7 +48,7 @@ class indexControl extends specialControl
             $tabs = index_tab::instance()->tabs();
         }
 
-        $daliy_bonus = $this->daliy_bonus_url();
+        $daliy_bonus = activity_bonus::daliy_bonus_url();
         return self::outsuccess(array('tabs' => $tabs,'daliy_bonus' =>$daliy_bonus));
     }
 
@@ -152,37 +154,4 @@ class indexControl extends specialControl
             return self::outerr(errcode::ErrParamter);
         }
     }
-
-
-    //福利社 每日领红包 修改需要同时修改 member_bonus/index
-    private function daliy_bonus_url()
-    {
-        $url = rkcache('daliy_bonus_url');
-        if(!empty($url)) {
-            return $url;
-        }
-
-        $now = time();
-        $today = date('Y-m-d',$now);
-
-        $maker = new activity_bonus();
-        $input['bonus_rate'] = "30|200|100";                     //红包参数
-        $input['type_name']  = "每日签到红包";                     //红包名称
-        $input['type_bless'] = "每天10点 试试手气";                //红包祝福语
-        $input['usable_days']= 30;                               //使用时间
-        $input['send_type']   = 1;                               //1:随机红包
-        $input['start_time']  = $today.' 10:00:00';
-        $input['end_time']    = $today.' 23:59:59';
-        $input['can_share']    = 0;
-
-        $ret = $maker->make($input);
-        if($ret == false) {
-            Log::record("daliy_bonus_url failed",Log::DEBUG);
-            return "";
-        } else {
-            $expire = strtotime($input['end_time']) - $now;
-            wkcache('daliy_bonus_url',$ret['url'],$expire);
-            return $ret['url'];
-        }
-    }
 }

+ 3 - 34
mobile/control/member_bonus.php

@@ -22,7 +22,6 @@ require_once(BASE_ROOT_PATH . '/helper/url_helper.php');
 require_once(BASE_ROOT_PATH . '/helper/invite_helper.php');
 require_once(BASE_ROOT_PATH . '/helper/activity_helper.php');
 require_once(BASE_ROOT_PATH . '/helper/room_helper.php');
-require_once(BASE_ROOT_PATH . '/admin/control/person_bonus.php');
 require_once(BASE_ROOT_PATH . '/helper/algorithm.php');
 require_once(BASE_ROOT_PATH . '/helper/login_helper.php');
 require_once(BASE_ROOT_PATH . '/helper/sms_helper.php');
@@ -30,7 +29,9 @@ require_once(BASE_ROOT_PATH . '/helper/model_helper.php');
 require_once(BASE_ROOT_PATH . '/helper/third_author/wxauthor.php');
 require_once(BASE_ROOT_PATH . '/helper/user_session/storage.php');
 
+use bonus\activity_bonus;
 use room\proto_type;
+
 class member_bonusControl extends mbMemberControl
 {
     const sampler_goods = 30;
@@ -58,7 +59,7 @@ class member_bonusControl extends mbMemberControl
         $result['convert_ratio'] = 100;
         $result['other_room'] = room_helper::page_rooms(['type' => proto_type::room_chat],'steps_count desc,room_id desc');
 
-        $result['daliy_bonus'] = schema_helper::openurl("试试手气",$this->daliy_bonus_url());
+        $result['daliy_bonus'] = schema_helper::openurl("试试手气",activity_bonus::daliy_bonus_url());
         $result['invite_friend'] = schema_helper::invite_page();
         $result['shake_bonus'] = schema_helper::shake();
         $result['donate_steps'] = schema_helper::donate_steps();
@@ -121,38 +122,6 @@ class member_bonusControl extends mbMemberControl
         return self::outsuccess($result);
     }
 
-    //福利社 每日领红包 修改需要同时修改 index/tabs
-    private function daliy_bonus_url()
-    {
-        $url = rkcache('daliy_bonus_url');
-        if(!empty($url)) {
-            return $url;
-        }
-
-        $now = time();
-        $today = date('Y-m-d',$now);
-
-        $maker = new activity_bonus();
-        $input['bonus_rate'] = "30|200|100";                     //红包参数
-        $input['type_name']  = "每日签到红包";                     //红包名称
-        $input['type_bless'] = "每天10点 试试手气";                //红包祝福语
-        $input['usable_days']= 30;                               //使用时间
-        $input['send_type']   = 1;                               //1:随机红包
-        $input['start_time']  = $today.' 10:00:00';
-        $input['end_time']    = $today.' 23:59:59';
-        $input['can_share']    = 0;
-
-        $ret = $maker->make($input);
-        if($ret == false) {
-            Log::record("daliy_bonus_url failed",Log::DEBUG);
-            return "";
-        } else {
-            $expire = strtotime($input['end_time']) - $now;
-            wkcache('daliy_bonus_url',$ret['url'],$expire);
-            return $ret['url'];
-        }
-    }
-
     private function format_rates($bonus_rate)
     {
         if ($bonus_rate != null)