02-学成在线内容管理模块基础环境搭建

内容管理模块

需求分析

需求分析就是要搞清楚问题域即用户的需求,从而确定软件要为用户解决什么问题,实现哪些业务功能,满足什么样的性能要求

  • 首先确认用户需求: 产品人员根据用户需求会绘制界面原型,通过界面原型再和用户确认需求
  • 确认关键问题: 比如教学机构的老师想要将课程发布到网上,根据这个用户需求我们需要进行扩展分析,课程发布需要发布哪些信息,如果发布了不良信息怎么办
  • 梳理业务流程: 业务流程是由一个或多个用户参与完成为了完成一个目标所进行的一系列的业务操作,比如内容管理模块的核心业务流程是课程发布
  • 数据建模: 根据分析的关键问题将其相关的信息全部建模,比如根据发布课程的用户需求可创建课程基本信息表、课程营销信息表、课程发布记录表
  • 编写需求规格说明书: 需求分析阶段的成果物是需求分析规格说明书,针对每一个问题编写需求用例

添加课程的需求用例,包括功能名称、功能描述、参与者、基本事件流程、可选事件流、数据描述、前置条件、后置条件等内容

项目添加课程
功能名称添加课程
功能描述添加课程基本信息
参与者教学机构管理员
前置条件教学机构管理只允许向自己机构添加课程 拥有添加课程的权限
基本事件流程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>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/171637.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

K8S容器持续Terminating无法正常关闭(sider-car容器异常,微服务容器正常)

问题 K8S上出现大量持续terminating的Pod&#xff0c;无法通过常规命令删除。需要编写脚本批量强制删除持续temminating的Pod&#xff1a;contribution-xxxxxxx。 解决 获取terminating状态的pod名称的命令&#xff1a; # 获取media命名空间下&#xff0c;名称带contributi…

全面解析Typhoeus库编写的爬虫程序

Typhoeus是一个Ruby编写的HTTP客户端库&#xff0c;它可以用于编写高性能的HTTP请求。它支持并发请求&#xff0c;可以使用多个爬虫服务器&#xff0c;还可以进行SSL验证。 以下是一个使用Typhoeus库编写的爬虫程序&#xff0c;该程序使用Ruby语言爬取duokan的内容&#xff0c;…

本地跑项目解决跨域问题

跨域问题&#xff1a; 指的是浏览器不能执行其他网站的脚本&#xff0c;它是由浏览器的同源策略造成的&#xff0c;是浏览器对 javascript 施加的安全限制。 同源策略&#xff1a; 是指协议&#xff08;protocol&#xff09;、域名&#xff08;host&#xff09;、端口号&…

PyCharm鼠标控制字体缩放

File->Settings->Keymap 右边搜索栏输入increase(放大)&#xff0c;可以看到下面出现increase Font Size(放大字体尺寸)&#xff0c;双击。 双击后出现几个选项&#xff0c;选择Add Mouse Shortcut,会出现一个页面给录入动作。 按住Ctrl同时鼠标向上滚动&#xff0c;该动…

论文精读 MediaPipe Hands

MediaPipe Hands:On-device Real-time Hand Tracking MediaPipe手势&#xff1a;设备上的实时手势跟踪 论文地址&#xff1a;2006.10214.pdf (arxiv.org) 源码地址&#xff1a;GitHub - vidursatija/BlazePalm: PyTorch 目录 摘要 介绍 架构 BlazePalm Detector Hand L…

jenkins分步式构建环境(agent)

rootjenkins:~# netstat -antp|grep 50000 tcp6 0 0 :::50000 ::&#x1f617; LISTEN 5139/java 1.52 安装Jenkins rootubuntu20:~# dpkg -i jenkins_2.414.3_all.deb 配置各种类型的Agent的关键之处在于启动Agent的方式 ◼ JNLP Agent对应着“通过Java Web启动代理”这种方…

【汇编】计算机的组成

文章目录 前言一、计算机的基本组成1.1 中央处理器&#xff08;CPU&#xff09;1.2 内存指令和数据存储的位置计算机中的存储单元计算机中的总线地址总线数据总线控制总线 1.3 输入设备和输出设备1.4 存储设备 二、计算机工作原理三、计算机的层次结构总结 前言 计算机是现代社…

Jenkins 构建CICD

GitLab GitLab安装 https://gitlab.cn/install/?versionce CentOS 下安装 1. 安装和配置必须的依赖项 在 CentOS 7上&#xff0c;下面的命令也会在系统防火墙中打开 HTTP、HTTPS 和 SSH 访问。这是一个可选步骤&#xff0c;如果您打算仅从本地网络访问极狐GitLab&#xf…

MTK手机平台充电原理

EPT GPIO初始化文件 bsp_gpio_ept_config.c 1 知识点总结 1.1 Official 参考充电电路 Figure 1-1 参考电路 VCHG&#xff1a;USB正极 VCDT&#xff1a;VCHG Charger Detect充电电压检测脚 ISENSE&#xff1a;充电电流检测电阻的正极 BATSNS&#xff1a;充电电流检测电阻的负极 …

振南技术干货集:研发版本乱到“妈不认”? Git!(5)

注解目录 1、关于 Git 1.1Git 今生 (Git 和 Linux 的生父都是 Linus&#xff0c;振南给你讲讲当初关于 Git 的爱恨情愁&#xff0c;其背后其实是开源与闭源两左阵营的明争暗斗。) 1.2Git的爆发 (Git 超越时代的分布式思想。振南再给你讲讲旧金山三个年轻人创办 GitHub&…

合众汽车选用风河Wind River Linux系统

导读合众新能源汽车股份有限公司近日选择了Wind River Linux 用于开发合众智能安全汽车平台。 合众智能安全汽车平台(Hozon Automo-tive Intelligent Security Vehicle Plat-form)是一个面向高性能服务网关及车辆控制调度的硬件与软件框架&#xff0c;将于2024年中开始投入量产…

Smart Link 和 Monitor Link应用

定义 Smart Link常用于双上行链路组网&#xff0c;提高接入的可靠性。 Monitor Link通过监视上行接口&#xff0c;使下行接口同步上行接口状态&#xff0c;起到传递故障信息的作用。 Smart Link&#xff0c;又叫做备份链路。一个Smart Link由两个接口组成&#xff0c;其中一个…