DataAccess.cs 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data;
  4. using System.Data.Common;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. using System.Configuration;
  9. using MySql.Data.MySqlClient;
  10. using System.Runtime.InteropServices.ComTypes;
  11. using static DataManager.UIConstants;
  12. using System.ComponentModel.Design;
  13. using static System.Windows.Forms.VisualStyles.VisualStyleElement.ListView;
  14. using System.Xml.Linq;
  15. using System.Windows;
  16. namespace DataManager
  17. {
  18. public class DataAccess
  19. {
  20. private static String connectionString = ConfigurationManager.ConnectionStrings["MySQL"].ConnectionString;
  21. public const sbyte DM_NULL = -99;
  22. public static DataTable Get_cm_user_by_cellphone(string cellphone)
  23. {
  24. MySqlConnection connection = new MySqlConnection(connectionString);
  25. MySqlDataAdapter ad = new MySqlDataAdapter("sp_get_cm_user_by_cellphone", connection);
  26. MySqlParameter i_cellphone = new MySqlParameter("i_cellphone", cellphone);
  27. ad.SelectCommand.Parameters.Add(i_cellphone);
  28. ad.SelectCommand.CommandType = CommandType.StoredProcedure;
  29. DataTable dt = new DataTable();
  30. ad.Fill(dt);
  31. connection.Close();
  32. return dt;
  33. }
  34. public static DataTable Get_dm_user(int? userId, sbyte? role)
  35. {
  36. MySqlConnection connection = new MySqlConnection(connectionString);
  37. MySqlDataAdapter ad = new MySqlDataAdapter("sp_get_dm_user", connection);
  38. MySqlParameter i_userid = new MySqlParameter("i_userid", userId);
  39. MySqlParameter i_role = new MySqlParameter("i_role", role);
  40. ad.SelectCommand.Parameters.Add(i_userid);
  41. ad.SelectCommand.Parameters.Add(i_role);
  42. ad.SelectCommand.CommandType = CommandType.StoredProcedure;
  43. DataTable dt = new DataTable();
  44. ad.Fill(dt);
  45. connection.Close();
  46. return dt;
  47. }
  48. /// <summary>
  49. /// 取数据采集任务列表
  50. /// </summary>
  51. /// <param name="userId"></param>
  52. /// <param name="taskId"></param>
  53. /// <param name="companyId"></param>
  54. /// <param name="taskDate"></param>
  55. /// <param name="taskType"></param>
  56. /// <param name="isValid"></param>
  57. /// <returns></returns>
  58. public static DataTable Get_dm_collection_task(int? userId, int? taskId, string providerId, string providerKeyword,
  59. DateTime? taskDate, short? taskType, string entityId, string entityKeyword, sbyte? isValid)
  60. {
  61. MySqlConnection connection = new MySqlConnection(connectionString);
  62. MySqlDataAdapter ad = new MySqlDataAdapter("sp_get_dm_collection_task", connection);
  63. MySqlParameter i_userid = new MySqlParameter("i_userid", userId);
  64. MySqlParameter i_task_id = new MySqlParameter("i_task_id", taskId);
  65. MySqlParameter i_provider_id = new MySqlParameter("i_provider_id", providerId);
  66. MySqlParameter i_provider_keyword = new MySqlParameter("i_provider_keyword", providerKeyword);
  67. MySqlParameter i_task_date = new MySqlParameter("i_task_date", taskDate);
  68. MySqlParameter i_task_type = new MySqlParameter("i_task_type", taskType);
  69. MySqlParameter i_entity_id = new MySqlParameter("i_entity_id", entityId);
  70. MySqlParameter i_entity_keywordword = new MySqlParameter("i_entity_keyword", entityKeyword);
  71. MySqlParameter i_isvalid = new MySqlParameter("i_isvalid", isValid);
  72. ad.SelectCommand.Parameters.Add(i_userid);
  73. ad.SelectCommand.Parameters.Add(i_task_id);
  74. ad.SelectCommand.Parameters.Add(i_provider_id);
  75. ad.SelectCommand.Parameters.Add(i_provider_keyword);
  76. ad.SelectCommand.Parameters.Add(i_task_date);
  77. ad.SelectCommand.Parameters.Add(i_task_type);
  78. ad.SelectCommand.Parameters.Add(i_entity_id);
  79. ad.SelectCommand.Parameters.Add(i_entity_keywordword);
  80. ad.SelectCommand.Parameters.Add(i_isvalid);
  81. ad.SelectCommand.CommandType = CommandType.StoredProcedure;
  82. DataTable dt = new DataTable();
  83. ad.Fill(dt);
  84. connection.Close();
  85. return dt;
  86. }
  87. public static void Set_dm_collection_task(int? taskId, string providerId, DateTime taskDate, Int16 taskType,
  88. string entityId, string errMessage,
  89. sbyte isvalid, int userId, out int task_id)
  90. {
  91. task_id = 0;
  92. using (MySqlConnection connection = new MySqlConnection(connectionString))
  93. {
  94. connection.Open();
  95. MySqlCommand cmd = new MySqlCommand("sp_set_dm_collection_task", connection);
  96. MySqlParameter i_task_id = new MySqlParameter("i_task_id", taskId);
  97. MySqlParameter i_provider_id = new MySqlParameter("i_provider_id", providerId);
  98. MySqlParameter i_task_date = new MySqlParameter("i_task_date", taskDate);
  99. MySqlParameter i_task_type = new MySqlParameter("i_task_type", taskType);
  100. MySqlParameter i_entity_id = new MySqlParameter("i_entity_id", entityId);
  101. MySqlParameter i_err_message = new MySqlParameter("i_err_message", errMessage);
  102. MySqlParameter i_isvalid = new MySqlParameter("i_isvalid", isvalid);
  103. MySqlParameter i_user_id = new MySqlParameter("i_user_id", userId);
  104. MySqlParameter o_task_id = new MySqlParameter("o_task_id", DbType.Int32);
  105. o_task_id.Direction = ParameterDirection.Output;
  106. cmd.Parameters.Add(i_task_id);
  107. cmd.Parameters.Add(i_provider_id);
  108. cmd.Parameters.Add(i_task_date);
  109. cmd.Parameters.Add(i_task_type);
  110. cmd.Parameters.Add(i_isvalid);
  111. cmd.Parameters.Add(i_entity_id);
  112. cmd.Parameters.Add(i_err_message);
  113. cmd.Parameters.Add(i_user_id);
  114. cmd.Parameters.Add(o_task_id);
  115. cmd.CommandType = CommandType.StoredProcedure;
  116. cmd.Connection = connection;
  117. cmd.ExecuteNonQuery();
  118. task_id = int.Parse(cmd.Parameters["o_task_id"].Value.ToString());
  119. }
  120. }
  121. /// <summary>
  122. /// 取公司联系任务列表
  123. /// </summary>
  124. /// <param name="userId"></param>
  125. /// <param name="taskId"></param>
  126. /// <param name="companyId"></param>
  127. /// <param name="taskDate"></param>
  128. /// <param name="taskType"></param>
  129. /// <param name="isValid"></param>
  130. /// <param name="priority"></param>
  131. /// <param name="followUpDate"></param>
  132. /// <param name="companyAsset"></param>
  133. /// <returns></returns>
  134. public static DataTable Get_dm_contact_task(int? userId, int? taskId, string companyId, string companyKeyword,
  135. DateTime? taskDate, short? taskType, sbyte? isValid, sbyte? priority,
  136. DateTime? followUpDate, sbyte? companyAsset)
  137. {
  138. MySqlConnection connection = new MySqlConnection(connectionString);
  139. MySqlDataAdapter ad = new MySqlDataAdapter("sp_get_dm_contact_task", connection);
  140. MySqlParameter i_userid = new MySqlParameter("i_userid", userId);
  141. MySqlParameter i_task_id = new MySqlParameter("i_task_id", taskId);
  142. MySqlParameter i_company_id = new MySqlParameter("i_company_id", companyId);
  143. MySqlParameter i_company_keyword = new MySqlParameter("i_company_keyword", companyKeyword);
  144. MySqlParameter i_task_date = new MySqlParameter("i_task_date", taskDate);
  145. MySqlParameter i_task_type = new MySqlParameter("i_task_type", taskType);
  146. MySqlParameter i_isvalid = new MySqlParameter("i_isvalid", isValid);
  147. MySqlParameter i_priority = new MySqlParameter("i_priority", priority);
  148. MySqlParameter i_follow_up_date = new MySqlParameter("i_follow_up_date", followUpDate);
  149. MySqlParameter i_company_asset_size = new MySqlParameter("i_company_asset_size", companyAsset);
  150. ad.SelectCommand.Parameters.Add(i_userid);
  151. ad.SelectCommand.Parameters.Add(i_task_id);
  152. ad.SelectCommand.Parameters.Add(i_company_id);
  153. ad.SelectCommand.Parameters.Add(i_company_keyword);
  154. ad.SelectCommand.Parameters.Add(i_task_date);
  155. ad.SelectCommand.Parameters.Add(i_task_type);
  156. ad.SelectCommand.Parameters.Add(i_isvalid);
  157. ad.SelectCommand.Parameters.Add(i_priority);
  158. ad.SelectCommand.Parameters.Add(i_follow_up_date);
  159. ad.SelectCommand.Parameters.Add(i_company_asset_size);
  160. ad.SelectCommand.CommandType = CommandType.StoredProcedure;
  161. DataTable dt = new DataTable();
  162. ad.Fill(dt);
  163. connection.Close();
  164. return dt;
  165. }
  166. /// <summary>
  167. /// 更新联系任务表
  168. /// </summary>
  169. /// <param name="taskId"></param>
  170. /// <param name="companyId"></param>
  171. /// <param name="taskDate"></param>
  172. /// <param name="taskType"></param>
  173. /// <param name="isvalid"></param>
  174. /// <param name="priority"></param>
  175. /// <param name="followUpDate"></param>
  176. /// <param name="userId"></param>
  177. public static void Set_dm_contact_task(int? taskId, string companyId, DateTime taskDate, Int16 taskType, sbyte isvalid,
  178. sbyte priority, DateTime? followUpDate, int userId, out int task_id)
  179. {
  180. task_id = 0;
  181. using (MySqlConnection connection = new MySqlConnection(connectionString))
  182. {
  183. connection.Open();
  184. MySqlCommand cmd = new MySqlCommand("sp_set_dm_contact_task", connection);
  185. MySqlParameter i_task_id = new MySqlParameter("i_task_id", taskId);
  186. MySqlParameter i_company_id = new MySqlParameter("i_company_id", companyId);
  187. MySqlParameter i_task_date = new MySqlParameter("i_task_date", taskDate);
  188. MySqlParameter i_task_type = new MySqlParameter("i_task_type", taskType);
  189. MySqlParameter i_isvalid = new MySqlParameter("i_isvalid", isvalid);
  190. MySqlParameter i_priority = new MySqlParameter("i_priority", priority);
  191. MySqlParameter i_follow_up_date = new MySqlParameter("i_follow_up_date", followUpDate);
  192. MySqlParameter i_user_id = new MySqlParameter("i_user_id", userId);
  193. MySqlParameter o_task_id = new MySqlParameter("o_task_id", DbType.Int32);
  194. o_task_id.Direction = ParameterDirection.Output;
  195. cmd.Parameters.Add(i_task_id);
  196. cmd.Parameters.Add(i_company_id);
  197. cmd.Parameters.Add(i_task_date);
  198. cmd.Parameters.Add(i_task_type);
  199. cmd.Parameters.Add(i_isvalid);
  200. cmd.Parameters.Add(i_priority);
  201. cmd.Parameters.Add(i_follow_up_date);
  202. cmd.Parameters.Add(i_user_id);
  203. cmd.Parameters.Add(o_task_id);
  204. cmd.CommandType = CommandType.StoredProcedure;
  205. cmd.Connection = connection;
  206. cmd.ExecuteNonQuery();
  207. task_id = int.Parse(cmd.Parameters["o_task_id"].Value.ToString());
  208. }
  209. }
  210. /// <summary>
  211. /// 取基金基本信息
  212. /// </summary>
  213. /// <param name="fundId"></param>
  214. /// <returns></returns>
  215. public static DataTable Get_dm_fund_information(string fundId, string companyId)
  216. {
  217. MySqlConnection connection = new MySqlConnection(connectionString);
  218. MySqlDataAdapter ad = new MySqlDataAdapter("sp_get_dm_fund_information", connection);
  219. MySqlParameter i_fundId = new MySqlParameter("i_fund_id", fundId);
  220. MySqlParameter i_company_id = new MySqlParameter("i_company_id", companyId);
  221. ad.SelectCommand.Parameters.Add(i_fundId);
  222. ad.SelectCommand.Parameters.Add(i_company_id);
  223. ad.SelectCommand.CommandType = CommandType.StoredProcedure;
  224. DataTable dt = new DataTable();
  225. ad.Fill(dt);
  226. connection.Close();
  227. return dt;
  228. }
  229. public static void Set_dm_fund_information(string fundId, string fundShortName, int? strategyId, int? substrategyId,
  230. string parentFundId, string navFrequency,
  231. sbyte isAuthorized, sbyte isRanking, sbyte isRating, int userId)
  232. {
  233. using (MySqlConnection connection = new MySqlConnection(connectionString))
  234. {
  235. connection.Open();
  236. MySqlCommand cmd = new MySqlCommand("sp_set_dm_fund_information", connection);
  237. MySqlParameter i_fund_id = new MySqlParameter("i_fund_id", fundId);
  238. MySqlParameter i_fund_short_name = new MySqlParameter("i_fund_short_name", fundShortName);
  239. MySqlParameter i_strategy_id = new MySqlParameter("i_strategy_id", strategyId);
  240. MySqlParameter i_substrategy_id = new MySqlParameter("i_substrategy_id", substrategyId);
  241. MySqlParameter i_p_fund_id = new MySqlParameter("i_p_fund_id", parentFundId);
  242. MySqlParameter i_nav_frequency = new MySqlParameter("i_nav_frequency", navFrequency);
  243. MySqlParameter i_is_authorized = new MySqlParameter("i_is_authorized", isAuthorized);
  244. MySqlParameter i_is_ranking = new MySqlParameter("i_is_ranking", isRanking);
  245. MySqlParameter i_is_rating = new MySqlParameter("i_is_rating", isRating);
  246. MySqlParameter i_userid = new MySqlParameter("i_userid", userId);
  247. cmd.Parameters.Add(i_fund_id);
  248. cmd.Parameters.Add(i_fund_short_name);
  249. cmd.Parameters.Add(i_strategy_id);
  250. cmd.Parameters.Add(i_substrategy_id);
  251. cmd.Parameters.Add(i_p_fund_id);
  252. cmd.Parameters.Add(i_nav_frequency);
  253. cmd.Parameters.Add(i_is_authorized);
  254. cmd.Parameters.Add(i_is_ranking);
  255. cmd.Parameters.Add(i_is_rating);
  256. cmd.Parameters.Add(i_userid);
  257. cmd.CommandType = CommandType.StoredProcedure;
  258. cmd.Connection = connection;
  259. cmd.ExecuteNonQuery();
  260. }
  261. }
  262. public static DataTable Get_dm_company_information(string companyId)
  263. {
  264. MySqlConnection connection = new MySqlConnection(connectionString);
  265. MySqlDataAdapter ad = new MySqlDataAdapter("sp_get_dm_company_information", connection);
  266. MySqlParameter i_company_id = new MySqlParameter("i_company_id", companyId);
  267. ad.SelectCommand.Parameters.Add(i_company_id);
  268. ad.SelectCommand.CommandType = CommandType.StoredProcedure;
  269. DataTable dt = new DataTable();
  270. ad.Fill(dt);
  271. connection.Close();
  272. return dt;
  273. }
  274. /// <summary>
  275. /// 搜索公司(目前仅支持对 company_short_name 的搜索)
  276. /// </summary>
  277. /// <param name="companyType"></param> 私募证券:1
  278. /// <param name="keyWord"></param>
  279. /// <returns></returns>
  280. public static DataTable Search_dm_company(int? companyType, string keyWord)
  281. {
  282. MySqlConnection connection = new MySqlConnection(connectionString);
  283. MySqlDataAdapter ad = new MySqlDataAdapter("sp_dm_search_company", connection);
  284. MySqlParameter i_companyType = new MySqlParameter("i_company_type", companyType);
  285. MySqlParameter i_keyWord = new MySqlParameter("i_key_word", keyWord);
  286. ad.SelectCommand.Parameters.Add(i_companyType);
  287. ad.SelectCommand.Parameters.Add(i_keyWord);
  288. ad.SelectCommand.CommandType = CommandType.StoredProcedure;
  289. DataTable dt = new DataTable();
  290. ad.Fill(dt);
  291. connection.Close();
  292. return dt;
  293. }
  294. /// <summary>
  295. /// 搜索基金(目前仅支持对 fund_short_name 的搜索)
  296. /// </summary>
  297. /// <param name="raiseType"></param> 私募:1、公募:2
  298. /// <param name="keyWord"></param>
  299. /// <returns></returns>
  300. public static DataTable Search_dm_fund(int? raiseType, string keyWord)
  301. {
  302. MySqlConnection connection = new MySqlConnection(connectionString);
  303. MySqlDataAdapter ad = new MySqlDataAdapter("sp_dm_search_fund", connection);
  304. MySqlParameter i_raise_type = new MySqlParameter("i_raise_type", raiseType);
  305. MySqlParameter i_keyWord = new MySqlParameter("i_key_word", keyWord);
  306. ad.SelectCommand.Parameters.Add(i_raise_type);
  307. ad.SelectCommand.Parameters.Add(i_keyWord);
  308. ad.SelectCommand.CommandType = CommandType.StoredProcedure;
  309. DataTable dt = new DataTable();
  310. ad.Fill(dt);
  311. connection.Close();
  312. return dt;
  313. }
  314. /// <summary>
  315. /// 从 mfdb 里取NAV
  316. /// </summary>
  317. /// <param name="fundId"></param>
  318. /// <param name="startDate"></param>
  319. /// <param name="endDate"></param>
  320. /// <returns></returns>
  321. public static DataTable Get_Nav(string fundId, DateTime? startDate, DateTime? endDate)
  322. {
  323. MySqlConnection connection = new MySqlConnection(connectionString);
  324. MySqlDataAdapter ad = new MySqlDataAdapter("sp_get_nav", connection);
  325. MySqlParameter i_fund_id = new MySqlParameter("i_fund_id", fundId);
  326. MySqlParameter i_start_date = new MySqlParameter("i_start_date", startDate);
  327. MySqlParameter i_end_date = new MySqlParameter("i_end_date", endDate);
  328. ad.SelectCommand.Parameters.Add(i_fund_id);
  329. ad.SelectCommand.Parameters.Add(i_start_date);
  330. ad.SelectCommand.Parameters.Add(i_end_date);
  331. ad.SelectCommand.CommandType = CommandType.StoredProcedure;
  332. DataTable dt = new DataTable();
  333. ad.Fill(dt);
  334. connection.Close();
  335. return dt;
  336. }
  337. /// <summary>
  338. /// 从 raw_db 里取原始NAV
  339. /// </summary>
  340. /// <param name="fundId"></param>
  341. /// <param name="startDate"></param>
  342. /// <param name="endDate"></param>
  343. /// <returns></returns>
  344. public static DataTable Get_dm_nav(string fundId, string providerId, string externalId, DateTime? startDate, DateTime? endDate)
  345. {
  346. MySqlConnection connection = new MySqlConnection(connectionString);
  347. MySqlDataAdapter ad = new MySqlDataAdapter("sp_get_dm_nav", connection);
  348. MySqlParameter i_fund_id = new MySqlParameter("i_fund_id", fundId);
  349. MySqlParameter i_provider_id = new MySqlParameter("i_provider_id", providerId);
  350. MySqlParameter i_external_id = new MySqlParameter("i_external_id", externalId);
  351. MySqlParameter i_start_date = new MySqlParameter("i_start_date", startDate);
  352. MySqlParameter i_end_date = new MySqlParameter("i_end_date", endDate);
  353. ad.SelectCommand.Parameters.Add(i_fund_id);
  354. ad.SelectCommand.Parameters.Add(i_provider_id);
  355. ad.SelectCommand.Parameters.Add(i_external_id);
  356. ad.SelectCommand.Parameters.Add(i_start_date);
  357. ad.SelectCommand.Parameters.Add(i_end_date);
  358. ad.SelectCommand.CommandType = CommandType.StoredProcedure;
  359. DataTable dt = new DataTable();
  360. ad.Fill(dt);
  361. connection.Close();
  362. return dt;
  363. }
  364. public static DataTable Get_dm_memo(sbyte jobType, int taskId)
  365. {
  366. MySqlConnection connection = new MySqlConnection(connectionString);
  367. MySqlDataAdapter ad = new MySqlDataAdapter("sp_get_dm_task_memo", connection);
  368. MySqlParameter i_job_type = new MySqlParameter("i_job_type", jobType);
  369. MySqlParameter i_task_id = new MySqlParameter("i_task_id", taskId);
  370. ad.SelectCommand.Parameters.Add(i_job_type);
  371. ad.SelectCommand.Parameters.Add(i_task_id);
  372. ad.SelectCommand.CommandType = CommandType.StoredProcedure;
  373. DataTable dt = new DataTable();
  374. ad.Fill(dt);
  375. connection.Close();
  376. return dt;
  377. }
  378. public static void Set_dm_memo(sbyte jobType, int taskId, string memo, int userId)
  379. {
  380. using (MySqlConnection connection = new MySqlConnection(connectionString))
  381. {
  382. connection.Open();
  383. MySqlCommand cmd = new MySqlCommand("sp_set_dm_task_memo", connection);
  384. MySqlParameter i_job_type = new MySqlParameter("i_job_type", jobType);
  385. MySqlParameter i_task_id = new MySqlParameter("i_task_id", taskId);
  386. MySqlParameter i_memo = new MySqlParameter("i_memo", memo);
  387. MySqlParameter i_userid = new MySqlParameter("i_userid", userId);
  388. cmd.Parameters.Add(i_job_type);
  389. cmd.Parameters.Add(i_task_id);
  390. cmd.Parameters.Add(i_memo);
  391. cmd.Parameters.Add(i_userid);
  392. cmd.CommandType = CommandType.StoredProcedure;
  393. cmd.Connection = connection;
  394. cmd.ExecuteNonQuery();
  395. }
  396. }
  397. public static DataTable Get_dm_contacts(string companyId)
  398. {
  399. MySqlConnection connection = new MySqlConnection(connectionString);
  400. MySqlDataAdapter ad = new MySqlDataAdapter("sp_dm_get_contacts", connection);
  401. MySqlParameter i_company_id = new MySqlParameter("i_company_id", companyId);
  402. ad.SelectCommand.Parameters.Add(i_company_id);
  403. ad.SelectCommand.CommandType = CommandType.StoredProcedure;
  404. DataTable dt = new DataTable();
  405. ad.Fill(dt);
  406. connection.Close();
  407. return dt;
  408. }
  409. public static int Set_dm_contacts(DataTable dt, string companyId, int userId)
  410. {
  411. int ret = 0;
  412. if (dt == null || dt.Rows.Count <= 0) { return ret; }
  413. for (int i = 0; i < dt.Rows.Count; i++)
  414. {
  415. DataRow dataRow = dt.Rows[i];
  416. int o_id;
  417. if (dataRow.RowState == DataRowState.Deleted)
  418. {
  419. Set_dm_contacts(int.Parse(dataRow["id", DataRowVersion.Original].ToString()), dataRow["company_id", DataRowVersion.Original].ToString(),
  420. dataRow["name", DataRowVersion.Original].ToString(), dataRow["role", DataRowVersion.Original].ToString(),
  421. dataRow["phone", DataRowVersion.Original].ToString(), dataRow["wechat", DataRowVersion.Original].ToString(),
  422. dataRow["email", DataRowVersion.Original].ToString(),
  423. 0, userId, out o_id);
  424. ret++;
  425. }
  426. else if (dataRow.RowState == DataRowState.Added || dataRow.RowState == DataRowState.Modified)
  427. {
  428. int? id = null;
  429. if (string.IsNullOrEmpty(dataRow["id"].ToString()) == false)
  430. id = int.Parse(dataRow["id"].ToString());
  431. Set_dm_contacts(id, companyId, dataRow["name"].ToString(), dataRow["role"].ToString(), dataRow["phone"].ToString(),
  432. dataRow["wechat"].ToString(), dataRow["email"].ToString(),
  433. 1, userId, out o_id);
  434. if (dataRow.RowState == DataRowState.Added)
  435. {
  436. dataRow["id"] = o_id;
  437. dataRow["company_id"] = companyId;
  438. }
  439. ret++;
  440. }
  441. }
  442. return ret;
  443. }
  444. public static void Set_dm_contacts(int? id, string companyId, string name, string role, string phone,
  445. string wechat, string email, sbyte isvalid, int userId, out int out_id)
  446. {
  447. using (MySqlConnection connection = new MySqlConnection(connectionString))
  448. {
  449. connection.Open();
  450. MySqlCommand cmd = new MySqlCommand("sp_dm_set_contacts", connection);
  451. MySqlParameter i_id = new MySqlParameter("i_id", id);
  452. MySqlParameter i_company_id = new MySqlParameter("i_company_id", companyId);
  453. MySqlParameter i_name = new MySqlParameter("i_name", name);
  454. MySqlParameter i_role = new MySqlParameter("i_role", role);
  455. MySqlParameter i_phone = new MySqlParameter("i_phone", phone);
  456. MySqlParameter i_wechat = new MySqlParameter("i_wechat", wechat);
  457. MySqlParameter i_email = new MySqlParameter("i_email", email);
  458. MySqlParameter i_isvalid = new MySqlParameter("i_isvalid", isvalid);
  459. MySqlParameter i_userid = new MySqlParameter("i_userid", userId);
  460. MySqlParameter o_id = new MySqlParameter("o_id", DbType.Int32);
  461. o_id.Direction = ParameterDirection.Output;
  462. cmd.Parameters.Add(i_id);
  463. cmd.Parameters.Add(i_company_id);
  464. cmd.Parameters.Add(i_name);
  465. cmd.Parameters.Add(i_role);
  466. cmd.Parameters.Add(i_phone);
  467. cmd.Parameters.Add(i_wechat);
  468. cmd.Parameters.Add(i_email);
  469. cmd.Parameters.Add(i_isvalid);
  470. cmd.Parameters.Add(i_userid);
  471. cmd.Parameters.Add(o_id);
  472. cmd.CommandType = CommandType.StoredProcedure;
  473. cmd.Connection = connection;
  474. cmd.ExecuteNonQuery();
  475. out_id = int.Parse(cmd.Parameters["o_id"].Value.ToString());
  476. }
  477. }
  478. public static DataTable Get_dm_company_cover(string companyId, sbyte? coverType, int? userId)
  479. {
  480. MySqlConnection connection = new MySqlConnection(connectionString);
  481. MySqlDataAdapter ad = new MySqlDataAdapter("sp_get_dm_company_cover", connection);
  482. MySqlParameter i_company_id = new MySqlParameter("i_company_id", companyId);
  483. MySqlParameter i_cover_type = new MySqlParameter("i_cover_type", coverType);
  484. MySqlParameter i_userid = new MySqlParameter("i_userid", userId);
  485. ad.SelectCommand.Parameters.Add(i_company_id);
  486. ad.SelectCommand.Parameters.Add(i_cover_type);
  487. ad.SelectCommand.Parameters.Add(i_userid);
  488. ad.SelectCommand.CommandType = CommandType.StoredProcedure;
  489. DataTable dt = new DataTable();
  490. ad.Fill(dt);
  491. connection.Close();
  492. return dt;
  493. }
  494. /// <summary>
  495. /// 批量更新公司-对接人员关系
  496. /// </summary>
  497. /// <param name="updateQuery">Json字符串</param>
  498. /// <param name="userId"></param>
  499. /// <returns></returns>
  500. public static int Set_dm_company_cover(string updateQuery, int userId)
  501. {
  502. int ret = -1;
  503. using (MySqlConnection connection = new MySqlConnection(connectionString))
  504. {
  505. connection.Open();
  506. MySqlCommand cmd = new MySqlCommand("sp_set_dm_company_cover", connection);
  507. MySqlParameter i_update_query = new MySqlParameter("i_update_query", updateQuery);
  508. MySqlParameter i_userid = new MySqlParameter("i_userid", userId);
  509. cmd.Parameters.Add(i_update_query);
  510. cmd.Parameters.Add(i_userid);
  511. cmd.CommandType = CommandType.StoredProcedure;
  512. cmd.Connection = connection;
  513. cmd.ExecuteNonQuery();
  514. ret = 1;
  515. }
  516. return ret;
  517. }
  518. /// <summary>
  519. /// 取基金指数,benchmark_type: 0-主基准、1-分类平均
  520. /// </summary>
  521. /// <param name="fundId"></param>
  522. /// <returns></returns>
  523. public static DataTable Get_dm_fund_benchmark(string fundId)
  524. {
  525. MySqlConnection connection = new MySqlConnection(connectionString);
  526. MySqlDataAdapter ad = new MySqlDataAdapter("sp_get_dm_fund_benchmark", connection);
  527. MySqlParameter i_fund_id = new MySqlParameter("i_fund_id", fundId);
  528. ad.SelectCommand.Parameters.Add(i_fund_id);
  529. ad.SelectCommand.CommandType = CommandType.StoredProcedure;
  530. DataTable dt = new DataTable();
  531. ad.Fill(dt);
  532. connection.Close();
  533. return dt;
  534. }
  535. public static DataTable Get_dm_report_orphan_fund(int? userId)
  536. {
  537. MySqlConnection connection = new MySqlConnection(connectionString);
  538. MySqlDataAdapter ad = new MySqlDataAdapter("sp_get_dm_report_orphan_fund", connection);
  539. MySqlParameter i_userid = new MySqlParameter("i_userid", userId);
  540. ad.SelectCommand.Parameters.Add(i_userid);
  541. ad.SelectCommand.CommandType = CommandType.StoredProcedure;
  542. DataTable dt = new DataTable();
  543. ad.Fill(dt);
  544. connection.Close();
  545. return dt;
  546. }
  547. public static void Set_dm_external_fund_mapping(string providerId, string externalId, string fundId, int userId)
  548. {
  549. using (MySqlConnection connection = new MySqlConnection(connectionString))
  550. {
  551. connection.Open();
  552. MySqlCommand cmd = new MySqlCommand("sp_set_dm_external_fund_mapping", connection);
  553. MySqlParameter i_provider_id = new MySqlParameter("i_provider_id", providerId);
  554. MySqlParameter i_external_id = new MySqlParameter("i_external_id", externalId);
  555. MySqlParameter i_fund_id = new MySqlParameter("i_fund_id", fundId);
  556. MySqlParameter i_userid = new MySqlParameter("i_userid", userId);
  557. cmd.Parameters.Add(i_provider_id);
  558. cmd.Parameters.Add(i_external_id);
  559. cmd.Parameters.Add(i_fund_id);
  560. cmd.Parameters.Add(i_userid);
  561. cmd.CommandType = CommandType.StoredProcedure;
  562. cmd.Connection = connection;
  563. cmd.ExecuteNonQuery();
  564. }
  565. }
  566. }
  567. }