فهرست منبع

add 红包发送接口

stanley-king 8 سال پیش
والد
کامیت
6a153c6013
2فایلهای تغییر یافته به همراه155 افزوده شده و 11 حذف شده
  1. 122 2
      admin/control/person_bonus.php
  2. 33 9
      admin/templates/default/person_bonus.activity.php

+ 122 - 2
admin/control/person_bonus.php

@@ -9,8 +9,119 @@ defined('InShopNC') or exit('Access Invalid!');
 require_once(BASE_ROOT_PATH . '/helper/algorithm.php');
 require_once(BASE_ROOT_PATH . '/helper/account_helper.php');
 require_once(BASE_ROOT_PATH . '/helper/sms_helper.php');
+require_once(BASE_ROOT_PATH . '/mobile/util/errcode.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,6})\|(\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) {
+            $ret = array('code' => errcode::ErrParamter,'msg' => "错误的活动开始时间格式,请参考,2016-06-04 10:00:00.");
+            return false;
+        }
+
+        if($start_tm <  time()) {
+            $cur_time = date("Y-m-d H:i:s");
+            $ret = array('code' => errcode::ErrParamter,'msg' => "活动时间不能小于服务器当前时间:{$cur_time}");
+            return false;
+        }
+
+        if(isset($input['end_time'])) {
+            $end_tm = strtotime($input['end_time']);
+        } else {
+            $end_tm = $start_tm + 24 * 3600;
+        }
+
+        if($end_tm <= $start_tm) {
+            $ret = array('code' => errcode::ErrParamter,'msg' => "活动结束时间必须大于开始时间");
+            return false;
+        }
+
+        $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'];
+
+        $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);
+
+        $pre_helper = new predeposit_helper(self::admin_member_id);
+        $ret = $pre_helper->admin_make_bonus($result,$rate_moneys);
+        if($ret === false) {
+            return false;
+        } 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 array('type_sn' => $type_sn,'url' => "{$url}");
+        }
+    }
+}
+
 class person_bonusControl extends SystemControl
 {
     const EXPORT_SIZE = 5000;
@@ -135,8 +246,17 @@ class person_bonusControl extends SystemControl
     {
         if(chksubmit())
         {
-            $x = 0;
-
+            $admin = $this->getAdminInfo();
+            $maker = new activity_bonus();
+            $ret = $maker->make($_POST);
+            if($ret == false) {
+                $err = $maker->err();
+                showMessage($err,'index.php?act=person_bonus&op=promotion','','error');
+            } else {
+                Tpl::output('type_sn',$ret['type_sn']);
+                Tpl::output('bonus_url',$ret['url']);
+                Tpl::showpage('person_bonus.activity');
+            }
         }
         else
         {

+ 33 - 9
admin/templates/default/person_bonus.activity.php

@@ -27,14 +27,14 @@
                     <td colspan="2" class="required"><label class="validation">红包祝福语:</label></td>
                 </tr>
                 <tr class="noborder">
-                    <td class="vatop rowform"><input type="text" id="bonus_bless" name="bonus_bless" class="txt"></td>
+                    <td class="vatop rowform"><input type="text" id="bonus_bless" name="type_bless" class="txt"></td>
                 </tr>
                 <tr>
                     <td colspan="2" class="required">
                         <label class="validation">活动红包类型:
                             <select name="send_type" id="send_type">
-                                <option value="random">随机红包</option>
-                                <option value="ordinary">普通红包</option>
+                                <option value="1">随机红包</option>
+                                <option value="2">普通红包</option>
                             </select>
                         </label>
                     </td>
@@ -52,23 +52,47 @@
                         <input type="text" placeholder="rate|amount|num#rate|amount|num" name="bonus_rate" class="txt">
                     </td>
                 </tr>
-                <tr>
-                    <td colspan="2" class="required">
+                <tr class="noborder">
+                    <td class="required">
                         <label class="validation">使用该红包有效期:&nbsp;&nbsp;<input type="number" placeholder="请输入红包有效期" name="valid">&nbsp;&nbsp;天</label>
                     </td>
                 </tr>
-                <tr>
-                    <td colspan="2" class="required"><label class="validation">活动开始时间:&nbsp;&nbsp;<input type="datetime-local" name="start_time"></label></td>
+                <tr class="noborder">
+                    <td class="vatop rowform">
+                        <label class="validation">活动开始时间:(2017-03-01 10:00:00)</label>
+                    </td>
                 </tr>
-                <tr>
-                    <td colspan="2" class="required"><label class="validation">活动结束时间:&nbsp;&nbsp;<input type="datetime-local" name="end_time"></label></td>
+                <tr class="noborder">
+                    <td class="vatop rowform">
+                        <input type="text" placeholder="2017-03-01 10:00:00" name="start_time" class="txt">
+                    </td>
+                </tr>
+                <tr class="noborder">
+                    <td class="vatop rowform">
+                        <label class="validation">活动结束时间:(2017-03-02 10:00:00)</label>
+                    </td>
+                </tr>
+                <tr class="noborder">
+                    <td class="vatop rowform">
+                        <input type="text" placeholder="2017-03-02 10:00:00" name="end_time" class="txt">
+                    </td>
                 </tr>
             </tbody>
+
             <tfoot>
                 <tr>
                     <td colspan="2" ><a href="JavaScript:void(0);" class="btn" id="promotion_submit"><span><?php echo $lang['nc_submit'];?></span></a></td>
                 </tr>
             </tfoot>
+            <?php
+            if(!empty($output['type_sn']))
+            {
+                echo '<tr><td><label class="validation">生成的红包序列号:'. $output['type_sn'] . '</label></td></tr>';
+                echo '<tr class="noborder"><td class="vatop rowform"><label class="validation">'.$output['bonus_url'] .'</label></td></tr>';
+                
+            }
+            ?>
+
         </table>
     </form>
 </div>