SystemUpdateLogDal.cs 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335
  1. using Cksoft.Data;
  2. using Cksoft.Unity;
  3. using Cksoft.Unity.Log4NetConfig;
  4. using DllEapCommon.NPOI;
  5. using DllEapEntity;
  6. using DllEapEntity.Dtos;
  7. using Microsoft.AspNetCore.Mvc;
  8. using System;
  9. using System.Collections.Generic;
  10. using System.IO;
  11. using System.Linq;
  12. using System.Text;
  13. using System.Threading.Tasks;
  14. namespace DllEapDal.SystemLog
  15. {
  16. public class SystemUpdateLogDal
  17. {
  18. private IDatabase db;
  19. public SystemUpdateLogDal(IDatabase db)
  20. {
  21. this.db = db;
  22. }
  23. public LayuiModel<SystemUpdataLogDto> Get(DateTime? start, DateTime? end,int id, int environmentint, string version, string content, string updatetype, string department, string employee, string developer, string result, string te, string remark, int pageIndex, int pageSize)
  24. {
  25. string sql = "";
  26. if (start.HasValue)
  27. {
  28. sql += $@" and a.FDate >= '{start.Value.ToString("yyyy-MM-dd HH:mm:ss")}'";
  29. }
  30. if (end.HasValue)
  31. {
  32. sql+=$@" and a.FDate<='{end.Value.ToString("yyyy-MM-dd HH:mm:ss")}' ";
  33. }
  34. if (id>0)
  35. {
  36. sql += $@"and b.id='{id}' ";
  37. }
  38. sql += GettSql( environmentint, version, content, updatetype, department, employee, developer,result,te,remark);
  39. string ss = $@" order by FDate desc limit {(pageIndex - 1) * pageSize},{pageSize}";
  40. string error = "";
  41. var datas = db.FindListForCondition<SystemUpdateLogs>(sql + ss, ref error);
  42. List<SystemUpdataLogDto> data = new List<SystemUpdataLogDto>();
  43. var test = datas.GroupBy(c => c.MstId);
  44. foreach (var item in test)
  45. {
  46. var temp = new SystemUpdataLogDto()
  47. {
  48. list = new List<SystemUpdateLogDetail>()
  49. };
  50. var da = datas.Where(c => c.MstId == item.Key).ToList();
  51. if (da!=null)
  52. {
  53. temp.Environment = da[0].Environment;
  54. temp.Remark = da[0].Remark;
  55. temp.FDate = da[0].FDate;
  56. temp.Version = da[0].Version;
  57. foreach (var items in da)
  58. {
  59. temp.list.Add(new SystemUpdateLogDetail() { Id = items.Id,Content=items.Content,UpdateType=items.UpdateType,
  60. Department=items.Department,Employee=items.Employee,MstId=items.MstId,Result=items.Result,TE=items.TE,Remark=items.Remark,RecCode=items.RecCode,
  61. Developer=items.Developer,RecTime=items.RecTime,ModCode=items.ModCode,ModTime=items.ModTime
  62. });
  63. }
  64. data.Add(temp);
  65. }
  66. }
  67. var total = Convert.ToInt32(db.FindObject($@"select count(1) from SystemUpdateLog a right join SystemUpdateLogDetail b on a.id=b.mstid where 1=1 {sql}"));
  68. return new LayuiModel<SystemUpdataLogDto>()
  69. {
  70. code = 1,
  71. data = data,
  72. count = total
  73. };
  74. }
  75. private string GettSql(int environmentint, string version, string content, string updatetype, string department, string employee, string developer, string result, string te, string remark)
  76. {
  77. string sql = " ";
  78. if (environmentint>-1)
  79. {
  80. sql += $@" and a.environment='{environmentint}'";
  81. }
  82. if (!string.IsNullOrEmpty(version))
  83. {
  84. sql += $@" and a.version like '%{version}%'";
  85. }
  86. if (!string.IsNullOrEmpty(content))
  87. {
  88. sql += $@" and b.content like '%{content}%'";
  89. }
  90. if (!string.IsNullOrEmpty(updatetype))
  91. {
  92. sql += $@" and b.updatetype ='{updatetype}'";
  93. }
  94. if (!string.IsNullOrEmpty(department))
  95. {
  96. sql += $@" and b.department like '%{department}%'";
  97. }
  98. if (!string.IsNullOrEmpty(employee))
  99. {
  100. sql += $@" and b.employee like '%{employee}%'";
  101. }
  102. if (!string.IsNullOrEmpty(developer))
  103. {
  104. sql += $@" and b.developer like '%{developer}%'";
  105. }
  106. if (!string.IsNullOrEmpty(result))
  107. {
  108. sql += $@" and b.result like '%{result}%'";
  109. }
  110. if (!string.IsNullOrEmpty(te))
  111. {
  112. sql += $@" and b.te like '%{te}%'";
  113. }
  114. if (!string.IsNullOrEmpty(remark))
  115. {
  116. sql += $@" and b.remark like '%{remark}%'";
  117. }
  118. return sql;
  119. }
  120. public LayuiModel<SystemUpdataLogDto> Getyj(DateTime value1, DateTime value2, int id, int environmentint, string version, string content, string updatetype, string department, string employee, string developer, int pageIndex, int pageSize)
  121. {
  122. throw new NotImplementedException();
  123. }
  124. public EapResponse Update(SystemUpdateLog systemUpdateLog, List<SystemUpdateLogDetail> detail, string usercode)
  125. {
  126. int id = Select(systemUpdateLog);
  127. if (id > 0)
  128. {
  129. db.BeginTrans();
  130. foreach (var item in detail)
  131. {
  132. item.MstId = id;
  133. if (db.UpdateFor<SystemUpdateLogDetail>(item, usercode) < 1)
  134. {
  135. db.Rollback();
  136. return new EapResponse()
  137. {
  138. Code = 0,
  139. Msg = "修改失败"
  140. };
  141. }
  142. }
  143. db.Commit();
  144. LogHelper<SystemUpdateLog>.LogFatal("修改系统更新记录-->" + Json.ToJson(detail), "用户操作", usercode);
  145. return new EapResponse()
  146. {
  147. Code = 1,
  148. Msg = "修改成功"
  149. };
  150. }
  151. else
  152. {
  153. systemUpdateLog.ModCode = usercode;
  154. systemUpdateLog.ModTime = DateTime.Now;
  155. db.BeginTrans();
  156. if (db.InsertFor<SystemUpdateLog>(systemUpdateLog, usercode) > 0)
  157. {
  158. id = Convert.ToInt32(db.FindObject("select @@IDENTITY"));
  159. foreach (var item in detail)
  160. {
  161. item.MstId = id;
  162. if (db.UpdateFor<SystemUpdateLogDetail>(item, usercode) < 1)
  163. {
  164. db.Rollback();
  165. return new EapResponse()
  166. {
  167. Code = 0,
  168. Msg = "修改失败"
  169. };
  170. }
  171. }
  172. db.Commit();
  173. LogHelper<SystemUpdateLog>.LogFatal("增加系统更新记录-->" + Json.ToJson(systemUpdateLog), "用户操作", usercode);
  174. LogHelper<SystemUpdateLog>.LogFatal("修改系统更新记录-->" + Json.ToJson(detail), "用户操作", usercode);
  175. return new EapResponse()
  176. {
  177. Code = 1,
  178. Msg = "修改成功"
  179. };
  180. }
  181. else
  182. {
  183. db.Commit();
  184. return new EapResponse()
  185. {
  186. Code = 0,
  187. Msg = "修改失败"
  188. };
  189. }
  190. }
  191. }
  192. public EapResponse AddUpdate(SystemUpdataLogDto systemUpdateLog, string usercode)
  193. {
  194. SystemUpdateLog updataLog = new SystemUpdateLog()
  195. {
  196. Environment = systemUpdateLog.Environment,
  197. Version = systemUpdateLog.Version,
  198. Remark = systemUpdateLog.Remark,
  199. FDate = systemUpdateLog.FDate
  200. };
  201. if (systemUpdateLog.list[0].Id > 0)
  202. {
  203. return Update(updataLog, systemUpdateLog.list, usercode);
  204. }
  205. else
  206. {
  207. return Add(updataLog, systemUpdateLog.list, usercode);
  208. }
  209. }
  210. public EapResponse Add(SystemUpdateLog systemUpdateLog, List<SystemUpdateLogDetail> detail, string usercode)
  211. {
  212. int id = Select(systemUpdateLog);
  213. if (id>0)
  214. {
  215. db.BeginTrans();
  216. foreach (var item in detail)
  217. {
  218. item.MstId = id;
  219. item.RecCode = usercode;
  220. item.ModCode = usercode;
  221. item.RecTime = DateTime.Now;
  222. item.ModTime = DateTime.Now;
  223. if (db.InsertFor<SystemUpdateLogDetail>(item, usercode)<1)
  224. {
  225. db.Rollback();
  226. return new EapResponse()
  227. {
  228. Code = 0,
  229. Msg = "新增失败"
  230. };
  231. }
  232. }
  233. LogHelper<SystemUpdateLog>.LogFatal("增加系统更新记录-->" + Json.ToJson(detail), "用户操作", usercode);
  234. db.Commit();
  235. return new EapResponse()
  236. {
  237. Code = 1,
  238. Msg = "新增成功"
  239. };
  240. }
  241. else
  242. {
  243. systemUpdateLog.ModCode = usercode;
  244. systemUpdateLog.ModTime = DateTime.Now;
  245. db.BeginTrans();
  246. if (db.InsertFor<SystemUpdateLog>(systemUpdateLog, usercode)>0)
  247. {
  248. id = Convert.ToInt32(db.FindObject("select @@IDENTITY"));
  249. foreach (var item in detail)
  250. {
  251. item.MstId = id;
  252. item.RecCode = usercode;
  253. item.ModCode = usercode;
  254. item.RecTime = DateTime.Now;
  255. item.ModTime = DateTime.Now;
  256. if (db.InsertFor<SystemUpdateLogDetail>(item, usercode) < 1)
  257. {
  258. db.Rollback();
  259. return new EapResponse()
  260. {
  261. Code = 0,
  262. Msg = "新增失败"
  263. };
  264. }
  265. }
  266. LogHelper<SystemUpdateLog>.LogFatal("增加系统更新记录-->" + Json.ToJson(systemUpdateLog), "用户操作", usercode);
  267. LogHelper<SystemUpdateLog>.LogFatal("增加系统更新记录-->" + Json.ToJson(detail), "用户操作", usercode);
  268. db.Commit();
  269. return new EapResponse()
  270. {
  271. Code = 1,
  272. Msg = "新增成功"
  273. };
  274. }
  275. else
  276. {
  277. db.Commit();
  278. return new EapResponse()
  279. {
  280. Code =0,
  281. Msg = "新增失败"
  282. };
  283. }
  284. }
  285. }
  286. public EapResponse Delete(string id, string usercode)
  287. {
  288. string error = string.Empty;
  289. SystemUpdateLogDetail systemUpdate = db.FindList<SystemUpdateLogDetail>($@"select * from SystemUpdateLogDetail where id='{id}' ").FirstOrDefault();
  290. /* var detail = db.FindListForCondition<SystemUpdateLogDetail>($@" and mstid='{id}'", ref error);
  291. */
  292. if (db.DeleteFor<SystemUpdateLogDetail>(id)>0)
  293. {
  294. LogHelper<SystemUpdateLog>.LogFatal("删除系统更新记录-->" + Json.ToJson(systemUpdate), "用户操作", usercode);
  295. return new EapResponse()
  296. {
  297. Code = 1,
  298. Msg = "删除成功"
  299. };
  300. }
  301. else
  302. {
  303. return new EapResponse()
  304. {
  305. Code = 1,
  306. Msg = "删除失败"
  307. };
  308. }
  309. }
  310. public int Select(SystemUpdateLog systemUpdateLog)
  311. {
  312. string sql = $@"select id FROM systemupdatelog where Environment='{systemUpdateLog.Environment}' and Version='{systemUpdateLog.Version}' and FDate='{systemUpdateLog.FDate.ToString("yyyy-MM-dd HH:mm:ss")}'";
  313. return Convert.ToInt32(db.FindObject(sql));
  314. }
  315. }
  316. }