using Infrastructure; using OpenAuth.App.BaseApp.Base; using OpenAuth.App.Interface; using OpenAuth.App.Request; using OpenAuth.App.Response; using OpenAuth.Repository; using OpenAuth.Repository.Domain; using Org.BouncyCastle.Ocsp; using SqlSugar; using SqlSugar.Extensions; using System.Text; namespace OpenAuth.App { public class MiMinePointApp : SqlSugarBaseApp { public MiMinePointApp( 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() .WhereIF(!string.IsNullOrEmpty(request.key), r => r.Name.Contains(request.key)) .OrderByDescending(r=>r.CreateTime) .ToPageListAsync(request.page, request.limit, totalCount); return new Response>> { Result = new PageInfo> { Items = list, Total = totalCount } }; } #endregion public async Task Get(string id) { return await base.Repository.GetByIdAsync(id); } /// /// 添加 /// public async Task> Add(MiMinePoint model) { using (var uow = base.UnitWork.CreateContext()) { MiMinePoint point = model.MapTo(); point.Id = Guid.NewGuid().ToString(); point.CreateTime = DateTime.Now; point.IsDelete = false; point.geom = null; if (!string.IsNullOrEmpty(model.geom)) { var flag = await uow.MiMinePoint.InsertAsync(point); string _wktModel = model.geom; StringBuilder geomSql = new StringBuilder(); geomSql.AppendFormat( $"UPDATE mi_mine_point SET " + $"\"geom\" = ST_GeomFromText('{_wktModel}', 4326), " + $"\"Lng\" = ST_X(ST_Centroid(ST_GeomFromText('{_wktModel}', 4326))), " + $"\"Lat\" = ST_Y(ST_Centroid(ST_GeomFromText('{_wktModel}', 4326))) " + $"WHERE \"Id\" = '{point.Id}'"); if (flag) { var flag1=await uow.Db.Ado.ExecuteCommandAsync(geomSql.ToString()); if(uow.Commit()&&flag1 > 0) { return new Response { Result = true, Message = "操作成功" }; } } } else { var flag = await uow.MiMinePoint.InsertAsync(point); if (uow.Commit() && flag) { return new Response { Result = true, Message = "操作成功" }; } } // 如果执行到这里,说明操作失败 return new Response { Result = false, Message = "操作失败" }; } } /// /// 删除 /// /// 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(MiMinePoint 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" }; } } } }