zoukankan      html  css  js  c++  java
  • java 基础响应体定义

    package com.teewon.viewservice.entitiy.base;
    
    import java.io.Serializable;
    import java.util.List;
    
    public class Response<T> implements Serializable
    {
        private static final long serialVersionUID = 6766428592214605847L;
        
        private T responseEntity;
        
        private PageInfo<T> pageInfo;
        
        private ServerResult serverResult;
        
        public Response()
        {
            this.serverResult = getServerResult();
        }
        
        public Response(T t)
        {
            this.responseEntity = t;
            this.serverResult = getServerResult();
        }
        
        public Response(List<T> list)
        {
            if (list instanceof Page)
            {
                this.pageInfo = new PageInfo<T>(list);
            }
            else
            {
                this.pageInfo = new PageInfo<T>();
                this.pageInfo.setList(list);
                this.pageInfo.setTotal(null == list ? 0 : list.size());
            }
            this.serverResult = getServerResult();
        }
        
        public Response(String resultCode,String resultMessage,String internalMessage)
        {
            this.serverResult = new ServerResult();
            serverResult.setResultCode(resultCode);
            serverResult.setResultMessage(resultMessage);
        }
        
        public Response(String resultCode,String resultMessage)
        {
            this(resultCode,resultMessage,resultMessage);
        }
        
        public ServerResult getServerResult()
        {
            if (serverResult == null)
            {
                serverResult = new ServerResult();
                serverResult.setResultCode("200");
                serverResult.setResultMessage("请求成功");
            }
            return serverResult;
        }
        
        public void setServerResult(ServerResult serverResult)
        {
            this.serverResult = serverResult;
        }
        
        public T getResponseEntity()
        {
            return responseEntity;
        }
        
        public void setResponseEntity(T responseEntity)
        {
            this.responseEntity = responseEntity;
        }
        
        public PageInfo<T> getPageInfo()
        {
            return pageInfo;
        }
        
        public void setPageInfo(PageInfo<T> pageInfo)
        {
            this.pageInfo = pageInfo;
        }
    }
    package com.teewon.viewservice.entitiy.base;
    
    import java.io.Serializable;
    
    public class ServerResult implements Serializable
    {
        private static final long serialVersionUID = -7556295999658379023L;
        
        /**
         * 返回码
         */
        private String resultCode;
        
        /**
         * 返回描述信息
         */
        private String resultMessage;
        
        public ServerResult()
        {
            
        }
        
        public ServerResult(String resultCode)
        {
            this(resultCode, "Success");
        }
        
        public ServerResult(String resultCode, String resultMessage)
        {
            super();
            this.resultCode = resultCode;
            this.resultMessage = resultMessage;
        }
        
        public String getResultMessage()
        {
            return resultMessage;
        }
        
        public void setResultMessage(String resultMessage)
        {
            this.resultMessage = resultMessage;
        }
        
        public String getResultCode()
        {
            return resultCode;
        }
        
        public void setResultCode(String resultCode)
        {
            this.resultCode = resultCode;
        }
    }
    package com.teewon.viewservice.entitiy.base;
    
    import java.io.Serializable;
    import java.util.List;
    
    public class PageInfo<T> implements Serializable {
        private static final long serialVersionUID = 1L;
        private int pageNum;
        private int pageSize;
        private int size;
    
        private int startRow;
        private int endRow;
        //鎬昏�褰曟暟
        private long total;
        //鎬婚〉鏁�
        private int pages;
        //缁撴灉闆�
        private List<T> list;
    
        //绗�竴椤�
        private int firstPage;
        //鍓嶄竴椤�
        private int prePage;
        //涓嬩竴椤�
        private int nextPage;
        //鏈�鍚庝竴椤�
        private int lastPage;
    
        //鏄�惁涓虹�涓�椤�
        private boolean isFirstPage = false;
        //鏄�惁涓烘渶鍚庝竴椤�
        private boolean isLastPage = false;
        //鏄�惁鏈夊墠涓�椤�
        private boolean hasPreviousPage = false;
        //鏄�惁鏈変笅涓�椤�
        private boolean hasNextPage = false;
        //瀵艰埅椤电爜鏁�
        private int navigatePages;
        //鎵�鏈夊�鑸�〉鍙�
        private int[] navigatepageNums;
    
        public PageInfo() {
        }
    
        /**
         * 鍖呰�Page瀵硅薄
         *
         * @param list
         */
        public PageInfo(List<T> list) {
            this(list, 8);
        }
    
        /**
         * 鍖呰�Page瀵硅薄
         *
         * @param list          page缁撴灉
         * @param navigatePages 椤电爜鏁伴噺
         */
        public PageInfo(List<T> list, int navigatePages) {
            if (list instanceof Page) {
                Page page = (Page) list;
                this.pageNum = page.getPageNum();
                this.pageSize = page.getPageSize();
    
                this.total = page.getTotal();
                this.pages = page.getPages();
                this.list = page;
                this.size = page.size();
                //鐢变簬缁撴灉鏄�>startRow鐨勶紝鎵�浠ュ疄闄呯殑闇�瑕�+1
                if (this.size == 0) {
                    this.startRow = 0;
                    this.endRow = 0;
                } else {
                    this.startRow = page.getStartRow() + 1;
                    //璁$畻瀹為檯鐨別ndRow锛堟渶鍚庝竴椤电殑鏃跺�欑壒娈婏級
                    this.endRow = this.startRow - 1 + this.size;
                }
                this.navigatePages = navigatePages;
                //璁$畻瀵艰埅椤�
                calcNavigatepageNums();
                //璁$畻鍓嶅悗椤碉紝绗�竴椤碉紝鏈�鍚庝竴椤�
                calcPage();
                //鍒ゆ柇椤甸潰杈圭晫
                judgePageBoudary();
            }
        }
    
        /**
         * 璁$畻瀵艰埅椤�
         */
        private void calcNavigatepageNums() {
            //褰撴�婚〉鏁板皬浜庢垨绛変簬瀵艰埅椤电爜鏁版椂
            if (pages <= navigatePages) {
                navigatepageNums = new int[pages];
                for (int i = 0; i < pages; i++) {
                    navigatepageNums[i] = i + 1;
                }
            } else { //褰撴�婚〉鏁板ぇ浜庡�鑸�〉鐮佹暟鏃�
                navigatepageNums = new int[navigatePages];
                int startNum = pageNum - navigatePages / 2;
                int endNum = pageNum + navigatePages / 2;
    
                if (startNum < 1) {
                    startNum = 1;
                    //(鏈�鍓峮avigatePages椤�
                    for (int i = 0; i < navigatePages; i++) {
                        navigatepageNums[i] = startNum++;
                    }
                } else if (endNum > pages) {
                    endNum = pages;
                    //鏈�鍚巒avigatePages椤�
                    for (int i = navigatePages - 1; i >= 0; i--) {
                        navigatepageNums[i] = endNum--;
                    }
                } else {
                    //鎵�鏈変腑闂撮〉
                    for (int i = 0; i < navigatePages; i++) {
                        navigatepageNums[i] = startNum++;
                    }
                }
            }
        }
    
        /**
         * 璁$畻鍓嶅悗椤碉紝绗�竴椤碉紝鏈�鍚庝竴椤�
         */
        private void calcPage() {
            if (navigatepageNums != null && navigatepageNums.length > 0) {
                firstPage = navigatepageNums[0];
                lastPage = navigatepageNums[navigatepageNums.length - 1];
                if (pageNum > 1) {
                    prePage = pageNum - 1;
                }
                if (pageNum < pages) {
                    nextPage = pageNum + 1;
                }
            }
        }
    
        /**
         * 鍒ゅ畾椤甸潰杈圭晫
         */
        private void judgePageBoudary() {
            isFirstPage = pageNum == 1;
            isLastPage = pageNum == pages;
            hasPreviousPage = pageNum > 1;
            hasNextPage = pageNum < pages;
        }
    
        public int getPageNum() {
            return pageNum;
        }
    
        public void setPageNum(int pageNum) {
            this.pageNum = pageNum;
        }
    
        public int getPageSize() {
            return pageSize;
        }
    
        public void setPageSize(int pageSize) {
            this.pageSize = pageSize;
        }
    
        public int getSize() {
            return size;
        }
    
        public void setSize(int size) {
            this.size = size;
        }
    
        public int getStartRow() {
            return startRow;
        }
    
        public void setStartRow(int startRow) {
            this.startRow = startRow;
        }
    
        public int getEndRow() {
            return endRow;
        }
    
        public void setEndRow(int endRow) {
            this.endRow = endRow;
        }
    
        public long getTotal() {
            return total;
        }
    
        public void setTotal(long total) {
            this.total = total;
        }
    
        public int getPages() {
            return pages;
        }
    
        public void setPages(int pages) {
            this.pages = pages;
        }
    
        public List<T> getList() {
            return list;
        }
    
        public void setList(List<T> list) {
            this.list = list;
        }
    
        public int getFirstPage() {
            return firstPage;
        }
    
        public void setFirstPage(int firstPage) {
            this.firstPage = firstPage;
        }
    
        public int getPrePage() {
            return prePage;
        }
    
        public void setPrePage(int prePage) {
            this.prePage = prePage;
        }
    
        public int getNextPage() {
            return nextPage;
        }
    
        public void setNextPage(int nextPage) {
            this.nextPage = nextPage;
        }
    
        public int getLastPage() {
            return lastPage;
        }
    
        public void setLastPage(int lastPage) {
            this.lastPage = lastPage;
        }
    
        public boolean isIsFirstPage() {
            return isFirstPage;
        }
    
        public void setIsFirstPage(boolean isFirstPage) {
            this.isFirstPage = isFirstPage;
        }
    
        public boolean isIsLastPage() {
            return isLastPage;
        }
    
        public void setIsLastPage(boolean isLastPage) {
            this.isLastPage = isLastPage;
        }
    
        public boolean isHasPreviousPage() {
            return hasPreviousPage;
        }
    
        public void setHasPreviousPage(boolean hasPreviousPage) {
            this.hasPreviousPage = hasPreviousPage;
        }
    
        public boolean isHasNextPage() {
            return hasNextPage;
        }
    
        public void setHasNextPage(boolean hasNextPage) {
            this.hasNextPage = hasNextPage;
        }
    
        public int getNavigatePages() {
            return navigatePages;
        }
    
        public void setNavigatePages(int navigatePages) {
            this.navigatePages = navigatePages;
        }
    
        public int[] getNavigatepageNums() {
            return navigatepageNums;
        }
    
        public void setNavigatepageNums(int[] navigatepageNums) {
            this.navigatepageNums = navigatepageNums;
        }
    
        @Override
        public String toString() {
            final StringBuffer sb = new StringBuffer("PageInfo{");
            sb.append("pageNum=").append(pageNum);
            sb.append(", pageSize=").append(pageSize);
            sb.append(", size=").append(size);
            sb.append(", startRow=").append(startRow);
            sb.append(", endRow=").append(endRow);
            sb.append(", total=").append(total);
            sb.append(", pages=").append(pages);
            sb.append(", list=").append(list);
            sb.append(", firstPage=").append(firstPage);
            sb.append(", prePage=").append(prePage);
            sb.append(", nextPage=").append(nextPage);
            sb.append(", lastPage=").append(lastPage);
            sb.append(", isFirstPage=").append(isFirstPage);
            sb.append(", isLastPage=").append(isLastPage);
            sb.append(", hasPreviousPage=").append(hasPreviousPage);
            sb.append(", hasNextPage=").append(hasNextPage);
            sb.append(", navigatePages=").append(navigatePages);
            sb.append(", navigatepageNums=");
            if (navigatepageNums == null) sb.append("null");
            else {
                sb.append('[');
                for (int i = 0; i < navigatepageNums.length; ++i)
                    sb.append(i == 0 ? "" : ", ").append(navigatepageNums[i]);
                sb.append(']');
            }
            sb.append('}');
            return sb.toString();
        }
    }
    package com.teewon.viewservice.entitiy.base;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import org.apache.ibatis.session.RowBounds;
    
    public class Page<E> extends ArrayList<E> {
        private static final long serialVersionUID = 1L;
    
        private static final int NO_SQL_COUNT = -1;
        private static final int SQL_COUNT = 0;
        private int pageNum;
        private int pageSize;
        private int startRow;
        private int endRow;
        private long total;
        private int pages;
        private Boolean reasonable;
        private Boolean pageSizeZero;
    
        public Page() {
            super();
        }
    
        public Page(int pageNum, int pageSize) {
            this(pageNum, pageSize, SQL_COUNT, null);
        }
    
        public Page(int pageNum, int pageSize, boolean count) {
            this(pageNum, pageSize, count ? Page.SQL_COUNT : Page.NO_SQL_COUNT, null);
        }
    
        private Page(int pageNum, int pageSize, int total, Boolean reasonable) {
            super(0);
            if (pageNum == 1 && pageSize == Integer.MAX_VALUE) {
                pageSizeZero = true;
                pageSize = 0;
            }
            this.pageNum = pageNum;
            this.pageSize = pageSize;
            this.total = total;
            calculateStartAndEndRow();
            setReasonable(reasonable);
        }
    
        public Page(RowBounds rowBounds, boolean count) {
            this(rowBounds, count ? Page.SQL_COUNT : Page.NO_SQL_COUNT);
        }
    
    
        public Page(RowBounds rowBounds, int total) {
            super(0);
            if (rowBounds.getOffset() == 0 && rowBounds.getLimit() == Integer.MAX_VALUE) {
                pageSizeZero = true;
                this.pageSize = 0;
            } else {
                this.pageSize = rowBounds.getLimit();
            }
            this.startRow = rowBounds.getOffset();
            //RowBounds鏂瑰紡榛樿�涓嶆眰count鎬绘暟锛屽�鏋滄兂姹俢ount,鍙�互淇�敼杩欓噷涓篠QL_COUNT
            this.total = total;
            this.endRow = this.startRow + rowBounds.getLimit();
        }
    
        public List<E> getResult() {
            return this;
        }
    
        public int getPages() {
            return pages;
        }
    
        public int getEndRow() {
            return endRow;
        }
    
        public int getPageNum() {
            return pageNum;
        }
    
        public void setPageNum(int pageNum) {
            //鍒嗛〉鍚堢悊鍖栵紝閽堝�涓嶅悎鐞嗙殑椤电爜鑷�姩澶勭悊
            this.pageNum = ((reasonable != null && reasonable) && pageNum <= 0) ? 1 : pageNum;
        }
    
        public int getPageSize() {
            return pageSize;
        }
    
        public void setPageSize(int pageSize) {
            this.pageSize = pageSize;
        }
    
        public int getStartRow() {
            return startRow;
        }
    
        public long getTotal() {
            return total;
        }
    
        public void setTotal(long total) {
            this.total = total;
            if (pageSize > 0) {
                pages = (int) (total / pageSize + ((total % pageSize == 0) ? 0 : 1));
            } else {
                pages = 0;
            }
            //鍒嗛〉鍚堢悊鍖栵紝閽堝�涓嶅悎鐞嗙殑椤电爜鑷�姩澶勭悊
            if ((reasonable != null && reasonable) && pageNum > pages) {
                pageNum = pages;
                calculateStartAndEndRow();
            }
        }
    
        public void setReasonable(Boolean reasonable) {
            if (reasonable == null) {
                return;
            }
            this.reasonable = reasonable;
            //鍒嗛〉鍚堢悊鍖栵紝閽堝�涓嶅悎鐞嗙殑椤电爜鑷�姩澶勭悊
            if (this.reasonable && this.pageNum <= 0) {
                this.pageNum = 1;
                calculateStartAndEndRow();
            }
        }
    
        public Boolean getReasonable() {
            return reasonable;
        }
    
        public Boolean getPageSizeZero() {
            return pageSizeZero;
        }
    
        public void setPageSizeZero(Boolean pageSizeZero) {
            if (pageSizeZero != null) {
                this.pageSizeZero = pageSizeZero;
            }
        }
    
        /**
         * 璁$畻璧锋�琛屽彿
         */
        private void calculateStartAndEndRow() {
            this.startRow = this.pageNum > 0 ? (this.pageNum - 1) * this.pageSize : 0;
            this.endRow = this.startRow + this.pageSize * (this.pageNum > 0 ? 1 : 0);
        }
    
        public boolean isCount() {
            return this.total > NO_SQL_COUNT;
        }
    
        //澧炲姞閾惧紡璋冪敤鏂规硶
    
        /**
         * 璁剧疆椤电爜
         *
         * @param pageNum
         * @return
         */
        public Page<E> pageNum(int pageNum) {
            //鍒嗛〉鍚堢悊鍖栵紝閽堝�涓嶅悎鐞嗙殑椤电爜鑷�姩澶勭悊
            this.pageNum = ((reasonable != null && reasonable) && pageNum <= 0) ? 1 : pageNum;
            return this;
        }
    
        /**
         * 璁剧疆椤甸潰澶у皬
         *
         * @param pageSize
         * @return
         */
        public Page<E> pageSize(int pageSize) {
            this.pageSize = pageSize;
            calculateStartAndEndRow();
            return this;
        }
    
        /**
         * 鏄�惁鎵ц�count鏌ヨ�
         *
         * @param count
         * @return
         */
        public Page<E> count(Boolean count) {
            this.total = count ? Page.SQL_COUNT : Page.NO_SQL_COUNT;
            return this;
        }
    
        /**
         * 璁剧疆鍚堢悊鍖�
         *
         * @param reasonable
         * @return
         */
        public Page<E> reasonable(Boolean reasonable) {
            setReasonable(reasonable);
            return this;
        }
    
        /**
         * @param pageSizeZero
         * @return
         */
        public Page<E> pageSizeZero(Boolean pageSizeZero) {
            setPageSizeZero(pageSizeZero);
            return this;
        }
    
        @Override
        public String toString() {
            final StringBuffer sb = new StringBuffer("Page{");
            sb.append("pageNum=").append(pageNum);
            sb.append(", pageSize=").append(pageSize);
            sb.append(", startRow=").append(startRow);
            sb.append(", endRow=").append(endRow);
            sb.append(", total=").append(total);
            sb.append(", pages=").append(pages);
            sb.append(", reasonable=").append(reasonable);
            sb.append(", pageSizeZero=").append(pageSizeZero);
            sb.append('}');
            return sb.toString();
        }
    }

    示例:

      @Override
      @ResponseBody
      public Response<Behavior> getLessonInfo(@RequestBody GetBehaviorReq behavior) 
      {
          if(null == behavior || null == behavior.getType())
          {
              ServerResult serverResult = new ServerResult();
              serverResult.setResultCode("-1");
              serverResult.setResultMessage("请求参数为空,请检查");
                Response<Behavior> response = new Response<Behavior>();
                response.setServerResult(serverResult);
                return response;
          }
          List<Behavior> infoList = behaviorService.getLessonInfo(behavior);
          Response<Behavior> response = new Response<Behavior>(infoList);
          return response;
      }
  • 相关阅读:
    NOI Online 2020「Prelude」
    CF704E Iron Man
    luogu P4619 [SDOI2018]旧试题
    luogu P4207 [NOI2005]月下柠檬树
    JOI2020
    luogu P3263 [JLOI2015]有意义的字符串
    p1864
    p1824
    p1836
    p1862
  • 原文地址:https://www.cnblogs.com/scode2/p/9301804.html
Copyright © 2011-2022 走看看