【ST】Describe an error from my past projects

我最近的一次project应该是上个学期的web大作业,作业的要求是做一个论文的下载系统,类似于CNKI,分为管理员登陆和普通用户登陆,管理员可以修改用户密码,用户可以查看书籍详情,查看论文下载热度,下载论文,上传论文等等,当然下载需要耗费积分,而上传的论文被别人下载可以获得积分。

在写下载部分的时候,大致就分了【下载他人的论文】和【下载自己的论文】两个部分,下载自己的论文只计入下载量,不计积分,而下载他人的论文则都计入。每个用户有10分的初始积分,论文可设置积分在1~99之间。

因为做这个项目的时间比较紧迫,所以有很多论文都是自己匆忙添加的,设置的积分都很小,所以一开始看起来没有什么问题。但是最后测试的时候加入了一些大的数据,比如这个论文需要99分才可以下载,但是所有用户都没有这么多分数。于是奇怪的事情发生了,在下载积分小于用户当前积分的论文时,可以正常下载并扣除下载者积分,在下载积分大于当前用户积分的论文时,竟然可以直接下载而且不扣除积分??!!而且也不会给上传者任何积分!!

虽然这样的系统bug如果给我用我会很开心,但是这确实是个大bug!

我首先修改的是下载部分,因为下载部分虽然写了积分不足应有的情况,但是好像并没有生效。

在一下午的修改之后,确认了下载部分并没有什么问题,所以问题没有被解决,bug应该出现在sql语句的逻辑部分。

于是我转向修改sql语句,在几次重新的排列和整理逻辑之后,终于解决了这个问题。之后再用数据进行测试,也都没有问题了。

原文地址:https://www.cnblogs.com/eVonneDing/p/5247456.html