1 课程发布 1.1 需求分析
课程发布后将生成正式的课程详情页面,课程发布后用户即可浏览课程详情页面,并开始课程的学习。
课程发布生成课程详情页面的流程与课程预览业务流程相同,如下:
1、用户进入教学管理中心,进入某个课程的管理界面
2、点击课程发布,前端请求到课程管理服务
3、课程管理服务远程调用CMS生成课程发布页面,CMS将课程详情页面发布到服务器
4、课程管理服务修改课程发布状态为 “已发布”,并向前端返回发布成功
5、用户在教学管理中心点击“课程详情页面”链接,查看课程详情页面内容

1.2 CMS一键发布接口
1.2.1 需求分析
根据需求分析内容,需要在cms服务增加页面发布接口供课程管理服务调用,此接口的功能如下: 1、接收课程管理服务发布的页面信息
2、将页面信息添加到 数据库(mongodb) 3、对页面信息进行静态化
4、将页面信息发布到服务器 1.2.3 接口定义
1、创建响应结果类型 页面发布成功cms返回页面的url

页面Url= cmsSite.siteDomain+cmsSite.siteWebPath+ cmsPage.pageWebPath + cmsPage.pageName
[mw_shl_code=applescript,true]@Data
@NoArgsConstructor//无参构造器注解 public class CmsPostPageResult extends ResponseResult  {   String pageUrl;   public CmsPostPageResult(ResultCode resultCode,String pageUrl) {  super(resultCode);      this.pageUrl = pageUrl;  } } [/mw_shl_code]
2、在api工程定义页面发布接口[mw_shl_code=applescript,true]@ApiOperation("一键发布页面")
public CmsPostPageResult postPageQuick(CmsPage cmsPage); [/mw_shl_code]
2.2.4 Dao
1、站点dao
接口中需要获取站点的信息(站点域名、站点访问路径等)[mw_shl_code=applescript,true]public interface CmsSiteRepository extends MongoRepository<CmsSite,String> {
}[/mw_shl_code]
2.2.5 Service
1、添加页面,如果已存在则更新页面[mw_shl_code=applescript,true]//添加页面,如果已存在则更新页面
public CmsPageResult save(CmsPage cmsPage){ //校验页面是否存在,根据页面名称、站点Id、页面webpath查询   CmsPage cmsPage1 =  cmsPageRepository.findByPageNameAndSiteIdAndPageWebPath(cmsPage.getPageName(),  cmsPage.getSiteId(), cmsPage.getPageWebPath());  if(cmsPage1 !=null){   //更新      return this.update(cmsPage1.getPageId(),cmsPage);  }else{      //添加     return this.add(cmsPage);  } }[/mw_shl_code]
2、页面发布方法[mw_shl_code=applescript,true]//一键发布页面
public CmsPostPageResult postPageQuick(CmsPage cmsPage){    //添加页面     CmsPageResult save = this.save(cmsPage);  if(!save.isSuccess()){    return new CmsPostPageResult(CommonCode.FAIL,null);    }
CmsPage cmsPage1 = save.getCmsPage();   //要布的页面id       String pageId = cmsPage1.getPageId();  //发布页面     ResponseResult responseResult = this.postPage(pageId);  if(!responseResult.isSuccess()){     return new CmsPostPageResult(CommonCode.FAIL,null);    }       //得到页面的url   //页面url=站点域名+站点webpath+页面webpath+页面名称   //站点id     String siteId = cmsPage1.getSiteId();     //查询站点信息     CmsSite cmsSite = findCmsSiteById(siteId);    //站点域名       String siteDomain = cmsSite.getSiteDomain();    //站点web路径      String siteWebPath = cmsSite.getSiteWebPath();   //页面web路径      String pageWebPath = cmsPage1.getPageWebPath(); //页面名称      String pageName = cmsPage1.getPageName();     //页面的web访问地址    String pageUrl = siteDomain+siteWebPath+pageWebPath+pageName;     return new CmsPostPageResult(CommonCode.SUCCESS,pageUrl);  }[/mw_shl_code]
[mw_shl_code=applescript,true]//根据id查询站点信息  public CmsSite findCmsSiteById(String siteId){     Optional<CmsSite> optional = cmsSiteRepository.findById(siteId);  if(optional.isPresent()){     return optional.get();       }       return null;  } [/mw_shl_code]
2.2.6 Controller
[mw_shl_code=applescript,true]@Override
@PostMapping("/postPageQuick")
public CmsPostPageResult postPageQuick(@RequestBody CmsPage cmsPage) {   return pageService.postPageQuick(cmsPage); }[/mw_shl_code]

转载于:https://blog.51cto.com/13517854/2390864

Java的新项目学成在线笔记-day10(一)相关推荐

  1. Java的新项目学成在线笔记-day10(三)

    1.4 测试CMS一键发布接口 1.4.1 配置虚拟主机 在nginx配置课程详情页面的虚拟主机,实现访问:www.xuecheng.com/course/detail/.....html. #静态资 ...

  2. Java的新项目学成在线笔记-day10(二)

    1.3 课程发布接口 1.3.1 Api接口 此Api接口由课程管理提供,由课程管理前端调用此Api接口,实现课程发布. 在api工程下课程管理包下定义接口: [mw_shl_code=applesc ...

  3. Java的新项目学成在线笔记-day13(九)

    6.2.2 创建媒资服务工程 媒资管理的相关功能单独在媒资服务中开发,下边创建媒资服务工程(xc-service-manage-media). 媒资服务的配置与cms类似,导入 "资料&qu ...

  4. Java的新项目学成在线笔记-day12(九)

    3.1.4 搜索页面 创建搜索页面如下: 页面文件参考:"资料"-->"search"-->index_1.vue,重要代码如下: nuxt.js支 ...

  5. Java的新项目学成在线笔记-day14(四)

    1.2.3.5 视频处理生成m3u8 下边是完整的视频处理任务类代码,包括了生成m3u8及生成mp4的代码. [mw_shl_code=applescript,true]@Component publ ...

  6. Java的新项目学成在线笔记-day7(一)

    1.1需求分析 课程添加完成后可通过我的课程进入课程修改页面,此页面显示我的课程列表,如下图所示,可分页查询. 注意:由于课程图片服务器没有搭建,这里在测试时图片暂时无法显示. 上边的查询要实现分页. ...

  7. Java的新项目学成在线笔记-day13(八)

    6 媒资管理 前边章节完成在线视频播放,如何实现点击课程计划播放视频呢,课程视频如何管理呢? 本节开始将对课程视频进行管理. 6.1需求分析 媒资管理系统是每个在线教育平台所必须具备的,百度百科对它的 ...

  8. Java的新项目学成在线笔记-day7(二)

    1.3 前端页面说明 我的课程列表使用element 的card组件,如下: 页面布局代码如下: <template> <section> <el‐row >< ...

  9. Java的新项目学成在线笔记-day8(三)

    1.1.3.1 需求 上传图片界面如下图: 点击"加号"上传图片,图片上传成功自动显示:点击"删除"将删除图片. 1.1.3.2 页面 使用Element-UI ...

最新文章

  1. 持续集成工具 Jetbrains TeamCity 简介
  2. opencv 分割边界_电影观众:场景边界分割
  3. DelphiX教程系列 3 - 动画 part 1
  4. Linux学习笔记---使用MfgTool工具烧写自己的系统(二)
  5. jQuery 调用后台方法
  6. 微信小程序获取手机号和OPENID
  7. Power Apps 中调用 Automate 工作流
  8. 走到人生边上 - 笔记
  9. GRU 详解+实战(生成汪峰感觉的歌词)
  10. android oreo_您的手机何时将获得Android Oreo?
  11. 产品能力提升|互联网产品·视觉设计
  12. chrome浏览器当鼠标碰到超链接的时候会窗口会抖动
  13. fri什么意思_fri(fri是什么意思中文翻译)
  14. RxJava 与 Retrofit 结合的最佳实践
  15. IVY throws IOException Resetting to invalid mark原因及解决办法
  16. simon手册翻译_part1
  17. 远程访问堡垒机_如何远程控制堡垒机
  18. Windows平台监控Android App应用
  19. 装机员U盘启动PE制作工具V3.0(无广告无捆绑)
  20. Android手机流量分析工具介绍

热门文章

  1. Leaflet中原生方式实现测量面积
  2. Node中自启动工具supervisor的使用
  3. Linux-权限管理相关操作
  4. 前端怎样在浏览器上调整样式找到style来源
  5. select设置默认文字,不出现在下拉框中
  6. Linux上怎样实现文件夹重命名
  7. Vue的表单组件之复选框
  8. 3、Docker容器操作
  9. oracle精度说明符1~38_Oracle错误代码案例总结及解决方案
  10. 神策数据丨IPTV/OTT 精细化运营体系构建指南