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<){
page=;
}
page = page -;
if(size<=){
size = ;
}
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);
}
}

pageService

cmsPageController


@Override
@PostMapping("/add")
public CmsPageResult add(@RequestBody CmsPage cmsPage) {
return pageService.add(cmsPage);
}
 

最新文章

  1. 重撸js_2_基础dom操作
  2. jQuery uploadify 文件上传
  3. 链栈的C语言实现
  4. ASP.NET之Ajax系列(一)
  5. asp.net oracle 存储过程
  6. USB OTG
  7. HOOK API(三)—— HOOK 所有程序的 MessageBox
  8. oracle的exp和imp命令的使用【转载】
  9. 互联网金融P2P主业务场景自动化测试
  10. Python爬虫番外篇之关于登录
  11. 参加Java培训你必须知道的五点真相!
  12. 浅谈数据结构vector
  13. Linux基础命令归纳大全
  14. T-SQL :TOP和OFFSET-FETCH筛选 (五)
  15. STO(Security Token Offering)证券型通证、代币发行介绍
  16. Node.js 知识(教程)
  17. Spring IOC(三)单例 bean 的注册管理
  18. Linux入门基础教程之Linux系统简介
  19. POJ 1118
  20. HDU 5869 Different GCD Subarray Query rmq+离线+数状数组

热门文章

  1. Flyme密码验证策略升级,忘记锁屏密码及「关机密码」功能
  2. MySQL 进阶3 排序查询
  3. golang 2 ways to delete an element from a slice
  4. jQuery——jQuery对象与DOM对象
  5. [唐胡璐]MongoDB - 在Win7下环境搭建
  6. python--openCV--鼠标事件
  7. word如何选择图片粘贴
  8. [Luogu] 四子连棋
  9. Scarily interesting! (URAL - 2021)
  10. 高逼格Linux命令,忙的飞起