using Infrastructure; using OpenAuth.App.BaseApp.Base; using OpenAuth.App.Interface; using OpenAuth.App.ServiceApp.GoView.Request; using OpenAuth.App.ServiceApp.GoView.Response; using OpenAuth.Repository; using OpenAuth.Repository.Domain.GoView; using SqlSugar; namespace OpenAuth.App.ServiceApp.GoView; public class GoViewProjectApp : SqlSugarBaseApp { public GoViewProjectApp(ISugarUnitOfWork unitWork, ISimpleClient repository, IAuth auth) : base(unitWork, repository, auth) { } public async Task> DeleteProject(string ids) { var idArray = ids.Split(","); var flag = await Repository.DeleteByIdsAsync(idArray); return new Response { Code = 200, Result = flag, Message = flag ? "删除成功" : "删除失败" }; } public async Task> UpdateProject(GoviewProject project) { var exist = await Repository.AsQueryable().CountAsync(a => a.Id == project.Id); if (exist == 0) { return new Response { Code = 500, Message = "项目不存在" }; } var flag = await Repository.AsUpdateable(project).IgnoreNullColumns().ExecuteCommandAsync(); return new Response { Code = 200, Result = flag > 0, Message = flag > 0 ? "修改成功" : "修改失败" }; } public async Task> Create(GoviewProject project) { project.State = -1; project.CreateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); var userId = _auth.GetUserId(); project.CreateUserId = userId; project.Id = Guid.NewGuid().ToString(); var flag = await Repository.InsertAsync(project); return new Response { Code = 200, Result = flag ? project : null, Message = flag ? "创建成功" : "创建失败" }; } public async Task> Publish(GoViewProjectRequest req) { var prj = new GoviewProject { Id = req.Id, State = req.State }; var flag = await Repository.AsUpdateable(prj).IgnoreNullColumns().ExecuteCommandAsync() > 0; return new Response { Code = 200, Result = flag, Message = flag ? "操作成功" : "操作失败" }; } public async Task>>> List(GoViewProjectPage page) { RefAsync total = 0; var list = await Repository.AsQueryable() .ToPageListAsync(page.page, page.limit, total); return new Response>>() { Result = new PageInfo> { Items = list, Total = total } }; } public async Task> GetData(string projectId) { var prj = await Repository.AsQueryable().SingleAsync(a => a.Id == projectId); if (prj == null) { return new Response() { Message = "项目不存在", Code = 500 }; } var vo = prj.MapTo(); var data = await Repository.ChangeRepository>().AsQueryable() .SingleAsync(a => a.ProjectId == projectId); if (data != null) { vo.Content = data.Content; } return new Response() { Result = vo }; } public async Task> SaveData(GoviewProjectData data) { // 更新还是保存, var project = await Repository.AsQueryable().SingleAsync(a => a.Id == data.ProjectId); if (project == null) { throw new Exception("项目不存在"); } var prjData = await Repository .ChangeRepository>() .AsQueryable() .SingleAsync(a => a.ProjectId == data.ProjectId); bool flag; if (prjData == null) { data.Id = Guid.NewGuid().ToString(); flag = await Repository.ChangeRepository>().InsertAsync(data); } else { flag = await Repository .ChangeRepository>() .AsUpdateable(data) .IgnoreNullColumns() .ExecuteCommandAsync() > 0; } return new Response { Code = 200, Result = flag, Message = flag ? "数据保存成功" : "数据保存失败" }; } }