using AutoMapper.Execution; using DocumentFormat.OpenXml.Office2010.Excel; using Infrastructure; using OpenAuth.App.BaseApp.Base; using OpenAuth.App.Interface; using OpenAuth.App.Request; using OpenAuth.App.Response; using OpenAuth.App.ServiceApp.MiManager.Response; using OpenAuth.App.ServiceApp.MiManager.Resquest; using OpenAuth.Repository; using OpenAuth.Repository.Domain; using SqlSugar; namespace OpenAuth.App { public class MiPunchRecordApp : SqlSugarBaseApp { public MiPunchRecordApp( ISugarUnitOfWork unitWork, ISimpleClient repository, IAuth auth ) : base(unitWork, repository, auth) { } #region 查询 /// /// 分页 /// public async Task>>> LoadAllPage(MiPuchLoadreq req) { RefAsync totalCount = 0; var list = await base.Repository.AsQueryable() .WhereIF(req.begintime!=null&&req.endtime!=null,r=>r.PunchTime>=req.begintime&&r.PunchTimer.PunchStatus==req.status) .LeftJoin((r,u)=>r.UserId==u.Id) .LeftJoin((r,u,p)=>r.MinePointId==p.Id) .WhereIF(!string.IsNullOrEmpty(req.username),(r,u,p)=>u.Name.Contains(req.username)) .WhereIF(!string.IsNullOrEmpty(req.key),(r,u,p)=>p.Name.Contains(req.key)) .OrderByDescending((r, u, p) => r.PunchTime) .Select((r, u, p) => new { Id = r.Id.SelectAll(), Name=u.Name, PointName=p.Name }) .ToPageListAsync(req.page, req.limit, totalCount); return new Response>> { Result = new PageInfo> { Items = list, Total = totalCount } }; } #endregion /// /// 详情 /// /// /// public async Task> Get(string id) { var data= await Repository.AsQueryable() .LeftJoin((r,u)=>r.UserId==u.Id) .Select((r,u)=>new MiPuchRecordRes { Id = r.Id, UserId = r.UserId, UserName=u.Name, Lat=r.Lat, Lng=r.Lng, MinePointId=r.MinePointId, PunchStatus=r.PunchStatus, PunchTime=r.PunchTime, Remark=r.Remark, Image=SqlFunc.Subqueryable().Where(a=>a.PunchId==r.Id).ToList() }).FirstAsync(); return new Response() { Result=data }; } /// /// 添加 /// public async Task> Add(MiPuchRecordReq model) { if (string.IsNullOrEmpty(model.MinePointId)) { throw new Exception("请输入监管盗采点"); } var user = _auth.GetCurrentUser().User; MiPunchRecord record = model.MapTo(); record.Id = Guid.NewGuid().ToString(); record.PunchTime = DateTime.Now; record.UserId = user.Id; List image = new List(); foreach (var item in model.Image) { var img = item.MapTo(); img.Id = Guid.NewGuid().ToString(); img.MinePointId = model.MinePointId; img.PunchId = record.Id; img.CreateTime = DateTime.Now; image.Add(img); } using (var uow = base.UnitWork.CreateContext()) { var flag1 = await uow.MiPunchRecord.InsertAsync(record); var flag2 = await uow.MiPunchImage.InsertRangeAsync(image); var flag = uow.Commit() && flag1 && flag2; return new Response { Result = flag, Message = flag == true ? "success" : "error" }; } } /// /// 删除 /// /// public async Task> Delete(List ids ) { using (var uow = base.UnitWork.CreateContext()) { var flag1 = await uow.MiPunchRecord.DeleteAsync(r=>ids.Contains(r.Id)); var flag2 = await uow.MiPunchImage.DeleteAsync(r=>ids.Contains(r.PunchId)); var flag = uow.Commit() && flag1 && flag2; return new Response { Result = flag, Message = flag == true ? "success" : "error" }; } } /// /// 更新 /// /// public async Task> Update(MiPuchRecordReq model) { if (string.IsNullOrEmpty(model.MinePointId)) { throw new Exception("请输入监管盗采点"); } MiPunchRecord record = model.MapTo(); List image = new List(); foreach (var item in model.Image) { var img = item.MapTo(); img.Id = Guid.NewGuid().ToString(); img.MinePointId = model.MinePointId; img.PunchId = record.Id; img.CreateTime = DateTime.Now; image.Add(img); } using (var uow = base.UnitWork.CreateContext()) { await uow.MiPunchImage.DeleteAsync(r=>r.PunchId==model.Id); await uow.MiPunchRecord.UpdateAsync(record); await uow.MiPunchImage.InsertRangeAsync(image); var flag = uow.Commit(); return new Response { Result = flag, Message = flag == true ? "success" : "error" }; } } /// /// 事务示例 /// /// /// public async Task> AssignModule() { using (var uwo = UnitWork.CreateContext()) { //await uwo.SysRoleElement.InsertRangeAsync(model.ElementIds.Select(a => new SysRoleElement { RoleId = model.RoleId, ElementId = a }).ToList()); var flag = uwo.Commit(); return new Response { Result = flag, Message = flag == true ? "success" : "error" }; } } } }