Java的新项目学成在线笔记-day9(十四)

5 课程预览功能开发 5.1 需求分析 
课程预览功能将使用cms系统提供的页面预览功能,业务流程如下:
1、用户进入课程管理页面,点击课程预览,请求到课程管理服务 2、课程管理服务远程调用cms添加页面接口向cms添加课程详情页面
3、课程管理服务得到cms返回课程详情页面id,并拼接生成课程预览Url 4、课程管理服务将课程预览Url给前端返回 5、用户在前端页面请求课程预览Url,打开新窗口显示课程详情内容
 
5.2 CMS页面预览测试 

CMS已经提供了页面预览功能,课程预览功能要使用CMS页面预览接口实现,下边通过cms页面预览接口测试课 程预览的效果。
1、向cms_page表插入一条页面记录或者从cms_page找一个页面进行测试。 注意:页面配置一定要正确,需设置正确的模板id和dataUrl。
如下,是一条页面的记录。
 

[AppleScript] 纯文本查看 复制代码

?

01

02

03

04

05

06

07

08

09

10

11

12

{ 

    "_id" : ObjectId("5b3469f794db44269cb2bff1"), 

    "_class" : "com.xuecheng.framework.domain.cms.CmsPage",   

  "siteId" : "5a751fab6abb5044e0d19ea1", 

    "pageName" : "4028e581617f945f01617f9dabc40000.html",

     "pageAliase" : "课程详情页面测试01",  

   "pageWebPath" : "/course/detail/",  

   "pagePhysicalPath" : "/course/detail/",  

   "pageType" : "1",  

   "pageCreateTime" : ISODate("2018‐02‐25T01:37:25.974+0000"),  

   "templateId" : "5b345a6b94db44269cb2bfec",   

  "dataUrl" : "http://localhost:31200/course/courseview/4028e581617f945f01617f9dabc40000" }


2、课程详细页面 使用ssi注意

由于Nginx先请求cms的课程预览功能得到html页面,再解析页面中的ssi标签,这里必须保证cms页面预览返回的 页面的Content-Type为text/html;charset=utf-8 在cms页面预览的controller方法中添加:
 

[AppleScript] 纯文本查看 复制代码

?

1

response.setHeader("Content‐type","text/html;charset=utf‐8");


3、测试 请求:http://www.xuecheng.com/cms/preview/5b3469f794db44269cb2bff1传入页面Id,测试效果如下:

 
5.3 CMS添加页面接口 
cms服务对外提供添加页面接口,实现:如果不存在页面则添加,否则就更新页面信息。
此接口由课程管理服务在课程预览时调用。
5.3.1 Api接口 
 

[AppleScript] 纯文本查看 复制代码

?

1

2

@ApiOperation("保存页面")

  public CmsPageResult save(CmsPage cmsPage);


5.3.2 Service 

[AppleScript] 纯文本查看 复制代码

?

1

2

3

4

5

6

7

8

//添加页面,如果已存在则更新页面  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)

    }  }


5.3.3 Controller 

[AppleScript] 纯文本查看 复制代码

?

1

2

3

4

@Override

@PostMapping("/save") public CmsPageResult save(

@RequestBody CmsPage cmsPage) { 

   return pageService.save(cmsPage); }

猜你喜欢

转载自blog.csdn.net/czbkzmj/article/details/89632585
今日推荐