电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

交易明细分页查询实现及交易明细主键设置

来源:金蝶云社区作者:金蝶2024-09-2214

交易明细分页查询实现及交易明细主键设置

# 一、交易明细分页 AbstractDetailImpl抽象交易明细分页查询流程: ```java @Override public EBBankDetailResponse doBiz(BankDetailRequest request) { EBBankDetailResponse response; if(isSupportPage()){ response = doBizWithPage(request); }else{ response = process(request); } return response; } public EBBankDetailResponse doBizWithPage(BankDetailRequest request) { List<DetailInfo> detailList = new ArrayList<>(16); setCurrentPage("0"); setLastPage(false); try{ do{ EBBankDetailResponse response = process(request); //解析数据 detailList.addAll(response.getDetails()); }while(isLastPage()); return new EBBankDetailResponse(detailList); }catch(Exception e){ throw EBExceiptionUtil.serviceException(e); } } // 是否支持分页查询 public boolean isSupportPage(){ return false; } ``` 在银行插件查询明细实现类中,编写打包和解析报文的方法,同时将isSupportPage()进行重写,返回值改为true就能够支持分页查询,在对响应报文解析时,注意设置下一页或者最后一页。 开发样例(历史明细): ```java private void processPageTag(String responseStr){ int pagetag = Integer.parseInt(getCurrentPage()); String encoding = RequestContextUtils.getCharset(); Element root = JDomUtils.string2Root(responseStr, encoding); Element Body = root.getChild("Body"); if((Body.getChildTextTrim("RecordNumber")).length() <= 0 || Body.getChildTextTrim("RecordNumber") == null){ setLastPage(true); } int turnPageShowNum = 100; int turnPageTotalNum = Integer.parseInt(Body.getChildTextTrim("RecordNumber")); if((pagetag - 1 + turnPageShowNum) >= turnPageTotalNum){ setLastPage(true); }else{ setCurrentPage(pagetag + 100); setLastPage(false); } } // 是否支持分页查询 @Override public boolean isSupportPage(){ return true; } @Override public EBBankDetailResponse hisDetail(BankDetailRequest request) { return doBiz(request); } ``` 分页查询使用到的接口如下: |接口名称|说明| |-|-| |setCurrentPage|设置下次查询明细的起始页码或序号| |getCurrentPage| 获取查询明细的起始页码或序号| |setLastPage| 设置是否为最后一页| |isLastPage| 读取是否为最后一页| |pack| 银行请求报文打包| |parse |银行响应报文解析| |isSupportPage| 声明当前接口能否支持分页查询| # 二、交易明细主键设置 交易明细主键设置,能够提高从银行拉取数据与数据库中记录匹配的效率,也能实现交易明细的防重。 1、 与银行方沟通,哪些字段能唯一标识一笔交易明细,一般为交易账号,交易日期,流水号。 2、 在对应银行的MetaDataImpl类里,重写getDetailUniqueRule()方法,设置组件组成的规则。 ```java public class MocTestMetaDataImpl extends FBEMetaDataTemplate implements BankMetaDataCollector { /** * 设置交易明细唯一主键,需

交易明细分页查询实现及交易明细主键设置

# 一、交易明细分页AbstractDetailImpl抽象交易明细分页查询流程:```java@Override public EBBankDetailResponse doBiz(BankDet...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信