销帮帮数据处理工具
作者:互联网
开发背景:
公司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创建插入规则把数据在统一插入到对应的表中,不需要提前知道表的列名。
自动创建、增加列。自动插入数据。
标签:帮帮,插入,创建,数据库,采集,数据处理,工具,数据 来源: https://www.cnblogs.com/wenqingluomo/p/11881644.html