From f60f0853217f6d0df45d458b452a17b97e918bee Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 10 Apr 2024 21:02:13 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=E6=96=B0=E5=A2=9E=E9=80=82=E9=85=8D?= =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E5=85=AC=E4=BC=97=E5=8F=B7=E9=95=BF=E6=B2=99?= =?UTF-8?q?=E9=93=B6=E8=A1=8C=E6=94=AF=E4=BB=98=E5=AE=9D=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E5=8F=96=E5=87=BA=20#31?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main.js" | 49 +++++++++++++++++++ .../main.test.js" | 25 ++++++++++ ...7\344\273\230\345\217\226\345\207\272.txt" | 1 + 3 files changed, 75 insertions(+) create mode 100644 "src/rule/app/com.tencent.mm/\345\276\256\344\277\241\345\205\254\344\274\227\345\217\267\351\225\277\346\262\231\351\223\266\350\241\214/main.js" create mode 100644 "src/rule/app/com.tencent.mm/\345\276\256\344\277\241\345\205\254\344\274\227\345\217\267\351\225\277\346\262\231\351\223\266\350\241\214/main.test.js" create mode 100644 "src/rule/app/com.tencent.mm/\345\276\256\344\277\241\345\205\254\344\274\227\345\217\267\351\225\277\346\262\231\351\223\266\350\241\214/tests/\351\225\277\346\262\231\351\223\266\350\241\214\346\224\257\344\273\230\345\256\235\346\224\257\344\273\230\345\217\226\345\207\272.txt" diff --git "a/src/rule/app/com.tencent.mm/\345\276\256\344\277\241\345\205\254\344\274\227\345\217\267\351\225\277\346\262\231\351\223\266\350\241\214/main.js" "b/src/rule/app/com.tencent.mm/\345\276\256\344\277\241\345\205\254\344\274\227\345\217\267\351\225\277\346\262\231\351\223\266\350\241\214/main.js" new file mode 100644 index 0000000..62da8df --- /dev/null +++ "b/src/rule/app/com.tencent.mm/\345\276\256\344\277\241\345\205\254\344\274\227\345\217\267\351\225\277\346\262\231\351\223\266\350\241\214/main.js" @@ -0,0 +1,49 @@ +import { RuleObject } from "../../../../utils/RuleObject"; +import { BillType } from "../../../../utils/BillType"; +import { Currency } from "../../../../utils/Currency"; + + +export function get(data) { + data = JSON.parse(data); + let mapItem = data.mMap; + if (mapItem.source!=="长沙银行") return null; + if (mapItem.title==="交易成功提醒") { + let result = { + type: null, + money: 0, + fee: 0, + shopName: "", + shopItem: "", + accountNameFrom: "", + accountNameTo: "", + currency: null, + time: null, + channel:"长沙银行"+mapItem.title + }; + let text = mapItem.description; + let regex = /交易时间:(.*?)\n交易类型:(.*?)(个人账户:尾号(\d{4}))\n交易金额:人民币(.*?)元\n账户余额:.*?元\n交易说明:(.*)/; + let match = text.match(regex); + if (match) { + if (match[2].includes("支付取出")) { + result.type = BillType.Expend; + } + result.time = match[1]; + result.shopItem = match[5]; + result.money = parseFloat(match[4]); + result.accountNameFrom =`长沙银行(${match[3]})`; + result.currency = Currency['人民币']; + } + return new RuleObject( + result.type, + result.money, + result.shopName, + result.shopItem, + result.accountNameFrom, + result.accountNameTo, + result.fee, + result.currency, + result.time, + result.channel + ); + } +} \ No newline at end of file diff --git "a/src/rule/app/com.tencent.mm/\345\276\256\344\277\241\345\205\254\344\274\227\345\217\267\351\225\277\346\262\231\351\223\266\350\241\214/main.test.js" "b/src/rule/app/com.tencent.mm/\345\276\256\344\277\241\345\205\254\344\274\227\345\217\267\351\225\277\346\262\231\351\223\266\350\241\214/main.test.js" new file mode 100644 index 0000000..3cd9bfa --- /dev/null +++ "b/src/rule/app/com.tencent.mm/\345\276\256\344\277\241\345\205\254\344\274\227\345\217\267\351\225\277\346\262\231\351\223\266\350\241\214/main.test.js" @@ -0,0 +1,25 @@ +const { get } = require('./main'); +const fs = require('fs'); +const path = require('path'); + +test("长沙住房公积金每月汇缴", () => { + + const dataFilePath = path.join(__dirname, 'tests', '长沙银行支付宝支付取出.txt'); + // 使用readFileSync来同步读取文件内容 + const data = fs.readFileSync(dataFilePath, 'utf8') + + let result = get(data); + + expect(result).toEqual({ + type: 0, + money: 200, + fee: 0, + shopName: '', + shopItem: '中国电信股份有限公司全渠道运营中心-商品...', + accountNameFrom: '长沙银行(2754)', + accountNameTo: '', + currency: 'CNY', + time: "04月10日09:03", + channel: '长沙银行交易成功提醒' + }); +}) diff --git "a/src/rule/app/com.tencent.mm/\345\276\256\344\277\241\345\205\254\344\274\227\345\217\267\351\225\277\346\262\231\351\223\266\350\241\214/tests/\351\225\277\346\262\231\351\223\266\350\241\214\346\224\257\344\273\230\345\256\235\346\224\257\344\273\230\345\217\226\345\207\272.txt" "b/src/rule/app/com.tencent.mm/\345\276\256\344\277\241\345\205\254\344\274\227\345\217\267\351\225\277\346\262\231\351\223\266\350\241\214/tests/\351\225\277\346\262\231\351\223\266\350\241\214\346\224\257\344\273\230\345\256\235\346\224\257\344\273\230\345\217\226\345\207\272.txt" new file mode 100644 index 0000000..272b628 --- /dev/null +++ "b/src/rule/app/com.tencent.mm/\345\276\256\344\277\241\345\205\254\344\274\227\345\217\267\351\225\277\346\262\231\351\223\266\350\241\214/tests/\351\225\277\346\262\231\351\223\266\350\241\214\346\224\257\344\273\230\345\256\235\346\224\257\344\273\230\345\217\226\345\207\272.txt" @@ -0,0 +1 @@ + {"mMap":{"tableName":"AppMessage","description":"交易时间:04月10日09:03\n交易类型:支付宝支付取出(个人账户:尾号2754)\n交易金额:人民币200.00元\n账户余额:19,720.27元\n交易说明:中国电信股份有限公司全渠道运营中心-商品...","source":"长沙银行","arg":"msgId","type":5,"appId":"","msgId":60255,"title":"交易成功提醒"}} \ No newline at end of file