增加pagemodel对象
diff --git a/leaveschool/basics-data/src/main/java/com/supwisdom/leaveschool/basicsdata/Repository/DictionaryTypeRepository.java b/leaveschool/basics-data/src/main/java/com/supwisdom/leaveschool/basicsdata/Repository/DictionaryTypeRepository.java
index eb72101..87e9292 100644
--- a/leaveschool/basics-data/src/main/java/com/supwisdom/leaveschool/basicsdata/Repository/DictionaryTypeRepository.java
+++ b/leaveschool/basics-data/src/main/java/com/supwisdom/leaveschool/basicsdata/Repository/DictionaryTypeRepository.java
@@ -1,41 +1,31 @@
-package com.supwisdom.leaveschool.basicsdata.Repository;
+package com.supwisdom.leaveschool.basicsdata.repository;
+import java.util.HashMap;
import java.util.Map;
-import org.springframework.data.domain.Example;
-import org.springframework.data.domain.ExampleMatcher;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.PageRequest;
+import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Repository;
import com.supwisdom.leaveschool.basicsdata.domain.DictionaryType;
-import com.supwisdom.leaveschool.common.repository.BaseJpaRepository;
-import com.supwisdom.leaveschool.common.util.MapBeanUtils;
+import com.supwisdom.leaveschool.common.model.PageModel;
+import com.supwisdom.leaveschool.common.repository.SimpleBaseDao;
@Repository
-public interface DictionaryTypeRepository extends BaseJpaRepository<DictionaryType> {
-
- public default Page<DictionaryType> selectPageListByQuery(int pageIndex, int pageSize, Map<String, Object> mapBean) {
+public class DictionaryTypeRepository extends SimpleBaseDao{
- DictionaryType probe = new DictionaryType();
- ExampleMatcher matcher = ExampleMatcher.matching();
-// probe.setEnabled(true);
-// matcher.withMatcher("enabled", ExampleMatcher.GenericPropertyMatchers.exact());
- if (mapBean != null&&mapBean.keySet().size()>0) {
- probe.setName(MapBeanUtils.getString(mapBean, "name"));
- matcher.withMatcher("name", ExampleMatcher.GenericPropertyMatchers.contains());
- }
-//
-// matcher.withMatcher("code", ExampleMatcher.GenericPropertyMatchers.contains())
-// .withMatcher("name", ExampleMatcher.GenericPropertyMatchers.contains())
-// .withMatcher("enabled", ExampleMatcher.GenericPropertyMatchers.exact());
-
- PageRequest pageRequest = PageRequest.of(pageIndex, pageSize);
- Example<DictionaryType> example = Example.of(probe, matcher);
-
- Page<DictionaryType> page = this.findAll(example, pageRequest);
-
- return page;
- }
+ public PageModel<DictionaryType> getDictionaryTypePage(String name, int pageIndex,
+ int pageSize) {
+ Map<String,Object> params = new HashMap<String,Object>();
+ if(StringUtils.isNotBlank(name)){
+ name = StringUtils.trimToEmpty(name);
+ params.put("or upper(code) like ? ","%"+name.toUpperCase()+"%");
+ params.put("or name like ? ","%"+name+"%");
+ }
+ name="%"+name+"%";
+ String sql = "select * from TB_B_DICTIONARY_TYPE where upper(code) like ?1 or name like ?2";
+ return this.getScrollSqlData(DictionaryType.class, pageIndex, pageSize, sql, name,name);
+ }
+
+
}
diff --git a/leaveschool/basics-data/src/main/java/com/supwisdom/leaveschool/basicsdata/api/Api1DictionaryTypeController.java b/leaveschool/basics-data/src/main/java/com/supwisdom/leaveschool/basicsdata/api/Api1DictionaryTypeController.java
index 155e9a2..e88001b 100644
--- a/leaveschool/basics-data/src/main/java/com/supwisdom/leaveschool/basicsdata/api/Api1DictionaryTypeController.java
+++ b/leaveschool/basics-data/src/main/java/com/supwisdom/leaveschool/basicsdata/api/Api1DictionaryTypeController.java
@@ -1,17 +1,17 @@
package com.supwisdom.leaveschool.basicsdata.api;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.domain.Page;
import org.springframework.http.HttpStatus;
import org.springframework.util.MimeTypeUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestController;
-import com.supwisdom.leaveschool.basicsdata.Repository.DictionaryTypeRepository;
import com.supwisdom.leaveschool.basicsdata.domain.DictionaryType;
-import com.supwisdom.leaveschool.common.controller.api.CrudApiController;
+import com.supwisdom.leaveschool.basicsdata.repository.DictionaryTypeRepository;
+import com.supwisdom.leaveschool.common.model.PageModel;
import com.supwisdom.leaveschool.common.model.PagerRequestModel;
import com.supwisdom.leaveschool.common.model.PagerResponseModel;
@@ -23,31 +23,53 @@
@RestController
@RequestMapping("/api/v1/basics-data/dictionary-types")
@Api(value="字典表类型操作",tags={"字典表类型的操作接口"})
-public class Api1DictionaryTypeController extends CrudApiController<DictionaryType, DictionaryTypeRepository> {
+public class Api1DictionaryTypeController {
@Autowired
private DictionaryTypeRepository dictionaryTypeRepository;
- @Override
- protected DictionaryTypeRepository getRepository() {
- return dictionaryTypeRepository;
- }
- @GetMapping(path = "/page/sercher",produces = MimeTypeUtils.APPLICATION_JSON_VALUE)
+ @GetMapping(produces = MimeTypeUtils.APPLICATION_JSON_VALUE)
@ResponseStatus(value = HttpStatus.OK)
- @ApiOperation(value="根据查询条件获取字典表类型列表",notes="注意问题点")
+ @ApiOperation(value="获取字典表类型列表",notes="根据查询条件获取字典表类型列表")
@ApiImplicitParams({
- @ApiImplicitParam(name = "pageIndex", value = "当前第页数,默认0,为第一页", dataType = "int", required = true, defaultValue = "0"),
- @ApiImplicitParam(name = "pageSize", value = "每页条数,默认20", required = true, dataType = "int", paramType = "query", defaultValue = "20"),
- @ApiImplicitParam(name = "name", value = "类型码或名称", required = false, dataType = "string", paramType = "query", defaultValue = "")
+ @ApiImplicitParam(name = "pageIndex", value = "当前第页数,默认0,为第一页", dataType = "integer",defaultValue="0", paramType="query"),
+ @ApiImplicitParam(name = "pageSize", value = "每页条数,默认20", dataType = "integer",defaultValue="20", paramType="query"),
+ @ApiImplicitParam(name = "name", value = "类型码或名称", dataType = "string", defaultValue = "",paramType="query")
})
- public Object list(int pageIndex,int pageSize,String name) {
+ public Object list(@RequestParam(name="pageIndex", defaultValue="1",required=true) Integer pageIndex, @RequestParam(name="pageSize", defaultValue="1",required=true) Integer pageSize,String name) {
PagerRequestModel pagerRequestModel = new PagerRequestModel(pageIndex, pageSize);
pagerRequestModel.getMapBean().put("name", name);
- Page<DictionaryType> page = dictionaryTypeRepository.selectPageListByQuery(pagerRequestModel.getPageIndex(), pagerRequestModel.getPageSize(), pagerRequestModel.getMapBean());
- PagerResponseModel<DictionaryType> pagerResponseModel = PagerResponseModel.of(pagerRequestModel,page);
- return pagerResponseModel;
+ PageModel<DictionaryType> page = dictionaryTypeRepository.getDictionaryTypePage(name,pagerRequestModel.getPageIndex(), pagerRequestModel.getPageSize());
+ return page;
}
+
+
+// @GetMapping(path="/search", produces = MimeTypeUtils.APPLICATION_JSON_VALUE)
+// @ResponseStatus(value = HttpStatus.OK)
+// @ApiOperation(value="获取字典表类型列表",notes="根据查询条件获取字典表类型列表")
+// public Object list2(@RequestParam(defaultValue="0") @ApiParam(name="pageIndex",value="当前第页数,默认0,为第一页",required=true,defaultValue="0",type="integer",format="int32") Integer pageIndex,
+// @RequestParam(defaultValue="20") @ApiParam(name="pageSize",value="每页条数,默认20",required=true,defaultValue="20",type="integer",format="int32") Integer pageSize,
+// @RequestParam(defaultValue="") @ApiParam(name="name",value="类型码或名称",required=false,defaultValue="") String name) {
+// PagerRequestModel pagerRequestModel = new PagerRequestModel(pageIndex, pageSize);
+// pagerRequestModel.getMapBean().put("name", name);
+// Page<DictionaryType> page = dictionaryTypeRepository.selectPageListByQuery(pagerRequestModel.getPageIndex(), pagerRequestModel.getPageSize(), pagerRequestModel.getMapBean());
+// PagerResponseModel<DictionaryType> pagerResponseModel = PagerResponseModel.of(pagerRequestModel,page);
+// return pagerResponseModel;
+// }
+
+// @PostMapping(consumes = MimeTypeUtils.APPLICATION_JSON_VALUE, produces = MimeTypeUtils.APPLICATION_JSON_VALUE)
+// @ResponseStatus(value = HttpStatus.OK)
+// public Object create(String username,@RequestBody DictionaryType dictionaryType) {
+//
+// @SuppressWarnings("unused")
+// DictionaryType ret = dictionaryTypeRepository.insert(dictionaryType);
+//
+// SuccessResponseModel res = new SuccessResponseModel();
+// res.setSuccess("info.create.success");
+//
+// return res;
+// }
}
diff --git a/leaveschool/basics-data/src/main/java/com/supwisdom/leaveschool/basicsdata/repository/DictionaryTypeRepository2.java b/leaveschool/basics-data/src/main/java/com/supwisdom/leaveschool/basicsdata/repository/DictionaryTypeRepository2.java
new file mode 100644
index 0000000..716f109
--- /dev/null
+++ b/leaveschool/basics-data/src/main/java/com/supwisdom/leaveschool/basicsdata/repository/DictionaryTypeRepository2.java
@@ -0,0 +1,46 @@
+package com.supwisdom.leaveschool.basicsdata.repository;
+
+import java.util.Map;
+
+import javax.persistence.EntityManager;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Example;
+import org.springframework.data.domain.ExampleMatcher;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.stereotype.Repository;
+
+import com.supwisdom.leaveschool.basicsdata.domain.DictionaryType;
+import com.supwisdom.leaveschool.common.repository.BaseJpaRepository;
+import com.supwisdom.leaveschool.common.util.MapBeanUtils;
+
+@Repository
+public interface DictionaryTypeRepository2 extends BaseJpaRepository<DictionaryType> {
+
+// @Autowired
+// private EntityManager entityManager;
+
+ public default Page<DictionaryType> selectPageListByQuery(int pageIndex, int pageSize, Map<String, Object> mapBean) {
+
+ DictionaryType probe = new DictionaryType();
+ ExampleMatcher matcher = ExampleMatcher.matching();
+
+// probe.setEnabled(true);
+// matcher.withMatcher("enabled", ExampleMatcher.GenericPropertyMatchers.exact());
+ if (mapBean != null&&mapBean.keySet().size()>0) {
+ probe.setName(MapBeanUtils.getString(mapBean, "name"));
+ matcher.withMatcher("name", ExampleMatcher.GenericPropertyMatchers.contains());
+ }
+//
+// matcher.withMatcher("code", ExampleMatcher.GenericPropertyMatchers.contains())
+// .withMatcher("name", ExampleMatcher.GenericPropertyMatchers.contains())
+// .withMatcher("enabled", ExampleMatcher.GenericPropertyMatchers.exact());
+
+ PageRequest pageRequest = PageRequest.of(pageIndex, pageSize);
+ Example<DictionaryType> example = Example.of(probe, matcher);
+ Page<DictionaryType> page = this.findAll(example, pageRequest);
+
+ return page;
+ }
+}
diff --git a/leaveschool/basics-data/src/main/resources/application.yml b/leaveschool/basics-data/src/main/resources/application.yml
index a36a52d..7392853 100644
--- a/leaveschool/basics-data/src/main/resources/application.yml
+++ b/leaveschool/basics-data/src/main/resources/application.yml
@@ -15,7 +15,8 @@
name: sample-user
datasource:
driver-class-name: com.mysql.jdbc.Driver
- url: jdbc:mysql://172.50.10.15:3306/leave_school?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&autoReconnect=true&zeroDateTimeBehavior=convertToNull
+## url: jdbc:mysql://172.50.10.15:3306/leave_school?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&autoReconnect=true&zeroDateTimeBehavior=convertToNull
+ url: jdbc:mysql://180.166.150.114:9512/leave_school?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&autoReconnect=true&zeroDateTimeBehavior=convertToNull
username: leave_school
password: 111111
jpa:
diff --git a/leaveschool/client/src/main/resources/application.yml b/leaveschool/client/src/main/resources/application.yml
index c395a5a..96983e3 100644
--- a/leaveschool/client/src/main/resources/application.yml
+++ b/leaveschool/client/src/main/resources/application.yml
@@ -58,5 +58,6 @@
gateway.api.url: http://localhost:5555
-#sample-user.api.url: ${gateway.api.url}/sample-user
-sample-user.api.url: http://localhost:10010
+#sample-user.api.url: ${gateway.api.url}/leaveschool-user
+leaveschool-user.api.url: http://localhost:10010
+leaveschool-basics-data.api.url: http://localhost:10020
diff --git a/leaveschool/common/src/main/java/com/supwisdom/leaveschool/common/model/PageModel.java b/leaveschool/common/src/main/java/com/supwisdom/leaveschool/common/model/PageModel.java
new file mode 100644
index 0000000..b7290b0
--- /dev/null
+++ b/leaveschool/common/src/main/java/com/supwisdom/leaveschool/common/model/PageModel.java
@@ -0,0 +1,114 @@
+/**
+ *
+ */
+package com.supwisdom.leaveschool.common.model;
+
+import java.util.List;
+
+
+/**
+ *
+ * @author Bo.Chen
+ *
+ * @param <T>
+ */
+public class PageModel<T> {
+
+ private List<T> list;
+ private int totalCount = 0; //总条数
+ private int pageSize = 20; //每页行数
+ private int totalPages; //总共多少页
+ private int pre; //上一页
+ private int next; //下一页
+ private int pageIndex; //当前页号
+
+
+ public PageModel(){
+ }
+ public PageModel(int totalCount, List<T> list) {
+ super();
+ this.totalCount = totalCount;
+ this.list = list;
+ }
+
+ public PageModel(int totalCount, List<T> res,int pageSize) {
+ this(totalCount,res);
+ this.pageSize = pageSize;
+ if(pageSize==-1){
+ this.totalPages = 1;
+ }else{
+ this.totalPages=(this.totalCount+this.pageSize-1)/this.pageSize;
+ }
+ }
+
+ public PageModel(int totalCount, List<T> res,int pageIndex,int pageSize) {
+ this(totalCount,res,pageSize);
+ this.pageIndex = pageIndex;
+ if(this.totalPages==1){
+ this.pre=1;
+ this.next=1;
+ }else if(this.totalPages==this.pageIndex){
+ this.pre=this.totalPages-1;
+ this.next=this.totalPages;
+ }else{
+ this.pre=this.totalPages-1;
+ this.next=this.totalPages+1;
+ }
+ }
+
+
+ public List<T> getList() {
+ return list;
+ }
+ public void setList(List<T> list) {
+ this.list = list;
+ }
+
+ public int getTotalCount() {
+ return totalCount;
+ }
+ public void setTotalCount(int totalCount) {
+ this.totalCount = totalCount;
+ }
+ public int getPageSize() {
+ return pageSize;
+ }
+ public void setPageSize(int pageSize) {
+ this.pageSize = pageSize;
+ }
+ public int getTotalPages() {
+ return totalPages;
+ }
+ public void setTotalPages(int totalPages) {
+ this.totalPages = totalPages;
+ }
+ public int getPageIndex() {
+ return pageIndex;
+ }
+ public void setPageIndex(int pageIndex) {
+ this.pageIndex = pageIndex;
+ }
+
+ public int getPre() {
+ return pageIndex-1<=0?1:pageIndex-1;
+ }
+ public void setPre(int pre) {
+ }
+ public int getNext() {
+ return pageIndex+1>totalPages?totalPages:pageIndex+1;
+ }
+ public void setNext(int next) {
+ }
+
+
+
+ @Override
+ public String toString() {
+ StringBuilder builder = new StringBuilder();
+ builder.append("总条数:").append(this.totalCount)
+ .append(",总页:").append(totalPages)
+ .append(",当前页:").append(pageIndex);
+ return builder.toString();
+ }
+
+}
diff --git a/leaveschool/common/src/main/java/com/supwisdom/leaveschool/common/model/PagerResponseModel.java b/leaveschool/common/src/main/java/com/supwisdom/leaveschool/common/model/PagerResponseModel.java
index 548440a..3203d78 100644
--- a/leaveschool/common/src/main/java/com/supwisdom/leaveschool/common/model/PagerResponseModel.java
+++ b/leaveschool/common/src/main/java/com/supwisdom/leaveschool/common/model/PagerResponseModel.java
@@ -40,16 +40,16 @@
}
public static <T> PagerResponseModel<T> of(PagerRequestModel pagerRequestModel,Page<T> page) {
- PagerResponseModel<T> pagerResponseModell = new PagerResponseModel<T>();
- pagerResponseModell.setPageIndex(pagerRequestModel.getPageIndex());
- pagerResponseModell.setPageSize(pagerRequestModel.getPageSize());
- pagerResponseModell.setMapBean(pagerRequestModel.getMapBean());
- pagerResponseModell.setCurrentItemCount(page.getNumberOfElements());
- pagerResponseModell.setPageCount(page.getTotalPages());
- pagerResponseModell.setRecordCount(page.getTotalElements());
- pagerResponseModell.setItems(page.getContent());
+// PagerResponseModel<T> pagerResponseModell = new PagerResponseModel<T>();
+// pagerResponseModell.setPageIndex(pagerRequestModel.getPageIndex());
+// pagerResponseModell.setPageSize(pagerRequestModel.getPageSize());
+// pagerResponseModell.setMapBean(pagerRequestModel.getMapBean());
+// pagerResponseModell.setCurrentItemCount(page.getNumberOfElements());
+// pagerResponseModell.setPageCount(page.getTotalPages());
+// pagerResponseModell.setRecordCount(page.getTotalElements());
+// pagerResponseModell.setItems(page.getContent());
- return pagerResponseModell;
+ return new PagerResponseModel<T>(pagerRequestModel,page);
}
public static <T> PagerResponseModel<T> of(PagerRequestModel pagerRequestModel) {
diff --git a/leaveschool/common/src/main/java/com/supwisdom/leaveschool/common/repository/BaseJpaRepository.java b/leaveschool/common/src/main/java/com/supwisdom/leaveschool/common/repository/BaseJpaRepository.java
index e1e0531..2156e2f 100644
--- a/leaveschool/common/src/main/java/com/supwisdom/leaveschool/common/repository/BaseJpaRepository.java
+++ b/leaveschool/common/src/main/java/com/supwisdom/leaveschool/common/repository/BaseJpaRepository.java
@@ -62,5 +62,6 @@
return e;
}
-
+
+
}
diff --git a/leaveschool/common/src/main/java/com/supwisdom/leaveschool/common/repository/SimpleBaseDao.java b/leaveschool/common/src/main/java/com/supwisdom/leaveschool/common/repository/SimpleBaseDao.java
new file mode 100644
index 0000000..5c1ca00
--- /dev/null
+++ b/leaveschool/common/src/main/java/com/supwisdom/leaveschool/common/repository/SimpleBaseDao.java
@@ -0,0 +1,78 @@
+package com.supwisdom.leaveschool.common.repository;
+
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.Query;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Repository;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.supwisdom.leaveschool.common.model.PageModel;
+
+
+@Transactional
+@Repository
+public class SimpleBaseDao {
+
+ @Autowired
+ private EntityManager entityManager;
+
+
+
+
+ public EntityManager getEntityManager() {
+ return entityManager;
+ }
+
+ public <T> PageModel<T> getScrollSqlData(Class<T> entityType, int pageIndex,
+ int pageSize, String sql, Object... params) {
+ List<T> list = getScrollDataList(entityType, sql, pageIndex, pageSize, params);
+ int count = getCount(sql, params);
+ return new PageModel<T>(count,list,pageIndex,pageSize);
+ }
+
+ @SuppressWarnings("unchecked")
+ private <T> List<T> getScrollDataList(Class<T> entityType,String sql,int pageIndex,int pageSize,Object... params) {
+ try {
+ Query query = this.entityManager.createNativeQuery(sql);
+ if(pageIndex!=-1 && pageSize!=-1){
+ if(pageIndex<=1) pageIndex=1;
+ query.setFirstResult(pageSize*(pageIndex-1));
+ query.setMaxResults(pageSize);
+ }
+ setQueryParameter(query, params);
+ return query.getResultList();
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ public int getCount(String sql, Object... params) {
+ if(sql.toLowerCase().trim().startsWith("select")){
+ sql = "select count(*)" + sql.substring(sql.toLowerCase().indexOf("from"));
+ }else{
+ sql = "select count(*) " + sql;
+ }
+ Query query = this.entityManager.createNativeQuery(sql);
+ setQueryParameter(query, params);
+ Number count = (Number)query.getSingleResult();
+ return count.intValue();
+ }
+
+ /**
+ * 设置查询参数
+ * @param query 查询对象
+ * @param params 参数值
+ */
+ public static void setQueryParameter(Query query, Object... params){
+ if(params!=null&¶ms.length>0){
+ for(int i = 0; i < params.length ; i++){
+ query.setParameter(i+1, params[i]);
+ }
+ }
+ }
+}