一,基于Echart实现信息图表化
一.员工职位统计实现:
1.数据来源:
在Emp实体类中,通过job字段表示员工职位,其值为数字(1:班主任,2:讲师,3:学工主管,4:教研主管,5:咨询师)
2.数据库查询:
在EmpMapper.xml中定义了countEmpJobData查询语句
使用CASE语句将数字职位转换为中文描述,并按职位分组统计数量
查询结果包含两个字段:pos(职位名称)和num(该职位员工数)
3.服务层处理:
ReportServiceImpl调用Mapper获取统计数据
将结果分为职位列表(jobList)和对应的数量列表(dataList)
封装成JobOption对象返回
4.接口提供:
通过ReportController的/report/empJobData接口对外提供服务
二.员工性别统计实现流程
1.前端请求: 前端通过调用 ReportController 的 /report/gender 接口获取性别统计数据
2.Controller层: ReportController 调用 ReportService 的 getEmpGenderData() 方法获取数据
3.Service层: ReportServiceImpl 实现类调用 EmpMapper 的 countEmpGenderData() 方法查询数据库
4.Mapper层: 通过 MyBatis 的 XML 映射文件执行 SQL 查询
5.数据库查询: 使用 SQL 语句对员工表按性别分组统计
核心SQL实现
在 EmpMapper.xml 文件中,定义了如下查询语句:
1 | <select id="countEmpGenderData" resultType="java.util.Map"> |
该SQL语句的作用:
使用 if(gender=1,’男性员工’,’女性员工’) 将数字性别转换为中文描述
按照性别字段进行分组统计 (group by gender)
返回结果包含两列:name(性别描述) 和 value(对应人数)
数据结构
返回的数据是一个 List<Map<String, Object>> 结构,每个 Map 包含:
name: 性别描述(如”男性员工”或”女性员工”)
value: 对应性别的员工数量
这种实现方式简洁高效,直接在数据库层面完成统计计算,减轻了应用层的处理负担。
二,登录功能
- 整体流程
登录功能采用前后端分离的方式实现,前端通过POST请求发送用户凭据,后端验证通过后返回用户信息和token。 - 核心组件
控制器层 (LoginController)
路径: /login
方法: POST
—处理逻辑:
接收前端传递的用户信息(Emp对象,包含username和password)
调用服务层进行验证
根据验证结果返回成功或失败信息
服务层 (EmpService/EmpServiceImpl)
核心方法: login(Emp emp)
—实现逻辑:
调用数据访问层查询匹配用户名和密码的员工
如果查询到用户,创建并返回LogInfo对象(包含id、name、username、token)
如果未查询到用户,返回null
数据访问层 (EmpMapper)
使用MyBatis的@Select注解直接查询数据库
SQL语句: select id,username,name from emp where username=#{username} and password=#{password} - 数据传输对象
输入: Emp对象(包含username和password字段)
输出: LogInfo对象(包含用户基本信息和token)
评论区
欢迎你留下宝贵的意见,昵称输入QQ号会显示QQ头像哦~