新野县12345_后端

ChatSql.cs 39KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using CallCenterApi.DB;
  7. using System.Data.SqlClient;
  8. using System.Data;
  9. namespace CallCenter.WebChatServer
  10. {
  11. public class ChatSql
  12. {
  13. /// <summary>
  14. /// 增加一条数据
  15. /// </summary>
  16. public int AddUser(T_Chat_User model)
  17. {
  18. StringBuilder strSql = new StringBuilder();
  19. strSql.Append("insert into T_Chat_User(");
  20. strSql.Append("F_Type,F_Name,F_Account,F_OpenId,F_HeadImgUrl,F_MainUserCode,F_OtherUserCode,F_IP,F_State,F_CreateUser,F_CreateTime,F_IsDelete,F_DeleteUser,F_DeleteTime)");
  21. strSql.Append(" values (");
  22. strSql.Append("@F_Type,@F_Name,@F_Account,@F_OpenId,@F_HeadImgUrl,@F_MainUserCode,@F_OtherUserCode,@F_IP,@F_State,@F_CreateUser,@F_CreateTime,@F_IsDelete,@F_DeleteUser,@F_DeleteTime)");
  23. strSql.Append(";select @@IDENTITY");
  24. SqlParameter[] parameters = {
  25. new SqlParameter("@F_Type", SqlDbType.Int,4),
  26. new SqlParameter("@F_Name", SqlDbType.NVarChar,500),
  27. new SqlParameter("@F_Account", SqlDbType.VarChar,500),
  28. new SqlParameter("@F_OpenId", SqlDbType.VarChar,500),
  29. new SqlParameter("@F_HeadImgUrl", SqlDbType.VarChar,500),
  30. new SqlParameter("@F_MainUserCode", SqlDbType.VarChar,50),
  31. new SqlParameter("@F_OtherUserCode", SqlDbType.VarChar,500),
  32. new SqlParameter("@F_IP", SqlDbType.VarChar,50),
  33. new SqlParameter("@F_State", SqlDbType.Int,4),
  34. new SqlParameter("@F_CreateUser", SqlDbType.VarChar,50),
  35. new SqlParameter("@F_CreateTime", SqlDbType.DateTime),
  36. new SqlParameter("@F_IsDelete", SqlDbType.Int,4),
  37. new SqlParameter("@F_DeleteUser", SqlDbType.VarChar,50),
  38. new SqlParameter("@F_DeleteTime", SqlDbType.DateTime)};
  39. parameters[0].Value = model.F_Type;
  40. parameters[1].Value = model.F_Name;
  41. parameters[2].Value = model.F_Account;
  42. parameters[3].Value = model.F_OpenId;
  43. parameters[4].Value = model.F_HeadImgUrl;
  44. parameters[5].Value = model.F_MainUserCode;
  45. parameters[6].Value = model.F_OtherUserCode;
  46. parameters[7].Value = model.F_IP;
  47. parameters[8].Value = model.F_State;
  48. parameters[9].Value = model.F_CreateUser;
  49. parameters[10].Value = model.F_CreateTime;
  50. parameters[11].Value = model.F_IsDelete;
  51. parameters[12].Value = model.F_DeleteUser;
  52. parameters[13].Value = model.F_DeleteTime;
  53. object obj = DbHelperSQL.GetSingle(strSql.ToString(), parameters);
  54. if (obj == null)
  55. {
  56. return 0;
  57. }
  58. else
  59. {
  60. return Convert.ToInt32(obj);
  61. }
  62. }
  63. /// <summary>
  64. /// 更新一条数据
  65. /// </summary>
  66. public bool UpdateUser(T_Chat_User model)
  67. {
  68. StringBuilder strSql = new StringBuilder();
  69. strSql.Append("update T_Chat_User set ");
  70. strSql.Append("F_Type=@F_Type,");
  71. strSql.Append("F_Name=@F_Name,");
  72. strSql.Append("F_Account=@F_Account,");
  73. strSql.Append("F_OpenId=@F_OpenId,");
  74. strSql.Append("F_HeadImgUrl=@F_HeadImgUrl,");
  75. strSql.Append("F_MainUserCode=@F_MainUserCode,");
  76. strSql.Append("F_OtherUserCode=@F_OtherUserCode,");
  77. strSql.Append("F_IP=@F_IP,");
  78. strSql.Append("F_State=@F_State,");
  79. strSql.Append("F_CreateUser=@F_CreateUser,");
  80. strSql.Append("F_CreateTime=@F_CreateTime,");
  81. strSql.Append("F_IsDelete=@F_IsDelete,");
  82. strSql.Append("F_DeleteUser=@F_DeleteUser,");
  83. strSql.Append("F_DeleteTime=@F_DeleteTime");
  84. strSql.Append(" where F_Id=@F_Id");
  85. SqlParameter[] parameters = {
  86. new SqlParameter("@F_Type", SqlDbType.Int,4),
  87. new SqlParameter("@F_Name", SqlDbType.NVarChar,500),
  88. new SqlParameter("@F_Account", SqlDbType.VarChar,500),
  89. new SqlParameter("@F_OpenId", SqlDbType.VarChar,500),
  90. new SqlParameter("@F_HeadImgUrl", SqlDbType.VarChar,500),
  91. new SqlParameter("@F_MainUserCode", SqlDbType.VarChar,50),
  92. new SqlParameter("@F_OtherUserCode", SqlDbType.VarChar,500),
  93. new SqlParameter("@F_IP", SqlDbType.VarChar,50),
  94. new SqlParameter("@F_State", SqlDbType.Int,4),
  95. new SqlParameter("@F_CreateUser", SqlDbType.VarChar,50),
  96. new SqlParameter("@F_CreateTime", SqlDbType.DateTime),
  97. new SqlParameter("@F_IsDelete", SqlDbType.Int,4),
  98. new SqlParameter("@F_DeleteUser", SqlDbType.VarChar,50),
  99. new SqlParameter("@F_DeleteTime", SqlDbType.DateTime),
  100. new SqlParameter("@F_Id", SqlDbType.Int,4)};
  101. parameters[0].Value = model.F_Type;
  102. parameters[1].Value = model.F_Name;
  103. parameters[2].Value = model.F_Account;
  104. parameters[3].Value = model.F_OpenId;
  105. parameters[4].Value = model.F_HeadImgUrl;
  106. parameters[5].Value = model.F_MainUserCode;
  107. parameters[6].Value = model.F_OtherUserCode;
  108. parameters[7].Value = model.F_IP;
  109. parameters[8].Value = model.F_State;
  110. parameters[9].Value = model.F_CreateUser;
  111. parameters[10].Value = model.F_CreateTime;
  112. parameters[11].Value = model.F_IsDelete;
  113. parameters[12].Value = model.F_DeleteUser;
  114. parameters[13].Value = model.F_DeleteTime;
  115. parameters[14].Value = model.F_Id;
  116. int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
  117. if (rows > 0)
  118. {
  119. return true;
  120. }
  121. else
  122. {
  123. return false;
  124. }
  125. }
  126. /// <summary>
  127. /// 增加一条数据
  128. /// </summary>
  129. public long AddMsg(T_Chat_Message model)
  130. {
  131. StringBuilder strSql = new StringBuilder();
  132. strSql.Append("insert into T_Chat_Message(");
  133. strSql.Append("F_FromUser,F_ToUser,F_Message,F_File,F_IP,F_SourceType,F_MessageType,F_State,F_CreateUser,F_CreateTime,F_IsDelete,F_DeleteUser,F_DeleteTime)");
  134. strSql.Append(" values (");
  135. strSql.Append("@F_FromUser,@F_ToUser,@F_Message,@F_File,@F_IP,@F_SourceType,@F_MessageType,@F_State,@F_CreateUser,@F_CreateTime,@F_IsDelete,@F_DeleteUser,@F_DeleteTime)");
  136. strSql.Append(";select @@IDENTITY");
  137. SqlParameter[] parameters = {
  138. new SqlParameter("@F_FromUser", SqlDbType.VarChar,500),
  139. new SqlParameter("@F_ToUser", SqlDbType.VarChar,500),
  140. new SqlParameter("@F_Message", SqlDbType.NVarChar,-1),
  141. new SqlParameter("@F_File", SqlDbType.VarChar,-1),
  142. new SqlParameter("@F_IP", SqlDbType.VarChar,50),
  143. new SqlParameter("@F_SourceType", SqlDbType.Int,4),
  144. new SqlParameter("@F_MessageType", SqlDbType.Int,4),
  145. new SqlParameter("@F_State", SqlDbType.Int,4),
  146. new SqlParameter("@F_CreateUser", SqlDbType.VarChar,500),
  147. new SqlParameter("@F_CreateTime", SqlDbType.DateTime),
  148. new SqlParameter("@F_IsDelete", SqlDbType.Int,4),
  149. new SqlParameter("@F_DeleteUser", SqlDbType.VarChar,50),
  150. new SqlParameter("@F_DeleteTime", SqlDbType.DateTime)};
  151. parameters[0].Value = model.F_FromUser;
  152. parameters[1].Value = model.F_ToUser;
  153. parameters[2].Value = model.F_Message;
  154. parameters[3].Value = model.F_File;
  155. parameters[4].Value = model.F_IP;
  156. parameters[5].Value = model.F_SourceType;
  157. parameters[6].Value = model.F_MessageType;
  158. parameters[7].Value = model.F_State;
  159. parameters[8].Value = model.F_CreateUser;
  160. parameters[9].Value = model.F_CreateTime;
  161. parameters[10].Value = model.F_IsDelete;
  162. parameters[11].Value = model.F_DeleteUser;
  163. parameters[12].Value = model.F_DeleteTime;
  164. object obj = DbHelperSQL.GetSingle(strSql.ToString(), parameters);
  165. if (obj == null)
  166. {
  167. return 0;
  168. }
  169. else
  170. {
  171. return Convert.ToInt64(obj);
  172. }
  173. }
  174. /// <summary>
  175. /// 增加一条数据
  176. /// </summary>
  177. public int AddIP(T_Chat_IPList model)
  178. {
  179. StringBuilder strSql = new StringBuilder();
  180. strSql.Append("insert into T_Chat_IPList(");
  181. strSql.Append("F_OpenId,F_IP,F_Country,F_CountryCode,F_Area,F_AreaCode,F_Region,F_RegionCode,F_City,F_CityCode,F_County,F_CountyCode,F_ISP,F_ISPCode,F_CreateTime,F_Type)");
  182. strSql.Append(" values (");
  183. strSql.Append("@F_OpenId,@F_IP,@F_Country,@F_CountryCode,@F_Area,@F_AreaCode,@F_Region,@F_RegionCode,@F_City,@F_CityCode,@F_County,@F_CountyCode,@F_ISP,@F_ISPCode,@F_CreateTime,@F_Type)");
  184. strSql.Append(";select @@IDENTITY");
  185. SqlParameter[] parameters = {
  186. new SqlParameter("@F_OpenId", SqlDbType.VarChar,500),
  187. new SqlParameter("@F_IP", SqlDbType.VarChar,50),
  188. new SqlParameter("@F_Country", SqlDbType.NVarChar,50),
  189. new SqlParameter("@F_CountryCode", SqlDbType.VarChar,50),
  190. new SqlParameter("@F_Area", SqlDbType.NVarChar,50),
  191. new SqlParameter("@F_AreaCode", SqlDbType.VarChar,50),
  192. new SqlParameter("@F_Region", SqlDbType.NVarChar,50),
  193. new SqlParameter("@F_RegionCode", SqlDbType.VarChar,50),
  194. new SqlParameter("@F_City", SqlDbType.NVarChar,50),
  195. new SqlParameter("@F_CityCode", SqlDbType.VarChar,50),
  196. new SqlParameter("@F_County", SqlDbType.NVarChar,50),
  197. new SqlParameter("@F_CountyCode", SqlDbType.VarChar,50),
  198. new SqlParameter("@F_ISP", SqlDbType.NVarChar,50),
  199. new SqlParameter("@F_ISPCode", SqlDbType.VarChar,50),
  200. new SqlParameter("@F_CreateTime", SqlDbType.DateTime),
  201. new SqlParameter("@F_Type", SqlDbType.Int,4)};
  202. parameters[0].Value = model.F_OpenId;
  203. parameters[1].Value = model.F_IP;
  204. parameters[2].Value = model.F_Country;
  205. parameters[3].Value = model.F_CountryCode;
  206. parameters[4].Value = model.F_Area;
  207. parameters[5].Value = model.F_AreaCode;
  208. parameters[6].Value = model.F_Region;
  209. parameters[7].Value = model.F_RegionCode;
  210. parameters[8].Value = model.F_City;
  211. parameters[9].Value = model.F_CityCode;
  212. parameters[10].Value = model.F_County;
  213. parameters[11].Value = model.F_CountyCode;
  214. parameters[12].Value = model.F_ISP;
  215. parameters[13].Value = model.F_ISPCode;
  216. parameters[14].Value = model.F_CreateTime;
  217. parameters[15].Value = model.F_Type;
  218. object obj = DbHelperSQL.GetSingle(strSql.ToString(), parameters);
  219. if (obj == null)
  220. {
  221. return 0;
  222. }
  223. else
  224. {
  225. return Convert.ToInt32(obj);
  226. }
  227. }
  228. /// <summary>
  229. /// 增加一条数据
  230. /// </summary>
  231. public int AddInOut(T_Chat_InOut model)
  232. {
  233. StringBuilder strSql = new StringBuilder();
  234. strSql.Append("insert into T_Chat_InOut(");
  235. strSql.Append("F_OpenId,F_IP,F_InTime,F_OutTime,F_Type)");
  236. strSql.Append(" values (");
  237. strSql.Append("@F_OpenId,@F_IP,@F_InTime,@F_OutTime,@F_Type)");
  238. strSql.Append(";select @@IDENTITY");
  239. SqlParameter[] parameters = {
  240. new SqlParameter("@F_OpenId", SqlDbType.VarChar,50),
  241. new SqlParameter("@F_IP", SqlDbType.VarChar,50),
  242. new SqlParameter("@F_InTime", SqlDbType.DateTime),
  243. new SqlParameter("@F_OutTime", SqlDbType.DateTime),
  244. new SqlParameter("@F_Type", SqlDbType.Int,4)};
  245. parameters[0].Value = model.F_OpenId;
  246. parameters[1].Value = model.F_IP;
  247. parameters[2].Value = model.F_InTime;
  248. parameters[3].Value = model.F_OutTime;
  249. parameters[4].Value = model.F_Type;
  250. object obj = DbHelperSQL.GetSingle(strSql.ToString(), parameters);
  251. if (obj == null)
  252. {
  253. return 0;
  254. }
  255. else
  256. {
  257. return Convert.ToInt32(obj);
  258. }
  259. }
  260. /// <summary>
  261. /// 更新一条数据
  262. /// </summary>
  263. public bool UpdateInOut(T_Chat_InOut model)
  264. {
  265. StringBuilder strSql = new StringBuilder();
  266. strSql.Append("update T_Chat_InOut set ");
  267. strSql.Append("F_OpenId=@F_OpenId,");
  268. strSql.Append("F_IP=@F_IP,");
  269. strSql.Append("F_InTime=@F_InTime,");
  270. strSql.Append("F_OutTime=@F_OutTime,");
  271. strSql.Append("F_Type=@F_Type");
  272. strSql.Append(" where F_Id=@F_Id");
  273. SqlParameter[] parameters = {
  274. new SqlParameter("@F_OpenId", SqlDbType.VarChar,50),
  275. new SqlParameter("@F_IP", SqlDbType.VarChar,50),
  276. new SqlParameter("@F_InTime", SqlDbType.DateTime),
  277. new SqlParameter("@F_OutTime", SqlDbType.DateTime),
  278. new SqlParameter("@F_Type", SqlDbType.Int,4),
  279. new SqlParameter("@F_Id", SqlDbType.Int,4)};
  280. parameters[0].Value = model.F_OpenId;
  281. parameters[1].Value = model.F_IP;
  282. parameters[2].Value = model.F_InTime;
  283. parameters[3].Value = model.F_OutTime;
  284. parameters[4].Value = model.F_Type;
  285. parameters[5].Value = model.F_Id;
  286. int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
  287. if (rows > 0)
  288. {
  289. return true;
  290. }
  291. else
  292. {
  293. return false;
  294. }
  295. }
  296. /// <summary>
  297. /// 更新签出时间
  298. /// </summary>
  299. public bool UpdateOutTime(string code)
  300. {
  301. string sql = "update T_Chat_InOut set F_OutTime=getdate() where F_OpenId='"+ code + "' and isnull(F_OutTime,'')=''";
  302. int rows = DbHelperSQL.ExecuteSql(sql);
  303. if (rows > 0)
  304. {
  305. return true;
  306. }
  307. else
  308. {
  309. return false;
  310. }
  311. }
  312. /// <summary>
  313. /// 获取客户记录
  314. /// </summary>
  315. /// <returns></returns>
  316. public DataTable GetChatLog(string code, out long nextnum, out int isfirst, int count = 10, long num = 0)
  317. {
  318. string sql = "select top " + count + " * from T_Chat_Message where (F_FromUser='" + code + "' or F_ToUser='" + code + "')";
  319. if (num > 0)
  320. {
  321. sql += " and F_Id <" + num;
  322. }
  323. sql += " order by F_CreateTime desc";
  324. var dt = DbHelperSQL.Query(sql).Tables[0];
  325. int n = dt.Rows.Count;
  326. nextnum = 0;
  327. if (n > 0)
  328. {
  329. nextnum = long.Parse(dt.Rows[n - 1]["F_Id"].ToString());
  330. }
  331. isfirst = 0;
  332. if (n < count)
  333. {
  334. isfirst = 1;
  335. }
  336. return dt;
  337. }
  338. /// <summary>
  339. /// 获取客户信息
  340. /// </summary>
  341. /// <returns></returns>
  342. public T_Chat_User GetCusUser(string code)
  343. {
  344. string sql = "select top 1 * from T_Chat_User where F_OpenId='" + code + "' order by F_CreateTime desc";
  345. var dt = DbHelperSQL.Query(sql).Tables[0];
  346. if (dt.Rows.Count > 0)
  347. {
  348. var row = dt.Rows[0];
  349. T_Chat_User model = new T_Chat_User();
  350. if (row["F_Id"] != null && row["F_Id"].ToString() != "")
  351. {
  352. model.F_Id = int.Parse(row["F_Id"].ToString());
  353. }
  354. if (row["F_Type"] != null && row["F_Type"].ToString() != "")
  355. {
  356. model.F_Type = int.Parse(row["F_Type"].ToString());
  357. }
  358. if (row["F_Name"] != null)
  359. {
  360. model.F_Name = row["F_Name"].ToString();
  361. }
  362. if (row["F_Account"] != null)
  363. {
  364. model.F_Account = row["F_Account"].ToString();
  365. }
  366. if (row["F_OpenId"] != null)
  367. {
  368. model.F_OpenId = row["F_OpenId"].ToString();
  369. }
  370. if (row["F_HeadImgUrl"] != null)
  371. {
  372. model.F_HeadImgUrl = row["F_HeadImgUrl"].ToString();
  373. }
  374. if (row["F_MainUserCode"] != null)
  375. {
  376. model.F_MainUserCode = row["F_MainUserCode"].ToString();
  377. }
  378. if (row["F_OtherUserCode"] != null)
  379. {
  380. model.F_OtherUserCode = row["F_OtherUserCode"].ToString();
  381. }
  382. if (row["F_IP"] != null)
  383. {
  384. model.F_IP = row["F_IP"].ToString();
  385. }
  386. if (row["F_State"] != null && row["F_State"].ToString() != "")
  387. {
  388. model.F_State = int.Parse(row["F_State"].ToString());
  389. }
  390. if (row["F_CreateUser"] != null)
  391. {
  392. model.F_CreateUser = row["F_CreateUser"].ToString();
  393. }
  394. if (row["F_CreateTime"] != null && row["F_CreateTime"].ToString() != "")
  395. {
  396. model.F_CreateTime = DateTime.Parse(row["F_CreateTime"].ToString());
  397. }
  398. if (row["F_IsDelete"] != null && row["F_IsDelete"].ToString() != "")
  399. {
  400. model.F_IsDelete = int.Parse(row["F_IsDelete"].ToString());
  401. }
  402. if (row["F_DeleteUser"] != null)
  403. {
  404. model.F_DeleteUser = row["F_DeleteUser"].ToString();
  405. }
  406. if (row["F_DeleteTime"] != null && row["F_DeleteTime"].ToString() != "")
  407. {
  408. model.F_DeleteTime = DateTime.Parse(row["F_DeleteTime"].ToString());
  409. }
  410. return model;
  411. }
  412. else
  413. {
  414. return null;
  415. }
  416. }
  417. /// <summary>
  418. /// 获取客户信息
  419. /// </summary>
  420. /// <returns></returns>
  421. public T_Chat_IPList GetIPInfo(string ip, string openid)
  422. {
  423. string sql = "select top 1 * from T_Chat_IPList where F_IP='" + ip + "' and F_OpenId='" + openid + "' order by F_CreateTime desc";
  424. var dt = DbHelperSQL.Query(sql).Tables[0];
  425. if (dt.Rows.Count > 0)
  426. {
  427. var row = dt.Rows[0];
  428. T_Chat_IPList model = new T_Chat_IPList();
  429. if (row["F_Id"] != null && row["F_Id"].ToString() != "")
  430. {
  431. model.F_Id = int.Parse(row["F_Id"].ToString());
  432. }
  433. if (row["F_OpenId"] != null)
  434. {
  435. model.F_OpenId = row["F_OpenId"].ToString();
  436. }
  437. if (row["F_IP"] != null)
  438. {
  439. model.F_IP = row["F_IP"].ToString();
  440. }
  441. if (row["F_Country"] != null)
  442. {
  443. model.F_Country = row["F_Country"].ToString();
  444. }
  445. if (row["F_CountryCode"] != null)
  446. {
  447. model.F_CountryCode = row["F_CountryCode"].ToString();
  448. }
  449. if (row["F_Area"] != null)
  450. {
  451. model.F_Area = row["F_Area"].ToString();
  452. }
  453. if (row["F_AreaCode"] != null)
  454. {
  455. model.F_AreaCode = row["F_AreaCode"].ToString();
  456. }
  457. if (row["F_Region"] != null)
  458. {
  459. model.F_Region = row["F_Region"].ToString();
  460. }
  461. if (row["F_RegionCode"] != null)
  462. {
  463. model.F_RegionCode = row["F_RegionCode"].ToString();
  464. }
  465. if (row["F_City"] != null)
  466. {
  467. model.F_City = row["F_City"].ToString();
  468. }
  469. if (row["F_CityCode"] != null)
  470. {
  471. model.F_CityCode = row["F_CityCode"].ToString();
  472. }
  473. if (row["F_County"] != null)
  474. {
  475. model.F_County = row["F_County"].ToString();
  476. }
  477. if (row["F_CountyCode"] != null)
  478. {
  479. model.F_CountyCode = row["F_CountyCode"].ToString();
  480. }
  481. if (row["F_ISP"] != null)
  482. {
  483. model.F_ISP = row["F_ISP"].ToString();
  484. }
  485. if (row["F_ISPCode"] != null)
  486. {
  487. model.F_ISPCode = row["F_ISPCode"].ToString();
  488. }
  489. if (row["F_CreateTime"] != null && row["F_CreateTime"].ToString() != "")
  490. {
  491. model.F_CreateTime = DateTime.Parse(row["F_CreateTime"].ToString());
  492. }
  493. if (row["F_Type"] != null && row["F_Type"].ToString() != "")
  494. {
  495. model.F_Type = int.Parse(row["F_Type"].ToString());
  496. }
  497. return model;
  498. }
  499. else
  500. {
  501. return null;
  502. }
  503. }
  504. /// <summary>
  505. /// 获取客服名称
  506. /// </summary>
  507. /// <returns></returns>
  508. public string GetUserName(string usercode)
  509. {
  510. string sql = "select F_UserName from T_Sys_UserAccount where F_UserCode='" + usercode + "'";
  511. string name = DbHelperSQL.GetSingle(sql).ToString();
  512. return name;
  513. }
  514. /// <summary>
  515. /// 是否黑名单
  516. /// </summary>
  517. /// <returns></returns>
  518. public bool IsBlack(string ip)
  519. {
  520. string sql = "select F_Id from T_Chat_IPBlackList where F_IP='" + ip + "' and F_IsDelete=0 and F_State=1";
  521. return DbHelperSQL.GetSingle(sql)!=null;
  522. }
  523. /// <summary>
  524. /// 是否存入ip
  525. /// </summary>
  526. /// <returns></returns>
  527. public bool IsExitIP(string ip,string openid)
  528. {
  529. string sql = "select F_Id from T_Chat_IPList where F_IP='" + ip + "' and F_OpenId='" + openid + "' ";
  530. return DbHelperSQL.GetSingle(sql) != null;
  531. }
  532. private object lockcode = new object();
  533. /// <summary>
  534. /// 获取游客ID
  535. /// </summary>
  536. /// <returns></returns>
  537. public string GetCode()
  538. {
  539. lock (lockcode)
  540. {
  541. string code = "";
  542. string pre = "Web" + DateTime.Now.ToString("yyyyMMdd");
  543. string sql = "select Top 1 F_OpenId from T_Chat_User where substring(F_OpenId,1,11)='" + pre + "' order by F_CreateTime desc";
  544. var obj = DbHelperSQL.GetSingle(sql);
  545. if (obj == null)
  546. {
  547. code = pre + "00001";
  548. }
  549. else
  550. {
  551. string lastcode = obj.ToString();
  552. int con = Int32.Parse(lastcode.Substring(lastcode.Length - 5, 5));
  553. code = pre + (con + 1).ToString("00000");
  554. }
  555. T_Chat_User user = new T_Chat_User();
  556. user.F_OpenId = code;
  557. user.F_Account = code;
  558. user.F_Type = 1;
  559. user.F_State = 0;
  560. user.F_IsDelete = 0;
  561. user.F_CreateTime = DateTime.Now;
  562. AddUser(user);
  563. return code;
  564. }
  565. }
  566. /// <summary>
  567. /// 客户类
  568. /// </summary>
  569. public class T_Chat_User
  570. {
  571. public T_Chat_User()
  572. { }
  573. #region Model
  574. private int _f_id;
  575. private int? _f_type;
  576. private string _f_name;
  577. private string _f_account;
  578. private string _f_openid;
  579. private string _f_headimgurl;
  580. private string _f_mainusercode;
  581. private string _f_otherusercode;
  582. private string _f_ip;
  583. private int? _f_state;
  584. private string _f_createuser;
  585. private DateTime? _f_createtime;
  586. private int? _f_isdelete;
  587. private string _f_deleteuser;
  588. private DateTime? _f_deletetime;
  589. /// <summary>
  590. ///
  591. /// </summary>
  592. public int F_Id
  593. {
  594. set { _f_id = value; }
  595. get { return _f_id; }
  596. }
  597. /// <summary>
  598. /// 类型(1网站2微信)
  599. /// </summary>
  600. public int? F_Type
  601. {
  602. set { _f_type = value; }
  603. get { return _f_type; }
  604. }
  605. /// <summary>
  606. /// 昵称
  607. /// </summary>
  608. public string F_Name
  609. {
  610. set { _f_name = value; }
  611. get { return _f_name; }
  612. }
  613. /// <summary>
  614. /// 微信账号或者网站账号
  615. /// </summary>
  616. public string F_Account
  617. {
  618. set { _f_account = value; }
  619. get { return _f_account; }
  620. }
  621. /// <summary>
  622. /// 微信标识或者网站标识
  623. /// </summary>
  624. public string F_OpenId
  625. {
  626. set { _f_openid = value; }
  627. get { return _f_openid; }
  628. }
  629. /// <summary>
  630. /// 头像url
  631. /// </summary>
  632. public string F_HeadImgUrl
  633. {
  634. set { _f_headimgurl = value; }
  635. get { return _f_headimgurl; }
  636. }
  637. /// <summary>
  638. /// 主客服
  639. /// </summary>
  640. public string F_MainUserCode
  641. {
  642. set { _f_mainusercode = value; }
  643. get { return _f_mainusercode; }
  644. }
  645. /// <summary>
  646. /// 副客服
  647. /// </summary>
  648. public string F_OtherUserCode
  649. {
  650. set { _f_otherusercode = value; }
  651. get { return _f_otherusercode; }
  652. }
  653. /// <summary>
  654. /// IP
  655. /// </summary>
  656. public string F_IP
  657. {
  658. set { _f_ip = value; }
  659. get { return _f_ip; }
  660. }
  661. /// <summary>
  662. /// 状态
  663. /// </summary>
  664. public int? F_State
  665. {
  666. set { _f_state = value; }
  667. get { return _f_state; }
  668. }
  669. /// <summary>
  670. ///
  671. /// </summary>
  672. public string F_CreateUser
  673. {
  674. set { _f_createuser = value; }
  675. get { return _f_createuser; }
  676. }
  677. /// <summary>
  678. ///
  679. /// </summary>
  680. public DateTime? F_CreateTime
  681. {
  682. set { _f_createtime = value; }
  683. get { return _f_createtime; }
  684. }
  685. /// <summary>
  686. ///
  687. /// </summary>
  688. public int? F_IsDelete
  689. {
  690. set { _f_isdelete = value; }
  691. get { return _f_isdelete; }
  692. }
  693. /// <summary>
  694. ///
  695. /// </summary>
  696. public string F_DeleteUser
  697. {
  698. set { _f_deleteuser = value; }
  699. get { return _f_deleteuser; }
  700. }
  701. /// <summary>
  702. ///
  703. /// </summary>
  704. public DateTime? F_DeleteTime
  705. {
  706. set { _f_deletetime = value; }
  707. get { return _f_deletetime; }
  708. }
  709. #endregion Model
  710. }
  711. /// <summary>
  712. /// 消息类
  713. /// </summary>
  714. public class T_Chat_Message
  715. {
  716. public T_Chat_Message()
  717. { }
  718. #region Model
  719. private long _f_id;
  720. private string _f_fromuser;
  721. private string _f_touser;
  722. private string _f_message;
  723. private string _f_file;
  724. private string _f_ip;
  725. private int? _f_sourcetype;
  726. private int? _f_messagetype;
  727. private int? _f_state;
  728. private string _f_createuser;
  729. private DateTime? _f_createtime;
  730. private int? _f_isdelete;
  731. private string _f_deleteuser;
  732. private DateTime? _f_deletetime;
  733. /// <summary>
  734. ///
  735. /// </summary>
  736. public long F_Id
  737. {
  738. set { _f_id = value; }
  739. get { return _f_id; }
  740. }
  741. /// <summary>
  742. /// 发送人
  743. /// </summary>
  744. public string F_FromUser
  745. {
  746. set { _f_fromuser = value; }
  747. get { return _f_fromuser; }
  748. }
  749. /// <summary>
  750. /// 接收人
  751. /// </summary>
  752. public string F_ToUser
  753. {
  754. set { _f_touser = value; }
  755. get { return _f_touser; }
  756. }
  757. /// <summary>
  758. /// 内容
  759. /// </summary>
  760. public string F_Message
  761. {
  762. set { _f_message = value; }
  763. get { return _f_message; }
  764. }
  765. /// <summary>
  766. /// 附件
  767. /// </summary>
  768. public string F_File
  769. {
  770. set { _f_file = value; }
  771. get { return _f_file; }
  772. }
  773. /// <summary>
  774. /// IP
  775. /// </summary>
  776. public string F_IP
  777. {
  778. set { _f_ip = value; }
  779. get { return _f_ip; }
  780. }
  781. /// <summary>
  782. /// 类型(1网站2微信)
  783. /// </summary>
  784. public int? F_SourceType
  785. {
  786. set { _f_sourcetype = value; }
  787. get { return _f_sourcetype; }
  788. }
  789. /// <summary>
  790. /// 消息类型
  791. /// </summary>
  792. public int? F_MessageType
  793. {
  794. set { _f_messagetype = value; }
  795. get { return _f_messagetype; }
  796. }
  797. /// <summary>
  798. /// 状态
  799. /// </summary>
  800. public int? F_State
  801. {
  802. set { _f_state = value; }
  803. get { return _f_state; }
  804. }
  805. /// <summary>
  806. ///
  807. /// </summary>
  808. public string F_CreateUser
  809. {
  810. set { _f_createuser = value; }
  811. get { return _f_createuser; }
  812. }
  813. /// <summary>
  814. ///
  815. /// </summary>
  816. public DateTime? F_CreateTime
  817. {
  818. set { _f_createtime = value; }
  819. get { return _f_createtime; }
  820. }
  821. /// <summary>
  822. ///
  823. /// </summary>
  824. public int? F_IsDelete
  825. {
  826. set { _f_isdelete = value; }
  827. get { return _f_isdelete; }
  828. }
  829. /// <summary>
  830. ///
  831. /// </summary>
  832. public string F_DeleteUser
  833. {
  834. set { _f_deleteuser = value; }
  835. get { return _f_deleteuser; }
  836. }
  837. /// <summary>
  838. ///
  839. /// </summary>
  840. public DateTime? F_DeleteTime
  841. {
  842. set { _f_deletetime = value; }
  843. get { return _f_deletetime; }
  844. }
  845. #endregion Model
  846. }
  847. /// <summary>
  848. /// 用户IP类
  849. /// </summary>
  850. public class T_Chat_IPList
  851. {
  852. public T_Chat_IPList()
  853. { }
  854. #region Model
  855. private int _f_id;
  856. private string _f_openid;
  857. private string _f_ip;
  858. private string _f_country;
  859. private string _f_countrycode;
  860. private string _f_area;
  861. private string _f_areacode;
  862. private string _f_region;
  863. private string _f_regioncode;
  864. private string _f_city;
  865. private string _f_citycode;
  866. private string _f_county;
  867. private string _f_countycode;
  868. private string _f_isp;
  869. private string _f_ispcode;
  870. private DateTime? _f_createtime;
  871. private int? _f_type;
  872. /// <summary>
  873. ///
  874. /// </summary>
  875. public int F_Id
  876. {
  877. set { _f_id = value; }
  878. get { return _f_id; }
  879. }
  880. /// <summary>
  881. ///
  882. /// </summary>
  883. public string F_OpenId
  884. {
  885. set { _f_openid = value; }
  886. get { return _f_openid; }
  887. }
  888. /// <summary>
  889. ///
  890. /// </summary>
  891. public string F_IP
  892. {
  893. set { _f_ip = value; }
  894. get { return _f_ip; }
  895. }
  896. /// <summary>
  897. ///
  898. /// </summary>
  899. public string F_Country
  900. {
  901. set { _f_country = value; }
  902. get { return _f_country; }
  903. }
  904. /// <summary>
  905. ///
  906. /// </summary>
  907. public string F_CountryCode
  908. {
  909. set { _f_countrycode = value; }
  910. get { return _f_countrycode; }
  911. }
  912. /// <summary>
  913. ///
  914. /// </summary>
  915. public string F_Area
  916. {
  917. set { _f_area = value; }
  918. get { return _f_area; }
  919. }
  920. /// <summary>
  921. ///
  922. /// </summary>
  923. public string F_AreaCode
  924. {
  925. set { _f_areacode = value; }
  926. get { return _f_areacode; }
  927. }
  928. /// <summary>
  929. ///
  930. /// </summary>
  931. public string F_Region
  932. {
  933. set { _f_region = value; }
  934. get { return _f_region; }
  935. }
  936. /// <summary>
  937. ///
  938. /// </summary>
  939. public string F_RegionCode
  940. {
  941. set { _f_regioncode = value; }
  942. get { return _f_regioncode; }
  943. }
  944. /// <summary>
  945. ///
  946. /// </summary>
  947. public string F_City
  948. {
  949. set { _f_city = value; }
  950. get { return _f_city; }
  951. }
  952. /// <summary>
  953. ///
  954. /// </summary>
  955. public string F_CityCode
  956. {
  957. set { _f_citycode = value; }
  958. get { return _f_citycode; }
  959. }
  960. /// <summary>
  961. ///
  962. /// </summary>
  963. public string F_County
  964. {
  965. set { _f_county = value; }
  966. get { return _f_county; }
  967. }
  968. /// <summary>
  969. ///
  970. /// </summary>
  971. public string F_CountyCode
  972. {
  973. set { _f_countycode = value; }
  974. get { return _f_countycode; }
  975. }
  976. /// <summary>
  977. ///
  978. /// </summary>
  979. public string F_ISP
  980. {
  981. set { _f_isp = value; }
  982. get { return _f_isp; }
  983. }
  984. /// <summary>
  985. ///
  986. /// </summary>
  987. public string F_ISPCode
  988. {
  989. set { _f_ispcode = value; }
  990. get { return _f_ispcode; }
  991. }
  992. /// <summary>
  993. ///
  994. /// </summary>
  995. public DateTime? F_CreateTime
  996. {
  997. set { _f_createtime = value; }
  998. get { return _f_createtime; }
  999. }
  1000. /// <summary>
  1001. ///
  1002. /// </summary>
  1003. public int? F_Type
  1004. {
  1005. set { _f_type = value; }
  1006. get { return _f_type; }
  1007. }
  1008. #endregion Model
  1009. }
  1010. /// <summary>
  1011. /// 用户签入签出时间
  1012. /// </summary>
  1013. public class T_Chat_InOut
  1014. {
  1015. public T_Chat_InOut()
  1016. { }
  1017. #region Model
  1018. private int _f_id;
  1019. private string _f_openid;
  1020. private string _f_ip;
  1021. private DateTime? _f_intime;
  1022. private DateTime? _f_outtime;
  1023. private int? _f_type;
  1024. /// <summary>
  1025. ///
  1026. /// </summary>
  1027. public int F_Id
  1028. {
  1029. set { _f_id = value; }
  1030. get { return _f_id; }
  1031. }
  1032. /// <summary>
  1033. ///
  1034. /// </summary>
  1035. public string F_OpenId
  1036. {
  1037. set { _f_openid = value; }
  1038. get { return _f_openid; }
  1039. }
  1040. /// <summary>
  1041. ///
  1042. /// </summary>
  1043. public string F_IP
  1044. {
  1045. set { _f_ip = value; }
  1046. get { return _f_ip; }
  1047. }
  1048. /// <summary>
  1049. ///
  1050. /// </summary>
  1051. public DateTime? F_InTime
  1052. {
  1053. set { _f_intime = value; }
  1054. get { return _f_intime; }
  1055. }
  1056. /// <summary>
  1057. ///
  1058. /// </summary>
  1059. public DateTime? F_OutTime
  1060. {
  1061. set { _f_outtime = value; }
  1062. get { return _f_outtime; }
  1063. }
  1064. /// <summary>
  1065. ///
  1066. /// </summary>
  1067. public int? F_Type
  1068. {
  1069. set { _f_type = value; }
  1070. get { return _f_type; }
  1071. }
  1072. #endregion Model
  1073. }
  1074. }
  1075. }