兴业银行电子账单读取

/**
 * 兴业银行
 * Created by LYH on 2015/8/27.
 */
public class XingYeBankBill {
    public static String temp_credit_en="Credit Limit(RMB)";
    public static String temp_crash = "预借现金额度(人民币)";
    public static String temp_crash_en = "Cash Advance Limit(RMB)";
    public static String temp_payment_date = "Payment Due Date ";
    public static String temp_newbalance = "本期应还款总额";
    public static String temp_newbalance_en = "New Balance RMB ";
    public static String temp_mini_paymen ="本期最低还款额";
    public static String temp_mini_pay_en = "Minimum Payment RMB ";
    public static List readBill(String mailContent){
        //public static List readBill(Document document){
        List tempBillModalList = new ArrayList();
        TempBillModal billModal = new TempBillModal();
        tempBillModalList.add(billModal);
        Document document = Jsoup.parse(mailContent);
        //设置银行名称
        billModal.setBankname("兴业银行");
        //持卡人
        String cardUserStr = document.select("td:containsOwn(尊敬的 )").first().text();
        cardUserStr = cardUserStr.replace("尊敬的 ","").replace(" 您好!","");
        billModal.setCarduser(cardUserStr);
        System.out.println("持卡人:"+cardUserStr);
        //账单月份
        Element billMonthElement = document.select("td:containsOwn(感谢您选择兴业银行)").first();
        String billMonthDateStr = billMonthElement.select("b:containsOwn(年)").first().text();
        //每月的7号为账单日
        String billDateStr = billMonthDateStr.replaceAll("年","-").replaceAll("月","-")+"07";
        billMonthDateStr = billMonthDateStr.substring(billMonthDateStr.indexOf("年")+1,billMonthDateStr.indexOf("月"));
        if(billMonthDateStr.trim().indexOf("0")==0){
            billMonthDateStr = billMonthDateStr.substring(1,billMonthDateStr.length());
        }
        billModal.setBillmonth(Integer.parseInt(billMonthDateStr));
        System.out.println("账单月份:"+billMonthDateStr);
        //卡号后四位
        String cardLastNumStr = billMonthElement.select("b:containsOwn(卡号末四位)").text();
        cardLastNumStr = cardLastNumStr.substring(cardLastNumStr.indexOf("卡号末四位")+6,cardLastNumStr.indexOf(")"));
        billModal.setCardlastnum(cardLastNumStr);
        System.out.println("卡号后四位:"+cardLastNumStr);
        //账单日 账单周期 Statement Cycle 2015/07/06-2015/08/05 
信用额度(人民币) Credit Limit(RMB) 32,000
预借现金额度(人民币) Cash Advance Limit(RMB) 16,000 Element billElement = document.select("td:containsOwn(账单周期)") .first(); /* String billDateStr = billElement//td .child(2)//td span .text(); // billDateStr = billElement.select("font:containsOwn"); billDateStr = billDateStr.replaceAll("/","-");*/ billModal.setBilldate(billDateStr); System.out.println("账单日期:"+billDateStr); String billStr = billElement.text(); //信用额度 String creditLimitStr = billStr.substring(billStr.indexOf(temp_credit_en)+temp_credit_en.length(), billStr.indexOf(temp_crash)).trim(); creditLimitStr = creditLimitStr.replaceAll(",",""); billModal.setCreditlimit(new BigDecimal(creditLimitStr)); System.out.println("信用额度:"+creditLimitStr.trim()); //取现额度 String crashLimitStr = billStr.substring(billStr.indexOf(temp_crash_en)+temp_crash_en.length()).trim(); crashLimitStr = crashLimitStr.replaceAll(",",""); billModal.setCrashlimit(new BigDecimal(creditLimitStr)); System.out.println("取现额度:"+ crashLimitStr); //还款日 Element payElement = document.select("font:containsOwn(到期还款日)").first().parent(); String payStr = payElement.text(); String dayPayStr = payStr.substring(payStr.indexOf(temp_payment_date)+temp_payment_date.length(), payStr.indexOf(temp_newbalance)); dayPayStr = dayPayStr.replace("年","-").replace("月", "-").replace("日","").trim(); billModal.setRepaydate(dayPayStr); System.out.println("还款日:"+dayPayStr); //需要还款 String needPayStr = payStr.substring(payStr.indexOf(temp_newbalance_en)+temp_newbalance_en.length(), payStr.indexOf(temp_mini_paymen)).trim(); needPayStr = needPayStr.replaceAll(",",""); billModal.setNeddrepay(new BigDecimal(needPayStr)); System.out.println("需要还款:"+needPayStr); //最低还款 String lowPayStr = payStr.substring(payStr.indexOf(temp_mini_pay_en)+temp_mini_pay_en.length()); lowPayStr = lowPayStr.replaceAll(",",""); billModal.setLowrepay(new BigDecimal(lowPayStr)); System.out.println("最低还款:" + lowPayStr); billModal.setBillDetailList(new ArrayList()); //交易明细 System.out.println("-----------------下面是交易明细------------------"); Element tradeElement = document.select("td:containsOwn(交易摘要)").first() .parent()//tr .parent();//tobdy Elements tradeChilds = tradeElement.children(); for(int i=1;i2){//默认一行的提示直接跳过 BillDetail billDetail = new BillDetail(); billModal.getBillDetailList().add(billDetail); String tradDateStr = trade.child(0).text(); String tradeDetail = trade.child(2).text(); String tradeMoney = trade.child(4).text().replaceAll(",",""); billDetail.setMoney(new BigDecimal(tradeMoney)); billDetail.setTradedate(tradDateStr); billDetail.setDetail(tradeDetail); System.out.println("交易日期:" + tradDateStr); System.out.println("交易类型:" +tradeDetail); System.out.println("交易金额:"+tradeMoney); }else{ continue; } } return tempBillModalList; } public static void main(String[] args) { try { Document document = Jsoup.connect("http://127.0.0.1/card/xingye2.html").get(); XingYeBankBill.readBill(document.outerHtml()); } catch (IOException e) { e.printStackTrace(); } } }

 

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

你可能感兴趣的:(兴业银行电子账单读取)