Infrastructure/OpenAuth.App/ServiceApp/GoView/GoViewProjectApp.cs

134 lines
4.6 KiB
C#

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<GoviewProject, SugarDbContext>
{
public GoViewProjectApp(ISugarUnitOfWork<SugarDbContext> unitWork, ISimpleClient<GoviewProject> repository,
IAuth auth) : base(unitWork, repository, auth)
{
}
public async Task<Response<bool>> DeleteProject(string ids)
{
var idArray = ids.Split(",");
var flag = await Repository.DeleteByIdsAsync(idArray);
return new Response<bool> { Code = 200, Result = flag, Message = flag ? "删除成功" : "删除失败" };
}
public async Task<Response<bool>> UpdateProject(GoviewProject project)
{
var exist = await Repository.AsQueryable().CountAsync(a => a.Id == project.Id);
if (exist == 0)
{
return new Response<bool> { Code = 500, Message = "项目不存在" };
}
var flag = await Repository.AsUpdateable(project).IgnoreNullColumns().ExecuteCommandAsync();
return new Response<bool>
{ Code = 200, Result = flag > 0, Message = flag > 0 ? "修改成功" : "修改失败" };
}
public async Task<Response<GoviewProject>> 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<GoviewProject>
{ Code = 200, Result = flag ? project : null, Message = flag ? "创建成功" : "创建失败" };
}
public async Task<Response<bool>> 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<bool> { Code = 200, Result = flag, Message = flag ? "操作成功" : "操作失败" };
}
public async Task<Response<PageInfo<List<GoviewProject>>>> List(GoViewProjectPage page)
{
RefAsync<int> total = 0;
var list = await Repository.AsQueryable()
.ToPageListAsync(page.page, page.limit, total);
return new Response<PageInfo<List<GoviewProject>>>()
{
Result = new PageInfo<List<GoviewProject>>
{
Items = list,
Total = total
}
};
}
public async Task<Response<ProjectResponse>> GetData(string projectId)
{
var prj = await Repository.AsQueryable().SingleAsync(a => a.Id == projectId);
if (prj == null)
{
return new Response<ProjectResponse>()
{
Message = "项目不存在",
Code = 500
};
}
var vo = prj.MapTo<ProjectResponse>();
var data = await Repository.ChangeRepository<SugarRepositiry<GoviewProjectData>>().AsQueryable()
.SingleAsync(a => a.ProjectId == projectId);
if (data != null)
{
vo.Content = data.Content;
}
return new Response<ProjectResponse>()
{
Result = vo
};
}
public async Task<Response<bool>> 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<SugarRepositiry<GoviewProjectData>>()
.AsQueryable()
.SingleAsync(a => a.ProjectId == data.ProjectId);
bool flag;
if (prjData == null)
{
data.Id = Guid.NewGuid().ToString();
flag = await Repository.ChangeRepository<SugarRepositiry<GoviewProjectData>>().InsertAsync(data);
}
else
{
flag = await Repository
.ChangeRepository<SugarRepositiry<GoviewProjectData>>()
.AsUpdateable(data)
.IgnoreNullColumns()
.ExecuteCommandAsync() > 0;
}
return new Response<bool> { Code = 200, Result = flag, Message = flag ? "数据保存成功" : "数据保存失败" };
}
}