黑马程序员技术交流社区

标题: 【郑州校区】Java的新项目学成在线笔记-day10(二) [打印本页]

作者: 谷粒姐姐    时间: 2019-4-26 11:04
标题: 【郑州校区】Java的新项目学成在线笔记-day10(二)
1.3 课程发布接口
1.3.1 Api接口
此Api接口由课程管理提供,由课程管理前端调用此Api接口,实现课程发布。 在api工程下课程管理包下定义接口:
[AppleScript] 纯文本查看 复制代码
@ApiOperation("发布课程") 
public CoursePublishResult publish(@PathVariable String id);

1.3.2 创建Feign Client
在课程管理工程创建CMS服务页面发布的Feign Client

[AppleScript] 纯文本查看 复制代码
@FeignClient(value = XcServiceList.XC_SERVICE_MANAGE_CMS) public interface CmsPageClient {  
  //一键发布页面  
   @PostMapping("/cms/page/postPageQuick")   
  public CmsPostPageResult postPageQuick(CmsPage cmsPage); }

1.3.3 Service
1、配置课程发布页面参数 在application.yml中配置

[AppleScript] 纯文本查看 复制代码
course‐publish:
   siteId: 5b30cba5f58b4411fc6cb1e5
  templateId: 5ad9a24d68db5239b8fef199
  previewUrl: http://www.xuecheng.com/cms/preview/  
pageWebPath: /course/detail/  
pagePhysicalPath: /course/detail/  
dataUrlPre: http://localhost:31200/course/courseview/

siteId:站点id templateId:模板id dataurlPre:数据url的前缀
pageWebPath: 页面的web访问路径 pagePhysicalPath:页面的物理存储路径。
  2、Service方法如下

[AppleScript] 纯文本查看 复制代码
 
course‐publish:   siteId: 5b30cba5f58b4411fc6cb1e5
  templateId: 5ad9a24d68db5239b8fef199
  previewUrl: http://www.xuecheng.com/cms/preview/
  pageWebPath: /course/detail/
  pagePhysicalPath: /course/detail/  
dataUrlPre: http://localhost:31200/course/courseview/  
@Value("${course‐publish.dataUrlPre}") private String publish_dataUrlPre; @Value("${course‐publish.pagePhysicalPath}") private String publish_page_physicalpath; @Value("${course‐publish.pageWebPath}") private String publish_page_webpath; @Value("${course‐publish.siteId}") private String publish_siteId;
@Value("${course‐publish.templateId}") private String publish_templateId;
@Value("${course‐publish.previewUrl}") private String previewUrl;
@Autowired CmsPageClient cmsPageClient;   
//课程发布   
  @Transactional  
   public CoursePublishResult publish(String courseId){   
      //课程信息      
   CourseBase one = this.findCourseBaseById(courseId);  
       //发布课程详情页面     
    CmsPostPageResult cmsPostPageResult = publish_page(courseId);   
     if(!cmsPostPageResult.isSuccess()){
            ExceptionCast.cast(CommonCode.FAIL);

[AppleScript] 纯文本查看 复制代码
 }     
    //更新课程状态     
    CourseBase courseBase = saveCoursePubState(courseId);     
    //课程索引...     
    //课程缓存...      
     //页面url  
       String pageUrl = cmsPostPageResult.getPageUrl();   
     return new CoursePublishResult(CommonCode.SUCCESS,pageUrl);   
    }   
  //更新课程发布状态  
   private CourseBase saveCoursePubState(String courseId){   
     CourseBase courseBase = this.findCourseBaseById(courseId);   
     //更新发布状态     
    courseBase.setStatus("202002");   
     CourseBase save = courseBaseRepository.save(courseBase);  
      return save;  
  }   
  //发布课程正式页面
    public CmsPostPageResult publish_page(String courseId){   
     CourseBase one = this.findCourseBaseById(courseId);      
   //发布课程预览页面      
   CmsPage cmsPage = new CmsPage();   
      //站点      
  cmsPage.setSiteId(publish_siteId);//课程预览站点   
     //模板      
   cmsPage.setTemplateId(publish_templateId);   
      //页面名称   
    cmsPage.setPageName(courseId+".html");   
     //页面别名        
cmsPage.setPageAliase(one.getName());   
     //页面访问路径   
     cmsPage.setPageWebPath(publish_page_webpath);  
       //页面存储路径     
    cmsPage.setPagePhysicalPath(publish_page_physicalpath);   
     //数据url      
  cmsPage.setDataUrl(publish_dataUrlPre+courseId);      
   //发布页面   
      CmsPostPageResult cmsPostPageResult = cmsPageClient.postPageQuick(cmsPage);   
     return cmsPostPageResult;   
  }

1.3.4 Controller
[AppleScript] 纯文本查看 复制代码
@Override  
   @PostMapping("/publish/{id}")   
  public CoursePublishResult publish(@PathVariable String id) {   
     return courseService.publish(id);     }







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2