135 lines
4.6 KiB
C#
135 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
|
|
{
|
|
data.Id = prjData.Id;
|
|
flag = await Repository
|
|
.ChangeRepository<SugarRepositiry<GoviewProjectData>>()
|
|
.AsUpdateable(data)
|
|
.IgnoreNullColumns()
|
|
.ExecuteCommandAsync() > 0;
|
|
}
|
|
|
|
return new Response<bool> { Code = 200, Result = flag, Message = flag ? "数据保存成功" : "数据保存失败" };
|
|
}
|
|
} |