using Cksoft.Data; using Cksoft.Unity; using Cksoft.Unity.Log4NetConfig; using DllEapCommon.NPOI; using DllEapEntity; using DllEapEntity.Dtos; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DllEapDal.SystemLog { public class SystemUpdateLogDal { private IDatabase db; public SystemUpdateLogDal(IDatabase db) { this.db = db; } public LayuiModel 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) { string sql = ""; if (start.HasValue) { sql += $@" and a.FDate >= '{start.Value.ToString("yyyy-MM-dd HH:mm:ss")}'"; } if (end.HasValue) { sql+=$@" and a.FDate<='{end.Value.ToString("yyyy-MM-dd HH:mm:ss")}' "; } if (id>0) { sql += $@"and b.id='{id}' "; } sql += GettSql( environmentint, version, content, updatetype, department, employee, developer,result,te,remark); string ss = $@" order by FDate desc limit {(pageIndex - 1) * pageSize},{pageSize}"; string error = ""; var datas = db.FindListForCondition(sql + ss, ref error); List data = new List(); var test = datas.GroupBy(c => c.MstId); foreach (var item in test) { var temp = new SystemUpdataLogDto() { list = new List() }; var da = datas.Where(c => c.MstId == item.Key).ToList(); if (da!=null) { temp.Environment = da[0].Environment; temp.Remark = da[0].Remark; temp.FDate = da[0].FDate; temp.Version = da[0].Version; foreach (var items in da) { temp.list.Add(new SystemUpdateLogDetail() { Id = items.Id,Content=items.Content,UpdateType=items.UpdateType, Department=items.Department,Employee=items.Employee,MstId=items.MstId,Result=items.Result,TE=items.TE,Remark=items.Remark,RecCode=items.RecCode, Developer=items.Developer,RecTime=items.RecTime,ModCode=items.ModCode,ModTime=items.ModTime }); } data.Add(temp); } } 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}")); return new LayuiModel() { code = 1, data = data, count = total }; } private string GettSql(int environmentint, string version, string content, string updatetype, string department, string employee, string developer, string result, string te, string remark) { string sql = " "; if (environmentint>-1) { sql += $@" and a.environment='{environmentint}'"; } if (!string.IsNullOrEmpty(version)) { sql += $@" and a.version like '%{version}%'"; } if (!string.IsNullOrEmpty(content)) { sql += $@" and b.content like '%{content}%'"; } if (!string.IsNullOrEmpty(updatetype)) { sql += $@" and b.updatetype ='{updatetype}'"; } if (!string.IsNullOrEmpty(department)) { sql += $@" and b.department like '%{department}%'"; } if (!string.IsNullOrEmpty(employee)) { sql += $@" and b.employee like '%{employee}%'"; } if (!string.IsNullOrEmpty(developer)) { sql += $@" and b.developer like '%{developer}%'"; } if (!string.IsNullOrEmpty(result)) { sql += $@" and b.result like '%{result}%'"; } if (!string.IsNullOrEmpty(te)) { sql += $@" and b.te like '%{te}%'"; } if (!string.IsNullOrEmpty(remark)) { sql += $@" and b.remark like '%{remark}%'"; } return sql; } public LayuiModel 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) { throw new NotImplementedException(); } public EapResponse Update(SystemUpdateLog systemUpdateLog, List detail, string usercode) { int id = Select(systemUpdateLog); if (id > 0) { db.BeginTrans(); foreach (var item in detail) { item.MstId = id; if (db.UpdateFor(item, usercode) < 1) { db.Rollback(); return new EapResponse() { Code = 0, Msg = "修改失败" }; } } db.Commit(); LogHelper.LogFatal("修改系统更新记录-->" + Json.ToJson(detail), "用户操作", usercode); return new EapResponse() { Code = 1, Msg = "修改成功" }; } else { systemUpdateLog.ModCode = usercode; systemUpdateLog.ModTime = DateTime.Now; db.BeginTrans(); if (db.InsertFor(systemUpdateLog, usercode) > 0) { id = Convert.ToInt32(db.FindObject("select @@IDENTITY")); foreach (var item in detail) { item.MstId = id; if (db.UpdateFor(item, usercode) < 1) { db.Rollback(); return new EapResponse() { Code = 0, Msg = "修改失败" }; } } db.Commit(); LogHelper.LogFatal("增加系统更新记录-->" + Json.ToJson(systemUpdateLog), "用户操作", usercode); LogHelper.LogFatal("修改系统更新记录-->" + Json.ToJson(detail), "用户操作", usercode); return new EapResponse() { Code = 1, Msg = "修改成功" }; } else { db.Commit(); return new EapResponse() { Code = 0, Msg = "修改失败" }; } } } public EapResponse AddUpdate(SystemUpdataLogDto systemUpdateLog, string usercode) { SystemUpdateLog updataLog = new SystemUpdateLog() { Environment = systemUpdateLog.Environment, Version = systemUpdateLog.Version, Remark = systemUpdateLog.Remark, FDate = systemUpdateLog.FDate }; if (systemUpdateLog.list[0].Id > 0) { return Update(updataLog, systemUpdateLog.list, usercode); } else { return Add(updataLog, systemUpdateLog.list, usercode); } } public EapResponse Add(SystemUpdateLog systemUpdateLog, List detail, string usercode) { int id = Select(systemUpdateLog); if (id>0) { db.BeginTrans(); foreach (var item in detail) { item.MstId = id; item.RecCode = usercode; item.ModCode = usercode; item.RecTime = DateTime.Now; item.ModTime = DateTime.Now; if (db.InsertFor(item, usercode)<1) { db.Rollback(); return new EapResponse() { Code = 0, Msg = "新增失败" }; } } LogHelper.LogFatal("增加系统更新记录-->" + Json.ToJson(detail), "用户操作", usercode); db.Commit(); return new EapResponse() { Code = 1, Msg = "新增成功" }; } else { systemUpdateLog.ModCode = usercode; systemUpdateLog.ModTime = DateTime.Now; db.BeginTrans(); if (db.InsertFor(systemUpdateLog, usercode)>0) { id = Convert.ToInt32(db.FindObject("select @@IDENTITY")); foreach (var item in detail) { item.MstId = id; item.RecCode = usercode; item.ModCode = usercode; item.RecTime = DateTime.Now; item.ModTime = DateTime.Now; if (db.InsertFor(item, usercode) < 1) { db.Rollback(); return new EapResponse() { Code = 0, Msg = "新增失败" }; } } LogHelper.LogFatal("增加系统更新记录-->" + Json.ToJson(systemUpdateLog), "用户操作", usercode); LogHelper.LogFatal("增加系统更新记录-->" + Json.ToJson(detail), "用户操作", usercode); db.Commit(); return new EapResponse() { Code = 1, Msg = "新增成功" }; } else { db.Commit(); return new EapResponse() { Code =0, Msg = "新增失败" }; } } } public EapResponse Delete(string id, string usercode) { string error = string.Empty; SystemUpdateLogDetail systemUpdate = db.FindList($@"select * from SystemUpdateLogDetail where id='{id}' ").FirstOrDefault(); /* var detail = db.FindListForCondition($@" and mstid='{id}'", ref error); */ if (db.DeleteFor(id)>0) { LogHelper.LogFatal("删除系统更新记录-->" + Json.ToJson(systemUpdate), "用户操作", usercode); return new EapResponse() { Code = 1, Msg = "删除成功" }; } else { return new EapResponse() { Code = 1, Msg = "删除失败" }; } } public int Select(SystemUpdateLog systemUpdateLog) { 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")}'"; return Convert.ToInt32(db.FindObject(sql)); } } }