销帮帮数据处理工具开发说明
优采云 发布时间: 2020-08-17 01:26销帮帮数据处理工具开发说明
目录
开发背景:
公司CRM采购了销帮帮的CRM系统,由于CRM系统不健全,导出功能不能满足公司对数据进行剖析的需求。每次整理数据,分析人员部门等各类情况,再有假如人员重名,销帮帮不能分辨出具体是谁,必须去依据人员或其他数据进行分辨。
解决方案:
由于销帮帮数据的人员是有UserID的,而该UserID对应钉钉的UserID,所以可以按照钉钉提供的API接口轻松的判别出人员部门、分公司等信息,不用关心人员重名的情况。
开发环境:
软件使用C#+SQLSERVER进行开发。
使用教程:
开始前先给你们瞧瞧软件的整体界面。
软件主要包括清空明日数据,采集、数据剖析、同步用户信息、获取数据 5部份功能。
创建并配置SQLServer数据库
在安装好的SQLServer服务器上,创建数据库,数据库名称按照须要定义,此处我定义的数据库名称是xbb,如下图的配置[1],正确配置数据库联接
获取销帮帮的组织编码和Token
根据销帮帮提供的网址[]获取对应的组织编码和token.,如下图配置[2]配置销帮帮石药使用的组织编码和Token.
创建企业内部应用
在钉钉的【开发者后台】创建企业内部应用。开放查询部门、人员信息的权限即可。并配置对应的a*敏*感*词*ey/appsecret到右图【3】处。
清空明日数据
开始采集前,如果明天的数据早已采集过,请点击【清空明日数据】,会手动清空明天早已采集的数据,重新开始采集。
采集
点击【开始】进行数据采集,采集的内容主要包括功能上勾选的数据。等待最下边的状态栏采集后待处理数据变为0条,则代表采集完成。
数据剖析
采集后会把数据统计分配到一张表里,点击数据剖析会手动依据采集到的数据创建表,并把数据插入到对应的表上面。
同步用户数据
同步用户数据是为了增量备份钉钉的所有的用户信息。
获取数据
点击【获取数据】按钮,自动导入销帮帮销售机会、合同、跟进记录等信息。
备注:如果哪天销帮帮数据发生变化,可以在软件的ExecSQL文件夹下更改对应的导入SQL句子,不用更改代码。
软件技能更新
第一次在开发中使用了dynamic关键字,通过对Json进行反序列化挺好用。减少了好多Model的创建工作,也降低了先前通过正则表达式匹配的方法的工作量。
通过下边的句子更改当前显示的文字做的颜色。
rtbContent.SelectionColor = Color.Red;
rtbContent.SelectedText = msg+"\r\n";
为了备份每晚的数据,所有的表都带上了年月日yyyyMMdd格式结尾。所有的查询都是通过{Date}关键字,用明天的日期替换{Date}关键字后产生SQL查询句子
每次抓取分页数据时,由于是异步的,不能马上确定是否有下一页的时侯,尤其是抓取第一页的时侯,由于数据分类不同,以前都是按照不同的数据分页设置一下队列,然后依次从队列中进行数据弹出、采集等。现在采用字典Dic> 可以通过统一的方式,设置不同的关键字插入分页或则弹出分页。
以前的加密方式大多是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();
}
以前处理数据库都是自己自动写个简单的DbHelper,由于用不到各类复杂的处理。所以还算够用。
后来发觉通过Dapper可以轻松实现数据的批量处理,而且总体来说效率还可以,毕竟写的代码少了,还是很高兴的。
轻量级的ORM工具,我选Dapper.。但是ADO.NET原理不能忘。
NPOI仍然是最好的处理Excel的工具
不再使用Model,正则表达式,把所有Json格式的数据通过,数据字段ID、列名、列值、数据类型 插入到一张表,通过统一的SQL创建插入规则把数据在统一插入到对应的表中,不需要提早晓得表的列名。
自动创建、增加列。自动插入数据。