Commit 66ce363d authored by yanzg's avatar yanzg

接口文档的支持

parent de659968
...@@ -80,6 +80,17 @@ public interface BaseDao { ...@@ -80,6 +80,17 @@ public interface BaseDao {
*/ */
<T extends Object> PageSizeData<T> loadPage(PageSizeReqVo model, Class<T> resultClass); <T extends Object> PageSizeData<T> loadPage(PageSizeReqVo model, Class<T> resultClass);
/**
* 加载分页数据
*
* @param pageReq 分页数据信息
* @param model 加载数据的请求参数,可以是主键字符串(Int),或者是包含主键的实体,或者是包含其他非主键的实体完全匹配.
* @param resultClass 需要加载的数据的类型
* @param <T> 返回数据的类型
* @return 需要返回的数据
*/
<T extends Object> PageSizeData<T> loadPage(PageSizeReqVo pageReq, Object model, Class<T> resultClass);
/** /**
* 修改数据 * 修改数据
* *
......
...@@ -356,6 +356,21 @@ public abstract class BaseDaoImpl extends BaseDaoSql implements BaseDao { ...@@ -356,6 +356,21 @@ public abstract class BaseDaoImpl extends BaseDaoSql implements BaseDao {
return from; return from;
} }
private <T extends Object> void checkLoadResult(T toItem, List<T> tos) {
// 判断来源主键是否存在,不存在则获取加载后的主键
if (toItem != null) {
String key = this.getKeyString(toItem);
check(DaoConst.OPERATOR_TYPE_LOAD, key, toItem);
}
if (tos != null) {
for (T item : tos) {
String key = this.getKeyString(item);
check(DaoConst.OPERATOR_TYPE_LOAD, key, item);
}
}
}
/** /**
* 加载数据 * 加载数据
* *
...@@ -372,15 +387,11 @@ public abstract class BaseDaoImpl extends BaseDaoSql implements BaseDao { ...@@ -372,15 +387,11 @@ public abstract class BaseDaoImpl extends BaseDaoSql implements BaseDao {
// 通过传入数据进行加载 // 通过传入数据进行加载
T to = this.queryFirst(resultClass, DaoConst.LOAD, from); T to = this.queryFirst(resultClass, DaoConst.LOAD, from);
if (to == null) { if (to == null) {
return to; return null;
} }
// 判断来源主键是否存在,不存在则获取加载后的主键 // 判断来源主键是否存在,不存在则获取加载后的主键
if (StringHelper.isEmpty(key)) { checkLoadResult(to, null);
key = this.getKeyString(to);
}
check(DaoConst.OPERATOR_TYPE_LOAD, key, to);
return to; return to;
} }
...@@ -397,14 +408,8 @@ public abstract class BaseDaoImpl extends BaseDaoSql implements BaseDao { ...@@ -397,14 +408,8 @@ public abstract class BaseDaoImpl extends BaseDaoSql implements BaseDao {
@Override @Override
public <T extends Object> List<T> loadList(Object model, Class<T> resultClass) { public <T extends Object> List<T> loadList(Object model, Class<T> resultClass) {
// 获取来源主键 // 获取来源主键
Object from = model; String key = this.getInputKey(model);
String key = this.getInputKey(from); Object from = this.getLoadFrom(model);
// 当主键存在时,只通过主键加载
if (!StringHelper.isEmpty(key)) {
from = new HashMap<String, Object>(DaoConst.COLLECTION_INIT_SIZE);
this.setKeyString(from, key);
}
// 通过传入数据进行加载 // 通过传入数据进行加载
List<T> to = this.query(resultClass, DaoConst.LOAD, from); List<T> to = this.query(resultClass, DaoConst.LOAD, from);
...@@ -412,15 +417,7 @@ public abstract class BaseDaoImpl extends BaseDaoSql implements BaseDao { ...@@ -412,15 +417,7 @@ public abstract class BaseDaoImpl extends BaseDaoSql implements BaseDao {
return new ArrayList<>(); return new ArrayList<>();
} }
// 判断来源主键是否存在,不存在则获取加载后的主键 checkLoadResult(null, to);
if (StringHelper.isEmpty(key)) {
check(DaoConst.OPERATOR_TYPE_LOAD, key, to);
} else {
for (Object item : to) {
key = this.getKeyString(item);
check(DaoConst.OPERATOR_TYPE_LOAD, key, to);
}
}
return to; return to;
} }
...@@ -436,31 +433,31 @@ public abstract class BaseDaoImpl extends BaseDaoSql implements BaseDao { ...@@ -436,31 +433,31 @@ public abstract class BaseDaoImpl extends BaseDaoSql implements BaseDao {
*/ */
@Override @Override
public <T extends Object> PageSizeData<T> loadPage(PageSizeReqVo model, Class<T> resultClass) { public <T extends Object> PageSizeData<T> loadPage(PageSizeReqVo model, Class<T> resultClass) {
// 获取来源主键 return this.loadPage(model, model, resultClass);
Object from = model;
String key = this.getInputKey(from);
// 当主键存在时,只通过主键加载
if (!StringHelper.isEmpty(key)) {
from = new HashMap<String, Object>(DaoConst.COLLECTION_INIT_SIZE);
this.setKeyString(from, key);
} }
/**
* 加载分页数据
*
* @param model 加载数据的请求参数
* @param resultClass 需要加载的数据的类型
* @param <T> 返回数据的类型
* @return 需要返回的数据
*/
@Override
public <T extends Object> PageSizeData<T> loadPage(PageSizeReqVo pageReq, Object model, Class<T> resultClass) {
// 获取来源主键
String key = this.getInputKey(model);
Object from = this.getLoadFrom(model);
// 通过传入数据进行加载 // 通过传入数据进行加载
PageSizeData<T> to = this.queryPage(resultClass, model, DaoConst.LOAD, from); PageSizeData<T> to = this.queryPage(resultClass, pageReq, DaoConst.LOAD, from);
if (to == null || to.getPageTotal() == 0) { if (to == null || to.getPageTotal() == 0) {
return to; return to;
} }
// 判断来源主键是否存在,不存在则获取加载后的主键 // 判断来源主键是否存在,不存在则获取加载后的主键
if (StringHelper.isEmpty(key)) { checkLoadResult(null, to.getList());
check(DaoConst.OPERATOR_TYPE_LOAD, key, to);
} else {
for (Object item : to.getList()) {
key = this.getKeyString(item);
check(DaoConst.OPERATOR_TYPE_LOAD, key, to);
}
}
return to; return to;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment