Server : Apache
System : Linux iZ2vcgyutqttsd1p850kl8Z 3.10.0-1160.92.1.el7.x86_64 #1 SMP Tue Jun 20 11:48:01 UTC 2023 x86_64
User : www ( 1000)
PHP Version : 5.6.40
Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Directory :  /www/wwwroot/saimikebio.com/mobile/ecshopjcw/
Upload File :
Current Directory [ Writeable ] Root Directory [ Writeable ]


Current File : /www/wwwroot/saimikebio.com/mobile/ecshopjcw/snatch.php
<?php



/**

 * ECSHOP 夺宝奇兵管理程序

 * ============================================================================

 * * 版权所有 2005-2012 上海商派网络科技有限公司,并保留所有权利。

 * 网站地址: http://www.ecshop.com;

 * ----------------------------------------------------------------------------

 * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和

 * 使用;不允许对程序代码以任何形式任何目的的再发布。

 * ============================================================================

 * $Author: liubo $

 * $Id: snatch.php 17217 2011-01-19 06:29:08Z liubo $

*/



define('IN_ECTOUCH', true);



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

$exc = new exchange($ecs->table("goods_activity"), $db, 'act_id', 'act_name');



/*------------------------------------------------------ */

//-- 添加活动

/*------------------------------------------------------ */

if ($_REQUEST['act'] == 'add')

{

    /* 权限判断 */

    admin_priv('snatch_manage');



    /* 初始化信息 */

    $start_time = local_date('Y-m-d H:i');

    $end_time   = local_date('Y-m-d H:i', strtotime('+1 week'));

    $snatch     = array('start_price'=>'1.00','end_price'=>'800.00','max_price'=>'0', 'cost_points'=>'1','start_time' => $start_time,'end_time' => $end_time,'option'=>'<option value="0">'.$_LANG['make_option'].'</option>');



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

    $smarty->assign('ur_here',      $_LANG['snatch_add']);

    $smarty->assign('action_link',  array('text' => $_LANG['02_snatch_list'], 'href'=>'snatch.php?act=list'));

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

    $smarty->assign('brand_list',   get_brand_list());

    $smarty->assign('form_action',  'insert');



    assign_query_info();

    $smarty->display('snatch_info.htm');

}



elseif ($_REQUEST['act'] =='insert')

{

    /* 权限判断 */

    admin_priv('snatch_manage');



    /* 检查商品是否存在 */

    $sql = "SELECT goods_name FROM ".$ecs->table('goods')." WHERE goods_id = '$_POST[goods_id]'";

    $_POST['goods_name'] = $db->GetOne($sql);

    if (empty($_POST['goods_name']))

    {

        sys_msg($_LANG['no_goods'], 1);

        exit;

    }



    $sql = "SELECT COUNT(*) ".

           " FROM " . $ecs->table('goods_activity').

           " WHERE act_type='" . GAT_SNATCH . "' AND act_name='" . $_POST['snatch_name'] . "'" ;

    if ($db->getOne($sql))

    {

        sys_msg(sprintf($_LANG['snatch_name_exist'],  $_POST['snatch_name']) , 1);

    }



    /* 将时间转换成整数 */

    $_POST['start_time'] = local_strtotime($_POST['start_time']);

    $_POST['end_time']   = local_strtotime($_POST['end_time']);



    /* 处理提交数据 */

    if (empty($_POST['start_price']))

    {

        $_POST['start_price'] = 0;

    }

    if (empty($_POST['end_price']))

    {

        $_POST['end_price'] = 0;

    }

    if (empty($_POST['max_price']))

    {

        $_POST['max_price'] = 0;

    }

    if (empty($_POST['cost_points']))

    {

        $_POST['cost_points'] = 0;

    }

    if (isset($_POST['product_id']) && empty($_POST['product_id']))

    {

        $_POST['product_id'] = 0;

    }



    $info = array('start_price'=>$_POST['start_price'], 'end_price'=>$_POST['end_price'], 'max_price'=>$_POST['max_price'], 'cost_points'=>$_POST['cost_points']);



    /* 插入数据 */

    $record = array('act_name'=>$_POST['snatch_name'], 'act_desc'=>$_POST['desc'],

                    'act_type'=>GAT_SNATCH, 'goods_id'=>$_POST['goods_id'], 'goods_name'=>$_POST['goods_name'],

                    'start_time'=>$_POST['start_time'], 'end_time'=>$_POST['end_time'],

                    'product_id'=>$_POST['product_id'],

                    'is_finished'=>0, 'ext_info'=>serialize($info));



    $db->AutoExecute($ecs->table('goods_activity'),$record,'INSERT');



    admin_log($_POST['snatch_name'],'add','snatch');

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

    $link[] = array('text' => $_LANG['continue_add'], 'href'=>'snatch.php?act=add');

    sys_msg($_LANG['add_succeed'],0,$link);

}



/*------------------------------------------------------ */

//-- 活动列表

/*------------------------------------------------------ */

elseif ($_REQUEST['act'] == 'list')

{

    $smarty->assign('ur_here',      $_LANG['02_snatch_list']);

    $smarty->assign('action_link',  array('text' => $_LANG['snatch_add'], 'href'=>'snatch.php?act=add'));



    $snatchs = get_snatchlist();



    $smarty->assign('snatch_list',  $snatchs['snatchs']);

    $smarty->assign('filter',       $snatchs['filter']);

    $smarty->assign('record_count', $snatchs['record_count']);

    $smarty->assign('page_count',   $snatchs['page_count']);



    $sort_flag  = sort_flag($snatchs['filter']);

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



    $smarty->assign('full_page',    1);

    assign_query_info();

    $smarty->display('snatch_list.htm');

}



/*------------------------------------------------------ */

//-- 查询、翻页、排序

/*------------------------------------------------------ */



elseif ($_REQUEST['act'] == 'query')

{

    $snatchs = get_snatchlist();



    $smarty->assign('snatch_list',  $snatchs['snatchs']);

    $smarty->assign('filter',       $snatchs['filter']);

    $smarty->assign('record_count', $snatchs['record_count']);

    $smarty->assign('page_count',   $snatchs['page_count']);



    $sort_flag  = sort_flag($snatchs['filter']);

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



    make_json_result($smarty->fetch('snatch_list.htm'), '',

        array('filter' => $snatchs['filter'], 'page_count' => $snatchs['page_count']));

}



/*------------------------------------------------------ */

//-- 编辑活动名称

/*------------------------------------------------------ */



elseif ($_REQUEST['act'] == 'edit_snatch_name')

{

    check_authz_json('snatch_manage');



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

    $val = json_str_iconv(trim($_POST['val']));



    /* 检查活动重名 */

    $sql = "SELECT COUNT(*) ".

           " FROM " . $ecs->table('goods_activity').

           " WHERE act_type='" . GAT_SNATCH . "' AND act_name='$val' AND act_id <> '$id'" ;

    if ($db->getOne($sql))

    {

        make_json_error(sprintf($_LANG['snatch_name_exist'],  $val));

    }



    $exc->edit("act_name='$val'", $id);

    make_json_result(stripslashes($val));

}



/*------------------------------------------------------ */

//-- 删除指定的活动

/*------------------------------------------------------ */



elseif ($_REQUEST['act'] == 'remove')

{

    check_authz_json('attr_manage');



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



    $exc->drop($id);



    $url = 'snatch.php?act=query&' . str_replace('act=remove', '', $_SERVER['QUERY_STRING']);



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

    exit;

}



/*------------------------------------------------------ */

//-- 编辑活动

/*------------------------------------------------------ */

elseif ($_REQUEST['act'] == 'edit')

{

    /* 权限判断 */

    admin_priv('snatch_manage');



    $snatch        = get_snatch_info($_REQUEST['id']);



    $snatch['option'] = '<option value="'.$snatch['goods_id'].'">'.$snatch['goods_name'].'</option>';

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

    $smarty->assign('ur_here',              $_LANG['snatch_edit']);

    $smarty->assign('action_link',          array('text' => $_LANG['02_snatch_list'], 'href'=>'snatch.php?act=list&' . list_link_postfix()));

    $smarty->assign('form_action',        'update');



    /* 商品货品表 */

    $smarty->assign('good_products_select', get_good_products_select($snatch['goods_id']));



    assign_query_info();

    $smarty->display('snatch_info.htm');

}

elseif ($_REQUEST['act'] =='update')

{

    /* 权限判断 */

    admin_priv('snatch_manage');



    /* 将时间转换成整数 */

    $_POST['start_time'] = local_strtotime($_POST['start_time']);

    $_POST['end_time']   = local_strtotime($_POST['end_time']);



    /* 处理提交数据 */

    if (empty($_POST['snatch_name']))

    {

        $_POST['snatch_name'] = '';

    }

    if (empty($_POST['goods_id']))

    {

        $_POST['goods_id'] = 0;

    }

    else

    {

        $_POST['goods_name'] = $db->getOne("SELECT goods_name FROM " . $ecs->table('goods') . "WHERE goods_id= '$_POST[goods_id]'");

    }

    if (empty($_POST['start_price']))

    {

        $_POST['start_price'] = 0;

    }

    if (empty($_POST['end_price']))

    {

        $_POST['end_price'] = 0;

    }

    if (empty($_POST['max_price']))

    {

        $_POST['max_price'] = 0;

    }

    if (empty($_POST['cost_points']))

    {

        $_POST['cost_points'] = 0;

    }

    if (isset($_POST['product_id']) && empty($_POST['product_id']))

    {

        $_POST['product_id'] = 0;

    }



    /* 检查活动重名 */

    $sql = "SELECT COUNT(*) ".

           " FROM " . $ecs->table('goods_activity').

           " WHERE act_type='" . GAT_SNATCH . "' AND act_name='" . $_POST['snatch_name'] . "' AND act_id <> '" .  $_POST['id'] . "'" ;

    if ($db->getOne($sql))

    {

        sys_msg(sprintf($_LANG['snatch_name_exist'],  $_POST['snatch_name']) , 1);

    }



    $info = array('start_price'=>$_POST['start_price'], 'end_price'=>$_POST['end_price'], 'max_price'=>$_POST['max_price'], 'cost_points'=>$_POST['cost_points']);



    /* 更新数据 */

    $record = array('act_name' => $_POST['snatch_name'], 'goods_id' => $_POST['goods_id'],

                    'goods_name' =>$_POST['goods_name'], 'start_time' => $_POST['start_time'],

                    'end_time' => $_POST['end_time'], 'act_desc' => $_POST['desc'],

                    'product_id'=>$_POST['product_id'],

                    'ext_info'=>serialize($info));

    $db->autoExecute($ecs->table('goods_activity'), $record, 'UPDATE', "act_id = '" . $_POST['id'] . "' AND act_type = " . GAT_SNATCH );



    admin_log($_POST['snatch_name'],'edit','snatch');

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

    sys_msg($_LANG['edit_succeed'],0,$link);

 }



/*------------------------------------------------------ */

//-- 查看活动详情

/*------------------------------------------------------ */

elseif ($_REQUEST['act'] == 'view')

{

    /* 权限判断 */

    admin_priv('snatch_manage');



    $id = empty($_REQUEST['snatch_id']) ? 0 : intval($_REQUEST['snatch_id']);



    $bid_list = get_snatch_detail();



    $smarty->assign('bid_list',     $bid_list['bid']);

    $smarty->assign('filter',       $bid_list['filter']);

    $smarty->assign('record_count', $bid_list['record_count']);

    $smarty->assign('page_count',   $bid_list['page_count']);



    $sort_flag  = sort_flag($bid_list['filter']);

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

    /* 赋值 */

    $smarty->assign('info',         get_snatch_info($id));

    $smarty->assign('full_page',    1);

    $smarty->assign('result',       get_snatch_result($id));

    $smarty->assign('ur_here',      $_LANG['view_detail'] );

    $smarty->assign('action_link',  array('text' => $_LANG['02_snatch_list'], 'href'=>'snatch.php?act=list'));

    $smarty->display('snatch_view.htm');

}



/*------------------------------------------------------ */

//-- 排序、翻页活动详情

/*------------------------------------------------------ */



elseif ($_REQUEST['act'] == 'query_bid')

{

    $bid_list = get_snatch_detail();



    $smarty->assign('bid_list',     $bid_list['bid']);

    $smarty->assign('filter',       $bid_list['filter']);

    $smarty->assign('record_count', $bid_list['record_count']);

    $smarty->assign('page_count',   $bid_list['page_count']);



    $sort_flag  = sort_flag($bid_list['filter']);

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



    make_json_result($smarty->fetch('snatch_view.htm'), '',

        array('filter' => $bid_list['filter'], 'page_count' => $bid_list['page_count']));

}



/*------------------------------------------------------ */

//-- 搜索商品

/*------------------------------------------------------ */



elseif ($_REQUEST['act'] == 'search_goods')

{

    include_once(ROOT_PATH . 'include/cls_json.php');

    $json = new JSON;



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



    $arr['goods'] = get_goods_list($filters);



    if (!empty($arr['goods'][0]['goods_id']))

    {

        $arr['products'] = get_good_products($arr['goods'][0]['goods_id']);

    }



    make_json_result($arr);

}



/*------------------------------------------------------ */

//-- 搜索货品

/*------------------------------------------------------ */



elseif ($_REQUEST['act'] == 'search_products')

{

    include_once(ROOT_PATH . 'include/cls_json.php');

    $json = new JSON;



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



    if (!empty($filters->goods_id))

    {

        $arr['products'] = get_good_products($filters->goods_id);

    }



    make_json_result($arr);

}



/**

 * 获取活动列表

 *

 * @access  public

 *

 * @return void

 */

function get_snatchlist()

{

    $result = get_filter();

    if ($result === false)

    {

        /* 查询条件 */

        $filter['keywords']   = empty($_REQUEST['keywords']) ? '' : trim($_REQUEST['keywords']);

        if (isset($_REQUEST['is_ajax']) && $_REQUEST['is_ajax'] == 1)

        {

            $filter['keywords'] = json_str_iconv($filter['keywords']);

        }

        $filter['sort_by']    = empty($_REQUEST['sort_by']) ? 'act_id' : trim($_REQUEST['sort_by']);

        $filter['sort_order'] = empty($_REQUEST['sort_order']) ? 'DESC' : trim($_REQUEST['sort_order']);



        $where = (!empty($filter['keywords'])) ? " AND act_name like '%". mysql_like_quote($filter['keywords']) ."%'" : '';



        $sql = "SELECT COUNT(*) FROM " . $GLOBALS['ecs']->table('goods_activity') .

               " WHERE act_type =" . GAT_SNATCH . $where;

        $filter['record_count'] = $GLOBALS['db']->getOne($sql);



        $filter = page_and_size($filter);



        /* 获活动数据 */

        $sql = "SELECT act_id, act_name AS snatch_name, goods_name, start_time, end_time, is_finished, ext_info, product_id ".

               " FROM " . $GLOBALS['ecs']->table('goods_activity') .

               " WHERE act_type = " . GAT_SNATCH . $where .

               " ORDER by $filter[sort_by] $filter[sort_order] LIMIT ". $filter['start'] .", " . $filter['page_size'];



        $filter['keywords'] = stripslashes($filter['keywords']);

        set_filter($filter, $sql);

    }

    else

    {

        $sql    = $result['sql'];

        $filter = $result['filter'];

    }



    $row = $GLOBALS['db']->getAll($sql);



    foreach ($row AS $key => $val)

    {

        $row[$key]['start_time'] = local_date($GLOBALS['_CFG']['time_format'], $val['start_time']);

        $row[$key]['end_time']   = local_date($GLOBALS['_CFG']['time_format'], $val['end_time']);

        $info = unserialize($row[$key]['ext_info']);

        unset($row[$key]['ext_info']);

        if ($info)

        {

            foreach ($info as $info_key => $info_val)

            {

                $row[$key][$info_key] = $info_val;

            }

        }

    }



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



    return $arr;

}



/**

 * 获取指定id snatch 的信息

 *

 * @access  public

 * @param   int         $id         snatch_id

 *

 * @return array       array(snatch_id, snatch_name, goods_id,start_time, end_time, min_price, integral)

 */

function get_snatch_info($id)

{

    global $ecs, $db,$_CFG;



    $sql = "SELECT act_id, act_name AS snatch_name, goods_id, product_id, goods_name, start_time, end_time, act_desc, ext_info" .

           " FROM " . $GLOBALS['ecs']->table('goods_activity') .

           " WHERE act_id='$id' AND act_type = " . GAT_SNATCH;



    $snatch = $db->GetRow($sql);



    /* 将时间转成可阅读格式 */

    $snatch['start_time'] = local_date('Y-m-d H:i', $snatch['start_time']);

    $snatch['end_time']   = local_date('Y-m-d H:i', $snatch['end_time']);

    $row = unserialize($snatch['ext_info']);

    unset($snatch['ext_info']);

    if ($row)

    {

        foreach ($row as $key=>$val)

        {

            $snatch[$key] = $val;

        }

    }



    return $snatch;

}



/**

 * 返回活动详细列表

 *

 * @access  public

 *

 * @return array

 */

function get_snatch_detail()

{

    $filter['snatch_id']  = empty($_REQUEST['snatch_id']) ? 0 : intval($_REQUEST['snatch_id']);

    $filter['sort_by']    = empty($_REQUEST['sort_by']) ? 'bid_time' : trim($_REQUEST['sort_by']);

    $filter['sort_order'] = empty($_REQUEST['sort_order']) ? 'DESC' : trim($_REQUEST['sort_order']);



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



    /* 获得记录总数以及总页数 */

    $sql = "SELECT count(*) FROM ".$GLOBALS['ecs']->table('snatch_log'). $where;

    $filter['record_count'] = $GLOBALS['db']->getOne($sql);



    $filter = page_and_size($filter);



    /* 获得活动数据 */

    $sql = "SELECT s.log_id, u.user_name, s.bid_price, s.bid_time ".

            " FROM ".$GLOBALS['ecs']->table('snatch_log')." AS s ".

            " LEFT JOIN ".$GLOBALS['ecs']->table('users')." AS u ON s.user_id = u.user_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]['bid_time'] = date($GLOBALS['_CFG']['time_format'], $val['bid_time']);

    }



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



    return $arr;

}



?>