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 flag ? AjaxResult.Success("删除成功") : AjaxResult.Error("删除失败"); } public async Task UpdateProject(GoviewProject project) { var flag = await Repository.AsUpdateable(project).IgnoreNullColumns().ExecuteCommandAsync(); return flag > 0 ? AjaxResult.Success("修改成功") : AjaxResult.Error("修改失败"); } 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 flag ? AjaxResult.Success("创建成功") : AjaxResult.Error("创建失败"); } 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 flag ? AjaxResult.Success("操作成功") : AjaxResult.Error("操作失败"); } public async Task List(GoViewProjectPage page) { RefAsync total = 0; var list = await Repository.AsQueryable() .ToPageListAsync(page.page, page.limit, total); return new ResultTable() { Code = 200, Msg = "获取成功", Count = total, Data = list }; } public async Task GetData(string projectId) { var prj = await Repository.AsQueryable().SingleAsync(a => a.Id == projectId); if (prj == null) { return AjaxResult.Error("项目不存在"); } var vo = prj.MapTo(); var data = await Repository.ChangeRepository>().AsQueryable() .SingleAsync(a => a.ProjectId == projectId); if (data != null) { vo.Content = data.Content; } return AjaxResult.SuccessData(200, 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 flag ? AjaxResult.Success("数据保存成功") : AjaxResult.Error("数据保存失败"); } }