Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

悬赏解决后,被版主移除悬赏出现的积分处理BUG(附临时解决方案)

[复制链接]
£翱翔白鹭 发表于 2012-9-10 13:35:58 | 显示全部楼层 |阅读模式
本帖最后由 £翱翔白鹭 于 2012-9-10 14:30 编辑

例如:
用户A,用户B,版主C
用户A积分120,用户B积分0.

由用户A发起悬赏,赏金100,10几分的手续费,共扣除110积分,剩余10分。
用户B回答悬赏后并被选为答案,此时用户B积分变为100分。

上面的过程一切正常,问题是在版主C此时进行移除悬赏操作后,积分返还出现错误。
移除悬赏后,
用户A变成-90分,
用户B变成200分。
返还的对象搞反了。
 楼主| £翱翔白鹭 发表于 2012-9-10 14:26:44 | 显示全部楼层
详细测试了下,是在设为标准答案后,主题表里的price就变成负数,而移除悬赏后,积分是返回给夺标人-$thread['price'],悬赏人是$thread['price']。
这就导致悬赏人扣分,夺标人加分。
解决方法暂时为:
打开source\include\topicadmin\topicadmin_removereward.php,原代码为
  1. if($thread['price'] < 0) {
  2.                 updatemembercount($answererid, array($_G['setting']['creditstransextra'][2] => -$thread['price']));
  3.         }

  4.         updatemembercount($thread['authorid'], array($_G['setting']['creditstransextra'][2] => $thread['price']));
复制代码
在少修改源代码的基础上修改为
  1. if($thread['price'] < 0) {
  2.                 $thread['price'] = abs($thread['price']);
  3.                 updatemembercount($answererid, array($_G['setting']['creditstransextra'][2] => -$thread['price']));
  4.         }

  5.         updatemembercount($thread['authorid'], array($_G['setting']['creditstransextra'][2] => $thread['price']));
复制代码
也就是在30行插入$thread['price'] = abs($thread['price']);
回复

使用道具 举报

m.king 发表于 2012-9-10 14:54:31 | 显示全部楼层
感谢您的反馈,该问题我们稍后核查下。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-2-28 03:08 , Processed in 0.025306 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表