软件架构主要用于指导系统开发设计,是构建软件系统的基础,软件架构实现了对系统的结构分层,将系统模块化开发,便于系统开发和管理,降低系统开发成本,便于后期维护。
下图是运动会管理系统的项目包结构,系统的后台代码主要放置在src文件夹中,各个文件夹的相关说明请看表5-1项目结构说明表。
图5-1项目包结构

| 包名(结构层次) | 说明 |
| business.basic | 数据连接、访问,管理数据库连接类和访问基类 |
| business.dao | 业务逻辑设计层,管理业务逻辑设计接口 |
| business.impl | 业务逻辑实现层,管理业务逻辑设计的实现类 |
| business.factory | 业务逻辑的工厂层,管理业务逻辑的组装工厂类 |
| controller.service | 业务逻辑控制层,管理用于与页面进行交互的控制类 |
| model | 实体层,管理表实体类和视图实体类 |
| servlet.filter | 网站过滤器包,管理网站过滤器类 |
| util | 工具类包,管理系统中的工具类 |
| servlet.common | 公共类包,管理公共类 |
系统业务接口是对系统业务逻辑进行方法定义的接口,接口根据实际业务逻辑需要来进行方法的定义,实现类则是对接口的方法进行重写和具体实现[[1]]。
表5-2接口设计与说明
| 接口名称 | 接口说明 | 需要实现的方法 | 方法说明 |
| AdminRoleDAO | 管理员用户角色业务接口 | getaAdminRoleList() | 分页获取用户角色列表 |
| delAdminRole() | 删除用户角色 | ||
| addAdminRole() | 添加用户角色 | ||
| edlAdminRole() | 编辑用户角色 | ||
| AdminUserDAO | 管理员用户业务接口 | add() | 添加管理员用户 |
| udpate() | 编辑管理员用户 | ||
| delete() | 删除管理员用户 | ||
| adminlogin() | 管理员用户的登录 | ||
| selbypage() | 分页获取管理员信息 | ||
| selbyid() | 根据账号获取管理员用户 | ||
| NewsDAO | 公告业务处理接口 | addnews() | 添加公告 |
| getAllNewsNoContent() | 获取所有公告 | ||
| deleteNewsById() | 根据主键删除公告 | ||
| RoleSysModelDAO | 角色权限业务接口 | addRoleModel() | 添加角色权限 |
| updataRoleModel() | 更新角色权限 | ||
| SignUpDAO | 比赛报名业务接口 | insert() | 添加单个比赛报名 |
| insertList() | 批量添加比赛报名 | ||
| update() | 编辑比赛报名 | ||
| delete() | 删除比赛报名 | ||
| SportInfoDAO | 运动会信息配置业务接口 | insert() | 添加运动会 |
| update() | 编辑运动会 | ||
| delete() | 删除运动会 | ||
| getSportList() | 分页获取运动会信息 | ||
| getSportCount() | 根据查询条件获取运动会数量 | ||
| UserDAO | 普通用户业务接口 | insert() | 添加用户 |
| update() | 编辑用户 | ||
| delete() | 删除用户 |
- 管理员用户角色业务接口类:基于管理员用户角色操作的接口类,包含用户角色增、删、查、改等,以及将用户角色和系统菜单添加到角色权限表的操作。
- 管理员用户业务接口类:基于管理员用户操作的接口类,包含了对管理员用户的添加、编辑、删除等,同时为管理员用户分配用户角色。
- 公告业务接口类:基于公告操作的业务接口类,包括对公告的添加、修改、发布等。
- 角色权限业务接口类:基于角色权限分配的业务接口,实现管理员为角色动态分配权限。
- 比赛报名业务接口类:基于实现比赛报名的业务接口,实现运动会比赛报名,以及后台管理员对比赛报名的管理等方法。
- 运动会基本信息配置业务接口类:基于运动会基本信息配置的业务接口。包含运动会时间的配置,添加、编辑、删除运动会等。
- 普通用户业务接口类:基于普通用户操作的业务接口。实现对普通用户的管理和信息查询。
系统业务接口实现类如下表所示,表中各接口实现的方法只举例部分。
表5-3业务接口实现类
| 接口实现类名称 | 接口实现类说明 | 实现的方法 | 方法说明 |
| AdminRoleDAOImpl | 管理员用户角色业务接口实现类 | delAdminRole() | 删除用户角色 |
| addAdminRole() | 添加用户角色 | ||
| edlAdminRole() | 编辑用户角色 | ||
| AdminUserDAOImpl | 管理员用户业务接口实现类 | add() | 添加管理员用户 |
| udpate() | 编辑管理员用户 | ||
| delete() | 删除管理员用户 | ||
| adminlogin() | 管理员用户的登录 | ||
| selbypage() | 分页获取管理员信息 | ||
| selbyid() | 根据账号获取管理员用户 | ||
| NewsDAOImpl | 公告业务接口实现类 | addnews() | 添加公告 |
| getAllNewsNoContent() | 获取所有公告 | ||
| deleteNewsById() | 根据主键删除公告 |
系统开发使用了SpringMVC框架,通过定义控制类请求接口,前台使用Ajax请求接口并传递参数,后台控制类接收并处理。
下面列举UserController(用户处理控制类)控制类
表5-4网页控制请求接口设计
| 类名 | 说明 | 需要传入的参数 | URL请求 |
| getUserList | 按查询条件分页获取用户 | Operation,page,limit | user/getuser |
| addUser | 添加用户信息 | usrid,username,pwd,claid,usertype | user/adduser |
| delUser | 删除用户信息 | userid | user/deluser |
表5-5请求接口数据格式设计
| 方法及说明 | 参数 | 返回值 | 案例 |
| Adminlogin (管理员用户登录) | userid 账号 pwd 密码 | 成功: 返回 {code:0,msg:登录成功} 失败:返回 {code:1,msg:登录失败} 失败原因:账号或密码不正确 | http://localhost:8080/GMS/admin/adminlogin |
| addadminuser (添加管理员用户) | usesrid 账号 realname 真实姓名 pwd 密码 mobile 联系方式 roleid 角色编号 | 成功: 返回 {code:0,msg:添加成功} 失败:返回 {code:1,msg:添加失败}
| http://localhost:8080/GMS/admin/addadminuser |
| logoutsystem (管理员用户退出系统) |
| 成功: 返回 {code:0,msg:退出成功} 失败:返回 {code:1,msg:退出失败} | http://localhost:8080/GMS/admin/logoutsystem |
| deladminuser (删除管理员用户) | userid 账号 | 成功: 返回 {code:0,msg:删除成功} 失败:返回 {code:1,msg:删除失败} | http://localhost:8080/GMS/admin/deladminuser |
图5-2系统数据库结构设计图

- T_User 公众网站用户表
Userid为用户账号,并作为主键约束。
表5-6前端网站用户表
| 序号 | 字段名 | 数据类型 | 主键 | 非空 | 描述 |
| 1 | userid | VARCHAR(50) | 是 | 是 | 账号 |
| 2 | username | VARCHAR(50) | 否 | 是 | 用户名 |
| 3 | pwd | VARCHAR(50) | 否 | 否 | 密码 |
| 4 | alreadynum | Int | 否 | 否 | 已报名项目数 |
| 5 | sex | VARCHAR(2) | 否 | 否 | 性别 |
| 6 | roleid | int | 否 | 否 | 角色id |
| 7 | userregion | int | 否 | 否 | 班级id/学院id |
- T_Role 角色表
roleid为主键约束
表5-7角色表
| 序号 | 字段名 | 数据类型 | 主键 | 非空 | 描述 |
| 1 | roleid | int | 是 | 是 | 角色编号 |
| 2 | rolename | VARCHAR(100) | 否 | 是 | 角色名称 |
- T_Project 比赛项目表
Pid为主键约束
表5-8比赛项目表
| 序号 | 字段名 | 数据类型 | 主键 | 非空 | 描述 |
| 1 | pid | int | 是 | 是 | 项目编号 |
| 2 | pname | VARCHAR(100) | 否 | 是 | 项目名称 |
| 3 | ptypeid | int | 否 | 是 | 项目类型编号 |
- T_SportInfo 运动会配置表
sportid为主键约束
表5-10运动会信息表
| 序号 | 字段名 | 数据类型 | 主键 | 非空 | 描述 |
| 1 | pinfoid | int | 是 | 是 | 项目信息编号 |
| 2 | sprotid | int | 否 | 是 | 运动会编号 |
| 3 | pwd | VARCHAR(50) | 否 | 否 | 密码 |
| 4 | alreadynum | Int | 否 | 否 | 已报名项目数 |
| 5 | userregion | int | 否 | 否 | 班级id/学院id |
- T_ProjectInfo运动会项目表
pinfoid为主键约束
表5- 9比赛项目信息表
| 序号 | 字段名 | 数据类型 | 主键 | 非空 | 描述 |
| 1 | pinfoid | int | 是 | 是 | 项目信息编号 |
| 2 | sprotid | int | 否 | 是 | 运动会编号 |
| 3 | pwd | VARCHAR(50) | 否 | 否 | 密码 |
| 4 | alreadynum | Int | 否 | 否 | 已报名项目数 |
| 5 | userregion | int | 否 | 否 | 班级id/学院id |
- T_SignUp 比赛报名表
sid为主键约束
表5-10比赛报名表
| 序号 | 字段名 | 数据类型 | 主键 | 非空 | 描述 |
| 1 | sid | int | 是 | 是 | 比赛报名编号 |
| 2 | userid | VARCHAR(50) | 否 | 是 | 账号 |
| 3 | proinfoid | int | 否 | 是 | 项目信息编号 |
- T_AdminUser管理端用户表
userid为主键约束
表5-11管理端用户表
| 序号 | 字段名 | 数据类型 | 主键 | 非空 | 描述 |
| 1 | userid | VARCHAR(50) | 是 | 是 | 账号 |
| 2 | realname | VARCHAR(50) | 否 | 是 | 用户名 |
| 3 | pwd | VARCHAR(50) | 否 | 否 | 密码 |
| 4 | roleid | Int | 否 | 是 | 角色编号 |
| 5 | userstatus | int | 否 | 否 | 用户状态 |
| 6 | mobile | Char | 否 | 是 | 联系电话 |
| 7 | Createtime | Datetime | 否 | 是 | 创建时间 |
| 8 | Lastlogindate | Datetime | 否 | 否 | 最后登录时间 |
- T_AdminRole 管理端角色表
roleid为主键约束
表5-12管理端角色表
| 序号 | 字段名 | 数据类型 | 主键 | 非空 | 描述 |
| 1 | id | int | 是 | 是 | 管理员角色编号 |
| 2 | name | NVARCHAR(30) | 否 | 是 | 角色名称 |
| 3 | description | NVARCHAR(255) | 否 | 是 | 角色描述 |
| 4 | Deepth | Int | 否 | 否 | 跟节点 |
| 5 | Parentid | Int | 否 | 否 | 父节点编号 |
- V_User 用户信息视图
查询用户信息
表5-13用户信息视图
| 序号 | 字段名 | 描述 |
| 1 | userid | 账号 |
| 2 | pwd | 密码 |
| 3 | username | 用户名 |
| 4 | roleid | 角色编号 |
| 5 | rolename | 角色名称 |
| 6 | claid | 班级编号 |
| 7 | claname | 班级名称 |
| 8 | gradename | 年级名称 |
| 9 | majid | 专业编号 |
| 10 | majname | 专业名称 |
| 11 | colid | 学院编号 |
| 12 | colname | 学院名称 |
- V_AdminUser 管理员用户视图
查询管理员用户信息
表5-14管理员用户视图
| 序号 | 字段名 | 描述 |
| 1 | userid | 账号 |
| 2 | mobile | 联系电话 |
| 3 | pwd | 密码 |
| 4 | userstatus | 用户状态 |
| 5 | realname | 真实姓名 |
| 6 | createtime | 创建时间 |
| 7 | loginstatus | 登录状态 |
| 8 | lastlogindate | 登录时间 |
| 9 | roleid | 角色编号 |
| 10 | rolename | 角色名称 |
| 11 | description | 角色描述 |
- V_SignUp 比赛报名视图
查询用户比赛报名信息
表5-15比赛报名视图
| 序号 | 字段名 | 描述 |
| 1 | sid | 比赛报名编号 |
| 2 | userid | 账号 |
| 3 | proinfoid | 项目信息编号 |
| 4 | username | 用户名 |
| 5 | roleid | 角色编号 |
| 6 | rolename | 角色名称 |
| 7 | claid | 班级编号 |
| 8 | claname | 班级名称 |
| 9 | gradename | 年级名称 |
| 10 | majid | 专业编号 |
| 11 | majname | 专业名称 |
| 12 | colid | 学院编号 |
| 13 | colname | 学院名称 |
| 14 | sportid | 运动会编号 |
| 15 | pid | 项目编号 |
| 16 | nownum | 当前报名人数 |
| 17 | maxnum | 项目人数限制 |
| 18 | pname | 项目名称 |
| 19 | ptypeid | 项目类型编号 |
| 20 | ptypename | 项目类型名称 |
| 21 | Sportname | 运动会名称 |
| 22 | sportstart | 运动会开始时间 |
| 23 | sportend | 运动会结束时间 |
| 24 | enrollstart | 比赛报名开始时间 |
| 25 | enrollend | 比赛报名结束时间 |
- up_addAdminRole 添加管理员角色存储过程
- 依赖表:角色权限表,菜单表
- 作用:添加管理员用户角色,若角色添加成功,则在角色权限表中添加用户角色和菜单编号作为权限管理
- 返回:返回1代表成功,0代表失败
- up_deleteCollege 删除学院的存储过程
- 依赖表:专业表、班级表
- 作用:删除学院,如果学院编号有外键引用,则删除外键对应的班级信息和专业信息
- 返回:返回1代表成功,0代表失败
[1] 陈学海. 基于语义网关的离散制造执行系统可重构体系与关键技术研究[D]. 重庆大学, 2014
本文详细介绍了运动会管理系统的架构设计,涵盖软件架构、业务接口、数据库结构和网页控制请求接口等内容,展示了系统开发的全面思路。
392

被折叠的 条评论
为什么被折叠?



