本系统具体使用的技术是:后端使用SpringBoot+Mybatis,前端使用了Thymeleaf框架,数据库使用的是MySql 8.0。开发工具使用的是IDEA。
本系统前端是使用了前辈的管理系统模板,具体的系统模块功能如下图所示:
一、系统首页图表展示借用了ECharts平台,效果图及具体代码如下:
业务流程描述:用户登录成功进入系统的首页就能够看到这个物资数量的图表;实现方案是:监听登录事件,登录成功跳转页面,在页面启动过程中发送Ajax请求向后台请求物资的信息,Controller接收后继续调用业务逻辑层方法,业务逻辑层向Mapper请求数据,并返回给Controller,然后返回至页面,通过ECharts框架渲染成图表。
数据持久层(Mapper):主要是操作物资的数据库表,包括查询出各种物资的库存数量,并将结果集封装好,部分代码如下:
<resultMap id="CategoryMap" type="Category">
<id property="id" column="id"></id>
<result property="name" column="cname"></result>
<result property="addDate" column="addDate"></result>
<result property="adminId" column="adminId"></result>
</resultMap>
<resultMap id="MaterialMap" type="Material">
<id property="id" column="id"></id>
<result property="name" column="name"></result>
<result property="num" column="num"></result>
<result property="cost" column="cost"></result>
<result property="price" column="price"></result>
<result property="notes" column="notes"></result>
<result property="price" column="price"></result>
<result property="detail" column="detail"></result>
<result property="imageUrl" column="image_url"></result>
<result property="status" column="status"></result>
<collection property="category" resultMap="CategoryMap"></collection>
</resultMap>
<select id="findAllMaterial" resultMap="MaterialMap">
select m.id,m.name,m.num,m.cost,m.price,m.notes,m.detail,m.image_url,m.status,c.id,c.name cname,c.addDate,c.adminId
from material m,category c
where m.categoryId=c.id and m.status=1
</select>
业务逻辑层(ServiceImpl):对物资查询的相关业务进行处理,包括来自数据持久层的业务和来自Controller层的业务,部分代码如下:
@Override
public List<Material> findAllMaterialCharts() {
return materialMapper.findAllMaterial();
}
控制层(Controller):负责接收参数、调用相关业务、封装数据等功能,部分代码如下: