1.pom文件引入spring-boot-starter-data-mongodb依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency>2.编写实体类
import lombok.Data; import lombok.ToString; import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document; import java.util.Date; import java.util.List; /** * @Author: test. * @Description: * @Date:Created in 2019/11/1 10:04. * @Modified By: */ @Data @ToString @Document(collection = "cms_page") public class CmsPage { /** * 页面名称、别名、访问地址、类型(静态/动态)、页面模版、状态 */ //站点ID private String siteId; //页面ID @Id private String pageId; //页面名称 private String pageName; //别名 private String pageAliase; //访问地址 private String pageWebPath; //参数 private String pageParameter; //物理路径 private String pagePhysicalPath; //类型(静态/动态) private String pageType; //页面模版 private String pageTemplate; //页面静态化内容 private String pageHtml; //状态 private String pageStatus; //创建时间 private Date pageCreateTime; //模版id private String templateId; //参数列表 private List<CmsPageParam> pageParams; //模版文件Id // private String templateFileId; //静态文件Id private String htmlFileId; //数据Url private String dataUrl; }3.编写dao
import com.xuecheng.framework.domain.cms.CmsPage; import org.springframework.data.mongodb.repository.MongoRepository; public interface CmsPageRepository extends MongoRepository<CmsPage,String> { //根据页面名称查询 CmsPage findByPageName(String pageName); //根据页面名称、站点Id、页面webpath查询 CmsPage findByPageNameAndSiteIdAndPageWebPath(String pageName,String siteId,String pageWebPath); }4.编写service
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()); } //定义条件对象Example 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; }5.公共类 QueryResult
import lombok.Data; import lombok.ToString; import java.util.List; /** * @Author: test. * @Description: * @Date:Created in 2019/11/1 * @Modified By: */ @Data @ToString public class QueryResult<T> { //数据列表 private List<T> list; //数据总数 private long total; }公共类
import lombok.Data; import lombok.ToString; @Data @ToString public class QueryResponseResult extends ResponseResult { QueryResult queryResult; public QueryResponseResult(ResultCode resultCode,QueryResult queryResult){ super(resultCode); this.queryResult = queryResult; } }QueryResponseResult
