销帮帮数据处理工具

 

 

开发背景:

       公司CRM采购了销帮帮的CRM系统,因为CRM系统不完善,导出功能不能知足公司对数据进行分析的需求。每次整理数据,分析人员部门等各类状况,再有若是人员重名,销帮帮不能区分出具体是谁,必须去根据人员或其余数据进行区分。html

解决方案:

       因为销帮帮数据的人员是有UserID的,而该UserID对应钉钉的UserID,因此能够根据钉钉提供的API接口轻松的判断出人员部门、分公司等信息,不用关心人员重名的状况。前端

开发环境:

软件使用C#+SQLSERVER进行开发。正则表达式

使用教程:

       开始前先给你们看看软件的总体界面。   数据库

 

 

 

 

软件主要包括清空今日数据,采集、数据分析、同步用户信息、获取数据 5部分功能。api

建立并配置SQLServer数据库

在安装好的SQLServer服务器上,建立数据库,数据库名称根据须要定义,此处我定义的数据库名称是xbb,以下图的配置[1],正确配置数据库链接服务器

获取销帮帮的组织编码和Token

根据销帮帮提供的网址[https://dingtalk.xbongbong.com/apiSetting/detail.html]获取对应的组织编码和token.,以下图配置[2]配置销帮帮石药使用的组织编码和Token.架构

建立企业内部应用

在钉钉的【开发者后台】建立企业内部应用。开放查询部门、人员信息的权限便可。并配置对应的appkey/appsecret到下图【3】处。app

 

 

 

 

清空今日数据

开始采集前,若是今天的数据已经采集过,请点击【清空今日数据】,会自动清空今天已经采集的数据,从新开始采集。异步

采集

点击【开始】进行数据采集,采集的内容主要包括功能上勾选的数据。等待最下面的状态栏采集后待处理数据变为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建立插入规则把数据在统一插入到对应的表中,不须要提早知道表的列名。

自动建立、增长列。自动插入数据。

相关文章
相关标签/搜索