銷幫幫數據處理工具

 

 

開發背景:

       公司CRM採購了銷幫幫的CRM系統,由於CRM系統不完善,導出功能不能滿足公司對數據進行分析的需求。每次整理數據,分析人員部門等各種情況,再有如果人員重名,銷幫幫不能區分出具體是誰,必須去根據人員或其他數據進行區分。

解決方案:

       由於銷幫幫數據的人員是有UserID的,而該UserID對應釘釘的UserID,所以可以根據釘釘提供的API接口輕鬆的判斷出人員部門、分公司等信息,不用關心人員重名的情況。

開發環境:

軟件使用C#+SQLSERVER進行開發。

使用教程:

       開始前先給大家看看軟件的整體界面。   

 

 

 

 

軟件主要包括清空今日數據,採集、數據分析、同步用戶信息、獲取數據 5部分功能。

創建並配置SQLServer數據庫

在安裝好的SQLServer服務器上,創建數據庫,數據庫名稱根據需要定義,此處我定義的數據庫名稱是xbb,如下圖的配置[1],正確配置數據庫連接

獲取銷幫幫的組織編碼和Token

根據銷幫幫提供的網址[https://dingtalk.xbongbong.com/apiSetting/detail.html]獲取對應的組織編碼和token.,如下圖配置[2]配置銷幫幫石藥使用的組織編碼和Token.

創建企業內部應用

在釘釘的【開發者後臺】創建企業內部應用。開放查詢部門、人員信息的權限即可。並配置對應的appkey/appsecret到下圖【3】處。

 

 

 

 

清空今日數據

開始採集前,如果今天的數據已經採集過,請點擊【清空今日數據】,會自動清空今天已經採集的數據,重新開始採集。

採集

點擊【開始】進行數據採集,採集的內容主要包括功能上勾選的數據。等待最下面的狀態欄採集後待處理數據變爲0條,則代表採集完成。

數據分析

採集後會把數據統計分配到一張表裏,點擊數據分析會自動根據採集到的數據創建表,並把數據插入到對應的表裏面。

同步用戶數據

同步用戶數據是爲了增量備份釘釘的所有的用戶信息。

獲取數據

點擊【獲取數據】按鈕,自動導出銷幫幫銷售機會、合同、跟進記錄等信息。

備註:如果哪天銷幫幫數據發生變化,可以在軟件的ExecSQL文件夾下修改對應的導出SQL語句,不用修改代碼。

 

 

 

 

 

軟件技能更新

dynamic關鍵字

第一次在開發中使用了dynamic關鍵字,通過對Json進行反序列化很好用。減少了很多Model的創建工作,也減少了以前通過正則表達式匹配的方式的工作量。

 

 

 

 

RichTextBox顏色問題

通過下面的語句修改當前顯示的文字做的顏色。

      rtbContent.SelectionColor = Color.Red;

rtbContent.SelectedText = msg+"\r\n";

爲了每天備份數據,所有的表都帶有年月日格式

爲了備份每天的數據,所有的表都帶上了年月日yyyyMMdd格式結尾。所有的查詢都是通過{Date}關鍵字,用今天的日期替換{Date}關鍵字後形成SQL查詢語句

分頁數據抓取規則

每次抓取分頁數據時,由於是異步的,不能馬上確定是否有下一頁的時候,尤其是抓取第一頁的時候,由於數據分類不同,以前都是根據不同的數據分頁設置一下隊列,然後依次從隊列中進行數據彈出、採集等。現在採用字典Dic<string,ConcurrencyQueye<int>> 可以通過統一的方法,設置不同的關鍵字插入分頁或者彈出分頁。

加密方法

以前的加密方法大多是md5/AES等加密方式,最近大多都在改成sha256,可能與統一的前端架構有關係把。

C#的sha256加密方式:

public static string sha256(string data)
        {
            byte[] bytes = Encoding.UTF8.GetBytes(data);
            byte[] hash = SHA256Managed.Create().ComputeHash(bytes);

            StringBuilder builder = new StringBuilder();
            for (int i = 0; i < hash.Length; i++)
            {
                builder.Append(hash[i].ToString("X2"));
            }
            return builder.ToString();
        }

 

數據庫處理(Dapper)

以前處理數據庫都是自己手動寫個簡單的DbHelper,由於用不到各種複雜的處理。所以還算夠用。

後來發現通過Dapper可以輕鬆實現數據的批量處理,而且總體來說效率還可以,畢竟寫的代碼少了,還是很高興的。

輕量級的ORM工具,我選Dapper.。但是ADO.NET原理不能忘。

NPOI導出Excel

NPOI依然是最好的處理Excel的工具

軟件開發思路

不再使用Model,正則表達式,把所有Json格式的數據通過,數據主鍵ID、列名、列值、數據類型 插入到一張表,通過統一的SQL創建插入規則把數據在統一插入到對應的表中,不需要提前知道表的列名。

自動創建、增加列。自動插入數據。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章