分页和添加

/*
 * Copyright 2008-2017 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.springframework.data.domain;

import org.springframework.data.domain.Sort.Direction;
import org.springframework.lang.Nullable;

/**
 * Basic Java Bean implementation of {@code Pageable}.
 *
 * @author Oliver Gierke
 * @author Thomas Darimont
 */
public class PageRequest extends AbstractPageRequest {

	private static final long serialVersionUID = -4541509938956089562L;

	private final Sort sort;

	/**
	 * Creates a new {@link PageRequest}. Pages are zero indexed, thus providing 0 for {@code page} will return the first
	 * page.
	 *
	 * @param page zero-based page index.
	 * @param size the size of the page to be returned.
	 * @deprecated use {@link #of(int, int)} instead.
	 */
	@Deprecated
	public PageRequest(int page, int size) {
		this(page, size, Sort.unsorted());
	}

	/**
	 * Creates a new {@link PageRequest} with sort parameters applied.
	 *
	 * @param page zero-based page index.
	 * @param size the size of the page to be returned.
	 * @param direction the direction of the {@link Sort} to be specified, can be {@literal null}.
	 * @param properties the properties to sort by, must not be {@literal null} or empty.
	 * @deprecated use {@link #of(int, int, Direction, String...)} instead.
	 */
	@Deprecated
	public PageRequest(int page, int size, Direction direction, String... properties) {
		this(page, size, Sort.by(direction, properties));
	}

	/**
	 * Creates a new {@link PageRequest} with sort parameters applied.
	 *
	 * @param page zero-based page index.
	 * @param size the size of the page to be returned.
	 * @param sort can be {@literal null}.
	 * @deprecated since 2.0, use {@link #of(int, int, Sort)} instead.
	 */
	@Deprecated
	public PageRequest(int page, int size, Sort sort) {

		super(page, size);

		this.sort = sort;
	}

	/**
	 * Creates a new unsorted {@link PageRequest}.
	 *
	 * @param page zero-based page index.
	 * @param size the size of the page to be returned.
	 * @since 2.0
	 */
	public static PageRequest of(int page, int size) {
		return of(page, size, Sort.unsorted());
	}

	/**
	 * Creates a new {@link PageRequest} with sort parameters applied.
	 *
	 * @param page zero-based page index.
	 * @param size the size of the page to be returned.
	 * @param sort must not be {@literal null}.
	 * @since 2.0
	 */
	public static PageRequest of(int page, int size, Sort sort) {
		return new PageRequest(page, size, sort);
	}

	/**
	 * Creates a new {@link PageRequest} with sort direction and properties applied.
	 *
	 * @param page zero-based page index.
	 * @param size the size of the page to be returned.
	 * @param direction must not be {@literal null}.
	 * @param properties must not be {@literal null}.
	 * @since 2.0
	 */
	public static PageRequest of(int page, int size, Direction direction, String... properties) {
		return of(page, size, Sort.by(direction, properties));
	}

	/*
	 * (non-Javadoc)
	 * @see org.springframework.data.domain.Pageable#getSort()
	 */
	public Sort getSort() {
		return sort;
	}

	/*
	 * (non-Javadoc)
	 * @see org.springframework.data.domain.Pageable#next()
	 */
	public Pageable next() {
		return new PageRequest(getPageNumber() + 1, getPageSize(), getSort());
	}

	/*
	 * (non-Javadoc)
	 * @see org.springframework.data.domain.AbstractPageRequest#previous()
	 */
	public PageRequest previous() {
		return getPageNumber() == 0 ? this : new PageRequest(getPageNumber() - 1, getPageSize(), getSort());
	}

	/*
	 * (non-Javadoc)
	 * @see org.springframework.data.domain.Pageable#first()
	 */
	public Pageable first() {
		return new PageRequest(0, getPageSize(), getSort());
	}

	/*
	 * (non-Javadoc)
	 * @see java.lang.Object#equals(java.lang.Object)
	 */
	@Override
	public boolean equals(@Nullable Object obj) {

		if (this == obj) {
			return true;
		}

		if (!(obj instanceof PageRequest)) {
			return false;
		}

		PageRequest that = (PageRequest) obj;

		return super.equals(that) && this.sort.equals(that.sort);
	}

	/*
	 * (non-Javadoc)
	 * @see java.lang.Object#hashCode()
	 */
	@Override
	public int hashCode() {
		return 31 * super.hashCode() + sort.hashCode();
	}

	/*
	 * (non-Javadoc)
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return String.format("Page request [number: %d, size %d, sort: %s]", getPageNumber(), getPageSize(), sort);
	}
}

@Data
@ToString
public class QueryResponseResult extends ResponseResult {

      QueryResult queryResult;

      public QueryResponseResult(ResultCode resultCode,QueryResult queryResult){
            super(resultCode);
          this.queryResult = queryResult;
      }

}

@Data
@ToString
@NoArgsConstructor
public class ResponseResult implements Response {

      //操作是否成功
      boolean success = SUCCESS;

      //操作代码
      int code = SUCCESS_CODE;

      //提示信息
      String message;

      public ResponseResult(ResultCode resultCode){
            this.success = resultCode.success();
            this.code = resultCode.code();
            this.message = resultCode.message();
      }

      public static ResponseResult SUCCESS(){
            return new ResponseResult(CommonCode.SUCCESS);
      }
      public static ResponseResult FAIL(){
            return new ResponseResult(CommonCode.FAIL);
      }

}

public interface Response {
      public static final boolean SUCCESS = true;
      public static final int SUCCESS_CODE = 10000;
}

以上是工具类

 public QueryResponseResult getCmsPageListByPage(Integer page, Integer size, QueryPageRequest queryPageRequest) {
        if (page == null || page <= 0) {
            page = 1;
        }
        page = page - 1;
        //设置分页
        Pageable pageable = PageRequest.of(page, size);
        //new ArrayList();

        //创建存放查询条件的值对象
        CmsPage cmsPage = new CmsPage();
        //创建匹配器
        ExampleMatcher exampleMatcher = ExampleMatcher.matching();

        if (queryPageRequest == null) {
            queryPageRequest = new QueryPageRequest();
        }
        if (StringUtils.isNotEmpty(queryPageRequest.getSiteId())) {
            cmsPage.setSiteId(queryPageRequest.getSiteId());
        }
        if (StringUtils.isNotEmpty(queryPageRequest.getTemplateId())) {
            cmsPage.setTemplateId(queryPageRequest.getTemplateId());
        }
        if (StringUtils.isNotEmpty(queryPageRequest.getPageAliase())) {
            cmsPage.setPageAliase(queryPageRequest.getPageAliase());
            exampleMatcher = exampleMatcher.withMatcher("pageAliase", ExampleMatcher.GenericPropertyMatchers.contains());
        }


        Example<CmsPage> example = Example.of(cmsPage, exampleMatcher);

        //执行分页查询
        Page<CmsPage> pages = cmsPageRepository.findAll(example, pageable);
        //从查询结果中获取list
        List<CmsPage> content = pages.getContent();

        //创建结果集对象
        QueryResult queryResult = new QueryResult();
        //把list放到结果集对象中
        queryResult.setList(content);
        //把总条数放到结果集对象中
        queryResult.setTotal(pages.getTotalElements());

        QueryResponseResult queryResponseResult = new QueryResponseResult(CommonCode.SUCCESS, queryResult);
        return queryResponseResult;
    }


    public CmsPageResult add(CmsPage cmsPage) {

        //判断页面是否已经添加过,数据库没有,则添加
        CmsPage cmsPageDb = cmsPageRepository.findByPageNameAndPageWebPathAndSiteId(cmsPage.getPageName(), cmsPage.getPageWebPath(), cmsPage.getSiteId());

        if (cmsPageDb == null) {
            cmsPage.setPageId(null);
            cmsPageRepository.insert(cmsPage);
            return new CmsPageResult(CommonCode.SUCCESS, cmsPage);
        } else {
            CaseException.cast(CmsCode.CMS_ADDPAGE_EXISTSNAME);
        }
        return new CmsPageResult(CmsCode.CMS_ADDPAGE_EXISTSNAME, null);

    }

控制层

 @Override
    @GetMapping("list/{page}/{size}")
    public QueryResponseResult getCmsPageListByPage(@PathVariable Integer page,
                                                    @PathVariable Integer size,
                                                    QueryPageRequest queryPageRequest) {
        QueryResponseResult queryResponseResult = cmsPageService.getCmsPageListByPage(page, size, queryPageRequest);
       /* QueryResult queryResult = new QueryResult();

        queryResult.setTotal(2);
        //静态数据列表
        List list = new ArrayList();
        CmsPage cmsPage = new CmsPage();
        cmsPage.setPageName("测试页面");
        list.add(cmsPage);
        queryResult.setList(list);

        QueryResponseResult queryResponseResult = new QueryResponseResult(CommonCode.SUCCESS, queryResult);*/
//        System.out.println("getCmsPageListByPage...............");
        return queryResponseResult;
    }

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

    @Override
    @GetMapping("get/{id}")
    public CmsPageResult findCmsPageById(@PathVariable("id") String id) {
        CmsPageResult result = cmsPageService.findCmsPageById(id);

        return result;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值