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.
 
 
 
 

306 lines
12 KiB

<?php
/**
* ECSHOP 降价通知管理程序
* ============================================================================
* * 版权所有 2005-2016 上海商创网络科技有限公司,并保留所有权利。
* 网站地址: http://www.ecmoban.com;
* ----------------------------------------------------------------------------
* 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和
* 使用;不允许对程序代码以任何形式任何目的的再发布。
* ============================================================================
* $Author: lizhilin $
* $Id: sale_notice.php 2016-01-3 $
*/
define('IN_ECS', true);
require(dirname(__FILE__) . '/includes/init.php');
/* act操作项的初始化 */
if (empty($_REQUEST['act']))
{
$_REQUEST['act'] = 'list';
}
else
{
$_REQUEST['act'] = trim($_REQUEST['act']);
}
//ecmoban模板堂 --zhuo start
$adminru = get_admin_ru_id();
if($adminru['ru_id'] == 0){
$smarty->assign('priv_ru', 1);
}else{
$smarty->assign('priv_ru', 0);
}
//ecmoban模板堂 --zhuo end
/*------------------------------------------------------ */
//-- 获取列表
/*------------------------------------------------------ */
if ($_REQUEST['act'] == 'list')
{
/* 检查权限 */
admin_priv('sale_notice');
$smarty->assign('ur_here', $_LANG['sale_notice']);
$smarty->assign('full_page', 1);
$list = sale_notice_list($adminru['ru_id']);
foreach($list['item'] as $key=>$val){
$list['item'][$key]['goods_link'] = $ecs->url()."goods.php?id=".$val['goods_id'];
}
$smarty->assign('notice_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('sale_notice_list.htm');
}
/*------------------------------------------------------ */
//-- 翻页、搜索、排序
/*------------------------------------------------------ */
if ($_REQUEST['act'] == 'query')
{
$list = sale_notice_list($adminru['ru_id']);
foreach($list['item'] as $key=>$val){
$list['item'][$key]['goods_link'] = $ecs->url()."goods.php?id=".$val['goods_id'];
}
$smarty->assign('notice_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('sale_notice_list.htm'), '',
array('filter' => $list['filter'], 'page_count' => $list['page_count']));
}
/*------------------------------------------------------ */
//-- (通知详情)
/*------------------------------------------------------ */
if ($_REQUEST['act']=='view')
{
/* 检查权限 */
admin_priv('sale_notice');
$detail = array();
/* 获取评论详细信息并进行字符处理 */
$sql = "SELECT a.*,b.user_name,c.goods_name FROM " .$ecs->table('sale_notice'). " as a LEFT JOIN ".$ecs->table('users')." AS b ON a.user_id=b.user_id".
" LEFT JOIN ".$ecs->table('goods')." AS c ON a.goods_id=c.goods_id WHERE a.id = '$_REQUEST[id]'";
$detail = $db->getRow($sql);
$detail['user_name'] = htmlspecialchars($detail['user_name']);
$detail['add_time'] = local_date($_CFG['time_format'], $detail['add_time']);
/* 模板赋值 */
$smarty->assign('detail', $detail);
$smarty->assign('send_fail', !empty($_REQUEST['send_ok']));
$smarty->assign('ur_here', $_LANG['sale_notice']);
$smarty->assign('action_link', array('text' => '降价通知列表',
'href' => 'sale_notice.php?act=list'));
/* 页面显示 */
assign_query_info();
$smarty->display('sale_notice_info.htm');
}
/*------------------------------------------------------ */
//-- 处理 降价通知
/*------------------------------------------------------ */
if ($_REQUEST['act']=='action')
{
admin_priv('sale_notice');
include_once('../includes/cls_sms.php');
$detail = array();
$id = !empty($_REQUEST[id]) ? intval($_REQUEST[id]) : 0;
/* 获取详细信息 */
$sql = "SELECT a.*,b.user_name,c.goods_name,c.shop_price, c.goods_id FROM " . $ecs->table('sale_notice') . " as a LEFT JOIN " . $ecs->table('users') . " AS b ON a.user_id=b.user_id" .
" LEFT JOIN " . $ecs->table('goods') . " AS c ON a.goods_id=c.goods_id WHERE a.id = '$id'";
$detail = $db->getRow($sql);
if ($_POST[mark]) {
$sql = "UPDATE " . $ecs->table('sale_notice') . " SET mark = '$_POST[mark]' WHERE id = '$id'";
$db->query($sql);
}
/* 邮件通知处理流程 */
if (isset($_POST['remail']) && !empty($detail[email]))
{
/* 设置留言回复模板所需要的内容信息 */
$template = get_mail_template('sale_notice');
$smarty->assign('user_name', $_POST['user_name']);
$smarty->assign('goods_name', $_POST['goods_name']);
$smarty->assign('goods_link', $ecs->url()."goods.php?id=".$detail['goods_id']);
$smarty->assign('send_date', date('Y-m-d'));
$content = $smarty->fetch('str:' . $template['template_content']);
$send_type = 1 ;
/* 发送邮件 */
if (send_mail($detail['user_name'], $detail['email'], $template['template_subject'], $content, $template['is_html']))
{
$sql = "UPDATE " .$ecs->table('sale_notice'). " SET status = 1, send_type=1 WHERE id = '$id'";
$db->query($sql);
$send_ok = 1;
notice_log($detail['goods_id'],$detail['email'],$send_ok,$send_type);
}
else
{
$sql = "UPDATE " .$ecs->table('sale_notice'). " SET status = 3, send_type=1 WHERE id = '$id'";
$db->query($sql);
$send_ok = 0;
notice_log($detail['goods_id'],$detail['email'],$send_ok,$send_type);
/* 提示信息 */
$link[] = array('text' => '返回降价列表', 'href' => 'sale_notice.php?act=list');
sys_msg('发送失败', 0, $link);
}
}
/* 短信通知处理流程 */
if (isset($_POST['resms']) && !empty($detail['cellphone']) && $_CFG['sms_price_notice'] == 1) {
$sms = new sms();
$goods_name = sub_str($_POST['goods_name'], 15) ;
$res = $sms->send($detail['cellphone'], sprintf($GLOBALS['_LANG']['sale_notice_sms'], $goods_name, $detail['shop_price']), '', '60', 1);
//记录日志
$send_type = 2;
if ($res) {
$sql = "UPDATE " . $ecs->table('sale_notice') . " SET status = 1, send_type=2 WHERE id = '$id'";
$db->query($sql);
$send_ok = 1;
notice_log($detail['goods_id'], $detail['cellphone'], $send_ok, $send_type);
/* 提示信息 */
$link[] = array('text' => '返回降价列表', 'href' => 'sale_notice.php?act=list');
sys_msg('发送成功', 0, $link);
} else {
$sql = "UPDATE " . $ecs->table('sale_notice') . " SET status = 3, send_type=2 WHERE id = '$id'";
$db->query($sql);
$send_ok = 0;
notice_log($detail['goods_id'], $detail['cellphone'], $send_ok, $send_type);
/* 提示信息 */
$link[] = array('text' => '返回降价列表', 'href' => 'sale_notice.php?act=list');
sys_msg('发送失败', 0, $link);
}
}
/* 清除缓存 */
clear_cache_files();
/* 记录管理员操作 */
admin_log('处理降价通知', 'edit', 'sale_notice');
ecs_header("Location: sale_notice.php?act=list");
exit;
}
/*------------------------------------------------------ */
//-- 批量删除降价通知申请
/*------------------------------------------------------ */
if ($_REQUEST['act'] == 'batch')
{
admin_priv('sale_notice');
$action = isset($_POST['sel_action']) ? trim($_POST['sel_action']) : 'deny';
if (isset($_POST['checkboxes']))
{
switch ($action)
{
case 'remove':
$db->query("DELETE FROM " . $ecs->table('sale_notice') . " WHERE " . db_create_in($_POST['checkboxes'], 'id'));
break;
default :
break;
}
clear_cache_files();
$action = ($action == 'remove') ? 'remove' : 'edit';
admin_log('', $action, 'adminlog');
$link[] = array('text' => $_LANG['back_list'], 'href' => 'sale_notice.php?act=list');
sys_msg(sprintf($_LANG['batch_drop_success'], count($_POST['checkboxes'])), 0, $link);
}
else
{
/* 提示信息 */
$link[] = array('text' => $_LANG['back_list'], 'href' => 'sale_notice.php?act=list');
sys_msg('返回降价列表', 0, $link);
}
}
/**
* 获取列表
* @access public
* @return array
*/
function sale_notice_list($ru_id)
{
/* 查询条件 */
$filter['keywords'] = empty($_REQUEST['keywords']) ? 0 : 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']) ? 'id' : trim($_REQUEST['sort_by']);
$filter['sort_order'] = empty($_REQUEST['sort_order']) ? 'DESC' : trim($_REQUEST['sort_order']);
$filter['send_status'] = empty($_REQUEST['send_status']) ? '' : intval($_REQUEST['send_status']);
$where = (!empty($filter['keywords'])) ? " AND a.email LIKE '%" . mysql_like_quote($filter['keywords']) . "%' " : '';
$where .= (!empty($filter['send_status'])) ? " AND a.status = '{$filter['send_status']}' " : '';
if($ru_id > 0){
$where .= " AND g.user_id = '$ru_id'";
}
$sql = "SELECT count(*) FROM " .$GLOBALS['ecs']->table('sale_notice'). " as a, ".$GLOBALS['ecs']->table('goods')." AS g WHERE 1=1 $where";
$filter['record_count'] = $GLOBALS['db']->getOne($sql);
/* 分页大小 */
$filter = page_and_size($filter);
/* 获取数据 */
$arr = array();
$sql = "SELECT a.*,b.user_name,g.goods_name,g.shop_price, g.user_id as ru_id FROM " .$GLOBALS['ecs']->table('sale_notice'). " AS a, ".$GLOBALS['ecs']->table('users').
" AS b, ".$GLOBALS['ecs']->table('goods')." AS g WHERE 1=1 $where AND a.user_id=b.user_id AND a.goods_id=g.goods_id " .
" ORDER BY $filter[sort_by] $filter[sort_order] ".
" LIMIT ". $filter['start'] .", $filter[page_size]";
$res = $GLOBALS['db']->query($sql);
$statusArr = array(1=>'已发送' , 2=>'未发送' , 3=>'系统发送失败');
$send_typeArr = array(1=>'邮件' , 2=>'短信');
while ($row = $GLOBALS['db']->fetchRow($res))
{
$row['status'] = $statusArr[$row['status']];
$row['send_type'] = $send_typeArr[$row['send_type']];
$row['add_time'] = local_date($GLOBALS['_CFG']['time_format'], $row['add_time']);
$row['shop_name'] = get_shop_name($row['ru_id'], 1);
$arr[] = $row;
}
$filter['keywords'] = stripslashes($filter['keywords']);
$arr = array('item' => $arr, 'filter' => $filter, 'page_count' => $filter['page_count'], 'record_count' => $filter['record_count']);
return $arr;
}
?>