api接口定义方法
api的微服务里面。CmsPageControllerApi内定义add方法,返回类型是CmsPageResult
CmsPageResult继承了ResponseResult
ResponseResult里面这三项,SUCCESS、SUCCESS_CODE、message
把新增的数据响应给客户端,客户端可能会用
加上swagger的注解
dao
dao里面就不用写了我们直接用springDataMongoDB自带的save方法就可以了。在继承的MongoReposityory即可
Service
新增之前要先校验页面的唯一性
mongoDB数据内,右键cmsPage这个集合,创建索引
站点id、页面名称、页面的路径
右下角 创建这个索引
在dao里面定义根据这是三个字段的查询条件。字段之间用And来拼接。
失败和成功的 返回数据
要注意CmsPageResult的命名空间,
controller内直接调用Service
请求的json数据转换成对象。使用@RequestBody
以上接口开发 完成
最终代码
package com.xuecheng.manage_cms.service; import com.xuecheng.framework.domain.cms.CmsPage; import com.xuecheng.framework.domain.cms.request.QueryPageRequest; import com.xuecheng.framework.domain.cms.response.CmsPageResult; import com.xuecheng.framework.model.response.CommonCode; import com.xuecheng.framework.model.response.QueryResponseResult; import com.xuecheng.framework.model.response.QueryResult; import com.xuecheng.manage_cms.dao.CmsPageRepository; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.*; import org.springframework.stereotype.Service; @Service public class PageService { @Autowired CmsPageRepository cmsPageRepository; public QueryResponseResult findList(int page,int size, QueryPageRequest queryPageRequest) { if(queryPageRequest==null){ queryPageRequest=new QueryPageRequest(); } //自定义查询条件 ExampleMatcher exampleMatcher=ExampleMatcher.matching() .withMatcher("pageAliase",ExampleMatcher.GenericPropertyMatchers.contains()); //条件之对象 CmsPage cmsPage=new CmsPage(); //设置条件值 (站点ID) if(StringUtils.isNotEmpty(queryPageRequest.getSiteId())){ cmsPage.setSiteId(queryPageRequest.getSiteId()); } //设置模板id 作为查询条件 if(StringUtils.isNotEmpty(queryPageRequest.getTemplateId())){ cmsPage.setTemplateId(queryPageRequest.getTemplateId()); } //设置页面别名为查询条件 if(StringUtils.isNotEmpty(queryPageRequest.getPageAliase())){ cmsPage.setPageAliase(queryPageRequest.getPageAliase()); } //定义Exmaple对象 Example<CmsPage> example=Example.of(cmsPage,exampleMatcher); if(page<0){ page=1; } page = page -1; if(size<=0){ size = 10; } Pageable pageable = PageRequest.of(page, size); Page<CmsPage> all = cmsPageRepository.findAll(example,pageable); QueryResult queryResult=new QueryResult(); queryResult.setList(all.getContent());//设置返回的列表数据 queryResult.setTotal(all.getTotalElements());//设置总记录数 QueryResponseResult queryResponseResult=new QueryResponseResult(CommonCode.SUCCESS,queryResult); return queryResponseResult; } public CmsPageResult add(CmsPage cmsPage){ //校验页面名称、站点Id、页面WebPath的唯一性 CmsPage cmsPage1=cmsPageRepository.findByPageNameAndSiteIdAndPageWebPath(cmsPage.getPageName(),cmsPage.getSiteId(),cmsPage.getPageWebPath()); if(cmsPage1==null){ cmsPage.setPageId(null);//设置设置为null 让mongoDB自动去生成, cmsPageRepository.save(cmsPage); return new CmsPageResult(CommonCode.SUCCESS,cmsPage); } return new CmsPageResult(CommonCode.FAIL,null); } }
cmsPageController
@Override
@PostMapping("/add")
public CmsPageResult add(@RequestBody CmsPage cmsPage) {
return pageService.add(cmsPage);
}