using DocumentFormat.OpenXml.Spreadsheet; using Infrastructure; using OpenAuth.App.BaseApp.Base; using OpenAuth.App.Interface; using OpenAuth.App.Request; using OpenAuth.App.Response; using OpenAuth.App.ServiceApp.MiManager.Resquest; using OpenAuth.Repository; using OpenAuth.Repository.Domain; using SqlSugar; namespace OpenAuth.App { public class MiParkingApp : SqlSugarBaseApp { public MiParkingApp( ISugarUnitOfWork unitWork, ISimpleClient repository, IAuth auth ) : base(unitWork, repository, auth) { } #region 查询 /// /// 分页 /// public async Task>>> LoadAllPage(PageReq request) { RefAsync totalCount = 0; var result = new PageInfo(); var list = await base.Repository.AsQueryable() .ToPageListAsync(request.page, request.limit, totalCount); return new Response>> { Result = new PageInfo> { Items = list, Total = totalCount } }; } /// /// app 扫码查询停车场信息 /// /// /// public async Task>> LoadParkinginfo() { var user=_auth.GetCurrentUser().User; if (user == null) { throw new Exception("请登录"); } var pidlist=base.Repository.ChangeRepository>() .AsQueryable().Where(r=>r.UserId == user.Id) .Select(r=>r.ParkingId).Distinct().ToList(); var list = await base.Repository.AsQueryable() .WhereIF(user.Id!=-1,p => pidlist.Contains(p.Id)||p.Manager==user.Id.ToString()) .OrderBy(p => p.Name) .ToListAsync(); return new Response> { Result = list }; } #endregion public async Task Get(string id) { var info = await base.Repository.AsQueryable() .Where(r => r.Id == id) .FirstAsync(); if (info != null) { var userids = await base.Repository.ChangeRepository>().AsQueryable().Where(r => r.ParkingId == info.Id) .LeftJoin((r, u) => r.UserId == u.Id) .Select((r, u) => new { u.Id, u.Name, u.Account }).ToListAsync(); return new { info, userids }; } else { return null; } } /// /// 添加 /// public async Task> Add(MiParking model) { model.Id = Guid.NewGuid().ToString(); var flag = await Repository.InsertAsync(model); return new Response { Result = flag, Message = flag == true ? "success" : "error" }; } /// /// 给停车场分配用户 /// public async Task> AllocateUser(MiParkingUserReq model) { List miplist = new List(); foreach(var item in model.UserId) { MiParkingUser mu= new MiParkingUser(); mu.UserId = item; mu.ParkingId = model.ParkingId; miplist.Add(mu); } using (var uow = base.UnitWork.CreateContext()) { var list = uow.MiParkingUser.AsQueryable().Where(r => r.ParkingId == model.ParkingId).ToList(); if(list.Count > 0) { await uow.MiParkingUser.DeleteAsync(list); } var flag = await uow.MiParkingUser.InsertRangeAsync(miplist); var flagres = uow.Commit() && flag; return new Response { Result = flag, Message = flag == true ? "success" : "error" }; } } /// /// 删除 /// /// public async Task> Delete(List models) { var flag = await Repository.DeleteAsync(models); return new Response { Result = flag, Message = flag == true ? "success" : "error" }; } /// /// 更新 /// /// public async Task> Update(MiParking model) { bool flag = await base.Repository.UpdateAsync(model); 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" }; } } } }