ECOS百科全书|高级搜索|RSS订阅|加入收藏|服务中心|联系我们欢迎您光临!

修复ECStore报表中会员排行统计数据变双倍的Bug

来源:清风设计 发布时间:2017-06-23 13:44 字体:【   点击

ECstore后台报表的会员排行一直存在一个bug,统计的会员销售数据是翻倍(订单数量和金额比实际的多了一倍)。


修复方法:

修改 app\b2c\model\analysis\member.php,

将getlist方法中的:

$sql = 'SELECT 1 as rownum,login_account,count(1) as saleTimes,sum(O.payed) as salePrice FROM '.kernel::database()->prefix.'b2c_orders as O LEFT JOIN '.kernel::database()->prefix.'pam_members as M on O.member_id=M.member_id where (O.payed>0) and '.$this->_filter($filter).' Group By M.member_id';

修改为:

$sql = 'SELECT 1 as rownum,M.member_id,count(1) as saleTimes,sum(O.payed) as salePrice FROM '.kernel::database()->prefix.'b2c_orders as O LEFT JOIN '.kernel::database()->prefix.'b2c_members as M on O.member_id=M.member_id where (O.payed>0) and '.$this->_filter($filter).' Group By M.member_id';

并在:“$this->tidy_data($rows,$cols);”前面新增如下代码:

//取出会员用户名
$pamMdl = app::get('pam')->model('members');
if ($rows){
    foreach($rows as $k=>$v){
        $v['login_account'] = $pamMdl->get_operactor_name($v['member_id']);
        $rows[$k] = $v;
    }
}   


报表显示正常了:


究其原因,是因为统计的sql语句中,是根据sdb_pam_members表统计的, 但是member_id在这个表中,是存在两条记录的(一条记录是用户名登录local,一条记录是邮箱登陆email):




------分隔线--------

关键词:ecstore报表,会员排行,双倍,bug

转载请保留:http://www.hnqss.cn/html/jszx/ecstore/article-2723.html

------分隔线--------
尚未注册畅言帐号,请到后台注册