内容管理模块
需求分析
需求分析就是要搞清楚问题域即用户的需求,从而确定软件要为用户解决什么问题,实现哪些业务功能,满足什么样的性能要求
- 首先确认用户需求: 产品人员根据用户需求会绘制界面原型,通过界面原型再和用户确认需求
- 确认关键问题: 比如教学机构的老师想要将课程发布到网上,根据这个用户需求我们需要进行扩展分析,课程发布需要发布哪些信息,如果发布了不良信息怎么办
- 梳理业务流程: 业务流程是由一个或多个用户参与完成为了完成一个目标所进行的一系列的业务操作,比如内容管理模块的核心业务流程是课程发布
- 数据建模: 根据分析的关键问题将其相关的信息全部建模,比如根据发布课程的用户需求可创建
课程基本信息表、课程营销信息表、课程发布记录表
等 - 编写需求规格说明书: 需求分析阶段的成果物是需求分析规格说明书,针对每一个问题编写需求用例
添加课程
的需求用例,包括功能名称、功能描述、参与者、基本事件流程、可选事件流、数据描述、前置条件、后置条件等内容
项目 | 添加课程 |
---|---|
功能名称 | 添加课程 |
功能描述 | 添加课程基本信息 |
参与者 | 教学机构管理员 |
前置条件 | 教学机构管理只允许向自己机构添加课程 拥有添加课程的权限 |
基本事件流程 | 1、登录教学机构平台 2、进入课程列表页面 3、点击添加课程按钮进入添加课程界面 4、填写课程基本信息 5、点击提交 |
可选事件流程 | 成功:提示添加成功,跳转到课程营销信息添加界面 失败:提示具体的失败信息,用户根据失败信息进行修改 |
数据描述 | 课程基本信息:课程id、课程名称、课程介绍、课程大分类、课程小分类、课程等级、课程图片、所属机构、课程创建时间、课程修改时间、课程状态 |
后置条件 | 向课程基本信息插入一条记录 |
补充说明 |
模块介绍
内容管理系统简称CMS(content management system)
是一种位于WEB前端和后端办公系统或流程(内容创作、编辑)之间的软件系统
- 内容的创作人员、编辑人员、发布人员使用内容管理系统来提交、修改、审批、发布内容(包括文件、表格、图片、视频、数据库中的数据)
本项目作为一个大型的在线教育平台,其内容管理模块主要对课程及相关内容进行管理
- 包括课程的基本信息、课程图片、课程师资信息、课程的授课计划、课程视频、课程文档等内容的管理
业务流程
教学机构人员
的业务流程如下
- 登录教学机构
- 维护课程信息,添加一门课程需要编辑课程的基本信息、上传课程图片、课程营销信息、课程计划、上传课程视频、课程师资信息等内容
- 课程信息编辑完成,通过课程预览确认无误后提交课程审核
- 待运营人员对课程审核通过后方可进行课程发布
运营人员
的业务流程如下
- 查询待审核的课程信息
- 审核课程信息
- 提交审核结果
数据模型
内容管理模块的基础表涉及9张,使用PowerDesigner
工具打开学成在线项目.sws
前后端交互流程
前后端交互的流程
: 前端与后端开发人员之间主要依据接口进行开发
- 前端通过Http协议请求后端服务提供的接口
- 后端服务的控制层Controller接收前端的请求
- Contorller层调用Service层进行业务处理
- Service层调用Dao持久层对数据持久化
PO,DTO,VO模型类
DTO(Data Transfer Object)数据传输对象
: 用于接口层向业务层
之间传输数据
PO(Persistent Object)持久化对象
: 用于业务层与持久层
之间传输数据,一个PO类对应数据库中的一张表,每张表对应一个Mapper接口和Mapper的xml映射文件
VO对象
: 前端与接口层
之间传输数据,当用户使用手机端和PC端查询课程信息时查询条件和查询结果
可能不同
手机查询
: 根据课程状态查询,查询结果只有课程名称和课程状态PC查询
: 可以根据课程名称、课程状态、课程审核状态等条件查询,查询结果也比手机查询结果内容多- 如果前端接口没有多样性且比较固定,此时可以取消VO只用DTO即可
Service业务层尽量提供一个业务接口,即使两个前端接口接收的数据和响应的数据
不一样
- 查询条件不同: 此时可以设置多个VO对象
- 查询结果不同: Service只负责提供一个最全的查询结果,由Controller层进行数据整合
创建模块工程
模块工程关系图
第一步: 创建内容管理模块的父工程xuecheng-plus-content
,该工程负责聚合api,service,model
三个子工程
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><!--内容管理模块的父工程是xuecheng-plus-parent--><parent><groupId>com.xuecheng</groupId><artifactId>xuecheng-plus-parent</artifactId><version>0.0.1-SNAPSHOT</version><relativePath>../xuecheng-plus-parent</relativePath></parent><artifactId>xuecheng-plus-content</artifactId><name>xuecheng-plus-con tent</name><description>xuecheng-plus-content</description><packaging>pom</packaging><!--内容管理父工程的主要职责是聚合内容管理接口和内容管理接口实现两个工程--><modules><module>xuecheng-plus-content-api</module><module>xuecheng-plus-content-model</module><module>xuecheng-plus-content-service</module></modules>
</project>
第二步: 创建xuecheng-plus-content-api
接口工程,为前端提供接口
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><!--接口工程的父工程是内容管理模块工程--><parent><groupId>com.xuecheng</groupId><artifactId>xuecheng-plus-content</artifactId><version>0.0.1-SNAPSHOT</version></parent><artifactId>xuecheng-plus-content-api</artifactId><dependencies><dependency><!--依赖service工程,由于service依赖model所以也可以间接依赖model--><groupId>com.xuecheng</groupId><artifactId>xuecheng-plus-content-service</artifactId><version>0.0.1-SNAPSHOT</version></dependency></dependencies>
</project>
第三步: 创建xuecheng-plus-content-service
业务工程,为接口工程提供业务支撑
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.xuecheng</groupId><artifactId>xuecheng-plus-content</artifactId><version>0.0.1-SNAPSHOT</version></parent><artifactId>xuecheng-plus-content-service</artifactId><!--依赖model工程--><dependencies><dependency><groupId>com.xuecheng</groupId><artifactId>xuecheng-plus-content-model</artifactId><version>0.0.1-SNAPSHOT</version></dependency></dependencies>
</project>
第四步: 创建xuecheng-plus-content-model
数据模型工程,存储数据模型类
和数据传输类型
等
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.xuecheng</groupId><artifactId>xuecheng-plus-content</artifactId><version>0.0.1-SNAPSHOT</version></parent><artifactId>xuecheng-plus-content-model</artifactId><dependencies><!--依赖base工程--><dependency><groupId>com.xuecheng</groupId><artifactId>xuecheng-plus-base</artifactId><version>0.0.1-SNAPSHOT</version></dependency></dependencies>
</project>