华夏信用卡电子账单读取

上码

public static List<TempBillModal> readBill(String mailContent) {
        List<TempBillModal> billList = new ArrayList<TempBillModal>();
        TempBillModal billModal = new TempBillModal();
        billModal.setBankname("华夏银行");

        Document document = Jsoup.parse(mailContent);
        //持卡人
        String cardUserString = document.select("span:containsOwn(尊敬的)").text();
        int zjd = cardUserString.indexOf("尊敬的") + "尊敬的".length();
        cardUserString = cardUserString.substring(zjd, cardUserString.length() - 1);
        System.out.println(cardUserString);
        billModal.setCarduser(cardUserString);
        
        //华夏信用卡对账单(
        Element dzdElement = document.select("b:containsOwn(华夏信用卡对账单()").first();
        System.out.println(dzdElement);
        //账单月份
        String statementMonth = dzdElement.text();
        statementMonth = statementMonth.substring(statementMonth.indexOf("年") + 1, statementMonth.indexOf("年") + 3);
        System.out.println("账单月份:"+statementMonth);
        billModal.setBillmonth(Integer.valueOf(statementMonth));
        //年份
        String statementYear = dzdElement.text().substring(dzdElement.text().indexOf("年") - 4, dzdElement.text().indexOf("年"));
        System.out.println("账单年份:"+statementYear);
        //账单日期
        dzdElement = dzdElement.parent().nextElementSibling().child(0);
        String statementDate = dzdElement.child(0).child(1).text();
        statementDate = statementDate.substring(statementDate.length() - 3, statementDate.length() - 1);
        statementDate = statementYear + '-' + statementMonth + '-' + statementDate;
        System.out.println("账单日期:"+statementDate);
        billModal.setBilldate(statementDate);
        //还款日
        String paymentDueDate = dzdElement.child(1).child(1).text();
        paymentDueDate = paymentDueDate.replaceAll("/", "-");
        System.out.println("还款日:" + paymentDueDate);
        billModal.setRepaydate(paymentDueDate);
        //信用额度
        String creditlimit = dzdElement.child(2).child(1).text().replaceAll(",", "");
        System.out.println("信用额度:" + creditlimit);
        BigDecimal creditLimitMoney = new BigDecimal(creditlimit);
        billModal.setCreditlimit(creditLimitMoney);
        //应还款额
        String currentAmountDue = dzdElement.child(4).child(1).text().replace("RMB:", "").replaceAll(",", "");
        System.out.println("应还款额:" + currentAmountDue);
        billModal.setNeddrepay(new BigDecimal(currentAmountDue));
        //最低还款额 
        String minAmountDue  = dzdElement.child(6).child(1).text().replace("RMB:", "").replaceAll(",", "");
        System.out.println("最低还款额:" + minAmountDue);
        billModal.setLowrepay(new BigDecimal(minAmountDue));
        
        //交易明细
        List<BillDetail> billDetailList = new ArrayList<BillDetail>();
        Element detailElements = document.select("b:contains(人民币交易明细 RMB Trans. Details)").last()
                .parent()
                .parent()
                .parent();
        detailElements.child(0).remove();
        detailElements.child(0).remove();
        Elements eleValues = detailElements.children();
        
        //信用卡号
        String cardlastnum = eleValues.get(0).child(4).text();
        System.out.println("信用卡号:"+cardlastnum);
        billModal.setCardlastnum(cardlastnum);

        for (Element item : eleValues) {
            BillDetail billDetail = new BillDetail();
            //交易日期
            String transDate = item.child(0).text();
            transDate = transDate.replaceAll("/","-");
            System.out.println("交易日期:" + transDate);
            billDetail.setTradedate(transDate);
            
            //交易说明
            String detail = item.child(2).text();
            System.out.println("交易摘要:" + detail);
            billDetail.setDetail(detail);
            
            //交易金额
            String amountStr = item.child(3).text()
                    .replaceAll(",", "");
            System.out.println("交易金额:" + amountStr);
            if(StringUtils.isEmpty(amountStr)){
                amountStr = "0";
            }
            billDetail.setMoney(new BigDecimal(amountStr));
            billDetailList.add(billDetail); 
        }
           
        billModal.setBillDetailList(billDetailList);
        billList.add(billModal);
        return billList;
    }

 

转载于:https://my.oschina.net/riaway/blog/687122

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值