54db3e9cd1579880335087bf7fbd7c5c67a11f3f
[institute/sw-backend.git] /
1 package com.supwisdom.institute.backend.base.api.vo.response;
2
3 import lombok.Getter;
4 import lombok.Setter;
5
6 import java.util.List;
7 import java.util.Map;
8
9 import org.springframework.data.domain.Page;
10
11 import com.supwisdom.institute.backend.base.domain.entity.AccountGroup;
12 import com.supwisdom.institute.backend.common.framework.vo.request.IApiQueryRequest;
13 import com.supwisdom.institute.backend.common.framework.vo.response.data.IApiQueryResponseData;
14
15 /**
16  * @author loie
17  */
18 public class AccountRelatedGroupsResponseData implements IApiQueryResponseData<AccountGroup> {
19
20   /**
21    * 
22    */
23   private static final long serialVersionUID = 3949426339318397970L;
24
25   private AccountRelatedGroupsResponseData(boolean loadAll, int pageIndex, int pageSize, Map<String, Object> mapBean, Map<String, String> orderBy) {
26     this.loadAll = loadAll;
27     this.pageIndex = pageIndex;
28     this.pageSize = pageSize;
29     this.mapBean = mapBean;
30     this.orderBy = orderBy;
31   }
32
33   public static AccountRelatedGroupsResponseData of(IApiQueryRequest queryRequest) {
34     AccountRelatedGroupsResponseData configQueryResponse = new AccountRelatedGroupsResponseData(
35         queryRequest.isLoadAll(), 
36         queryRequest.getPageIndex(), 
37         queryRequest.getPageSize(), 
38         queryRequest.getMapBean(), 
39         queryRequest.getOrderBy()
40     );
41     
42     return configQueryResponse;
43   }
44   
45   public AccountRelatedGroupsResponseData build(Page<AccountGroup> page) {
46     this.currentItemCount = page.getNumberOfElements();
47     this.pageCount = page.getTotalPages();
48     this.recordCount = page.getTotalElements();
49     this.items = page.getContent();
50
51     return this;
52   }
53
54   @Getter
55   private boolean loadAll;
56   @Getter
57   private int pageIndex;
58   @Getter
59   private int pageSize;
60   @Getter
61   private Map<String, Object> mapBean;
62   @Getter
63   private Map<String, String> orderBy;
64   
65   @Getter
66   @Setter
67   private int pageCount;
68   @Getter
69   @Setter
70   private long recordCount;
71   
72   @Getter
73   @Setter
74   private int currentItemCount;
75   
76   @Getter
77   @Setter
78   private List<AccountGroup> items;
79   
80 }