作者:坚定的守猴
撰写日期:2019年6月5日
开发软件和关键技术:VS;数据判断和图片生成
根据项目的实际需要,对数据进行不一样的形式的处理。现在通过打印学生证书的例子说一下数据怎样通过判断之后以图片的形式输出。
在讲述这证书打印之前,先来简单梳理一下思路。因为证书打印是项目当中的一部分,所以有了前面数据的铺垫,我们证书打印的实现是根据用户类型在里面录入的成绩信息进行判断,达到合格的标准就可以正常打印证书。
首先从判断用户类型开始
根据UserID查询学生学号,使用Lambda表达式的写法,对学号进行单条数据的查询。把学生的学号信息查询出来以后,下一步就是根据学号查询学生的证书信息,通过联表进行查询学生的学院、用户等信息。同样的方式对教师信息进行判断
证书的依据是根据学生的考试成绩是否达到合格标准进行打印的。所以在前面把用户类型的有关信息进行查询出来之后,就对其成绩进行从高到低进行查询(大学里面的考试是可以多次进行,直到合格为准)。
查询考试成绩出来之后,就对这些成绩信息的高低进行降序的排序。
降序之后的成绩就是从高到低进行显示,然后就可以查询最高成绩是否符合合格标准,如果符合就可以打印证书,反之就进行else之后判断。
成功打印证书之后,这些数据肯定会保存在数据库里面。为了避免新增进来的数据与原有的数据重复造成数据冗余,所以依照常规做法对于这些数据得进行一个判断。
实例化一下证书表,根据用户ID查询用户有没有对应的证书信息。
现在就对用户进行判断,如果已经有的话,就对新增进来的成绩信息进行判断,成绩高于已有的成绩,则可以进行对原有的成绩修改。
修改成功之后就根据修改之后的最高成绩进行打印证书。这样就是对于实现数据新增和修改的灵活处理。
控制器这边的代码思路就基本介绍完了,现在就到页面这边看一下JS的部分。
把当前登录用户的ID获取到,然后就进行判断,声明一个data的返回值,对于学生和教师的编号进行判断,设计一个标准,如果返回的data值大于0的话,则当前就是学生用户。之后就根据填写好的学生账号查询证书信息,就把这些数据绑定之后给后面证书打印方法进行调用。同样的方式也判断教师信息(不重复截图,代码样式一样,把学生信息修改教师信息就行。)
先把传过来的学生编号或者教师编号保存新的变量作为证书的编号。因为我们是根据用户ID查询得到的成绩信息,所以会出现三种情况,第一就是用户没通过考试,找不到对应的成绩信息;第二就是用户参加考试了,但是成绩不及格,无法打印证书;第三就是有对应的成绩,并且合格。现在就是判断用户是否有对应的合格成绩
对于成绩高低的判断,有两种情况,第一如果用户没有证书,则就进行新增;第二用户之前已经打印一次证书,而现在再次打印的时候成绩高于第一次的,就对证书里面的成绩进行修改,
之后就绑定证书数据把刚开始的data返回值在这里调用,之后就找到图片路径,生成图片就行了。
下面就来看一下效果
登录学生的账号,然后就进行证书打印。
这位学生在数据库里面的成绩信息是合格的,所以就能够正常的打印证书。
我们换一个教师的账号登录进去试试
对于教师来说,这些考试一般都是不参加的,所以老师自然而然就没有对应的成绩。所以是没有成绩是不能打印证书。
证书打印的内容就介绍到这里。