# zust-software-test **Repository Path**: gavin0505/zust-software-test ## Basic Information - **Project Name**: zust-software-test - **Description**: 本小组期末课程设计的后端 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2022-11-10 - **Last Updated**: 2022-12-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 开发事项 ## 1. 模块解释 ### 1.1 zust-software-test 根模块,所有的模块创建都要以此模块作为父模块。 ### 1.2. zust-software-test-web 后端接口模块。负责暴露接口,供外部调用。 ### 1.3. zust-software-test-arrange-lesson 排课管理模块。负责排课管理功能。 ### 1.4. zust-software-test-choose-lesson 选课模块,负责选课管理功能。 ### 1.5. zust-software-test-exam 考务管理模块,负责考务管理功能。 ### 1.6. zust-software-test-score 成绩管理模块,负责成绩管理功能。 ### 1.7. zust-software-test-student-status 学籍管理模块,负责学籍管理功能。 ### 1.8. zust-software-test-teacher 教师管理模块,负责教师管理功能。 ### 1.9. zust-software-test-dao 数据库连接模块,负责上层服务对数据库的调用。 ### 1.10 zust-software-test-common 基本模块,负责相关基本功能。 ## 2. 使用 在本地启动项目之前,先进zust-software-test-web模块下的resources的application.yml把数据库相关信息修改了。 端口号:8085! MySQL8+用的驱动包:com.mysql.cj.jdbc.Driver! MySQL5就把上面的cj去掉。 启动:进入zust-software-test-web模块下的WebApplication,启动它。 ### 2.1 swagger2 #### 2.1.1 接口文档查看 http://localhost:8085/swagger-ui.html #### 2.1.2 使用 在web模块暴露的Controller上添加@Api注解,用于说明该类的作用,例如: ``` @Api(tags = "排课测试接口") public class TestArrangeController {} ``` 在该类下面的方法@ApiOperation注解,用于说明该方法对应的功能,例如: ``` @PostMapping("/delete") @ApiOperation(value = "删除指定用户编号的用户") @ApiImplicitParam(name = "id", value = "用户编号", paramType = "query", dataTypeClass = Integer.class, required = true, example = "1024") public Boolean delete(@RequestParam("id") Integer id) { // 删除用户记录 Boolean success = false; // 返回是否更新成功 return success; } ``` 注意,如果该方法有参数,应添加@ApiImplicitParam注解,如上例,具体用法自行查询。 在POJO类上,使用@ApiModel注解,例如: ``` @ApiModel("用户 VO") public class UserVO { // ... 省略 } ``` 在POJO类的成员变量上,使用@ApiModelProperty注解,例如: ``` @ApiModel("用户 VO") public class UserVO { @ApiModelProperty(value = "用户编号", required = true, example = "1024") private Integer id; @ApiModelProperty(value = "账号", required = true, example = "yudaoyuanma") private String username; } ``` 具体使用时,至少要使用到方法级的文档注解。 ### 2.2 开发事项 - 【强制】每人必须**在自己的分支中开发!** - 【强制】每开发完成一个功能,必须提交一次git,尽管该功能可能只有几行代码。 - 【建议】开发过程中,完成一个功能前,简单测试一下,再提交,确认没什么问题,合并到master,再push。 - 【强制】每个人在自己负责的模块中完成开发。如果遇到需要调用其他人的模块的,则自行协商。 - 【强制】每人完成模块的一项功能后,应在**zust_software-test-web**中的controller包的对应子包创建对应类,负责调用相应的功能,以及定义对外的接口(可参考初始示例)。 - 【建议】有问题,在gitee仓库提issue,供大家解答,以及记录问题。 - 【强制】2022/11/29,在common包下的dto和web包的controller,要使用相关validation注解,保证传入参数的有效性。相关使用方法如下:https://blog.csdn.net/Session_s/article/details/125733377 ### 2.3 开发流程 #### 2.3.1 业务与前端页面定义 根据文档的业务,创建相应的前端界面,并定义相关接口,连接后端。 **注意,已经登录的用户必须要携带token进行请求!** #### 2.3.2 创建后端接口 后端创建对应的接口,对接前端调用。 **注意,需要在暴露的接口进行token认证(@HttpAuthChecker和@HttpRoleChecker,灵活使用。如果遇到问题,提issue,因为是自建的注解,可能某些场景下会有问题)!** #### 2.3.3 后端服务编写 基于2.3.2的接口,进行后端业务逻辑编写。 #### 2.3.4 大致流程图如下 ## 3. 架构 image-20221110211936899 ### 4. 里程碑