杭州神话信息技术有限公司
标题:
用户删除BUG 程序不完整,已经找出原因,请官方修正
[打印本页]
作者:
micwolf
时间:
2010-9-2 21:12:14
标题:
用户删除BUG 程序不完整,已经找出原因,请官方修正
现象:
当后台管理员删除用户时,相关联用户中的关注数或被关注数未做更新。
涉及两张表 一张Member 中有三个字段 follow_count,fans_count,fans_new
buddys 中 涉及uid与buddyid
涉及语句为 moudules/admin/member.php
$this->DatabaseHandler->Query("delete from `".TABLE_PREFIX."buddys` where `uid` in('".implode("','",$member_ids)."') or `buddyid` in('".implode("','",$member_ids)."')");
复制代码
上述语句仅删除相关连的用户,但是没有做update SQL
修正思路: 在此语句前,先在buddys表中循环找出被删除用户uid与[uid]相同的记录,在该记录中更新以[buddyid] 为uid 在member表中[fans_count]的值即-1
第二步在buddys表中循环找出被删除用户uid 与[buddyid]相同的记录,在该记录中更新以[uid] 为uid 在member表中[follow_count]的值即-1
第三步再执行上面的删除记录的语句
作者:
micwolf
时间:
2010-9-2 21:17:07
建议在下个版本中 后台增加 修复统计 所有用户的 关注数与被关注数 这个功能。执行下就可以修复所有用户显示的不正确性
作者:
hoho
时间:
2010-9-2 21:21:33
这个得顶一下。。
作者:
micwolf
时间:
2010-9-2 23:59:55
本帖最后由 micwolf 于 2010-9-3 00:01 编辑
发现第二处问题,用户被删除后,相关的Tag没有清理干净。
同样涉及与顶楼一样的文件 modules/admin/member.mod.php
$this->DatabaseHandler->Query("delete from `".TABLE_PREFIX."my_tag` where `uid` in('".implode("','",$member_ids)."')");
复制代码
下面还要增加语句
$this->DatabaseHandler->Query("delete from `".TABLE_PREFIX."my_topic_tag` where `uid` in('".implode("','",$member_ids)."')");
复制代码
此外 确保
执行 $TopicLogic->Delete("where `uid` in('".implode("','",$member_ids)."') limit {$member_ids_count}"); 语句时
topic_tag 表中相应的itemid的记录也删除 【include/logic/topic.login.php】
重点是处理下面的表中数据
tag表 修正思路
根据my_tag表中当前用户对应的tagid,循环查找tag表中对应的记录,并根据下面的不同情况更新total_count,user_count,topic_count,tag_count的值。
如果当前tag记录中的useid 与当前用户Userid 不一致,则直接更新total_count,user_count,topic_count,tag_count的值
如果当前tag记录中的userid 与当前用户userid 一致,且total_count,user_count都为1,则直接删除该记录
如果当前tag记录中的userid 与当前用户userid 一致,但tatal_count,user_count 不为1,则分两步走,第一步更新total_count,user_count,topic_count,tag_count 的值,第二步,利用当前tagid 到表my_tag中查找除了当前用户外使用该tagid的用户的userid,username,dateline,并将值更新到表tag中去
以上为思路,希望官方修正
作者:
Admn
时间:
2010-9-3 09:33:43
LZ 你好厉害
可以加入他们的团队了
作者:
micwolf
时间:
2010-9-3 11:02:49
还是建议官方在后台增加 清理用户关注,被关注数,TAG统计修复的功能。这样定期清理有好处
作者:
火爆浪子
时间:
2010-9-3 15:25:47
这样的用户才是真正热心用户··
强力顶起来
作者:
放牛郎
时间:
2010-9-4 12:55:56
楼主这样的人肯定有好的发展,因为不仅仅是发现问题,还找到问题原因,并能给出解决方案。
欢迎光临 杭州神话信息技术有限公司 (http://cenwor.com/)
Powered by Discuz! X2