function get_affiliate_ck()
{
$affiliate = unserialize($GLOBALS['_CFG']['affiliate']);
empty($affiliate) && $affiliate = array();
$separate_by = $affiliate['config']['separate_by'];
$sqladd = '';
if (isset($_REQUEST['status']))
{
$sqladd = ' AND o.is_separate = ' . (int)$_REQUEST['status'];
$filter['status'] = (int)$_REQUEST['status'];
}
if (isset($_REQUEST['order_sn']))
{
$sqladd = ' AND o.order_sn LIKE \'%' . trim($_REQUEST['order_sn']) . '%\'';
$filter['order_sn'] = $_REQUEST['order_sn'];
}
if (isset($_GET['auid']))
{
$sqladd = ' AND a.user_id=' . $_GET['auid'];
}
if(!empty($affiliate['on']))
{
if(empty($separate_by))
{
//推荐注册分成,
$sql = "SELECT COUNT(*) FROM " . $GLOBALS['ecs']->table('order_info') . " o".
" LEFT JOIN".$GLOBALS['ecs']->table('users')." u ON o.user_id = u.user_id".
" LEFT JOIN " . $GLOBALS['ecs']->table('affiliate_log') . " a ON o.order_id = a.order_id" .
" WHERE o.user_id > 0 AND (u.parent_id > 0 AND o.is_separate = 0 OR o.is_separate > 0) $sqladd";
}
else
{
//推荐订单分成
$sql = "SELECT COUNT(*) FROM " . $GLOBALS['ecs']->table('order_info') . " o".
" LEFT JOIN".$GLOBALS['ecs']->table('users')." u ON o.user_id = u.user_id".
" LEFT JOIN " . $GLOBALS['ecs']->table('affiliate_log') . " a ON o.order_id = a.order_id" .
" WHERE o.user_id > 0 AND (o.parent_id > 0 AND o.is_separate = 0 OR o.is_separate > 0) $sqladd";
}
}
else
{
$sql = "SELECT COUNT(*) FROM " . $GLOBALS['ecs']->table('order_info') . " o".
" LEFT JOIN".$GLOBALS['ecs']->table('users')." u ON o.user_id = u.user_id".
" LEFT JOIN " . $GLOBALS['ecs']->table('affiliate_log') . " a ON o.order_id = a.order_id" .
" WHERE o.user_id > 0 AND o.is_separate > 0 $sqladd";
}
<span style="white-space:pre"> </span>
$filter['record_count'] = $GLOBALS['db']->getOne($sql);
$logdb = array();
/* 分页大小 */
$filter = page_and_size($filter);
if(!empty($affiliate['on']))
{
if(empty($separate_by))
{
//推荐注册分成
$sql = "SELECT o.*, a.log_id, a.user_id as suid, a.user_name as auser, a.money, a.point, a.separate_type,u.parent_id as up FROM " . $GLOBALS['ecs']->table('order_info') . " o".
" LEFT JOIN".$GLOBALS['ecs']->table('users')." u ON o.user_id = u.user_id".
" LEFT JOIN " . $GLOBALS['ecs']->table('affiliate_log') . " a ON o.order_id = a.order_id" .
" WHERE o.user_id > 0 AND (u.parent_id > 0 AND o.is_separate = 0 OR o.is_separate > 0) $sqladd".
" ORDER BY order_id DESC" .
" LIMIT " . $filter['start'] . ",$filter[page_size]";
/*
SQL解释:
列出同时满足以下条件的订单分成情况:
1、有效订单o.user_id > 0
2、满足以下情况之一:
a.有用户注册上线的未分成订单 u.parent_id > 0 AND o.is_separate = 0
b.已分成订单 o.is_separate > 0
*/
}
else
{
//推荐订单分成
$sql = "SELECT o.*, a.log_id,a.user_id as suid, a.user_name as auser, a.money, a.point, a.separate_type,u.parent_id as up FROM " . $GLOBALS['ecs']->table('order_info') . " o".
" LEFT JOIN".$GLOBALS['ecs']->table('users')." u ON o.user_id = u.user_id".
" LEFT JOIN " . $GLOBALS['ecs']->table('affiliate_log') . " a ON o.order_id = a.order_id" .
" WHERE o.user_id > 0 AND (o.parent_id > 0 AND o.is_separate = 0 OR o.is_separate > 0) $sqladd" .
" ORDER BY order_id DESC" .
" LIMIT " . $filter['start'] . ",$filter[page_size]";
/*
SQL解释:
列出同时满足以下条件的订单分成情况:
1、有效订单o.user_id > 0
2、满足以下情况之一:
a.有订单推荐上线的未分成订单 o.parent_id > 0 AND o.is_separate = 0
b.已分成订单 o.is_separate > 0
*/
}
}
else
{
//关闭
$sql = "SELECT o.*, a.log_id,a.user_id as suid, a.user_name as auser, a.money, a.point, a.separate_type,u.parent_id as up FROM " . $GLOBALS['ecs']->table('order_info') . " o".
" LEFT JOIN".$GLOBALS['ecs']->table('users')." u ON o.user_id = u.user_id".
" LEFT JOIN " . $GLOBALS['ecs']->table('affiliate_log') . " a ON o.order_id = a.order_id" .
" WHERE o.user_id > 0 AND o.is_separate > 0 $sqladd" .
" ORDER BY order_id DESC" .
" LIMIT " . $filter['start'] . ",$filter[page_size]";
}
$query = $GLOBALS['db']->query($sql);
while ($rt = $GLOBALS['db']->fetch_array($query))
{
if(empty($separate_by) && $rt['up'] > 0)
{
//按推荐注册分成
$rt['separate_able'] = 1;
}
elseif(!empty($separate_by) && $rt['parent_id'] > 0)
{
//按推荐订单分成
$rt['separate_able'] = 1;
}
if(!empty($rt['suid']))
{
//在affiliate_log有记录
$rt['info'] = sprintf($GLOBALS['_LANG']['separate_info2'], $rt['suid'], $rt['auser'], $rt['money'], $rt['point']);
if($rt['separate_type'] == -1 || $rt['separate_type'] == -2)
{
//已被撤销
$rt['is_separate'] = 3;
$rt['info'] = "<s>" . $rt['info'] . "</s>";
}
}
$logdb[] = $rt;
}
$arr = array('logdb' => $logdb, 'filter' => $filter, 'page_count' => $filter['page_count'], 'record_count' => $filter['record_count']);
return $arr;
}
总的来说是,管理员访问分成页面,随后检索已经生成的订单,得到满足条件的订单,随后显示,当管理员执行过分成后,插入分成记录表,
用户登录的时候显示推荐信息得到的分成状态,一部分取决于商品表的is_seprate字段另外一部分取决于分成记录表,并不是系统将信息同一记录到分成记录表,或者用户上线触发,这样的话每次都要进行查询商品表,不如用户登录触发,统一到分成记录表效率高