LASAPlatform/OpenAuth.App/ServiceApp/ManageApp.cs

254 lines
10 KiB
C#
Raw Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

using DocumentFormat.OpenXml.Drawing;
using Infrastructure;
using NetTopologySuite.Geometries;
using NetTopologySuite;
using OpenAuth.App.BaseApp.Base;
using OpenAuth.App.Interface;
using OpenAuth.Repository;
using OpenAuth.Repository.Domain;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Yitter.IdGenerator;
namespace OpenAuth.App.ServiceApp
{
public class ManageApp : SqlSugarBaseApp<LasaDronePort, SugarDbContext>
{
public ManageApp(ISugarUnitOfWork<SugarDbContext> unitWork, ISimpleClient<LasaDronePort> repository, IAuth auth) : base(unitWork, repository, auth)
{
}
/// <summary>
/// 分页获取所有数据
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="key"></param>
/// <returns></returns>
public async Task<Response<PageInfo<List<LasaDronePort>>>> GetPageList(int pageIndex, int pageSize, string key)
{
int totalCount = 0;
PageModel pageModel = new PageModel()
{
PageIndex = pageIndex,
PageSize = pageSize,
TotalCount = totalCount
};
var list = await Repository.GetPageListAsync(it => it.Name.Contains(key), pageModel, it => it.UpdateTime, OrderByType.Desc);
return new Response<PageInfo<List<LasaDronePort>>>
{
Result = new PageInfo<List<LasaDronePort>> { Items = list, Total = totalCount }
};
}
/// <summary>
/// 获取无人机列表
/// </summary>
/// <param name="page"></param>
/// <param name="limit"></param>
/// <param name="key"></param>
/// <returns></returns>
public async Task<Response<PageInfo<List<LasaUav>>>> GetUavPageList(int page, int limit, string key)
{
RefAsync<int> totalCount = 0;
using (var db = UnitWork.CreateContext())
{
var list = await db.LasaUav.AsQueryable()
.WhereIF(!string.IsNullOrEmpty(key), a => a.Name.Contains(key))
.ToPageListAsync(page, limit, totalCount);
return new Response<PageInfo<List<LasaUav>>>
{
Result = new PageInfo<List<LasaUav>> { Items = list, Total = totalCount }
};
}
}
/// <summary>
/// 获取任务列表
/// </summary>
/// <param name="page"></param>
/// <param name="limit"></param>
/// <param name="key"></param>
/// <returns></returns>
public async Task<Response<PageInfo<List<LasaTask>>>> GetTaskPageList(int page, int limit, string key)
{
RefAsync<int> totalCount = 0;
using (var db = UnitWork.CreateContext())
{
var list = await db.LasaTask.AsQueryable()
.WhereIF(!string.IsNullOrEmpty(key), a => a.TaskName.Contains(key))
.ToPageListAsync(page, limit, totalCount);
return new Response<PageInfo<List<LasaTask>>>
{
Result = new PageInfo<List<LasaTask>> { Items = list, Total = totalCount }
};
}
}
//添加任务
public async Task<Response<bool>> AddTask(LasaTask task)
{
using (var db = UnitWork.CreateContext())
{
task.Id = Guid.NewGuid().ToString();
task.CreateId = _auth.GetCurrentUser().User.Id;
task.CreateTime = DateTime.Now;
var flag = await db.LasaTask.InsertAsync(task);
if(db.Commit())
return new Response<bool> { Result = true, Message = "添加成功" };
else
return new Response<bool> { Result = false, Message = "添加失败" };
}
}
//编辑任务
public async Task<Response<bool>> EditTask(LasaTask task)
{
using (var db = UnitWork.CreateContext())
{
var flag = await db.LasaTask.UpdateAsync(task);
if (db.Commit())
return new Response<bool> { Result = true, Message = "编辑成功" };
else
return new Response<bool> { Result = false, Message = "编辑失败" };
}
}
//删除任务
public async Task<Response<bool>> DeleteTask(string id)
{
using (var db = UnitWork.CreateContext())
{
var flag = await db.LasaTask.DeleteAsync(it => it.Id == id);
if (db.Commit())
return new Response<bool> { Result = true, Message = "删除成功" };
else
return new Response<bool> { Result = false, Message = "删除失败" };
}
}
#region 航线管理
/// <summary>
/// 获取航线列表
/// </summary>
/// <param name="page"></param>
/// <param name="limit"></param>
/// <param name="key"></param>
/// <returns></returns>
public async Task<Response<PageInfo<List<LasaAirLine>>>> GetAirLinePageList(int page, int limit, string key)
{
RefAsync<int> totalCount = 0;
using (var db = UnitWork.CreateContext())
{
var list = await db.LasaAirLine.AsQueryable()
.WhereIF(!string.IsNullOrEmpty(key), a => a.AirLineName.Contains(key))
.ToPageListAsync(page, limit, totalCount);
return new Response<PageInfo<List<LasaAirLine>>>
{
Result = new PageInfo<List<LasaAirLine>> { Items = list, Total = totalCount }
};
}
}
//添加航线
public async Task<Response<bool>> AddAirLine(LasaAirLine lasaAirLine)
{
using (var db = UnitWork.CreateContext())
{
lasaAirLine.Id = Guid.NewGuid().ToString();
lasaAirLine.CreateId = _auth.GetCurrentUser().User.Id;
lasaAirLine.CreateTime = DateTime.Now;
var flag = await db.LasaAirLine.InsertAsync(lasaAirLine);
if (db.Commit())
return new Response<bool> { Result = true, Message = "添加成功" };
else
return new Response<bool> { Result = false, Message = "添加失败" };
}
}
//编辑航线
public async Task<Response<bool>> EditAirLine(LasaAirLine lasaAirLine)
{
using (var db = UnitWork.CreateContext())
{
var flag = await db.LasaAirLine.UpdateAsync(lasaAirLine);
if (db.Commit())
return new Response<bool> { Result = true, Message = "编辑成功" };
else
return new Response<bool> { Result = false, Message = "编辑失败" };
}
}
//删除航线
public async Task<Response<bool>> DeleteAirLine(string id)
{
using (var db = UnitWork.CreateContext())
{
var flag = await db.LasaAirLine.DeleteAsync(it => it.Id == id);
if (db.Commit())
return new Response<bool> { Result = true, Message = "删除成功" };
else
return new Response<bool> { Result = false, Message = "删除失败" };
}
}
//生成航线文件
#endregion
#region 项目管理
/// <summary>
/// 获取项目列表
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public async Task<Response<List<LasaWorkspace>>> GetWorkspaceList(string key)
{
RefAsync<int> totalCount = 0;
using (var db = UnitWork.CreateContext())
{
var list = await db.LasaWorkspace.AsQueryable()
.WhereIF(!string.IsNullOrEmpty(key), a => a.WorkspaceName.Contains(key))
.ToListAsync();
return new Response<List<LasaWorkspace>>
{
Result = list
};
}
}
//添加项目
public async Task<Response<bool>> AddWorkspace(LasaWorkspace lasaWorkspace)
{
using (var db = UnitWork.CreateContext())
{
lasaWorkspace.Id = Guid.NewGuid().ToString();
lasaWorkspace.CreateId = _auth.GetCurrentUser().User.Id;
lasaWorkspace.CreateTime = DateTime.Now;
var flag = await db.LasaWorkspace.InsertAsync(lasaWorkspace);
if (db.Commit())
return new Response<bool> { Result = true, Message = "添加成功" };
else
return new Response<bool> { Result = false, Message = "添加失败" };
}
}
//编辑项目
public async Task<Response<bool>> EditWorkspace(LasaWorkspace lasaWorkspace)
{
using (var db = UnitWork.CreateContext())
{
var flag = await db.LasaWorkspace.UpdateAsync(lasaWorkspace);
if (db.Commit())
return new Response<bool> { Result = true, Message = "编辑成功" };
else
return new Response<bool> { Result = false, Message = "编辑失败" };
}
}
//删除项目
public async Task<Response<bool>> DeleteWorkspace(string id)
{
using (var db = UnitWork.CreateContext())
{
var flag = await db.LasaWorkspace.DeleteAsync(it => it.Id == id);
if (db.Commit())
return new Response<bool> { Result = true, Message = "删除成功" };
else
return new Response<bool> { Result = false, Message = "删除失败" };
}
}
#endregion
}
}