1. 程式人生 > >銀行與電商資料傳輸專案-需求分析

銀行與電商資料傳輸專案-需求分析

專案背景

 

   A銀行與A電商合作推出一新型別的信用卡,這種卡一般叫聯名卡。為什麼叫聯名卡呢,其實就是銀行與其它機構聯名發行的信用卡,卡面上有銀行的標誌也有第三方機構的標誌,如果是航空聯名卡,卡面上一般還有你在航空公司的會員號。套用我們佳姐的說法,這也是一種引流與吸粉的手段。對於銀行來說你來辦信用卡,辦完就是某電商的會員了,還有折扣,是不是很心動;對於電商來說更樂意了,把銀行的真實客戶引流到電商,這是一件互惠互利的事情。

 

需求概述

 

客戶在申請信用卡時,會選擇帶有A電商型別的卡面。需要將該部分資料每日篩選出來。依據電商系統要求,將資料同步到電商。

 

流程看起來是這樣子的:

我們要做的事情也就是紫色的4步:

 

1、篩選信用卡資料要求:

  • 只需要卡面為A電商的的資料

  • 資料要包含卡號以及客戶手機號

  • 客戶首次申請信用卡、手機號發生變化、信用卡登出三種情況,才將資料送電商。首次標誌位A,變化為U,登出標誌為D

2、將資料送電商

  • 採用HTTP形式將資料傳送電商

  • 電商每次接收的資料只能50筆

  • 考慮到資料安全性,需要對資料簽名

3、電商處理結果也有三種情況

  • 處理成功

  • 處理失敗,業務依據失敗原因線下處理

  • 處理未名,與電商聯絡,確認是否重發

4、將資料以報表形式呈現

  •   每日的形式顯示當日總共傳輸了多少資料,多少成功,多少失敗,多少未名

  • 點選彙總資料,能看到每一筆的明細,其中未名的可以勾選重新傳輸


總體設計

 

1、首先我們需要設計一排程執行緒,將資料篩選與資料傳送串起來

 

 

2、接收通知我們計劃採取輪詢方式,每5分鐘輪詢一次資料庫,如果輪詢到傳送通知則啟動傳送主執行緒

 

3、傳送主執行緒主要做兩件事:

  •  將通知標記為已受理(否則第二次輪詢又啟動了,這也叫防重。防重這個意識在銀行IT領域特別重要)

  • 依據任務型別啟動傳送執行緒

     

4、傳送執行緒

1、資料庫把資料篩選出來,50筆作為一個JSON LIST送給電商

2、解析電商返回結果,並將結果插入資料庫

3、所有資料傳送完畢後,將通知標記為已完成

 

今天先分析到這裡,給大家留2個問題吧

1、從一張有1024筆資料的表中,怎麼每次篩選50筆資料,並保證資料不重複不遺漏(嘿嘿,有篇文章講過哦)

2、為什麼解析電商返回結果後是將資料插入資料庫,而不是將結果更新資料庫呢?