EcShop充值卡功能插件(2)

本文介绍了一个礼品卡管理系统的实现过程,包括卡片类型的增删改查、卡片生成与删除等功能。系统使用PHP语言开发,通过代码示例展示了如何进行数据库操作及页面显示。
在admin下
创建ks_card.php
由于文件比较长,基本都是一些crud 我直接展示代码  不懂的地方留言吧

<?php

define('IN_ECS', true);

require(dirname(__FILE__) . '/includes/init.php');


if (empty($_REQUEST['act']))
{
    $_REQUEST['act'] = 'cat';
}
else
{
    $_REQUEST['act'] = trim($_REQUEST['act']);
}


$exc = new exchange($ecs->table('bonus_type'), $db, 'type_id', 'type_name');


//-- 礼品卡分类列表

if ($_REQUEST['act'] == 'cat')
{
    $smarty->assign('ur_here',     '礼品卡分类');
    $smarty->assign('action_link', array('text' => '添加礼品卡类型', 'href' => 'ks_card.php?act=add'));
    $smarty->assign('full_page',   1);

    $list = get_type_list();

    $smarty->assign('type_list',    $list);

    assign_query_info();
    $smarty->display('ks_card_type.htm');
}


if ($_REQUEST['act'] == 'edit_card_type')
{
      $card_id = !empty($_REQUEST['cid'])    ? intval($_REQUEST['cid'])    : 0;
      $card_type = !empty($_REQUEST['tid'])    ? intval($_REQUEST['tid'])    : 0;
   
    $smarty->assign('lang',         $_LANG);
    $smarty->assign('ur_here',     '编辑礼品卡类别');
    $smarty->assign('action_link', array('text' => '礼品卡列表', 'href' => "ks_card.php?act=list"));
    $smarty->assign('action',       'edit_card_type');
   
    $smarty->assign('card_name',     get_type_name($card_type));
    $smarty->assign('form_act',     'card_type_update');
    $smarty->assign('card_id',     $card_id);
    $smarty->assign('card_type',     $card_type);
    $smarty->assign('cfg_lang',     $_CFG['lang']);
    $list = get_catd_type_list();
    $smarty->assign('type_list',    $list);
    assign_query_info();
    $smarty->display('ks_edit_card_type.htm');

}


//-- 修改礼品卡分类


if ($_REQUEST['act'] == 'card_type_update')
{
    
    $card_id     = !empty($_REQUEST['cid'])    ? intval($_REQUEST['cid'])    : 0;
    $up_card_type     = !empty($_REQUEST['card_type'])    ? intval($_REQUEST['card_type'])    : 0;
    $sql = "UPDATE " .$ecs->table('ks_cards'). " SET ".
           "card_type        = '$up_card_type'".
           "WHERE card_id    = '$card_id'";
    $db->query($sql);
   
    $url = "ks_card.php?act=edit_card_type&cid=$card_id&tid=$up_card_type";

    ecs_header("Location: $url\n");
    exit;
}


//-- 导出线下发放的信息

if ($_REQUEST['act'] == 'excel')
{
    @set_time_limit(0);

   
    $tid  = !empty($_GET['tid']) ? intval($_GET['tid']) : 0;
    $type_name = $db->getOne("SELECT cat_name FROM ".$ecs->table('ks_cardcats')." WHERE cat_id = '$tid'");

   
    $bonus_filename = $type_name .'_bonus_list';
    if (EC_CHARSET != 'gbk')
    {
        $bonus_filename = ecs_iconv('UTF8', 'GB2312',$bonus_filename);
    }

    header("Content-type: application/vnd.ms-excel; charset=utf-8");
    header("Content-Disposition: attachment; filename=$bonus_filename.xls");

   
    if (EC_CHARSET != 'gbk')
    {
        echo ecs_iconv('UTF8', 'GB2312', '礼品卡序号') ."\t";
        echo ecs_iconv('UTF8', 'GB2312', '礼品卡密码') ."\t\n";
    }
    else
    {
        echo "礼品卡序号" ."\t";
        echo "礼品卡密码" ."\t\n";
    }

    $val = array();
    $sql = "SELECT card_sn, card_pwd ".
           "FROM ".$ecs->table('ks_cards').
           "WHERE  card_type = '$tid' ORDER BY card_id";
    $res = $db->query($sql);

    $code_table = array();
    while ($val = $db->fetchRow($res))
    {
        echo $val['card_sn'] . "\t";
        echo $val['card_pwd'] . "\t";
        echo "\t\n";
    }
}



function get_catd_type_list()
{

  
    $sql = "SELECT * FROM " .$GLOBALS['ecs']->table('ks_cardcats');
                           
    $result = $GLOBALS['db']->getAll($sql);
    $goods = array();
   
    foreach ($result AS $idx => $row)
    {
       
          $goods[$idx]['cat_id']           = $row['cat_id'];
        $goods[$idx]['cat_name']           = $row['cat_name'];

    }

return $goods;
}


if ($_REQUEST['act'] == 'edit_card')
{
      $type_id     = !empty($_REQUEST['tid'])    ? intval($_REQUEST['tid'])    : 0;
   
    $smarty->assign('lang',         $_LANG);
    $smarty->assign('ur_here',     '礼品卡列表');
    $smarty->assign('action_link', array('text' => '礼品卡列表', 'href' => "ks_card.php?act=list"));
    $smarty->assign('action',       'edit_card');

    $smarty->assign('form_act',     'card_update');
    $smarty->assign('type_id',     $type_id);
    $smarty->assign('cfg_lang',     $_CFG['lang']);

    assign_query_info();
    $smarty->display('ks_edit_card.htm');

}



//-- 翻页、排序


if ($_REQUEST['act'] == 'query')
{
    $list = get_order_list();

    $smarty->assign('type_list',    $list['item']);
    $smarty->assign('filter',       $list['filter']);
    $smarty->assign('record_count', $list['record_count']);
    $smarty->assign('page_count',   $list['page_count']);

    $sort_flag  = sort_flag($list['filter']);
    $smarty->assign($sort_flag['tag'], $sort_flag['img']);

    make_json_result($smarty->fetch('ks_order_list.htm'), '',
        array('filter' => $list['filter'], 'page_count' => $list['page_count']));
}


//-- 礼品实卡列表


if ($_REQUEST['act'] == 'list')
{
   
     
    $type_id     = !empty($_REQUEST['tid'])    ? intval($_REQUEST['tid'])    : 0;
    $card_id     = !empty($_REQUEST['id'])    ? intval($_REQUEST['id'])    : 0;
    $pageid = !empty($_REQUEST['page'])    ? intval($_REQUEST['page'])    : 1;
      $pagesize = 50;
   
    $smarty->assign('ur_here',     '礼品卡实卡');
    $smarty->assign('action_link', array('text' => '生成礼品卡', 'href' => "ks_card.php?act=edit_card&tid=$type_id"));
    $smarty->assign('full_page',   1);

    $list = get_card_list($type_id,$card_id,$pagesize,$pageid);
   
    $pages = get_card_page($pagesize,$type_id);

    $smarty->assign('type_list',    $list);
    $smarty->assign('pages',    $pages);

    assign_query_info();
    $smarty->display('ks_card_list.htm');
}



function get_card_page($pagesize,$type_id)
{
    if($type_id == 0)
        {
    $sql = "SELECT COUNT(*) FROM " .$GLOBALS['ecs']->table('ks_cards'); 
      }
    else
      {
    $sql = "SELECT COUNT(*) FROM " .$GLOBALS['ecs']->table('ks_cards') . " WHERE card_type = '$type_id'"; 
      
    $total = $GLOBALS['db']->getOne($sql);
   
    $total = intval($total);
    $pagesize = intval($pagesize);
   
    $pages = ceil($total/$pagesize); //计算总分页
   
    for ($i = 1; $i <= $pages; $i++)
    {
        if($type_id == 0)
        {
            $pagestr.="<a href="ks_card.php?act=list&page=".$i."">第".$i."页</a>&nbsp;&nbsp;";
        }
        else
        {
        $pagestr.="<a href="ks_card.php?act=list&tid=".$type_id."&page=".$i."">第".$i."页</a>&nbsp;&nbsp;";
      }
    }

return $pagestr;

}


//-- 生成礼品实卡


if ($_REQUEST['act'] == 'card_update')
{
   
     
    $type_id     = !empty($_REQUEST['tid'])    ? intval($_REQUEST['tid'])    : 0;
    $bnum     = !empty($_REQUEST['bnum'])    ? intval($_REQUEST['bnum'])    : 0;
    $cnum     = !empty($_REQUEST['cnum'])    ? intval($_REQUEST['cnum'])    : 0;
   
    if($type_id != 0)
    {
    create_card($type_id,$bnum,$cnum);
    }
 
    $url = "ks_card.php?act=list&tid=$type_id";

    ecs_header("Location: $url\n");
    exit;
}


//-- 删除礼品卡实卡

if ($_REQUEST['act'] == 'delsn')
{
    check_authz_json('card_and_card');

    $id = intval($_GET['id']);
    $tid = intval($_GET['tid']);

//   $exc->drop($id);


   
    $db->query("DELETE FROM " .$ecs->table('ks_cards'). " WHERE card_id = '$id'");

    $url = "ks_card.php?act=list&tid=$tid";

    ecs_header("Location: $url\n");
    exit;

}


//-- 礼品卡订单详情


if ($_REQUEST['act'] == 'order_info')
{
   
     
    $order_id     = !empty($_REQUEST['id'])    ? intval($_REQUEST['id'])    : 0;
   
    $smarty->assign('lang',         $_LANG);
    $smarty->assign('ur_here',     '订单详情');
    $smarty->assign('action_link', array('text' => '订单列表', 'href' => "ks_card.php?act=order"));
    $smarty->assign('action',       'order_info');

    $smarty->assign('form_act',     'order_update');
    $smarty->assign('cfg_lang',     $_CFG['lang']);

    $list = $db->getRow("SELECT * FROM " .$ecs->table('ks_order'). " WHERE order_id = '$order_id'");

    $smarty->assign('order',    $list);

    assign_query_info();
    $smarty->display('ks_order_info.htm');

}

//-- 订单编辑页面


if ($_REQUEST['act'] == 'order_update')
{

   
    $id        = !empty($_POST['id'])    ? intval($_POST['id'])    : 0;
    $order_user      = !empty($_POST['order_user'])  ? trim($_POST['order_user'])    : '';
    $order_address   = !empty($_POST['order_address'])  ? trim($_POST['order_address'])    : '';
    $order_tel      = !empty($_POST['order_tel'])  ? trim($_POST['order_tel'])    : '';
    $order_phone      = !empty($_POST['order_phone'])  ? trim($_POST['order_phone'])    : '';
    $order_bak      = !empty($_POST['order_bak'])  ? trim($_POST['order_bak'])    : '';
    $shipping_time      = !empty($_POST['shipping_time'])  ? trim($_POST['shipping_time'])    : '';


    $sql = "UPDATE " .$ecs->table('ks_order'). " SET ".
           "order_user        = '$order_user', ".
           "order_address        = '$order_address', ".
           "order_tel        = '$order_tel', ".
           "order_phone         = '$order_phone', ".
           "order_bak         = '$order_bak', ".
           "shipping_time         = '$shipping_time' ".
           "WHERE order_id    = '$id'";

   $db->query($sql);

  
  
   clear_cache_files();

  
   $link[] = array('text' => '返回此订单' , 'href' => "ks_card.php?act=order_info&id=$id");
   sys_msg($_LANG['edit'] .' '.$_POST['type_name'].' '. $_LANG['attradd_succed'], 0, $link);
  
  }


//-- 订单列表

if ($_REQUEST['act'] == 'order')
{
      $keywords      = trim($_POST['keywords']);
      $order_id     = !empty($_REQUEST['id'])    ? intval($_REQUEST['id'])    : 0;
         
    $smarty->assign('ur_here',     '礼品卡订单列表');
    $smarty->assign('action_link', array('text' => '礼品卡类型', 'href' => 'ks_card.php?act=cat'));
    $smarty->assign('full_page',   1);

    $list = get_order_list($keywords,$order_id);

    $smarty->assign('type_list',    $list['item']);
    $smarty->assign('filter',       $list['filter']);
    $smarty->assign('record_count', $list['record_count']);
    $smarty->assign('page_count',   $list['page_count']);

    $sort_flag  = sort_flag($list['filter']);
    $smarty->assign($sort_flag['tag'], $sort_flag['img']);

    assign_query_info();
    $smarty->display('ks_order_list.htm');
}


//-- 礼品卡商品配送信息

if ($_REQUEST['act'] == 'goods')
{
      $id = $_GET['gid'];
     
    $smarty->assign('ur_here',     '礼品卡配送商品');
    $smarty->assign('action_link', array('text' => '礼品卡订单列表', 'href' => 'ks_card.php?act=order'));
    $smarty->assign('full_page',   1);

    $list = get_order_goods_list($id);

    $smarty->assign('type_list',    $list);

    assign_query_info();
    $smarty->display('ks_order_goods.htm');
}


//-- 删除礼品卡类型

if ($_REQUEST['act'] == 'remove')
{
    check_authz_json('card_and_card');

    $id = intval($_GET['tid']);

//   $exc->drop($id);

   
    $db->query("DELETE FROM " .$ecs->table('ks_cardgoods'). " WHERE cg_catid = '$id'");

   
    $db->query("DELETE FROM " .$ecs->table('ks_cardcats'). " WHERE cat_id = '$id'");
   
   
    $db->query("DELETE FROM " .$ecs->table('ks_cards'). " WHERE card_type = '$id'");

    $url = "ks_card.php?act=cat";

    ecs_header("Location: $url\n");
    exit;

}


//-- 礼品卡类型添加

if ($_REQUEST['act'] == 'add')
{
    admin_priv('card_and_card');

    $smarty->assign('lang',         $_LANG);
    $smarty->assign('ur_here',      '添加礼品卡类型');
    $smarty->assign('action_link',  array('href' => 'ks_card.php?act=cat', 'text' => '礼品卡类型列表'));
    $smarty->assign('action',       'add');

    $smarty->assign('form_act',     'insert');
    $smarty->assign('cfg_lang',     $_CFG['lang']);

    $next_month = local_strtotime('+1 months');
    $bonus_arr['send_start_date']   = local_date('Y-m-d');
    $bonus_arr['use_start_date']    = local_date('Y-m-d');
    $bonus_arr['send_end_date']     = local_date('Y-m-d', $next_month);
    $bonus_arr['use_end_date']      = local_date('Y-m-d', $next_month);

    $smarty->assign('bonus_arr',    $bonus_arr);

    assign_query_info();
    $smarty->display('ks_card_type_info.htm');
}


//-- 红包类型添加的处理

if ($_REQUEST['act'] == 'insert')
{
   
    $type_name   = !empty($_POST['type_name']) ? trim($_POST['type_name']) : '';
    $type_mark   = !empty($_POST['type_mark']) ? trim($_POST['type_mark']) : '';
    $type_desc   = !empty($_POST['type_desc']) ? trim($_POST['type_desc']) : '';
    $type_num    = !empty($_POST['type_num']) ? trim($_POST['type_num']) : '';

   
//    $type_id     = !empty($_POST['type_id'])    ? intval($_POST['type_id'])    : 0;
//    $min_amount  = !empty($_POST['min_amount']) ? intval($_POST['min_amount']) : 0;

   


   
    $sql = "INSERT INTO ".$ecs->table('ks_cardcats')." (cat_name, cat_mark, cat_desc, cat_sgn)
    VALUES ('$type_name',
            '$type_mark',
            '$type_desc',
            '$type_num')";

    $db->query($sql);
   
   
//    admin_log($_POST['type_name'], 'add', 'bonustype');

   
    clear_cache_files();

   
    $link[0]['text'] = '添加礼品卡类型';
    $link[0]['href'] = 'ks_card.php?act=add';

    $link[1]['text'] = '礼品卡类型列表';
    $link[1]['href'] = 'ks_card.php?act=cat';

    sys_msg($_LANG['add'] . "&nbsp;" .$_POST['type_name'] . "&nbsp;" . $_LANG['attradd_succed'],0, $link);

}


//-- 礼品卡类型编辑页面

if ($_REQUEST['act'] == 'edit')
{
    admin_priv('card_and_card');

   
    $type_id = !empty($_GET['tid']) ? intval($_GET['tid']) : 0;
    $bonus_arr = $db->getRow("SELECT * FROM " .$ecs->table('ks_cardcats'). " WHERE cat_id = '$type_id'");

//    $bonus_arr['send_start_date']   = local_date('Y-m-d', $bonus_arr['send_start_date']);
//    $bonus_arr['send_end_date']     = local_date('Y-m-d', $bonus_arr['send_end_date']);
//    $bonus_arr['use_start_date']    = local_date('Y-m-d', $bonus_arr['use_start_date']);
//    $bonus_arr['use_end_date']      = local_date('Y-m-d', $bonus_arr['use_end_date']);

    $smarty->assign('lang',        $_LANG);
    $smarty->assign('ur_here',     '礼品卡类型编辑');
    $smarty->assign('action_link', array('href' => 'ks_card.php?act=cat' , 'text' => '返回礼品卡类型列表'));
    $smarty->assign('form_act',    'update');
    $smarty->assign('bonus_arr',   $bonus_arr);

    assign_query_info();
    $smarty->display('ks_card_type_info.htm');
}


//-- 礼品卡类型编辑的处理

if ($_REQUEST['act'] == 'update')
{
   

   
    $type_name   = !empty($_POST['type_name'])  ? trim($_POST['type_name'])    : '';
    $type_mark   = !empty($_POST['type_mark'])  ? trim($_POST['type_mark'])    : '';
    $type_desc   = !empty($_POST['type_desc'])  ? trim($_POST['type_desc'])    : '';
    $type_num    = !empty($_POST['type_num'])   ? intval($_POST['type_num'])   : 0;
    $type_id     = !empty($_POST['type_id'])    ? intval($_POST['type_id'])    : 0;
//    $min_amount  = !empty($_POST['min_amount']) ? intval($_POST['min_amount']) : 0;

    $sql = "UPDATE " .$ecs->table('ks_cardcats'). " SET ".
           "cat_name        = '$type_name', ".
           "cat_mark        = '$type_mark', ".
           "cat_desc        = '$type_desc', ".
           "cat_sgn         = '$type_num' ".
           "WHERE cat_id    = '$type_id'";

   $db->query($sql);
  
  
  
   clear_cache_files();

  
   $link[] = array('text' => '返回礼品卡类型列表' , 'href' => 'ks_card.php?act=cat');
   sys_msg($_LANG['edit'] .' '.$_POST['type_name'].' '. $_LANG['attradd_succed'], 0, $link);

}

//-- 修改订单状态

if ($_REQUEST['act'] == 'order_status')
{
    check_authz_json('card_and_card');

    $id = intval($_GET['id']);
    $stat = intval($_GET['stat']);
   
    switch ($stat)
    {
        case 0:
        $sqlstat = "order_status        = 1 ";
        break;
       
        case 1:
        $sqlstat = "order_status        = 2 ";
        break;
       
        case 2:
        $sqlstat = "order_status        = 3 ";
        break;
       
        case 3:
        $sqlstat = "order_status        = 0 ";
        break;
       
        default:
        $sqlstat = "order_status        = 0 ";
    }
 
   $sql = "UPDATE " .$ecs->table('ks_order'). " SET ".
           $sqlstat .
           "WHERE order_id    = '$id'";

   $db->query($sql);

    $url = "ks_card.php?act=order";

    ecs_header("Location: $url\n");
    exit;

}


//-- 处理红包的发送页面

if ($_REQUEST['act'] == 'send_by_user')
{
    $user_list  = array();
    $start      = empty($_REQUEST['start']) ? 0 : intval($_REQUEST['start']);
    $limit      = empty($_REQUEST['limit']) ? 10 : intval($_REQUEST['limit']);
    $validated_email = empty($_REQUEST['validated_email']) ? 0 : intval($_REQUEST['validated_email']);
    $send_count = 0;

    if (isset($_REQUEST['send_rank']))
    {
       
        $rank_id = intval($_REQUEST['rank_id']);

        if ($rank_id > 0)
        {
            $sql = "SELECT min_points, max_points, special_rank FROM " . $ecs->table('user_rank') . " WHERE rank_id = '$rank_id'";
            $row = $db->getRow($sql);
            if ($row['special_rank'])
            {
               
                $sql = 'SELECT COUNT(*) FROM ' . $ecs->table('users'). " WHERE user_rank = '$rank_id'";
                $send_count = $db->getOne($sql);
                if($validated_email)
                {
                    $sql = 'SELECT user_id, email, user_name FROM ' . $ecs->table('users').
                            " WHERE user_rank = '$rank_id' AND is_validated = 1".
                            " LIMIT $start, $limit";
                }
                else
                {
                     $sql = 'SELECT user_id, email, user_name FROM ' . $ecs->table('users').
                                " WHERE user_rank = '$rank_id'".
                                " LIMIT $start, $limit";
                }
            }
            else
            {
                $sql = 'SELECT COUNT(*) FROM ' . $ecs->table('users').
                       " WHERE rank_points >= " . intval($row['min_points']) . " AND rank_points < " . intval($row['max_points']);
                $send_count = $db->getOne($sql);

                if($validated_email)
                {
                    $sql = 'SELECT user_id, email, user_name FROM ' . $ecs->table('users').
                        " WHERE rank_points >= " . intval($row['min_points']) . " AND rank_points < " . intval($row['max_points']) .
                        " AND is_validated = 1 LIMIT $start, $limit";
                }
                else
                {
                     $sql = 'SELECT user_id, email, user_name FROM ' . $ecs->table('users').
                        " WHERE rank_points >= " . intval($row['min_points']) . " AND rank_points < " . intval($row['max_points']) .
                        " LIMIT $start, $limit";
                }

            }

            $user_list = $db->getAll($sql);
            $count = count($user_list);
        }
    }
    elseif (isset($_REQUEST['send_user']))
    {
       
       
        if (empty($_REQUEST['user']))
        {
            sys_msg($_LANG['send_user_empty'], 1);
        }

        $user_array = (is_array($_REQUEST['user'])) ? $_REQUEST['user'] : explode(',', $_REQUEST['user']);
        $send_count = count($user_array);

        $id_array   = array_slice($user_array, $start, $limit);

       
        $sql = "SELECT user_id, email, user_name FROM " .$ecs->table('users').
               " WHERE user_id " .db_create_in($id_array);
        $user_list  = $db->getAll($sql);
        $count = count($user_list);
    }

   
    $loop       = 0;
    $bonus_type = bonus_type_info($_REQUEST['id']);

    $tpl = get_mail_template('send_bonus');
    $today = local_date($_CFG['date_format']);

    foreach ($user_list AS $key => $val)
    {
       
        $smarty->assign('user_name',    $val['user_name']);
        $smarty->assign('shop_name',    $GLOBALS['_CFG']['shop_name']);
        $smarty->assign('send_date',    $today);
        $smarty->assign('sent_date',    $today);
        $smarty->assign('count',        1);
        $smarty->assign('money',        price_format($bonus_type['type_money']));

        $content = $smarty->fetch('str:' . $tpl['template_content']);

        if (add_to_maillist($val['user_name'], $val['email'], $tpl['template_subject'], $content, $tpl['is_html']))
        {
            
            $sql = "INSERT INTO " . $ecs->table('user_bonus') .
                    "(bonus_type_id, bonus_sn, user_id, used_time, order_id, emailed) " .
                    "VALUES ('$_REQUEST[id]', 0, '$val[user_id]', 0, 0, " .BONUS_MAIL_SUCCEED. ")";
            $db->query($sql);
        }
        else
        {
           
            $sql = "INSERT INTO " . $ecs->table('user_bonus') .
                    "(bonus_type_id, bonus_sn, user_id, used_time, order_id, emailed) " .
                    "VALUES ('$_REQUEST[id]', 0, '$val[user_id]', 0, 0, " .BONUS_MAIL_FAIL. ")";
            $db->query($sql);
        }

        if ($loop >= $limit)
        {
            break;
        }
        else
        {
            $loop++;
        }
    }

    //admin_log(addslashes($_LANG['send_bonus']), 'add', 'bonustype');
    if ($send_count > ($start + $limit))
    {
       
        $href = "bonus.php?act=send_by_user&start=" . ($start+$limit) . "&limit=$limit&id=$_REQUEST[id]&";

        if (isset($_REQUEST['send_rank']))
        {
            $href .= "send_rank=1&rank_id=$rank_id";
        }

        if (isset($_REQUEST['send_user']))
        {
            $href .= "send_user=1&user=" . implode(',', $user_array);
        }

        $link[] = array('text' => $_LANG['send_continue'], 'href' => $href);
    }

    $link[] = array('text' => $_LANG['back_list'], 'href' => 'bonus.php?act=list');

    sys_msg(sprintf($_LANG['sendbonus_count'], $count), 0, $link);
}


//-- 发送邮件


if ($_REQUEST['act'] == 'send_mail')
{
   
    $bonus_id = intval($_REQUEST['bonus_id']);
    if ($bonus_id <= 0)
    {
        die('invalid params');
    }

   
    include_once(ROOT_PATH . 'includes/lib_order.php');
    $bonus = bonus_info($bonus_id);
    if (empty($bonus))
    {
        sys_msg($_LANG['bonus_not_exist']);
    }

   
    $count = send_bonus_mail($bonus['bonus_type_id'], array($bonus_id));

    $link[0]['text'] = $_LANG['back_bonus_list'];
    $link[0]['href'] = 'bonus.php?act=bonus_list&bonus_type=' . $bonus['bonus_type_id'];

    sys_msg(sprintf($_LANG['success_send_mail'], $count), 0, $link);
}


//-- 按印刷品发放红包


if ($_REQUEST['act'] == 'send_by_print')
{
    @set_time_limit(0);

   
    $bonus_typeid = !empty($_POST['bonus_type_id']) ? $_POST['bonus_type_id'] : 0;
    $bonus_sum    = !empty($_POST['bonus_sum'])     ? $_POST['bonus_sum']     : 1;

   
    $num = $db->getOne("SELECT MAX(bonus_sn) FROM ". $ecs->table('user_bonus'));
    $num = $num ? floor($num / 10000) : 100000;

    for ($i = 0, $j = 0; $i < $bonus_sum; $i++)
    {
        $bonus_sn = ($num + $i) . str_pad(mt_rand(0, 9999), 4, '0', STR_PAD_LEFT);
        $db->query("INSERT INTO ".$ecs->table('user_bonus')." (bonus_type_id, bonus_sn) VALUES('$bonus_typeid', '$bonus_sn')");

        $j++;
    }

   
    admin_log($bonus_sn, 'add', 'userbonus');

   
    clear_cache_files();

   
    $link[0]['text'] = $_LANG['back_bonus_list'];
    $link[0]['href'] = 'bonus.php?act=bonus_list&bonus_type=' . $bonus_typeid;

    sys_msg($_LANG['creat_bonus'] . $j . $_LANG['creat_bonus_num'], 0, $link);
}


//-- 导出线下发放的信息

if ($_REQUEST['act'] == 'gen_excel')
{
    @set_time_limit(0);

   
    $tid  = !empty($_GET['tid']) ? intval($_GET['tid']) : 0;
    $type_name = $db->getOne("SELECT type_name FROM ".$ecs->table('bonus_type')." WHERE type_id = '$tid'");

   
    $bonus_filename = $type_name .'_bonus_list';
    if (EC_CHARSET != 'gbk')
    {
        $bonus_filename = ecs_iconv('UTF8', 'GB2312',$bonus_filename);
    }

    header("Content-type: application/vnd.ms-excel; charset=utf-8");
    header("Content-Disposition: attachment; filename=$bonus_filename.xls");

   
    if (EC_CHARSET != 'gbk')
    {
        echo ecs_iconv('UTF8', 'GB2312', $_LANG['bonus_excel_file']) . "\t\n";
       
        echo ecs_iconv('UTF8', 'GB2312', $_LANG['bonus_sn']) ."\t";
        echo ecs_iconv('UTF8', 'GB2312', $_LANG['type_money']) ."\t";
        echo ecs_iconv('UTF8', 'GB2312', $_LANG['type_name']) ."\t";
        echo ecs_iconv('UTF8', 'GB2312', $_LANG['use_enddate']) ."\t\n";
    }
    else
    {
        echo $_LANG['bonus_excel_file'] . "\t\n";
       
        echo $_LANG['bonus_sn'] ."\t";
        echo $_LANG['type_money'] ."\t";
        echo $_LANG['type_name'] ."\t";
        echo $_LANG['use_enddate'] ."\t\n";
    }

    $val = array();
    $sql = "SELECT ub.bonus_id, ub.bonus_type_id, ub.bonus_sn, bt.type_name, bt.type_money, bt.use_end_date ".
           "FROM ".$ecs->table('user_bonus')." AS ub, ".$ecs->table('bonus_type')." AS bt ".
           "WHERE bt.type_id = ub.bonus_type_id AND ub.bonus_type_id = '$tid' ORDER BY ub.bonus_id DESC";
    $res = $db->query($sql);

    $code_table = array();
    while ($val = $db->fetchRow($res))
    {
        echo $val['bonus_sn'] . "\t";
        echo $val['type_money'] . "\t";
        if (!isset($code_table[$val['type_name']]))
        {
            if (EC_CHARSET != 'gbk')
            {
                $code_table[$val['type_name']] = ecs_iconv('UTF8', 'GB2312', $val['type_name']);
            }
            else
            {
                $code_table[$val['type_name']] = $val['type_name'];
            }
        }
        echo $code_table[$val['type_name']] . "\t";
        echo local_date('Y-m-d', $val['use_end_date']);
        echo "\t\n";
    }
}


//-- 搜索商品

if ($_REQUEST['act'] == 'get_goods_list')
{
    include_once(ROOT_PATH . 'includes/cls_json.php');
    $json = new JSON;

    $filters = $json->decode($_GET['JSON']);

    $arr = get_goods_list($filters);
    $opt = array();

    foreach ($arr AS $key => $val)
    {
        $opt[] = array('value'  => $val['goods_id'],
                        'text'  => $val['goods_name'],
                        'data'  => $val['shop_price']);
    }

    make_json_result($opt);
}


//-- 添加发放红包的商品

if ($_REQUEST['act'] == 'add_bonus_goods')
{
    include_once(ROOT_PATH . 'includes/cls_json.php');
    $json = new JSON;

    check_authz_json('card_and_card');

    $add_ids    = $json->decode($_GET['add_ids']);
    $args       = $json->decode($_GET['JSON']);
    $type_id    = $args[0];

    foreach ($add_ids AS $key => $val)
    {
        $sql = "UPDATE " .$ecs->table('goods'). " SET bonus_type_id='$type_id' WHERE goods_id='$val'";
        $db->query($sql, 'SILENT') or make_json_error($db->error());
    }

   
    $arr = get_bonus_goods($type_id);
    $opt = array();

    foreach ($arr AS $key => $val)
    {
        $opt[] = array('value'  => $val['goods_id'],
                        'text'  => $val['goods_name'],
                        'data'  => '');
    }

    make_json_result($opt);
}


//-- 删除发放红包的商品

if ($_REQUEST['act'] == 'drop_bonus_goods')
{
    include_once(ROOT_PATH . 'includes/cls_json.php');
    $json = new JSON;

    check_authz_json('card_and_card');

    $drop_goods     = $json->decode($_GET['drop_ids']);
    $drop_goods_ids = db_create_in($drop_goods);
    $arguments      = $json->decode($_GET['JSON']);
    $type_id        = $arguments[0];

    $db->query("UPDATE ".$ecs->table('goods')." SET bonus_type_id = 0 ".
                "WHERE bonus_type_id = '$type_id' AND goods_id " .$drop_goods_ids);

   
    $arr = get_bonus_goods($type_id);
    $opt = array();

    foreach ($arr AS $key => $val)
    {
        $opt[] = array('value'  => $val['goods_id'],
                        'text'  => $val['goods_name'],
                        'data'  => '');
    }

    make_json_result($opt);
}


//-- 搜索用户

if ($_REQUEST['act'] == 'search_users')
{
    $keywords = json_str_iconv(trim($_GET['keywords']));

    $sql = "SELECT user_id, user_name FROM " . $ecs->table('users') .
            " WHERE user_name LIKE '%" . mysql_like_quote($keywords) . "%' OR user_id LIKE '%" . mysql_like_quote($keywords) . "%'";
    $row = $db->getAll($sql);

    make_json_result($row);
}


//-- 红包列表


if ($_REQUEST['act'] == 'bonus_list')
{
    $smarty->assign('full_page',    1);
    $smarty->assign('ur_here',      $_LANG['bonus_list']);
    $smarty->assign('action_link',   array('href' => 'bonus.php?act=list', 'text' => $_LANG['04_bonustype_list']));

    $list = get_bonus_list();

   
    $bonus_type = bonus_type_info(intval($_REQUEST['bonus_type']));
    if ($bonus_type['send_type'] == SEND_BY_PRINT)
    {
        $smarty->assign('show_bonus_sn', 1);
    }

   
    elseif ($bonus_type['send_type'] == SEND_BY_USER)
    {
        $smarty->assign('show_mail', 1);
    }

    $smarty->assign('bonus_list',   $list['item']);
    $smarty->assign('filter',       $list['filter']);
    $smarty->assign('record_count', $list['record_count']);
    $smarty->assign('page_count',   $list['page_count']);

    $sort_flag  = sort_flag($list['filter']);
    $smarty->assign($sort_flag['tag'], $sort_flag['img']);

    assign_query_info();
    $smarty->display('bonus_list.htm');
}


//-- 红包列表翻页、排序


if ($_REQUEST['act'] == 'query_bonus')
{
    $list = get_bonus_list();

   
    $bonus_type = bonus_type_info(intval($_REQUEST['bonus_type']));
    if ($bonus_type['send_type'] == SEND_BY_PRINT)
    {
        $smarty->assign('show_bonus_sn', 1);
    }

   
    elseif ($bonus_type['send_type'] == SEND_BY_USER)
    {
        $smarty->assign('show_mail', 1);
    }

    $smarty->assign('bonus_list',   $list['item']);
    $smarty->assign('filter',       $list['filter']);
    $smarty->assign('record_count', $list['record_count']);
    $smarty->assign('page_count',   $list['page_count']);

    $sort_flag  = sort_flag($list['filter']);
    $smarty->assign($sort_flag['tag'], $sort_flag['img']);

    make_json_result($smarty->fetch('bonus_list.htm'), '',
        array('filter' => $list['filter'], 'page_count' => $list['page_count']));
}


//-- 删除红包

elseif ($_REQUEST['act'] == 'remove_bonus')
{
    check_authz_json('card_and_card');

    $id = intval($_GET['id']);

    $db->query("DELETE FROM " .$ecs->table('user_bonus'). " WHERE bonus_id='$id'");

    $url = 'bonus.php?act=query_bonus&' . str_replace('act=remove_bonus', '', $_SERVER['QUERY_STRING']);

    ecs_header("Location: $url\n");
    exit;
}


//-- 批量操作

if ($_REQUEST['act'] == 'batch')
{
   
    admin_priv('card_and_card');

   
    $bonus_type_id = intval($_REQUEST['bonus_type']);

   
    if (isset($_POST['checkboxes']))
    {
        $bonus_id_list = $_POST['checkboxes'];

       
        if (isset($_POST['drop']))
        {
            $sql = "DELETE FROM " . $ecs->table('user_bonus'). " WHERE bonus_id " . db_create_in($bonus_id_list);
            $db->query($sql);

            admin_log(count($bonus_id_list), 'remove', 'userbonus');

            clear_cache_files();

            $link[] = array('text' => $_LANG['back_bonus_list'],
                'href' => 'bonus.php?act=bonus_list&bonus_type='. $bonus_type_id);
            sys_msg(sprintf($_LANG['batch_drop_success'], count($bonus_id_list)), 0, $link);
        }

       
        elseif (isset($_POST['mail']))
        {
            $count = send_bonus_mail($bonus_type_id, $bonus_id_list);
            $link[] = array('text' => $_LANG['back_bonus_list'],
                'href' => 'bonus.php?act=bonus_list&bonus_type='. $bonus_type_id);
            sys_msg(sprintf($_LANG['success_send_mail'], $count), 0, $link);
        }
    }
    else
    {
        sys_msg($_LANG['no_select_bonus'], 1);
    }
}


function get_order_goods_list($id)
{

  
    $sql = "SELECT * FROM " .$GLOBALS['ecs']->table('goods') . " WHERE goods_id in ($id)" ;
                           
    $result = $GLOBALS['db']->getAll($sql);
    $goods = array();
   
    foreach ($result AS $idx => $row)
    {
       
          $goods[$idx]['goods_id']           = $row['goods_id'];
        $goods[$idx]['goods_sn']           = $row['goods_sn'];
        $goods[$idx]['goods_name']         = $row['goods_name'];

    }

return $goods;
}


function get_card_list($type_id,$card_id,$pagesize,$pageid)
{
     $startrow = ($pageid-1)*$pagesize;
     
     if($type_id != 0)
     {
    $sql = "SELECT * FROM " .$GLOBALS['ecs']->table('ks_cards').
               " WHERE card_type = '$type_id' ORDER BY card_id desc LIMIT $startrow,$pagesize";
    }
    else
    {
        $sql = "SELECT * FROM " .$GLOBALS['ecs']->table('ks_cards'). " ORDER BY card_id desc LIMIT $startrow,$pagesize";
    }
    if($card_id != 0)
     {
    $sql = "SELECT * FROM " .$GLOBALS['ecs']->table('ks_cards').
               " WHERE card_id = '$card_id' ";
    }
                   
                           
    $result = $GLOBALS['db']->getAll($sql);
    $cards = array();
   
    foreach ($result AS $idx => $row)
    {
       
          $cards[$idx]['id']           = $row['card_id'];
        $cards[$idx]['type_id']         = $row['card_type'];
        $cards[$idx]['type_name']         = get_type_name($row['card_type']);
        $cards[$idx]['card_sn']        = $row['card_sn'];
        $cards[$idx]['card_pwd']        = $row['card_pwd'];
        $cards[$idx]['add_time']        = local_date($GLOBALS['_CFG']['time_format'],$row['add_time']);
       
        if($row['used_time'] == 0)
        {
        $cards[$idx]['used_time']        = $row['used_time'];
        }
        else
        {
        $cards[$idx]['used_time']        = local_date($GLOBALS['_CFG']['time_format'],$row['used_time']);
        }
       
        $cards[$idx]['order_id']        = $row['order_id'];

    }

return $cards;

}



function get_type_name($card_type)

{
    $sql = "SELECT cat_name FROM " .$GLOBALS['ecs']->table('ks_cardcats').
               " WHERE cat_id = '$card_type'";
  $result = $GLOBALS['db']->getOne($sql);
 
  return $result;
              
}



function create_card($type_id,$bnum,$cnum)

{
    if($type_id != 0)
  {
   
    $add_time = gmtime();
    $sn_head = get_sn_head($type_id);
    $used_time = 0;
    $order_id = 0;
    $cnum = $cnum + $bnum;
   
    for ($i = $bnum; $i < $cnum; $i++)
    {
        $card_sn  = $sn_head . str_pad($i, 6, '0', STR_PAD_LEFT);
        $card_pwd = rancard(10,'0123456789');
       
        $sql = "SELECT * FROM " .$GLOBALS['ecs']->table('ks_cards').
                      " WHERE card_sn = '$card_sn'" .
                      " OR card_pwd = '$card_pwd'";

        $record_arr = $GLOBALS['db']->getRow($sql);
        if (empty($record_arr))

             {
        $GLOBALS['db']->query("INSERT INTO ".$GLOBALS['ecs']->table('ks_cards')." (card_type, card_sn, card_pwd, add_time, used_time, order_id) VALUES('$type_id', '$card_sn','$card_pwd','$add_time','$used_time','$order_id')");
 }
             else
             {
                 break;
             }
    }
  }

}



function get_sn_head($card_type)

{
    $sql = "SELECT cat_mark FROM " .$GLOBALS['ecs']->table('ks_cardcats').
               " WHERE cat_id = '$card_type'";
  $result = $GLOBALS['db']->getOne($sql);
 
  return $result;
              
}



function rancard($length,$string = '0123456789abcdefghijklmnopqrstuvwxyz') {
$rstr = '';
$strlen = strlen($string);
for ($i=0; $i<$length; $i++) {
   $rstr .= $string{mt_rand(0,$strlen-1)};
}
return $rstr;
}


function get_type_list()
{

    $sql = "SELECT * FROM " .$GLOBALS['ecs']->table('ks_cardcats');
                   
                           
    $result = $GLOBALS['db']->getAll($sql);
    $cardtype = array();
   
    foreach ($result AS $idx => $row)
    {
       
          $cardtype[$idx]['cat_id']           = $row['cat_id'];
        $cardtype[$idx]['cat_name']         = $row['cat_name'];
        $cardtype[$idx]['cat_mark']         = $row['cat_mark'];
        $cardtype[$idx]['cat_desc']        = $row['cat_desc'];
        $cardtype[$idx]['cat_sgn']        = $row['cat_sgn'];
       
        $cardtype[$idx]['all_num']        = get_all_num($row['cat_id']);
        $cardtype[$idx]['ok_num']        = get_ok_num($row['cat_id']);

    }

return $cardtype;
}



function get_all_num($card_type)

{
    $sql = "SELECT COUNT(*) FROM " .$GLOBALS['ecs']->table('ks_cards').
               " WHERE card_type = '$card_type'";
  $result = $GLOBALS['db']->getOne($sql);
 
  return $result;
              
}



function get_ok_num($card_type)

{
    $sql = "SELECT COUNT(*) FROM " .$GLOBALS['ecs']->table('ks_cards').
               " WHERE card_type = '$card_type' and order_id <> 0";
  $result = $GLOBALS['db']->getOne($sql);
 
  return $result;
              
}


function get_order_list($keywords,$order_id)
{
  
    $result = get_filter();
    if ($result === false)
    {
       
        $filter['sort_by']    = empty($_REQUEST['sort_by']) ? 'order_id' : trim($_REQUEST['sort_by']);
        $filter['sort_order'] = empty($_REQUEST['sort_order']) ? 'DESC' : trim($_REQUEST['sort_order']);

        $sql = "SELECT COUNT(*) FROM ".$GLOBALS['ecs']->table('ks_order');
        $filter['record_count'] = $GLOBALS['db']->getOne($sql);

       
        $filter = page_and_size($filter);
  
        if(empty($keywords))
        {
        $sql = "SELECT * FROM " .$GLOBALS['ecs']->table('ks_order'). " ORDER BY $filter[sort_by] $filter[sort_order]";
        }
        else
        {
        $card_id = get_card_id($keywords);
        $sql = "SELECT * FROM " .$GLOBALS['ecs']->table('ks_order'). " WHERE card_id = '$card_id' ";
          
        if(!empty($order_id))
        {
        $sql = "SELECT * FROM " .$GLOBALS['ecs']->table('ks_order'). " WHERE order_id = '$order_id' ";
        }
        set_filter($filter, $sql);
    }
    else
    {
        $sql    = $result['sql'];
        $filter = $result['filter'];
    }
    $arr = array();
    $res = $GLOBALS['db']->selectLimit($sql, $filter['page_size'], $filter['start']);

    while ($row = $GLOBALS['db']->fetchRow($res))
    {
       
        $row['order_goodcatname'] = get_type_name($row['order_goodcatid']);
        $row['order_time'] = local_date($GLOBALS['_CFG']['time_format'],$row['order_time']);
        $arr[] = $row;
    }

    $arr = array('item' => $arr, 'filter' => $filter, 'page_count' => $filter['page_count'], 'record_count' => $filter['record_count']);

    return $arr;
}



function get_card_id($keywords)

{
    $sql = "SELECT card_id FROM " .$GLOBALS['ecs']->table('ks_cards').
               " WHERE card_sn = '$keywords'";
  $result = $GLOBALS['db']->getOne($sql);
 
  return $result;
              
}


function get_bonus_goods($type_id)
{
    $sql = "SELECT goods_id, goods_name FROM " .$GLOBALS['ecs']->table('goods').
            " WHERE bonus_type_id = '$type_id'";
    $row = $GLOBALS['db']->getAll($sql);

    return $row;
}


function get_bonus_list()
{
   
    $filter['sort_by']    = empty($_REQUEST['sort_by']) ? 'bonus_type_id' : trim($_REQUEST['sort_by']);
    $filter['sort_order'] = empty($_REQUEST['sort_order']) ? 'DESC' : trim($_REQUEST['sort_order']);
    $filter['bonus_type'] = empty($_REQUEST['bonus_type']) ? 0 : intval($_REQUEST['bonus_type']);

    $where = empty($filter['bonus_type']) ? '' : " WHERE bonus_type_id='$filter[bonus_type]'";

    $sql = "SELECT COUNT(*) FROM ".$GLOBALS['ecs']->table('user_bonus'). $where;
    $filter['record_count'] = $GLOBALS['db']->getOne($sql);

   
    $filter = page_and_size($filter);

    $sql = "SELECT ub.*, u.user_name, u.email, o.order_sn, bt.type_name ".
          " FROM ".$GLOBALS['ecs']->table('user_bonus'). " AS ub ".
          " LEFT JOIN " .$GLOBALS['ecs']->table('bonus_type'). " AS bt ON bt.type_id=ub.bonus_type_id ".
          " LEFT JOIN " .$GLOBALS['ecs']->table('users'). " AS u ON u.user_id=ub.user_id ".
          " LEFT JOIN " .$GLOBALS['ecs']->table('order_info'). " AS o ON o.order_id=ub.order_id $where ".
          " ORDER BY ".$filter['sort_by']." ".$filter['sort_order'].
          " LIMIT ". $filter['start'] .", $filter[page_size]";
    $row = $GLOBALS['db']->getAll($sql);

    foreach ($row AS $key => $val)
    {
        $row[$key]['used_time'] = $val['used_time'] == 0 ?
            $GLOBALS['_LANG']['no_use'] : local_date($GLOBALS['_CFG']['date_format'], $val['used_time']);
        $row[$key]['emailed'] = $GLOBALS['_LANG']['mail_status'][$row[$key]['emailed']];
    }

    $arr = array('item' => $row, 'filter' => $filter, 'page_count' => $filter['page_count'], 'record_count' => $filter['record_count']);

    return $arr;
}


function bonus_type_info($bonus_type_id)
{
    $sql = "SELECT * FROM " . $GLOBALS['ecs']->table('bonus_type') .
            " WHERE type_id = '$bonus_type_id'";

    return $GLOBALS['db']->getRow($sql);
}


function send_bonus_mail($bonus_type_id, $bonus_id_list)
{
   
    $bonus_type = bonus_type_info($bonus_type_id);
    if ($bonus_type['send_type'] != SEND_BY_USER)
    {
        return 0;
    }

   
    $sql = "SELECT b.bonus_id, u.user_name, u.email " .
            "FROM " . $GLOBALS['ecs']->table('user_bonus') . " AS b, " .
                $GLOBALS['ecs']->table('users') . " AS u " .
            " WHERE b.user_id = u.user_id " .
            " AND b.bonus_id " . db_create_in($bonus_id_list) .
            " AND b.order_id = 0 " .
            " AND u.email <> ''";
    $bonus_list = $GLOBALS['db']->getAll($sql);
    if (empty($bonus_list))
    {
        return 0;
    }

   
    $send_count = 0;

   
    $tpl   = get_mail_template('send_bonus');
    $today = local_date($GLOBALS['_CFG']['date_format']);
    foreach ($bonus_list AS $bonus)
    {
        $GLOBALS['smarty']->assign('user_name',    $bonus['user_name']);
        $GLOBALS['smarty']->assign('shop_name',    $GLOBALS['_CFG']['shop_name']);
        $GLOBALS['smarty']->assign('send_date',    $today);
        $GLOBALS['smarty']->assign('sent_date',    $today);
        $GLOBALS['smarty']->assign('count',        1);
        $GLOBALS['smarty']->assign('money',        price_format($bonus_type['type_money']));

        $content = $GLOBALS['smarty']->fetch('str:' . $tpl['template_content']);
        if (add_to_maillist($bonus['user_name'], $bonus['email'], $tpl['template_subject'], $content, $tpl['is_html'], false))
        {
            $sql = "UPDATE " . $GLOBALS['ecs']->table('user_bonus') .
                    " SET emailed = '" . BONUS_MAIL_SUCCEED . "'" .
                    " WHERE bonus_id = '$bonus[bonus_id]'";
            $GLOBALS['db']->query($sql);
            $send_count++;
        }
        else
        {
            $sql = "UPDATE " . $GLOBALS['ecs']->table('user_bonus') .
                    " SET emailed = '" . BONUS_MAIL_FAIL . "'" .
                    " WHERE bonus_id = '$bonus[bonus_id]'";
            $GLOBALS['db']->query($sql);
        }
    }

    return $send_count;
}

function add_to_maillist($username, $email, $subject, $content, $is_html)
{
    $time = time();
    $content = addslashes($content);
    $template_id = $GLOBALS['db']->getOne("SELECT template_id FROM " . $GLOBALS['ecs']->table('mail_templates') . " WHERE template_code = 'send_bonus'");
    $sql = "INSERT INTO "  . $GLOBALS['ecs']->table('email_sendlist') . " ( email, template_id, email_content, pri, last_send) VALUES ('$email', $template_id, '$content', 1, '$time')";
    $GLOBALS['db']->query($sql);
    return true;
}

?>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值