Commit 55123585 by s_guodong

分页

parent d0fc1a35
......@@ -9,6 +9,8 @@ import com.brilliance.mda.runtime.mda.impl.*;
import com.brilliance.mda.runtime.annotation.*;
import com.brilliance.mda.runtime.mda.driver.*;
import static com.brilliance.mda.runtime.mda.Constants.*;
import com.brilliance.mda.runtime.request.BaseVO;
import com.fasterxml.jackson.annotation.*;
import com.brilliance.mda.runtime.mda.util.*;
import lombok.Getter;
......@@ -686,7 +688,9 @@ public class Comsel extends AbstractTransaction{
@Rule(target="accsel",order=100)
public boolean ruleAccselN100(){
IContext ctx = MdaEnv.getContext();
BaseVO baseVO = ctx.getVo();
int pageNum = baseVO.getPageNum();
int pageSize = baseVO.getPageSize();
ctx.getErrorCode();
MdaUtils.clear(this.getActlst());
......@@ -694,11 +698,11 @@ public class Comsel extends AbstractTransaction{
String cur = this.getCur();
if(MdaUtils.isEmpty(cur))
{
ctx.getDaoSession().dbReadset(this.getActlst(),new CacheOption(0, true),new Argument<String>("ptyinr",ptyinr));
ctx.getDaoSession().dbReadset(this.getActlst(),new CacheOption(pageNum, pageSize),new Argument<String>("ptyinr",ptyinr));
}
else
ctx.getDaoSession().dbReadset(this.getActlst(),new CacheOption(0, true),new Argument<String>("cur",cur),new Argument<String>("ptyinr",ptyinr));
ctx.getDaoSession().dbReadset(this.getActlst(),new CacheOption(pageNum, pageSize),new Argument<String>("cur",cur),new Argument<String>("ptyinr",ptyinr));
if(ctx.getErrorCode()!= NO_ERROR)
{
ctx.setMessage(MdaUtils.getI18NString("comsel","CT000070"),MdaUtils.getI18NString("comsel","CT000071"));
......
......@@ -42,6 +42,12 @@
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
</dependency>
<!--pageHelper-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.5</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
......@@ -9,6 +9,7 @@ import com.brilliance.mda.runtime.mda.impl.ModuleList;
import com.brilliance.mda.runtime.mda.util.MdaUtils;
import com.brilliance.mda.support.mybatis.count.CounterService;
import com.brilliance.mda.support.mybatis.dync.mapper.DbExecuteMapper;
import com.github.pagehelper.PageHelper;
import org.mybatis.spring.SqlSessionTemplate;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -159,36 +160,42 @@ public class MyBatisDaoSession extends AbstractDaoSession implements IDaoSession
return entity;
}
@Override
public <T extends IModule> int dbReadset(IModuleList<T> list, int limitSize, Argument... args) {
String moduleDB = MdaUtils.getModuleListDB(list);
DynamicDataSourceContextHolder.setDataSourceType(moduleDB);
list.clear();
MybatisArgumentAdapter adapter = new MybatisArgumentAdapter(SELECT, list.getDataClass(), args);
String temp = adapter.getSqlTemplate();
Map<String, Object> params = adapter.getSqlParams();
if (limitSize == 0) {
List<T> resultList = this.dyncRead(list.getDataClass(), params);
list.addAll(resultList);
} else {
//TODO 实现分页查询
// Page<T> page = new Page<>(1,limitSize);
// IPage<T> pageData = baseMapper.selectPage(page, wrapper);
// list.addAll(pageData.getRecords());
}
return list.size();
}
@Override
public <T extends IModule> int dbReadset(ModuleList<T> list, CacheOption cacheOption, Argument... args) {
return dbReadset(list, args);
if (cacheOption != null) {
PageHelper.startPage(cacheOption.getPageNum(), cacheOption.getPageSize());
}
int size = dbReadset(list, args);
if (cacheOption != null) {
PageHelper.clearPage();
}
return size;
}
@Override
public <T extends IModule> int dbReadset(IModuleList<T>[] lists, CacheOption cacheOption, String whereSql, Object[] param) {
return dbReadset(lists, 0, whereSql, param);
String moduleDB = MdaUtils.getModuleListsDB(lists);
DynamicDataSourceContextHolder.setDataSourceType(moduleDB);
if (cacheOption != null) {
PageHelper.startPage(cacheOption.getPageNum(), cacheOption.getPageSize());
}
List<Class<? extends IModule>> clazzList = new ArrayList<>();
for (IModuleList iModule : lists) {
clazzList.add(iModule.getDataClass());
}
MybatisArgumentAdapter adapter = new MybatisArgumentAdapter(SELECT, clazzList, whereSql, param);
for (IModuleList iModule : lists) {
List<T> result = this.dyncRead(iModule.getDataClass(), adapter);
iModule.addAll(result);
}
if (cacheOption != null) {
PageHelper.clearPage();
}
return lists[0].size();
}
@Override
......@@ -197,7 +204,9 @@ public class MyBatisDaoSession extends AbstractDaoSession implements IDaoSession
DynamicDataSourceContextHolder.setDataSourceType(moduleDB);
list.clear();
this.dbReadset(list, 0, args);
MybatisArgumentAdapter adapter = new MybatisArgumentAdapter(SELECT, list.getDataClass(), args);
List<T> result = this.dyncRead(list.getDataClass(), adapter);
list.addAll(result);
return list.size();
}
......@@ -264,22 +273,6 @@ public class MyBatisDaoSession extends AbstractDaoSession implements IDaoSession
return dbReadset(list, whereSql, param.toArray());
}
@Override
public <T extends IModule> int dbReadset(IModuleList<T>[] lists, int maxSize, String whereClause, Object[] datas) {
String moduleDB = MdaUtils.getModuleListsDB(lists);
DynamicDataSourceContextHolder.setDataSourceType(moduleDB);
List<Class<? extends IModule>> clazzList = new ArrayList<>();
for (IModuleList iModule : lists) {
clazzList.add(iModule.getDataClass());
}
MybatisArgumentAdapter adapter = new MybatisArgumentAdapter(SELECT, clazzList, whereClause, datas);
for (IModuleList iModule : lists) {
List<T> result = this.dyncRead(iModule.getDataClass(), adapter);
iModule.addAll(result);
}
return lists[0].size();
}
@Override
public void dbReadset(IModuleList[] lists, String whereClause, Object[] datas) {
......
package com.brilliance.mda.runtime.mda;
import java.net.InetAddress;
/**
* @Description
* @Author s_guodong
* @Date 2023/6/5
*/
public class CacheOption
{
public class CacheOption {
public long cacheTimeout;
public boolean paging;
private int pageNum = 1;
private int pageSize = 10;
public CacheOption(long cacheTimeout) {
this(cacheTimeout, false);
}
......@@ -26,4 +27,25 @@ public class CacheOption
this.cacheTimeout = cacheTimeout;
this.paging = paging;
}
public CacheOption(int pageNum, int pageSize) {
this.pageNum = pageNum;
this.pageSize = pageSize;
}
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;
}
}
......@@ -21,8 +21,6 @@ public interface IDaoSession {
<T extends IModule> int dbDelete(T module, Argument... args);
@SuppressWarnings("rawtypes")
<T extends IModule> int dbReadset(IModuleList<T> list, Argument... args);
@SuppressWarnings("rawtypes")
<T extends IModule> int dbReadset(IModuleList<T> list,int limitSize, Argument... args);
<T extends IModule> int dbReadset(ModuleList<T> list, CacheOption cacheOption, Argument... args);
......@@ -33,7 +31,6 @@ public interface IDaoSession {
<T extends IModule> int dbReadset(IModuleList<T> list, String whereSql,Object[] params);
<T extends IModule> int dbReadset(IModuleList<T> list, String whereSql,String... params);
<T extends IModule> int dbReadset(IModuleList<T>[] lists, int maxSize, String whereClause, Object[] datas);
void dbReadset(IModuleList[] lists, String whereClause, Object[] datas);
......
......@@ -9,6 +9,10 @@ public class BaseVO {
protected List<Map<String, Object>> changes;
protected int pageNum;
protected int pageSize;
public Map<String, Object> getParams() {
return params;
}
......@@ -32,4 +36,20 @@ public class BaseVO {
public void setPageId(String pageId) {
this.pageId = pageId;
}
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;
}
}
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