You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
332 lines
10 KiB
332 lines
10 KiB
<?php
|
|
|
|
/**
|
|
* ECSHOP 会员等级管理程序
|
|
* ============================================================================
|
|
* * 版权所有 2005-2016 上海商创网络科技有限公司,并保留所有权利。
|
|
* 网站地址: http://www.ecmoban.com;
|
|
* ----------------------------------------------------------------------------
|
|
* 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和
|
|
* 使用;不允许对程序代码以任何形式任何目的的再发布。
|
|
* ============================================================================
|
|
* $Author: liubo $
|
|
* $Id: user_rank.php 17217 2011-01-19 06:29:08Z liubo $
|
|
*/
|
|
|
|
define('IN_ECS', true);
|
|
|
|
require(dirname(__FILE__) . '/includes/init.php');
|
|
|
|
$exc = new exchange($ecs->table("user_rank"), $db, 'rank_id', 'rank_name');
|
|
$exc_user = new exchange($ecs->table("users"), $db, 'user_rank', 'user_rank');
|
|
|
|
/*------------------------------------------------------ */
|
|
//-- 会员等级列表
|
|
/*------------------------------------------------------ */
|
|
|
|
if ($_REQUEST['act'] == 'list')
|
|
{
|
|
$ranks = array();
|
|
$ranks = $db->getAll("SELECT * FROM " .$ecs->table('user_rank'));
|
|
|
|
$smarty->assign('ur_here', $_LANG['05_user_rank_list']);
|
|
$smarty->assign('action_link', array('text' => $_LANG['add_user_rank'], 'href'=>'user_rank.php?act=add'));
|
|
$smarty->assign('full_page', 1);
|
|
|
|
$smarty->assign('user_ranks', $ranks);
|
|
|
|
assign_query_info();
|
|
$smarty->display('user_rank.htm');
|
|
}
|
|
|
|
/*------------------------------------------------------ */
|
|
//-- 翻页,排序
|
|
/*------------------------------------------------------ */
|
|
elseif ($_REQUEST['act'] == 'query')
|
|
{
|
|
$ranks = array();
|
|
$ranks = $db->getAll("SELECT * FROM " .$ecs->table('user_rank'));
|
|
|
|
$smarty->assign('user_ranks', $ranks);
|
|
make_json_result($smarty->fetch('user_rank.htm'));
|
|
}
|
|
|
|
/*------------------------------------------------------ */
|
|
//-- 添加会员等级
|
|
/*------------------------------------------------------ */
|
|
|
|
elseif ($_REQUEST['act'] == 'add')
|
|
{
|
|
admin_priv('user_rank');
|
|
|
|
$rank['rank_id'] = 0;
|
|
$rank['rank_special'] = 0;
|
|
$rank['show_price'] = 1;
|
|
$rank['min_points'] = 0;
|
|
$rank['max_points'] = 0;
|
|
$rank['discount'] = 100;
|
|
|
|
$form_action = 'insert';
|
|
|
|
$smarty->assign('rank', $rank);
|
|
$smarty->assign('ur_here', $_LANG['add_user_rank']);
|
|
$smarty->assign('action_link', array('text' => $_LANG['05_user_rank_list'], 'href'=>'user_rank.php?act=list'));
|
|
$smarty->assign('ur_here', $_LANG['add_user_rank']);
|
|
$smarty->assign('form_action', $form_action);
|
|
|
|
assign_query_info();
|
|
$smarty->display('user_rank_info.htm');
|
|
}
|
|
|
|
/*------------------------------------------------------ */
|
|
//-- 增加会员等级到数据库
|
|
/*------------------------------------------------------ */
|
|
|
|
elseif ($_REQUEST['act'] == 'insert')
|
|
{
|
|
admin_priv('user_rank');
|
|
|
|
$special_rank = isset($_POST['special_rank']) ? intval($_POST['special_rank']) : 0;
|
|
$_POST['min_points'] = empty($_POST['min_points']) ? 0 : intval($_POST['min_points']);
|
|
$_POST['max_points'] = empty($_POST['max_points']) ? 0 : intval($_POST['max_points']);
|
|
|
|
/* 检查是否存在重名的会员等级 */
|
|
if (!$exc->is_only('rank_name', trim($_POST['rank_name'])))
|
|
{
|
|
sys_msg(sprintf($_LANG['rank_name_exists'], trim($_POST['rank_name'])), 1);
|
|
}
|
|
|
|
/* 非特殊会员组检查积分的上下限是否合理 */
|
|
if ($_POST['min_points'] >= $_POST['max_points'] && $special_rank == 0)
|
|
{
|
|
sys_msg($_LANG['js_languages']['integral_max_small'], 1);
|
|
}
|
|
|
|
/* 特殊等级会员组不判断积分限制 */
|
|
if ($special_rank == 0)
|
|
{
|
|
/* 检查下限制有无重复 */
|
|
if (!$exc->is_only('min_points', intval($_POST['min_points'])))
|
|
{
|
|
sys_msg(sprintf($_LANG['integral_min_exists'], intval($_POST['min_points'])));
|
|
}
|
|
}
|
|
|
|
/* 特殊等级会员组不判断积分限制 */
|
|
if ($special_rank == 0)
|
|
{
|
|
/* 检查上限有无重复 */
|
|
if (!$exc->is_only('max_points', intval($_POST['max_points'])))
|
|
{
|
|
sys_msg(sprintf($_LANG['integral_max_exists'], intval($_POST['max_points'])));
|
|
}
|
|
}
|
|
|
|
$sql = "INSERT INTO " .$ecs->table('user_rank') ."( ".
|
|
"rank_name, min_points, max_points, discount, special_rank, show_price".
|
|
") VALUES (".
|
|
"'$_POST[rank_name]', '" .intval($_POST['min_points']). "', '" .intval($_POST['max_points']). "', ".
|
|
"'$_POST[discount]', '$special_rank', '" .intval($_POST['show_price']). "')";
|
|
$db->query($sql);
|
|
|
|
/* 管理员日志 */
|
|
admin_log(trim($_POST['rank_name']), 'add', 'user_rank');
|
|
clear_cache_files();
|
|
|
|
$lnk[] = array('text' => $_LANG['back_list'], 'href'=>'user_rank.php?act=list');
|
|
$lnk[] = array('text' => $_LANG['add_continue'], 'href'=>'user_rank.php?act=add');
|
|
sys_msg($_LANG['add_rank_success'], 0, $lnk);
|
|
}
|
|
|
|
/*------------------------------------------------------ */
|
|
//-- 删除会员等级
|
|
/*------------------------------------------------------ */
|
|
elseif ($_REQUEST['act'] == 'remove')
|
|
{
|
|
check_authz_json('user_rank');
|
|
|
|
$rank_id = intval($_GET['id']);
|
|
|
|
if ($exc->drop($rank_id))
|
|
{
|
|
/* 更新会员表的等级字段 */
|
|
$exc_user->edit("user_rank = 0", $rank_id);
|
|
|
|
$rank_name = $exc->get_name($rank_id);
|
|
admin_log(addslashes($rank_name), 'remove', 'user_rank');
|
|
clear_cache_files();
|
|
}
|
|
|
|
$url = 'user_rank.php?act=query&' . str_replace('act=remove', '', $_SERVER['QUERY_STRING']);
|
|
|
|
ecs_header("Location: $url\n");
|
|
exit;
|
|
|
|
}
|
|
/*
|
|
* 编辑会员等级名称
|
|
*/
|
|
elseif ($_REQUEST['act'] == 'edit_name')
|
|
{
|
|
$id = intval($_REQUEST['id']);
|
|
$val = empty($_REQUEST['val']) ? '' : json_str_iconv(trim($_REQUEST['val']));
|
|
check_authz_json('user_rank');
|
|
if ($exc->is_only('rank_name', $val, $id))
|
|
{
|
|
if ($exc->edit("rank_name = '$val'", $id))
|
|
{
|
|
/* 管理员日志 */
|
|
admin_log($val, 'edit', 'user_rank');
|
|
clear_cache_files();
|
|
make_json_result(stripcslashes($val));
|
|
}
|
|
else
|
|
{
|
|
make_json_error($db->error());
|
|
}
|
|
}
|
|
else
|
|
{
|
|
make_json_error(sprintf($_LANG['rank_name_exists'], htmlspecialchars($val)));
|
|
}
|
|
}
|
|
|
|
/*
|
|
* ajax编辑积分下限
|
|
*/
|
|
elseif ($_REQUEST['act'] == 'edit_min_points')
|
|
{
|
|
check_authz_json('user_rank');
|
|
|
|
$rank_id = empty($_REQUEST['id']) ? 0 : intval($_REQUEST['id']);
|
|
$val = empty($_REQUEST['val']) ? 0 : intval($_REQUEST['val']);
|
|
|
|
$rank = $db->getRow("SELECT max_points, special_rank FROM " . $ecs->table('user_rank') . " WHERE rank_id = '$rank_id'");
|
|
if ($val >= $rank['max_points'] && $rank['special_rank'] == 0)
|
|
{
|
|
make_json_error($_LANG['js_languages']['integral_max_small']);
|
|
}
|
|
|
|
if ($rank['special_rank'] ==0 && !$exc->is_only('min_points', $val, $rank_id))
|
|
{
|
|
make_json_error(sprintf($_LANG['integral_min_exists'], $val));
|
|
}
|
|
|
|
if ($exc->edit("min_points = '$val'", $rank_id))
|
|
{
|
|
$rank_name = $exc->get_name($rank_id);
|
|
admin_log(addslashes($rank_name), 'edit', 'user_rank');
|
|
make_json_result($val);
|
|
}
|
|
else
|
|
{
|
|
make_json_error($db->error());
|
|
}
|
|
}
|
|
|
|
/*
|
|
* ajax修改积分上限
|
|
*/
|
|
elseif ($_REQUEST['act'] == 'edit_max_points')
|
|
{
|
|
check_authz_json('user_rank');
|
|
|
|
$rank_id = empty($_REQUEST['id']) ? 0 : intval($_REQUEST['id']);
|
|
$val = empty($_REQUEST['val']) ? 0 : intval($_REQUEST['val']);
|
|
|
|
$rank = $db->getRow("SELECT min_points, special_rank FROM " . $ecs->table('user_rank') . " WHERE rank_id = '$rank_id'");
|
|
|
|
if ($val <= $rank['min_points'] && $rank['special_rank'] == 0)
|
|
{
|
|
make_json_error($_LANG['js_languages']['integral_max_small']);
|
|
}
|
|
|
|
if ($rank['special_rank'] ==0 && !$exc->is_only('max_points', $val, $rank_id))
|
|
{
|
|
make_json_error(sprintf($_LANG['integral_max_exists'], $val));
|
|
}
|
|
if ($exc->edit("max_points = '$val'", $rank_id))
|
|
{
|
|
$rank_name = $exc->get_name($rank_id);
|
|
admin_log(addslashes($rank_name), 'edit', 'user_rank');
|
|
make_json_result($val);
|
|
}
|
|
else
|
|
{
|
|
make_json_error($db->error());
|
|
}
|
|
}
|
|
|
|
/*
|
|
* 修改折扣率
|
|
*/
|
|
elseif ($_REQUEST['act'] == 'edit_discount')
|
|
{
|
|
check_authz_json('user_rank');
|
|
|
|
$rank_id = empty($_REQUEST['id']) ? 0 : intval($_REQUEST['id']);
|
|
$val = empty($_REQUEST['val']) ? 0 : intval($_REQUEST['val']);
|
|
|
|
if ($val < 1 || $val > 100)
|
|
{
|
|
make_json_error($_LANG['js_languages']['discount_invalid']);
|
|
}
|
|
|
|
if ($exc->edit("discount = '$val'", $rank_id))
|
|
{
|
|
$rank_name = $exc->get_name($rank_id);
|
|
admin_log(addslashes($rank_name), 'edit', 'user_rank');
|
|
clear_cache_files();
|
|
make_json_result($val);
|
|
}
|
|
else
|
|
{
|
|
make_json_error($val);
|
|
}
|
|
}
|
|
|
|
/*------------------------------------------------------ */
|
|
//-- 切换是否是特殊会员组
|
|
/*------------------------------------------------------ */
|
|
elseif ($_REQUEST['act'] == 'toggle_special')
|
|
{
|
|
check_authz_json('user_rank');
|
|
|
|
$rank_id = intval($_POST['id']);
|
|
$is_special = intval($_POST['val']);
|
|
|
|
if ($exc->edit("special_rank = '$is_special'", $rank_id))
|
|
{
|
|
$rank_name = $exc->get_name($rank_id);
|
|
admin_log(addslashes($rank_name), 'edit', 'user_rank');
|
|
make_json_result($is_special);
|
|
}
|
|
else
|
|
{
|
|
make_json_error($db->error());
|
|
}
|
|
}
|
|
/*------------------------------------------------------ */
|
|
//-- 切换是否显示价格
|
|
/*------------------------------------------------------ */
|
|
elseif ($_REQUEST['act'] == 'toggle_showprice')
|
|
{
|
|
check_authz_json('user_rank');
|
|
|
|
$rank_id = intval($_POST['id']);
|
|
$is_show = intval($_POST['val']);
|
|
|
|
if ($exc->edit("show_price = '$is_show'", $rank_id))
|
|
{
|
|
$rank_name = $exc->get_name($rank_id);
|
|
admin_log(addslashes($rank_name), 'edit', 'user_rank');
|
|
clear_cache_files();
|
|
make_json_result($is_show);
|
|
}
|
|
else
|
|
{
|
|
make_json_error($db->error());
|
|
}
|
|
}
|
|
|
|
?>
|