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/auction.php
<?php



/**

 * ECSHOP 管理中心拍卖活动管理

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

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

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

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

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

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

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

 * $Author: liubo $

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

 */



define('IN_ECTOUCH', true);

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

require(ROOT_PATH . 'include/lib_goods.php');



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



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

//-- 活动列表页

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



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

{

    /* 检查权限 */

    admin_priv('auction');



    /* 模板赋值 */

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

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

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



    $list = auction_list();



    $smarty->assign('auction_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('auction_list.htm');

}



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

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

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



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

{

    $list = auction_list();



    $smarty->assign('auction_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('auction_list.htm'), '',

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

}



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

//-- 删除

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

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

{

    check_authz_json('auction');



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

    $auction = auction_info($id);

    if (empty($auction))

    {

        make_json_error($_LANG['auction_not_exist']);

    }

    if ($auction['bid_user_count'] > 0)

    {

        make_json_error($_LANG['auction_cannot_remove']);

    }

    $name = $auction['act_name'];

    $exc->drop($id);



    /* 记日志 */

    admin_log($name, 'remove', 'auction');



    /* 清除缓存 */

    clear_cache_files();



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



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

    exit;

}



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

//-- 批量操作

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

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

{

    /* 取得要操作的记录编号 */

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

    {

        sys_msg($_LANG['no_record_selected']);

    }

    else

    {

        /* 检查权限 */

        admin_priv('auction');



        $ids = $_POST['checkboxes'];



        if (isset($_POST['drop']))

        {

            /* 查询哪些拍卖活动已经有人出价 */

            $sql = "SELECT DISTINCT act_id FROM " . $ecs->table('auction_log') .

                    " WHERE act_id " . db_create_in($ids);

            $ids = array_diff($ids, $db->getCol($sql));

            if (!empty($ids))

            {

                /* 删除记录 */

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

                        " WHERE act_id " . db_create_in($ids) .

                        " AND act_type = '" . GAT_AUCTION . "'";

                $db->query($sql);



                /* 记日志 */

                admin_log('', 'batch_remove', 'auction');



                /* 清除缓存 */

                clear_cache_files();

            }

            $links[] = array('text' => $_LANG['back_auction_list'], 'href' => 'auction.php?act=list&' . list_link_postfix());

            sys_msg($_LANG['batch_drop_ok'], 0, $links);

        }

    }

}



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

//-- 查看出价记录

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



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

{

    /* 检查权限 */

    admin_priv('auction');



    /* 参数 */

    if (empty($_GET['id']))

    {

        sys_msg('invalid param');

    }

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

    $auction = auction_info($id);

    if (empty($auction))

    {

        sys_msg($_LANG['auction_not_exist']);

    }

    $smarty->assign('auction', auction_info($id));



    /* 出价记录 */

    $smarty->assign('auction_log', auction_log($id));



    /* 模板赋值 */

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

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

    assign_query_info();

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

}



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

//-- 添加、编辑

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



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

{

    /* 检查权限 */

    admin_priv('auction');



    /* 是否添加 */

    $is_add = $_REQUEST['act'] == 'add';

    $smarty->assign('form_action', $is_add ? 'insert' : 'update');



    /* 初始化、取得拍卖活动信息 */

    if ($is_add)

    {

        $auction = array(

            'act_id'        => 0,

            'act_name'      => '',

            'act_desc'      => '',

            'goods_id'      => 0,

            'product_id'    => 0,

            'goods_name'    => $_LANG['pls_search_goods'],

            'start_time'    => date('Y-m-d', time() + 86400),

            'end_time'      => date('Y-m-d', time() + 4 * 86400),

            'deposit'       => 0,

            'start_price'   => 0,

            'end_price'     => 0,

            'amplitude'     => 0

        );

    }

    else

    {

        if (empty($_GET['id']))

        {

            sys_msg('invalid param');

        }

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

        $auction = auction_info($id, true);

        if (empty($auction))

        {

            sys_msg($_LANG['auction_not_exist']);

        }

        $auction['status'] = $_LANG['auction_status'][$auction['status_no']];

        $smarty->assign('bid_user_count', sprintf($_LANG['bid_user_count'], $auction['bid_user_count']));

    }

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



    /* 赋值时间控件的语言 */

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



    /* 商品货品表 */

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



    /* 显示模板 */

    if ($is_add)

    {

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

    }

    else

    {

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

    }

    $smarty->assign('action_link', list_link($is_add));

    assign_query_info();

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

}



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

//-- 添加、编辑后提交

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



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

{

    /* 检查权限 */

    admin_priv('auction');



    /* 是否添加 */

    $is_add = $_REQUEST['act'] == 'insert';



    /* 检查是否选择了商品 */

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

    if ($goods_id <= 0)

    {

        sys_msg($_LANG['pls_select_goods']);

    }

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

    $row = $db->getRow($sql);

    if (empty($row))

    {

        sys_msg($_LANG['goods_not_exist']);

    }

    $goods_name = $row['goods_name'];



    /* 提交值 */

    $auction = array(

        'act_id'        => intval($_POST['id']),

        'act_name'      => empty($_POST['act_name']) ? $goods_name : sub_str($_POST['act_name'], 255, false),

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

        'act_type'      => GAT_AUCTION,

        'goods_id'      => $goods_id,

        'product_id'    => empty($_POST['product_id']) ? 0 : $_POST['product_id'],

        'goods_name'    => $goods_name,

        'start_time'    => local_strtotime($_POST['start_time']),

        'end_time'      => local_strtotime($_POST['end_time']),

        'ext_info'      => serialize(array(

                    'deposit'       => round(floatval($_POST['deposit']), 2),

                    'start_price'   => round(floatval($_POST['start_price']), 2),

                    'end_price'     => empty($_POST['no_top']) ? round(floatval($_POST['end_price']), 2) : 0,

                    'amplitude'     => round(floatval($_POST['amplitude']), 2),

                    'no_top'     => !empty($_POST['no_top']) ? intval($_POST['no_top']) : 0

                ))

    );



    /* 保存数据 */

    if ($is_add)

    {

        $auction['is_finished'] = 0;

        $db->autoExecute($ecs->table('goods_activity'), $auction, 'INSERT');

        $auction['act_id'] = $db->insert_id();

    }

    else

    {

        $db->autoExecute($ecs->table('goods_activity'), $auction, 'UPDATE', "act_id = '$auction[act_id]'");

    }



    /* 记日志 */

    if ($is_add)

    {

        admin_log($auction['act_name'], 'add', 'auction');

    }

    else

    {

        admin_log($auction['act_name'], 'edit', 'auction');

    }



    /* 清除缓存 */

    clear_cache_files();



    /* 提示信息 */

    if ($is_add)

    {

        $links = array(

            array('href' => 'auction.php?act=add', 'text' => $_LANG['continue_add_auction']),

            array('href' => 'auction.php?act=list', 'text' => $_LANG['back_auction_list'])

        );

        sys_msg($_LANG['add_auction_ok'], 0, $links);

    }

    else

    {

        $links = array(

            array('href' => 'auction.php?act=list&' . list_link_postfix(), 'text' => $_LANG['back_auction_list'])

        );

        sys_msg($_LANG['edit_auction_ok'], 0, $links);

    }

}



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

//-- 处理冻结资金

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



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

{

    /* 检查权限 */

    admin_priv('auction');



    /* 检查参数 */

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

    {

        sys_msg('invalid param');

    }

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

    $auction = auction_info($id);

    if (empty($auction))

    {

        sys_msg($_LANG['auction_not_exist']);

    }

    if ($auction['status_no'] != FINISHED)

    {

        sys_msg($_LANG['invalid_status']);

    }

    if ($auction['deposit'] <= 0)

    {

        sys_msg($_LANG['no_deposit']);

    }



    /* 处理保证金 */

    $exc->edit("is_finished = 2", $id); // 修改状态

    if (isset($_POST['unfreeze']))

    {

        /* 解冻 */

        log_account_change($auction['last_bid']['bid_user'], $auction['deposit'],

            (-1) * $auction['deposit'], 0, 0, sprintf($_LANG['unfreeze_auction_deposit'], $auction['act_name']));

    }

    else

    {

        /* 扣除 */

        log_account_change($auction['last_bid']['bid_user'], 0,

            (-1) * $auction['deposit'], 0, 0, sprintf($_LANG['deduct_auction_deposit'], $auction['act_name']));

    }



    /* 记日志 */

    admin_log($auction['act_name'], 'edit', 'auction');



    /* 清除缓存 */

    clear_cache_files();



    /* 提示信息 */

    sys_msg($_LANG['settle_deposit_ok']);

}



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

//-- 搜索商品

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



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

{

    check_authz_json('auction');



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



    $json   = new JSON;

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

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



    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);

}



/*

 * 取得拍卖活动列表

 * @return   array

 */

function auction_list()

{

    $result = get_filter();

    if ($result === false)

    {

        /* 过滤条件 */

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

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

        {

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

        }

        $filter['is_going']   = empty($_REQUEST['is_going']) ? 0 : 1;

        $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 = "";

        if (!empty($filter['keyword']))

        {

            $where .= " AND goods_name LIKE '%" . mysql_like_quote($filter['keyword']) . "%'";

        }

        if ($filter['is_going'])

        {

            $now = gmtime();

            $where .= " AND is_finished = 0 AND start_time <= '$now' AND end_time >= '$now' ";

        }



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

                " WHERE act_type = '" . GAT_AUCTION . "' $where";

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



        /* 分页大小 */

        $filter = page_and_size($filter);



        /* 查询 */

        $sql = "SELECT * ".

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

                " WHERE act_type = '" . GAT_AUCTION . "' $where ".

                " ORDER BY $filter[sort_by] $filter[sort_order] ".

                " LIMIT ". $filter['start'] .", $filter[page_size]";



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

        set_filter($filter, $sql);

    }

    else

    {

        $sql    = $result['sql'];

        $filter = $result['filter'];

    }

    $res = $GLOBALS['db']->query($sql);



    $list = array();

    while ($row = $GLOBALS['db']->fetchRow($res))

    {

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

        $arr = array_merge($row, $ext_info);



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

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



        $list[] = $arr;

    }

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



    return $arr;

}



/**

 * 列表链接

 * @param   bool    $is_add     是否添加(插入)

 * @param   string  $text       文字

 * @return  array('href' => $href, 'text' => $text)

 */

function list_link($is_add = true, $text = '')

{

    $href = 'auction.php?act=list';

    if (!$is_add)

    {

        $href .= '&' . list_link_postfix();

    }

    if ($text == '')

    {

        $text = $GLOBALS['_LANG']['auction_list'];

    }



    return array('href' => $href, 'text' => $text);

}



?>