Files
lserp_cs_6.0/其他程序/朗速同步企业微信/PostToWX/Form1.cs
T
cyf ab56a9bcf7 基线 SVN r240
SVN-Revision: r240
2025-02-06 06:46:06 +00:00

1233 lines
46 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Lskj.Model;
using Lskj.Core;
using Lskj.Business.Impl;
using Lskj.Util;
using Lskj.Control;
using Lskj.Data;
using System.Net;
using System.Data.SqlClient;
using System.IO;
using System.Runtime.InteropServices;
namespace PostToWX
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
//DBConfig.Instance.CreateConnection();
access_Token = GetAccessToken(corpid, corpsecret);
txtServerName.Text = IniReadValue(company, "serverName");
txtDBName.Text = IniReadValue(company, "dbName");
txtUser.Text = IniReadValue(company, "user");
txtPassword.Text = IniReadValue(company, "password");
textBox6.Text = IniReadValue(company, "interval");
if (string.IsNullOrEmpty(textBox6.Text)) textBox6.Text = "30";
textBox6.LostFocus += new EventHandler(textBox6_LostFocus);
}
bool isExecing = false;
/// <summary>
/// 公司id
/// </summary>
string corpid = "wwe9e9606de71c3a34";
/// <summary>
/// 公司密匙
/// </summary>
string corpsecret = "J-oM3Hh5XisrKVkPcxuRD4JJXeF6895g3Rfcdnmz9rE";
/// <summary>
/// 接口登录凭证
/// </summary>
string access_Token;
/// <summary>
/// Log文件夹目录
/// </summary>
string folderPath;
/// <summary>
/// 日志文件目录
/// </summary>
string filePath;
/// <summary>
/// ini文件目录
/// </summary>
string Path = System.IO.Directory.GetCurrentDirectory() + "\\"+"Setting.ini";
/// <summary>
/// ini文件内段落名
/// </summary>
string company = "同步工具";
/// <summary>
/// 初始时间间隔
/// </summary>
int min = 10;
/// <summary>
/// 获取Access_Token
/// </summary>
/// <param name="corpid"></param>
/// <param name="corpsecret"></param>
/// <returns></returns>
public string GetAccessToken(string corpid, string corpsecret)
{
string url = string.Format("https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={0}&corpsecret={1}", corpid, corpsecret);
AccessResponseMode json = GetUtil.GetJson<AccessResponseMode>(url);
if (json.errcode != 0)
{
string str = "更新Access_Token时失败" + "(" + errorMsg(json.errcode) + ")";
textBox1.Text += str + "\r\n";
}
return json.access_token;
}
/// <summary>
/// 新建部门
/// </summary>
/// <param name="dr"></param>
public void PostDepartment(DataRow dr)
{
string url = string.Format("https://qyapi.weixin.qq.com/cgi-bin/department/create?access_token={0}", access_Token);
string department = JsonUtil.ToJsonObject(dr);
department = department.Substring(1, department.Length - 2);
DepartmentResponseMode errcode = PostUtil.PostUrl<DepartmentResponseMode>(url, department);
if (errcode.errcode != 0)
{
string str = "新建" + dr["name"].ToString() + "部门->失败" + "(" + errorMsg(errcode.errcode) + ")";
textBox1.Text += str + "\r\n";
}
else
{
string sqlupdate = string.Format("update P_EmployeeSpecTab set updateflag = 0 where empspec_id = {0}", dr["id"]);
SqlHelper.ExecuteNonQuery(sqlupdate);
//string str = "新建" + dr["name"].ToString() + "部门->成功";
//textBox1.Text += str + "\r\n";
}
}
/// <summary>
/// 更新部门
/// </summary>
/// <param name="dr"></param>
public void UpdateDepartment(DataRow dr)
{
string url = string.Format("https://qyapi.weixin.qq.com/cgi-bin/department/update?access_token={0}", access_Token);
string department = JsonUtil.ToJsonObject(dr);
department = department.Substring(1, department.Length - 2);
EmployeeResponseMode errcode = PostUtil.PostUrl<EmployeeResponseMode>(url, department);
if (errcode.errcode != 0)
{
if (errcode.errcode == 60003)
{
PostDepartment(dr);
}
else
{
string str = "更新部门" + dr["name"].ToString() + "->失败" + "(" + errorMsg(errcode.errcode) + ")";
textBox1.Text += str + "\r\n";
}
}
else
{
string sqlupdate = string.Format("update P_EmployeeSpecTab set updateflag = 0 where empspec_id = {0}", dr["id"]);
SqlHelper.ExecuteNonQuery(sqlupdate);
//string str = "更新部门" + dr["name"].ToString() + "->成功";
//textBox1.Text += str + "\r\n";
}
}
/// <summary>
/// 删除部门
/// </summary>
/// <param name="userid"></param>
public void DeleteDepartment(string userid)
{
string url = string.Format("https://qyapi.weixin.qq.com/cgi-bin/department/delete?access_token={0}&id={1}", access_Token, userid);
EmployeeResponseMode errcode = GetUtil.GetJson<EmployeeResponseMode>(url);
if (errcode.errcode != 0)
{
if (errcode.errcode == 60003)
{
string sqlupdate = string.Format("update P_EmployeeSpecTab set updateflag = 0 where empspec_id = {0}", userid);
SqlHelper.ExecuteNonQuery(sqlupdate);
//string str = "删除部门" + userid + "->成功";
//textBox1.Text += str + "\r\n";
}
else
{
string str = "删除部门" + userid + "->失败" + "(" + errorMsg(errcode.errcode) + ")";
textBox1.Text += str + "\r\n";
}
}
else
{
string sqlupdate = string.Format("update P_EmployeeSpecTab set updateflag = 0 where empspec_id = {0}", userid);
SqlHelper.ExecuteNonQuery(sqlupdate);
//string str = "删除部门" + userid + "->成功";
//textBox1.Text += str + "\r\n";
}
}
/// <summary>
/// 写入日志事件
/// </summary>
/// <param name="log"></param>
private void inPut(string log)
{
//判断是否存在此TXT文件
if (!System.IO.File.Exists(filePath))
{
FileStream fs1 = new FileStream(filePath, FileMode.Create, FileAccess.Write);//创建写入文件
StreamWriter sw = new StreamWriter(fs1);
sw.WriteLine(log);//开始写入值
sw.Close();
fs1.Close();
}
else
{
FileStream fs1 = new FileStream(filePath, FileMode.Append, FileAccess.Write);//获取文件尾行
StreamWriter sw = new StreamWriter(fs1);
sw.WriteLine(log);//开始写入值
sw.Close();
fs1.Close();
}
}
/// <summary>
/// 新建人员
/// </summary>
/// <param name="dr"></param>
public void PostEmployee(DataRow dr)
{
string url = string.Format("https://qyapi.weixin.qq.com/cgi-bin/user/create?access_token={0}", access_Token);
string employee = JsonUtil.ToJsonObject(dr);
employee = employee.Substring(1, employee.Length - 2);
DepartmentResponseMode errcode = PostUtil.PostUrl<DepartmentResponseMode>(url, employee);
if (errcode.errcode != 0)
{
if (errcode.errcode == 60106)
{
string sqlupdate = string.Format("update P_EmployeeTab set wxMsg = '{0}' where employeeid = {1}", "邮箱已存在, 新增失败!", dr["userid"]);
SqlHelper.ExecuteNonQuery(sqlupdate);
}
else if (errcode.errcode == 60104)
{
string sqlupdate = string.Format("update P_EmployeeTab set wxMsg = '{0}' where employeeid = {1}", "电话号码已存在, 新增失败!", dr["userid"]);
SqlHelper.ExecuteNonQuery(sqlupdate);
}
else
{
string str = "新建人员" + dr["name"].ToString() + "->失败:" + errcode.errmsg;
textBox1.Text += str + "\r\n";
}
}
else
{
string sqlupdate = string.Format("update P_EmployeeTab set updateflag = 0,wxMsg='成功' where employeeid = {0}", dr["userid"]);
SqlHelper.ExecuteNonQuery(sqlupdate);
//string str = "新建人员" + dr["name"].ToString() + "->成功";
//textBox1.Text += str + "\r\n";
}
}
/// <summary>
/// 更新人员
/// </summary>
/// <param name="dr"></param>
public void UpdateEmployee(DataRow dr)
{
string url = string.Format("https://qyapi.weixin.qq.com/cgi-bin/user/update?access_token={0}", access_Token);
string employee = JsonUtil.ToJsonObject(dr);
employee = employee.Substring(1, employee.Length - 2);
EmployeeResponseMode errcode = PostUtil.PostUrl<EmployeeResponseMode>(url, employee);
if (errcode.errcode != 0)
{
if (errcode.errcode == 60111)
{
PostEmployee(dr);
}
else
{
string str = "更新人员" + dr["name"].ToString() + "->失败" + "(" + errorMsg(errcode.errcode) + ")";
textBox1.Text += str + "\r\n";
}
}
else
{
string sqlupdate = string.Format("update P_EmployeeTab set updateflag = 0 where employeeid = {0}", dr["userid"]);
SqlHelper.ExecuteNonQuery(sqlupdate);
//string str = "更新人员" + dr["name"].ToString() + "->成功";
//textBox1.Text += str + "\r\n";
}
}
/// <summary>
/// 删除人员
/// </summary>
/// <param name="userid"></param>
public void DeleteEmployee(DataRow dr)
{
try
{
string url = string.Format("https://qyapi.weixin.qq.com/cgi-bin/user/delete?access_token={0}&userid={1}", access_Token,dr["userid"]+"");
EmployeeResponseMode errcode = GetUtil.GetJson<EmployeeResponseMode>(url);
if (errcode.errcode != 0)
{
if (errcode.errcode == 60111)
{
string str = "删除人员" + dr["EmployeeName"] + "->失败!未存在此userid的人员在企业微信内";
textBox1.Text += str + "\r\n";
string sqlupdate = string.Format("update P_EmployeeTab set wxMsg='{1}' where employeeid = {0}", dr["userid"] + "", str);
SqlHelper.ExecuteNonQuery(sqlupdate);
}
else
{
string str = "删除人员" + dr["EmployeeName"] + "->失败" + "(" + errorMsg(errcode.errcode) + ")";
textBox1.Text += str + "\r\n";
string sqlupdate = string.Format("update P_EmployeeTab set wxMsg='{1}' where employeeid = {0}", dr["userid"] + "", str);
SqlHelper.ExecuteNonQuery(sqlupdate);
}
}
else
{
string sqlupdate = string.Format("update P_EmployeeTab set updateflag = 0,wxMsg='删除成功' where employeeid = {0}", dr["userid"] + "");
SqlHelper.ExecuteNonQuery(sqlupdate);
//string str = "删除人员" + userid + "->成功";
//textBox1.Text += str + "\r\n";
}
}
catch (Exception ex)
{
}
}
public void PostAll()
{
if (!this.isExecing)
{
try
{
this.textBox1.Text += "------------开始同步(" + DateTime.Now + ")--------------\r\n";
this.isExecing = true;
//更新部门
string sqlupdatedepartment = "select CoAliasName name,dbo.p_getpy(CoAliasName)+CAST(empspec_id as varchar(50)) name_en,empspec_id id,CONVERT(int,right(speciesNo,2)) 'order',isnull((select top 1 empspec_id from P_EmployeeSpecTab where speciesNo=SUBSTRING(b.speciesno,1,len(b.speciesno)-2)),-1) as parentid from P_EmployeeSpecTab b where empspec_ban=0 and updateflag = 1 and empspec_id != 1";
DataTable dtupdatedepartment = SqlHelper.ExecuteDataTable(sqlupdatedepartment);
foreach (DataRow dr in dtupdatedepartment.Rows)
{
Application.DoEvents();
UpdateDepartment(dr);
}
//更新人员
string sqlupdateemployee = @"select employeeid as userid,EmployeeName as name,b.empspec_id as department,case when p_emp_sex='男' then 1 else 2 end as gender,p_emp_idaddress as 'address',
p_emp_email as email,(select top 1 post_name from P_EmployeePostTab where post_id=p_emp_postid) as position,p_emp_phone as mobile
from p_employeeTab a,p_EmployeeSpecTab b
where sign=0 and a.updateflag = 1 and isnull(p_emp_phone,'')<>'' and EmployeeName!='管理员' and a.SpeciesNo=b.SpeciesNo";
DataTable dtupdateemployee = SqlHelper.ExecuteDataTable(sqlupdateemployee);
foreach (DataRow dr in dtupdateemployee.Rows)
{
Application.DoEvents();
UpdateEmployee(dr);
}
//删除人员
string sqldeleteemployee = "select employeeid as userid,EmployeeName from P_EmployeeTab where sign=1 and EmployeeName!='管理员'";
DataTable dtdeleteemployee = SqlHelper.ExecuteDataTable(sqldeleteemployee);
//sqldeleteemployee = "select employeeid as userid,EmployeeName from P_EmployeeTab where sign=1 and EmployeeName='赵丽明'";
//dtdeleteemployee = SqlHelper.ExecuteDataTable(sqldeleteemployee);
foreach (DataRow dr in dtdeleteemployee.Rows)
{
Application.DoEvents();
DeleteEmployee(dr);
}
//删除部门
string sqldeletedepartment = "select empspec_id as id from P_EmployeeSpecTab where empspec_ban=1 order by LEN(SpeciesNo) desc";
DataTable dtdeletedepartment = SqlHelper.ExecuteDataTable(sqldeletedepartment);
foreach (DataRow dr in dtdeletedepartment.Rows)
{
Application.DoEvents();
DeleteDepartment(dr["id"].ToString());
}
this.textBox1.Text += "\r\n------------本次同步完成(" + DateTime.Now + ")--------------";
}
catch (Exception)
{
}
finally
{
this.WriteLocalLog();
this.isExecing = false;
}
}
}
/// <summary>
/// 开始刷新按钮事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnRefrash_Click(object sender, EventArgs e)
{
try
{
ConnectServer(true);
timer1.Interval = Convert.ToInt16(textBox6.Text) * 60 * 1000;
timer1.Enabled = true;
this.PostAll();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
/// <summary>
/// 更新人员计时器事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void timer1_Tick(object sender, EventArgs e)
{
this.PostAll();
}
/// <summary>
/// 每小时刷新Access_Token
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void timer2_Tick(object sender, EventArgs e)
{
access_Token = GetAccessToken(corpid, corpsecret);
}
/// <summary>
/// 新的响应对象
/// </summary>
public class AccessResponseMode
{
public int errcode;
public string errmsg;
public string access_token;
public int expires_in;
}
public class DepartmentResponseMode
{
public int errcode;
public string errmsg;
public int id;
}
public class EmployeeResponseMode
{
public int errcode;
public string errmsg;
}
public void WriteLocalLog()
{
try
{
//获取程序目录,并完整日志文件夹目录
folderPath = System.IO.Directory.GetCurrentDirectory() + "\\Log";
//TXT日志目录
filePath = folderPath + "\\" + DateTime.Now.ToString("yyyy-MM-dd") + ".txt";
//判断是否存在文件夹
if (!System.IO.Directory.Exists(folderPath))
{
//创建文件夹
Directory.CreateDirectory(folderPath);
}
string log = textBox1.Text.ToString();
inPut(log);
}
catch (Exception ex)
{
}
}
/// <summary>
/// 错误码集合
/// </summary>
/// <param name="errorcode"></param>
/// <returns></returns>
public static String errorMsg(int errorcode)
{
String errmsg = "";
switch (errorcode)
{
case -1:
errmsg = "系统繁忙 ";
break;
case 0:
errmsg = "请求成功 ";
break;
case 40001:
errmsg = "获取access_token时Secret错误,或者access_token无效 ";
break;
case 40002:
errmsg = "不合法的凭证类型";
break;
case 40003:
errmsg = "不合法的UserID";
break;
case 40004:
errmsg = "不合法的媒体文件类型 ";
break;
case 40005:
errmsg = "不合法的文件类型 ";
break;
case 40006:
errmsg = "不合法的文件大小";
break;
case 40007:
errmsg = "不合法的媒体文件id";
break;
case 40008:
errmsg = "不合法的消息类型 ";
break;
case 40013:
errmsg = "不合法的corpid ";
break;
case 40014:
errmsg = "不合法的access_token";
break;
case 40015:
errmsg = "不合法的菜单类型";
break;
case 40016:
errmsg = "不合法的按钮个数";
break;
case 40017:
errmsg = "不合法的按钮类型";
break;
case 40018:
errmsg = "不合法的按钮名字长度";
break;
case 40019:
errmsg = "不合法的按钮KEY长度";
break;
case 40020:
errmsg = "不合法的按钮URL长度 ";
break;
case 40021:
errmsg = "不合法的菜单版本号 ";
break;
case 40022:
errmsg = "不合法的子菜单级数";
break;
case 40023:
errmsg = "不合法的子菜单按钮个数";
break;
case 40024:
errmsg = "不合法的子菜单按钮类型";
break;
case 40025:
errmsg = "不合法的子菜单按钮名字长度";
break;
case 40026:
errmsg = "不合法的子菜单按钮KEY长度";
break;
case 40027:
errmsg = "不合法的子菜单按钮URL长度";
break;
case 40028:
errmsg = "不合法的自定义菜单使用员工";
break;
case 40029:
errmsg = "不合法的oauth_code";
break;
case 40031:
errmsg = "不合法的UserID列表";
break;
case 40032:
errmsg = "不合法的UserID列表长度";
break;
case 40033:
errmsg = "不合法的请求字符,不能包含\\uxxxx格式的字符 ";
break;
case 40035:
errmsg = "不合法的参数 ";
break;
case 40038:
errmsg = "不合法的请求格式 ";
break;
case 40039:
errmsg = "不合法的URL长度";
break;
case 40040:
errmsg = "不合法的插件token";
break;
case 40041:
errmsg = "不合法的插件id";
break;
case 40042:
errmsg = "不合法的插件会话";
break;
case 40048:
errmsg = "url中包含不合法domain";
break;
case 40054:
errmsg = "不合法的子菜单url域名";
break;
case 40055:
errmsg = "不合法的按钮url域名 ";
break;
case 40056:
errmsg = "不合法的agentid";
break;
case 40057:
errmsg = "不合法的callbackurl";
break;
case 40058:
errmsg = "不合法的红包参数 ";
break;
case 40059:
errmsg = "不合法的上报地理位置标志位 ";
break;
case 40060:
errmsg = "设置上报地理位置标志位时没有设置callbackurl";
break;
case 40061:
errmsg = "设置应用头像失败";
break;
case 40062:
errmsg = "不合法的应用模式";
break;
case 40063:
errmsg = "红包参数为空";
break;
case 40064:
errmsg = "管理组名字已存在";
break;
case 40065:
errmsg = "不合法的管理组名字长度";
break;
case 40066:
errmsg = "不合法的部门列表";
break;
case 40067:
errmsg = "标题长度不合法 ";
break;
case 40068:
errmsg = "不合法的标签ID";
break;
case 40069:
errmsg = "不合法的标签ID列表";
break;
case 40070:
errmsg = "列表中所有标签(用户)ID都不合法 ";
break;
case 40071:
errmsg = "不合法的标签名字,标签名字已经存在 ";
break;
case 40072:
errmsg = "不合法的标签名字长度";
break;
case 40073:
errmsg = "不合法的openid";
break;
case 40074:
errmsg = "news消息不支持指定为高保密消息";
break;
case 41001:
errmsg = "缺少access_token参数 ";
break;
case 41002:
errmsg = "缺少corpid参数";
break;
case 41003:
errmsg = "缺少refresh_token参数";
break;
case 41004:
errmsg = "缺少secret参数";
break;
case 41005:
errmsg = "缺少多媒体文件数据";
break;
case 41006:
errmsg = "缺少media_id参数";
break;
case 41007:
errmsg = "缺少子菜单数据";
break;
case 41008:
errmsg = "缺少oauth code";
break;
case 41009:
errmsg = "缺少UserID";
break;
case 41010:
errmsg = "缺少url";
break;
case 41011:
errmsg = "缺少agentid";
break;
case 41012:
errmsg = "缺少应用头像mediaid";
break;
case 41013:
errmsg = "缺少应用名字";
break;
case 41014:
errmsg = "缺少应用描述";
break;
case 41015:
errmsg = "缺少Content";
break;
case 41016:
errmsg = "缺少标题";
break;
case 41017:
errmsg = "缺少标签ID";
break;
case 41018:
errmsg = "缺少标签名字 ";
break;
case 42001:
errmsg = "access_token超时 ";
break;
case 42002:
errmsg = "refresh_token超时";
break;
case 42003:
errmsg = "oauth_code超时 ";
break;
case 42004:
errmsg = "插件token超时";
break;
case 43001:
errmsg = "需要GET请求";
break;
case 43002:
errmsg = "需要POST请求";
break;
case 43003:
errmsg = "需要HTTPS";
break;
case 43004:
errmsg = "需要接收者关注";
break;
case 43005:
errmsg = "需要好友关系";
break;
case 43006:
errmsg = "需要订阅";
break;
case 43007:
errmsg = "需要授权";
break;
case 43008:
errmsg = "需要支付授权";
break;
case 43009:
errmsg = "需要员工已关注";
break;
case 43010:
errmsg = "需要处于回调模式";
break;
case 43011:
errmsg = "需要企业授权";
break;
case 44001:
errmsg = "多媒体文件为空";
break;
case 44002:
errmsg = "POST的数据包为空";
break;
case 44003:
errmsg = "图文消息内容为空";
break;
case 44004:
errmsg = "文本消息内容为空";
break;
case 45001:
errmsg = "多媒体文件大小超过限制";
break;
case 45002:
errmsg = "消息内容超过限制";
break;
case 45003:
errmsg = "标题字段超过限制";
break;
case 45004:
errmsg = "描述字段超过限制";
break;
case 45005:
errmsg = "链接字段超过限制";
break;
case 45006:
errmsg = "图片链接字段超过限制";
break;
case 45007:
errmsg = "语音播放时间超过限制";
break;
case 45008:
errmsg = "图文消息超过限制";
break;
case 45009:
errmsg = "接口调用超过限制";
break;
case 45010:
errmsg = "创建菜单个数超过限制";
break;
case 45015:
errmsg = "回复时间超过限制";
break;
case 45016:
errmsg = "系统分组,不允许修改";
break;
case 45017:
errmsg = "分组名字过长";
break;
case 45018:
errmsg = "分组数量超过上限";
break;
case 45024:
errmsg = "账号数量超过上限";
break;
case 46001:
errmsg = "不存在媒体数据";
break;
case 46002:
errmsg = "不存在的菜单版本";
break;
case 46003:
errmsg = "不存在的菜单数据";
break;
case 46004:
errmsg = "不存在的员工";
break;
case 47001:
errmsg = "解析JSON/XML内容错误";
break;
case 48002:
errmsg = "Api禁用";
break;
case 50001:
errmsg = "redirect_uri未授权";
break;
case 50002:
errmsg = "员工不在权限范围";
break;
case 50003:
errmsg = "应用已停用";
break;
case 50004:
errmsg = "员工状态不正确(未关注状态) ";
break;
case 50005:
errmsg = "企业已禁用";
break;
case 60001:
errmsg = "部门长度不符合限制";
break;
case 60002:
errmsg = "部门层级深度超过限制";
break;
case 60003:
errmsg = "部门不存在";
break;
case 60004:
errmsg = "父亲部门不存在";
break;
case 60005:
errmsg = "不允许删除有成员的部门";
break;
case 60006:
errmsg = "不允许删除有子部门的部门";
break;
case 60007:
errmsg = "不允许删除根部门";
break;
case 60008:
errmsg = "部门名称已存在";
break;
case 60009:
errmsg = "部门名称含有非法字符";
break;
case 60010:
errmsg = "部门存在循环关系";
break;
case 60011:
errmsg = "管理员权限不足,(user/department/agent)无权限";
break;
case 60012:
errmsg = "不允许删除默认应用";
break;
case 60013:
errmsg = "不允许关闭应用";
break;
case 60014:
errmsg = "不允许开启应用";
break;
case 60015:
errmsg = "不允许修改默认应用可见范围";
break;
case 60016:
errmsg = "不允许删除存在成员的标签";
break;
case 60017:
errmsg = "不允许设置企业";
break;
case 60102:
errmsg = "UserID已存在";
break;
case 60103:
errmsg = "手机号码不合法";
break;
case 60104:
errmsg = "手机号码已存在";
break;
case 60105:
errmsg = "邮箱不合法";
break;
case 60106:
errmsg = "邮箱已存在";
break;
case 60107:
errmsg = "微信号不合法";
break;
case 60108:
errmsg = "微信号已存在";
break;
case 60109:
errmsg = "QQ号已存在";
break;
case 60110:
errmsg = "部门个数超出限制";
break;
case 60111:
errmsg = "UserID不存在";
break;
case 60112:
errmsg = "成员姓名不合法";
break;
case 60113:
errmsg = "身份认证信息(微信号/手机/邮箱)不能同时为空 ";
break;
case 60114:
errmsg = "性别不合法";
break;
case 60129:
errmsg = "用户设置了拒绝邀请";
break;
default:
errmsg = "没有此错误码!" + "(" + errorcode + ")";
break;
}
return errmsg;
}
/// <summary>
/// <para>说明:连接服务器</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-08-09 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="isSave">if set to <c>true</c> [is save].</param>
private void ConnectServer(bool isSave = false)
{
string serverName = this.txtServerName.Text.Trim();
string dbName = this.txtDBName.Text.Trim();
string user = this.txtUser.Text.Trim();
string password = this.txtPassword.Text.Trim();
if (string.IsNullOrWhiteSpace(serverName))
{
MessageUtil.Show(ResourceKeys.ServerNameIsNull);
return;
}
if (string.IsNullOrWhiteSpace(dbName))
{
MessageUtil.Show(ResourceKeys.ServerDBIsNull);
return;
}
if (string.IsNullOrWhiteSpace(user))
{
MessageUtil.Show("请重新输入用户名");
return;
}
// 测试数据库连接
try
{
if (CreateConnection())
{
if (isSave)
{
}
else
{
IniWriteValue(company, "serverName", serverName);
IniWriteValue(company, "dbName", dbName);
IniWriteValue(company, "user", user);
IniWriteValue(company, "password", password);
MessageUtil.Show(ResourceKeys.ConnectSuccess);
}
}
else
{
MessageUtil.Show(ResourceKeys.ConnectFault);
}
}
catch (Exception)
{
MessageUtil.Show(ResourceKeys.ConnectFault);
}
}
/// <summary>
/// <para>说明:创建数据库连接</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-08-07 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns>
public bool CreateConnection()
{
string connStr = GetConnection();
if (SqlHelper._connection != null)
{
try
{
SqlHelper._connection.Close();
SqlHelper._connection.Dispose();
}
catch (Exception)
{
}
SqlHelper._connection = null;
}
try
{
SqlHelper._connection = new SqlConnection(connStr);
SqlHelper._connection.Open();
return true;
}
catch (Exception ex)
{
LogHelper.Instance.WriteLog(ex.Message);
}
return false;
}
/// <summary>
/// 获取连接服务器的字符串
/// </summary>
/// <returns></returns>
public string GetConnection()
{
return string.Format("Server={0};Database={1};Persist Security Info=True;User ID={2};Password={3};Connection Timeout=5;MultipleActiveResultSets=true", txtServerName.Text.ToString(), txtDBName.Text.ToString(), txtUser.Text.ToString(), txtPassword.Text.ToString());
}
/// <summary>
/// 连接服务器按钮事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click_1(object sender, EventArgs e)
{
ConnectServer();
}
/// <summary>
/// ini文件获取数据
/// </summary>
/// <param name="section"></param>
/// <param name="key"></param>
/// <param name="defVal"></param>
/// <param name="retVal"></param>
/// <param name="size"></param>
/// <param name="filePath"></param>
/// <returns></returns>
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string section, string key, string defVal, StringBuilder retVal, int size, string filePath);
/// <summary>
/// ini文件写入数据
/// </summary>
/// <param name="section"></param>
/// <param name="key"></param>
/// <param name="val"></param>
/// <param name="filePath"></param>
/// <returns></returns>
[DllImport("kernel32")]
private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
/// <summary>
/// 写INI文件
/// </summary>
/// <param name="section">段落</param>
/// <param name="key">键</param>
/// <param name="iValue">值</param>
public void IniWriteValue(string section, string key, string iValue)
{
WritePrivateProfileString(section, key, iValue, this.Path);
}
/// <summary>
/// 读取INI文件
/// </summary>
/// <param name="section">段落</param>
/// <param name="key">键</param>
/// <returns>返回的键值</returns>
public string IniReadValue(string section, string key)
{
StringBuilder temp = new StringBuilder(255);
int i = GetPrivateProfileString(section, key, "", temp, 255, this.Path);
return temp.ToString();
}
/// <summary>
/// 时间间隔输入框失去焦点事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void textBox6_LostFocus(object sender, EventArgs e)
{
string checkStr = textBox6.Text.ToString();
if (string.IsNullOrEmpty(checkStr)) textBox6.Text = "30";
int check = Convert.ToInt32(textBox6.Text.ToString());
if (check < 30)
{
textBox6.Text = "30";
}
min = Convert.ToInt32(textBox6.Text.ToString());
IniWriteValue(company, "interval", textBox6.Text.ToString());
}
/// <summary>
/// 时间间隔输入框只能输入数字
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void textBox6_KeyPress(object sender, KeyPressEventArgs e)
{
if ((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 8)
{
e.Handled = true;
}
}
#region 测试使用按钮及废弃事件
int length = 10;
/// <summary>
/// 删除部门按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
string sql = string.Format("select empspec_id from P_EmployeeSpecTab where empspec_ban=0 and empspec_id != 1 and len(speciesno) = {0}", length);
length = length - 2;
DataTable dt = SqlHelper.ExecuteDataTable(sql);
foreach (DataRow dr in dt.Rows)
{
DeleteDepartment(dr["empspec_id"].ToString());
}
}
private void Form1_Load(object sender, EventArgs e)
{
this.timer1.Interval = Convert.ToInt32(this.textBox6.Text) * 60 * 1000;
}
///// <summary>
///// 新建部门按钮事件
///// </summary>
///// <param name="sender"></param>
///// <param name="e"></param>
//private void btnCreateDepartment_Click(object sender, EventArgs e)
//{
// //程序开始运行记录
// string beginInput = "<<新建部门开始时间:" + DateTime.Now.ToLocalTime().ToString() + ">>";
// textBox1.Text += beginInput + "\r\n";
// string sql = "select CoAliasName name,dbo.p_getpy(CoAliasName)+CAST(empspec_id as varchar(50)) name_en,empspec_id id,CONVERT(int,right(speciesNo,2)) 'order',isnull((select top 1 empspec_id from P_EmployeeSpecTab where speciesNo=SUBSTRING(b.speciesno,1,len(b.speciesno)-2)),-1) as parentid from P_EmployeeSpecTab b where empspec_ban=0 and empspec_id != 1";
// DataTable dt = SqlHelper.ExecuteDataTable(sql);
// foreach (DataRow dr in dt.Rows)
// {
// PostDepartment(dr);
// }
// string sqlupdateDelete = "update P_EmployeeSpecTab set updateflag = 0 where empspec_ban = 1 and updateflag = 1";
// SqlHelper.ExecuteNonQuery(sqlupdateDelete);
// string record = "<<结束时间:" + DateTime.Now.ToLocalTime().ToString() + ">>";
// textBox1.Text += record + "\r\n";
//}
///// <summary>
///// 新建人员按钮事件
///// </summary>
///// <param name="sender"></param>
///// <param name="e"></param>
//private void btnCreateEmployee_Click(object sender, EventArgs e)
//{
// //程序开始运行记录
// string beginInput = "<<新建人员开始时间:" + DateTime.Now.ToLocalTime().ToString() + ">>";
// textBox1.Text += beginInput + "\r\n";
// string sql = "select top 200 employeeid as userid,EmployeeName as name,b.empspec_id as department,p_emp_sex as gender,p_emp_idaddress as 'address',p_emp_email as email,p_emp_postion as position,p_emp_linkphone1 as mobile from p_employeeTab a,p_EmployeeSpecTab b where sign=0 and EmployeeName!='管理员' and a.SpeciesNo=b.SpeciesNo";
// DataTable dt = SqlHelper.ExecuteDataTable(sql);
// foreach (DataRow dr in dt.Rows)
// {
// PostEmployee(dr);
// }
// string sqlupdateDelete = "update p_employeeTab set updateflag = 0 where sign = 1 and updateflag = 1";
// SqlHelper.ExecuteNonQuery(sqlupdateDelete);
// string record = "<<结束时间:" + DateTime.Now.ToLocalTime().ToString() + ">>";
// textBox1.Text += record + "\r\n";
//}
///// <summary>
///// 停止刷新按钮事件
///// </summary>
///// <param name="sender"></param>
///// <param name="e"></param>
//private void btnStop_Click(object sender, EventArgs e)
//{
// timer1.Enabled = false;
//}
#endregion
}
}