MsgObj.cs
上传用户:autodoor
上传日期:2022-08-04
资源大小:9973k
文件大小:16k
源码类别:

.net编程

开发平台:

Others

  1. using System;
  2. using qminoa.Common.Data;
  3. using System.Data;
  4. using System.Data.SqlClient;
  5. namespace qminoa.DA
  6. {
  7. public class MsgObj
  8. {
  9. private SqlConnection conn;
  10. public MsgObj()
  11. {
  12. conn  = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
  13. }
  14. public void InsertMessage(MsgCont msgobj,string Type,int personid)
  15. {
  16. SqlCommand command  = new SqlCommand();
  17. command.CommandText = "Msg_SendSave";
  18. command.CommandType = CommandType.StoredProcedure;
  19. command.Connection  = conn;
  20. SqlParameter [] paras = {   new SqlParameter("@MessagePersonID",SqlDbType.Int),
  21. new SqlParameter("@SendTo",SqlDbType.NVarChar,200),
  22. new SqlParameter("@SecretTo",SqlDbType.NVarChar,200),
  23. new SqlParameter("@SendToID",SqlDbType.NVarChar,200),
  24. new SqlParameter("@SecretToID",SqlDbType.NVarChar,200),
  25. new SqlParameter("@Title",SqlDbType.NVarChar,50),
  26. new SqlParameter("@Content",SqlDbType.Text),
  27. new SqlParameter("@SendDate",SqlDbType.DateTime),
  28. new SqlParameter("@Accessory",SqlDbType.NVarChar,200),
  29. new SqlParameter("@AccessoryID",SqlDbType.NVarChar,200),
  30. new SqlParameter("@Status",SqlDbType.Int),
  31. new SqlParameter("@Important",SqlDbType.Bit),
  32. new SqlParameter("@RetValue",SqlDbType.Int)
  33. };
  34. paras[0].Value = personid;
  35. paras[1].Value = msgobj.SendTo;
  36. paras[2].Value = msgobj.SecretTo;
  37. paras[3].Value = msgobj.SendToID;
  38. paras[4].Value = msgobj.SecretToID;
  39. paras[5].Value = msgobj.Title;
  40. paras[6].Value = msgobj.Content;
  41. paras[7].Value = msgobj.SendTime;
  42. paras[8].Value = msgobj.Accessory;
  43. paras[9].Value = msgobj.AccessoryID;
  44. if("发送" == Type)
  45. {
  46. paras[10].Value = 0;
  47. }
  48. else if( "保存" == Type)
  49. {
  50. paras[10].Value = 2;
  51. }
  52. paras[11].Value = msgobj.Important;
  53. paras[12].Direction = ParameterDirection.ReturnValue;
  54. foreach(SqlParameter para in paras)
  55. {
  56. command.Parameters.Add(para);
  57. }
  58. conn.Open();
  59. command.ExecuteNonQuery();
  60. int msgkey = Convert.ToInt32(command.Parameters["@RetValue"].Value.ToString(),10);
  61. conn.Close();
  62. if("发送" == Type)
  63. {
  64. AddMsgIndex(msgkey,msgobj.SendToID,msgobj.SecretToID,msgobj.SendTime,msgobj.Important);
  65. }
  66. }
  67. public void AddMsgIndex(int MsgKey,string SendToID,string SecretToID,DateTime senddate,bool Important)
  68. {
  69. char [] separator = new char[1];
  70. char [] separator2 = new Char[1];
  71. separator[0]  = ',';
  72. separator2[0] = '*';
  73. MsgAdd msgindex = new MsgAdd();
  74. DataRow row ;
  75. if( SendToID != "" && SendToID != null)
  76. {
  77. string [] senddepartid = SendToID.Split(separator,50);
  78. for(int i = 0; i < senddepartid.Length; i ++)
  79. {
  80. int pos = senddepartid[i].IndexOf("*");
  81. string [] sendid = senddepartid[i].Split(separator2,2);
  82. if( pos != -1)
  83. {
  84. row = msgindex.Tables["MsgAdd"].NewRow();
  85. row[MsgAdd.MSGID_FIELD] = MsgKey;
  86. row[MsgAdd.MSGPERSONID_FIELD] = Convert.ToInt32(sendid[1],10);
  87. row[MsgAdd.SENDLEVEL_FIELD]   = 0;
  88. row[MsgAdd.TIMES_FIELD]  = 0;
  89. row[MsgAdd.STATUS_FIELD] = 4;
  90. row[MsgAdd.DELETEFLAG_FIELD] = 0;
  91. row[MsgAdd.SENDDATE_FIELD] = senddate;
  92. row[MsgAdd.IMPORTANT_FIELD] = Important;
  93. msgindex.Tables[MsgAdd.MSGADD_TABLE].Rows.Add(row);
  94. }
  95. else
  96. {
  97. int departid = Convert.ToInt32(senddepartid[i],10);
  98. SelectPersonByDepart(departid,msgindex,MsgKey,senddate,0,Important);
  99. }
  100. }
  101. }
  102. if( SecretToID != "" && SecretToID != null)
  103. {
  104. string [] secretdepartid = SecretToID.Split(separator,10);
  105. for(int j = 0; j < secretdepartid.Length; j ++)
  106. {
  107. int pos = secretdepartid[j].IndexOf("*");
  108. string [] secretid = secretdepartid[j].Split(separator2,2);
  109. if(pos != -1)
  110. {
  111. row = msgindex.Tables["MsgAdd"].NewRow();
  112. row[MsgAdd.MSGID_FIELD] = MsgKey;
  113. row[MsgAdd.MSGPERSONID_FIELD] = Convert.ToInt32(secretid[1],10);
  114. row[MsgAdd.SENDLEVEL_FIELD]   = 1;
  115. row[MsgAdd.TIMES_FIELD]  = 0;
  116. row[MsgAdd.STATUS_FIELD] = 4;
  117. row[MsgAdd.DELETEFLAG_FIELD] = 0;
  118. row[MsgAdd.SENDDATE_FIELD] = senddate;
  119. row[MsgAdd.IMPORTANT_FIELD] = Important;
  120. msgindex.Tables[MsgAdd.MSGADD_TABLE].Rows.Add(row);
  121. }
  122. else
  123. {
  124. int depart = Convert.ToInt32(secretdepartid[j],10);
  125. SelectPersonByDepart(depart,msgindex,MsgKey,senddate,1,Important);
  126. }
  127. }
  128. }
  129. SqlDataAdapter cscommand = new SqlDataAdapter();
  130. cscommand.SelectCommand  = new SqlCommand("select * from MsgAdd");
  131. cscommand.SelectCommand.Connection = conn;
  132. SqlCommandBuilder objBuilder = new SqlCommandBuilder(cscommand);
  133. cscommand.Update(msgindex,"MsgAdd");
  134. }
  135. public void SelectPersonByDepart(int DepartID,MsgAdd msgobj,int MsgKey,DateTime senddate,int send_level,bool Important)
  136. {
  137. SqlCommand command  = new SqlCommand();
  138. command.CommandText = "Msg_GetEmpByDep";
  139. SqlParameter para   = new SqlParameter("@DepartID",SqlDbType.Int);
  140. command.CommandType = CommandType.StoredProcedure;
  141. para.Value = DepartID; 
  142. command.Parameters.Add(para);
  143. command.Connection  = conn;
  144. if(conn.State == ConnectionState.Closed)
  145. conn.Open();
  146. SqlDataReader reader;
  147. reader = command.ExecuteReader();
  148. DataRow row;
  149. while(reader.Read())
  150. {
  151. row = msgobj.Tables["MsgAdd"].NewRow();
  152. row[MsgAdd.MSGID_FIELD] = MsgKey;
  153. row[MsgAdd.MSGPERSONID_FIELD] = Convert.ToInt32(reader["EmpID"].ToString(),10);
  154. row[MsgAdd.SENDLEVEL_FIELD]   = send_level;
  155. row[MsgAdd.TIMES_FIELD]  = 0;
  156. row[MsgAdd.STATUS_FIELD] = 4;
  157. row[MsgAdd.DELETEFLAG_FIELD] = 0;
  158. row[MsgAdd.SENDDATE_FIELD] = senddate;
  159. row[MsgAdd.IMPORTANT_FIELD] = Important;
  160. msgobj.Tables[MsgAdd.MSGADD_TABLE].Rows.Add(row);
  161. }
  162. reader.Close();
  163. conn.Close();
  164. }
  165. public DataSet SeeMessage(string type,int PersonID)
  166. {
  167. DataSet msgobj = new DataSet();
  168. SqlDataAdapter csCommand = new SqlDataAdapter();
  169. SqlCommand command = new SqlCommand();
  170. csCommand.SelectCommand = command;
  171. command.CommandText = "Msg_GetMsgById";
  172. command.CommandType = CommandType.StoredProcedure;
  173. SqlParameter [] paras  = {   new SqlParameter("@Type",SqlDbType.Int),
  174.      new SqlParameter("@PersonID",SqlDbType.Int)
  175.   };
  176. if("recnote" == type)
  177. {
  178. paras[0].Value = 0;
  179. }
  180. else if ("sendnote" == type)
  181. {
  182. paras[0].Value = 1;
  183. }
  184. else if ( "caonote" == type)
  185. {
  186. paras[0].Value = 2;
  187. }
  188. else
  189. {
  190. paras[0].Value = 3;
  191. }
  192. paras[1].Value = PersonID;
  193. foreach(SqlParameter para in paras)
  194. {
  195. command.Parameters.Add(para);
  196. }
  197. csCommand.SelectCommand.Connection = conn;
  198. csCommand.Fill(msgobj,"simpleobj");
  199. return msgobj;
  200. }
  201. public MessageData SeeAllMessage(string messageid,string status)
  202. {
  203. MessageData msgobj = new MessageData();
  204. SqlDataAdapter csCommand = new SqlDataAdapter();
  205. SqlCommand command = new SqlCommand();
  206. csCommand.SelectCommand = command;
  207. command.CommandText = "Msg_GetAllMsg";
  208. command.CommandType = CommandType.StoredProcedure;
  209. SqlParameter [] paras  = {  
  210.  new SqlParameter("@MessageID",SqlDbType.Int),
  211.  new SqlParameter("@sendperson",SqlDbType.NVarChar,50),
  212.  new SqlParameter("@Status",SqlDbType.Int)
  213.  };
  214. paras[0].Value = Convert.ToInt32(messageid,10);
  215. paras[1].Direction = ParameterDirection.Output;
  216. paras[2].Value = Convert.ToInt32(status,10);
  217. foreach(SqlParameter para in paras)
  218. {
  219. command.Parameters.Add(para);
  220. }
  221. csCommand.SelectCommand.Connection = conn;
  222. csCommand.Fill(msgobj,MessageData.MESSAGE_TABLE);
  223. int count = msgobj.Tables[MessageData.MESSAGE_TABLE].Rows.Count;
  224. string sendperson = command.Parameters["@sendperson"].Value.ToString();
  225. for(int i = 0; i < count; i ++)
  226. {
  227. msgobj.Tables[MessageData.MESSAGE_TABLE].Rows[i][MessageData.MESSAGEPERSON_FIELD] = sendperson;
  228. }
  229. return msgobj;
  230. }
  231. public void WatchTimesAdd(string reid)
  232. {
  233. SqlCommand command  = new SqlCommand();
  234. command.CommandText = "Mag_AddTimes";
  235. command.CommandType = CommandType.StoredProcedure;
  236. command.Connection  = conn;
  237. SqlParameter para   = new SqlParameter("@reID",SqlDbType.Int);
  238. para.Value = Convert.ToInt32(reid,10);
  239. command.Parameters.Add(para);
  240. conn.Open();
  241. command.ExecuteNonQuery();
  242. conn.Close();
  243. }
  244. public int [] MsgNotice(int personid)
  245. {
  246. SqlCommand command = new SqlCommand();
  247. command.CommandText = "Msg_Notice";
  248. command.CommandType = CommandType.StoredProcedure;
  249. SqlParameter [] paras = {   new SqlParameter("@personid",SqlDbType.Int),
  250. new SqlParameter("@seen",SqlDbType.Int),
  251. new SqlParameter("@unseen",SqlDbType.Int)
  252. };
  253. paras[0].Value = personid;
  254. paras[1].Direction = ParameterDirection.Output;
  255. paras[2].Direction = ParameterDirection.Output;
  256. foreach(SqlParameter para in paras)
  257. {
  258. command.Parameters.Add(para);
  259. }
  260. command.Connection = conn;
  261. conn.Open();
  262. command.ExecuteNonQuery();
  263. int [] see = new int[2];
  264. see[0] = Convert.ToInt32(command.Parameters["@seen"].Value.ToString(),10);
  265. see[1] = Convert.ToInt32(command.Parameters["@unseen"].Value.ToString(),10);
  266. return see;
  267. }
  268. public DataSet SeeDraft(string msgid,string personid)
  269. {
  270. SqlDataAdapter csCommand = new SqlDataAdapter();
  271. SqlCommand command = new SqlCommand();
  272. command.CommandType = CommandType.StoredProcedure;
  273. command.CommandText = "Msg_GetDraft";
  274. SqlParameter [] paras = {   new SqlParameter("@personid",SqlDbType.Int),
  275. new SqlParameter("@msgid",SqlDbType.Int)
  276. };
  277. paras[0].Value = personid;
  278. paras[1].Value = msgid;
  279. foreach(SqlParameter para in paras)
  280. command.Parameters.Add(para);
  281. csCommand.SelectCommand = command;
  282. csCommand.SelectCommand.Connection = conn;
  283. DataSet data = new DataSet();
  284. csCommand.Fill(data,"draftmsg");
  285. return data;
  286. }
  287. public void InsertAgain(string msgid, MsgCont msgobj,int _status)
  288. {
  289. SqlCommand command  = new SqlCommand();
  290. command.CommandText = "Msg_SendAgain";
  291. command.CommandType = CommandType.StoredProcedure;
  292. command.Connection  = conn;
  293. SqlParameter [] paras = {   new SqlParameter("@msgid",SqlDbType.Int),
  294. new SqlParameter("@SendTo",SqlDbType.NVarChar,200),
  295. new SqlParameter("@SecretTo",SqlDbType.NVarChar,200),
  296. new SqlParameter("@SendToID",SqlDbType.NVarChar,200),
  297. new SqlParameter("@SecretToID",SqlDbType.NVarChar,200),
  298. new SqlParameter("@Title",SqlDbType.NVarChar,50),
  299. new SqlParameter("@Content",SqlDbType.Text),
  300. new SqlParameter("@SendDate",SqlDbType.DateTime),
  301. new SqlParameter("@Accessory",SqlDbType.NVarChar,200),
  302. new SqlParameter("@AccessoryID",SqlDbType.NVarChar,200),
  303. new SqlParameter("@Status",SqlDbType.Int),
  304. new SqlParameter("@Important",SqlDbType.Bit)
  305. };
  306. paras[0].Value = Convert.ToInt32(msgid,10);
  307. paras[1].Value = msgobj.SendTo;
  308. paras[2].Value = msgobj.SecretTo;
  309. paras[3].Value = msgobj.SendToID;
  310. paras[4].Value = msgobj.SecretToID;
  311. paras[5].Value = msgobj.Title;
  312. paras[6].Value = msgobj.Content;
  313. paras[7].Value = msgobj.SendTime;
  314. paras[8].Value = msgobj.Accessory;
  315. paras[9].Value = msgobj.AccessoryID;
  316. paras[10].Value = _status; //此参数表示是发送还是再次保存
  317. paras[11].Value = msgobj.Important;
  318. foreach(SqlParameter para in paras)
  319. command.Parameters.Add(para);
  320. conn.Open();
  321. command.ExecuteNonQuery();
  322. conn.Close();
  323. if(_status == 0)
  324. {
  325. int msgkey = Convert.ToInt32(msgid,10);
  326. AddMsgIndex(msgkey,msgobj.SendToID,msgobj.SecretToID,msgobj.SendTime,msgobj.Important);
  327. }
  328. }
  329. public void DeleteMessage(string msgid,string personid,string status)
  330. {
  331. SqlCommand command = new SqlCommand();
  332. command.CommandText = "Msg_DelMsg";
  333. command.CommandType = CommandType.StoredProcedure;
  334. command.Connection  = conn;
  335. SqlParameter [] paras = {   new SqlParameter("@msgid",SqlDbType.Int),
  336. new SqlParameter("@personid", SqlDbType.Int),
  337. new SqlParameter("@status" ,SqlDbType.Int)
  338. };
  339. paras[0].Value = Convert.ToInt32(msgid);
  340. paras[1].Value = Convert.ToInt32(personid);
  341. paras[2].Value = Convert.ToInt32(status);
  342. foreach(SqlParameter para in paras)
  343. {
  344. command.Parameters.Add(para);
  345. }
  346. conn.Open();
  347. command.ExecuteNonQuery();
  348. conn.Close();
  349. }
  350. public void MoveMessage(string msgid,string personid, string status)
  351. {
  352. SqlCommand command = new SqlCommand();
  353. command.CommandText = "Msg_MoveMsg";
  354. command.CommandType = CommandType.StoredProcedure;
  355. command.Connection  = conn;
  356. SqlParameter [] paras = {   new SqlParameter("@msgid",SqlDbType.Int),
  357. new SqlParameter("@personid", SqlDbType.Int),
  358. new SqlParameter("@status" ,SqlDbType.Int)
  359. };
  360. paras[0].Value = Convert.ToInt32(msgid);
  361. paras[1].Value = Convert.ToInt32(personid);
  362. paras[2].Value = Convert.ToInt32(status);
  363. foreach(SqlParameter para in paras)
  364. {
  365. command.Parameters.Add(para);
  366. }
  367. conn.Open();
  368. command.ExecuteNonQuery();
  369. conn.Close();
  370. }
  371. public string [] MsgFolder(string personid)
  372. {
  373. SqlCommand command = new SqlCommand();
  374. command.CommandText = "Msg_Folder";
  375. command.CommandType = CommandType.StoredProcedure;
  376. command.Connection  = conn;
  377. SqlParameter [] paras = {   new SqlParameter("@personid",SqlDbType.Int),
  378. new SqlParameter("@send",SqlDbType.Int),
  379. new SqlParameter("@resive_new",SqlDbType.Int),
  380. new SqlParameter("@resive_old",SqlDbType.Int),
  381. new SqlParameter("@draft",SqlDbType.Int),
  382. new SqlParameter("@rubbish_1",SqlDbType.Int),
  383.                         new SqlParameter("@rubbish_2",SqlDbType.Int)
  384. };
  385. paras[0].Value = Convert.ToInt32(personid,10);
  386. paras[1].Direction = ParameterDirection.Output;
  387. paras[2].Direction = ParameterDirection.Output;
  388. paras[3].Direction = ParameterDirection.Output;
  389. paras[4].Direction = ParameterDirection.Output;
  390. paras[5].Direction = ParameterDirection.Output;
  391. paras[6].Direction = ParameterDirection.Output;
  392. foreach(SqlParameter para in paras)
  393. {
  394. command.Parameters.Add(para);
  395. }
  396. conn.Open();
  397. command.ExecuteNonQuery();
  398. string [] info_list = new string [6];
  399. info_list[0] = command.Parameters["@send"].Value.ToString();
  400. info_list[1] = command.Parameters["@resive_new"].Value.ToString();
  401. info_list[2] = command.Parameters["@resive_old"].Value.ToString();
  402. info_list[3] = command.Parameters["@draft"].Value.ToString();
  403. info_list[4] = command.Parameters["@rubbish_1"].Value.ToString();
  404. info_list[5] = command.Parameters["@rubbish_2"].Value.ToString();
  405. conn.Close();
  406. return info_list;
  407. }
  408. public void RemainMsg(string msgid,string personid,string status)
  409. {
  410. SqlCommand command = new SqlCommand();
  411. command.CommandText = "Msg_RemainMsg";
  412. command.CommandType = CommandType.StoredProcedure;
  413. command.Connection  = conn;
  414. SqlParameter [] paras = {   new SqlParameter("@msgid",SqlDbType.Int),
  415. new SqlParameter("@personid", SqlDbType.Int),
  416. new SqlParameter("@status" ,SqlDbType.Int)
  417. };
  418. paras[0].Value = Convert.ToInt32(msgid);
  419. paras[1].Value = Convert.ToInt32(personid);
  420. paras[2].Value = Convert.ToInt32(status);
  421. foreach(SqlParameter para in paras)
  422. {
  423. command.Parameters.Add(para);
  424. }
  425. conn.Open();
  426. command.ExecuteNonQuery();
  427. conn.Close();
  428. }
  429. }
  430. }