using AutoMapper;
using EyeSoft.Extensions;
using OASystem.Domain.Dtos.Resource;
using OASystem.Domain.Entities.Groups;
using OASystem.Domain.Entities.Resource;
using OASystem.Domain.ViewModels.Resource;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace OASystem.Infrastructure.Repositories.Resource
{
///
/// 世运会成本预算 仓储
///
public class GamesBudgetMasterRepository : BaseRepository
{
private readonly IMapper _mapper;
private readonly JsonView _jv;
public GamesBudgetMasterRepository(SqlSugarClient sqlSugar, IMapper mapper) : base(sqlSugar)
{
_mapper = mapper;
_jv = new JsonView() { Code = StatusCodes.Status400BadRequest, Msg = "操作失败!" };
}
///
/// List
///
///
///
public async Task ListAsync(GamesBudgetMasterListDto dto)
{
_jv.Msg = "暂无数据!";
var search = dto.Search;
RefAsync total = 0;
var infos = await _sqlSugar.Queryable()
.Where(x => x.IsDel == 0)
.WhereIF(!string.IsNullOrEmpty(search), x => x.T0.Contains(search) || x.ProjectWork.Contains(search) || x.CalculationContent.Contains(search))
.OrderByDescending(x => x.CreateTime)
.Select()
.ToPageListAsync(dto.PageIndex, dto.PageSize, total);
_jv.Code = StatusCodes.Status200OK;
_jv.Msg = $"操作成功!";
_jv.Data = infos;
_jv.Count = total;
return _jv;
}
///
/// 详情
///
///
///
public async Task InfoAsync(int id)
{
_jv.Msg = "暂无数据!";
var info = await _sqlSugar.Queryable()
.Where(x => x.IsDel == 0 && x.Id == id)
.Select()
.FirstAsync();
if (info != null)
{
_jv.Code = StatusCodes.Status200OK;
_jv.Msg = $"操作成功!";
_jv.Data = info;
}
return _jv;
}
///
/// 添加
///
///
///
public async Task AddAsync(GamesBudgetMasterAddDto dto)
{
var info = _mapper.Map(dto);
var isNl = await _sqlSugar.Queryable()
.FirstAsync(x => x.IsDel == 0 &&
(x.T0.Equals(info.T0) ||
x.ProjectWork.Equals (info.ProjectWork) ||
x.CalculationContent.Equals(info.CalculationContent)));
if (isNl != null)
{
_jv.Msg = "该项类型费用已存在,请勿重复添加!";
return _jv;
}
info.LastUpdateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
info.LastUpdateUserId = dto.CurrUserId;
info.CreateTime = DateTime.Now;
info.CreateUserId = dto.CurrUserId;
var insert = await _sqlSugar.Insertable(info).ExecuteCommandAsync();
if (insert > 0)
{
_jv.Msg = "操作成功!";
_jv.Code = StatusCodes.Status200OK;
return _jv;
}
return _jv;
}
///
/// 编辑
///
///
///
public async Task EditAsync(GamesBudgetMasterEditDto dto)
{
var info = _mapper.Map(dto);
info.LastUpdateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
info.LastUpdateUserId = dto.CurrUserId;
var edit = await _sqlSugar.Updateable(info)
.IgnoreColumns(x => new { x.CreateTime, x.CreateUserId, x.DeleteTime, x.DeleteUserId, x.IsDel })
.ExecuteCommandAsync();
if (edit > 0)
{
_jv.Msg = "操作成功!";
_jv.Code = StatusCodes.Status200OK;
return _jv;
}
return _jv;
}
///
/// 删除
///
///
///
public async Task DelAsync(GamesBudgetMasterDelDto dto)
{
var del = await _sqlSugar.Updateable()
.SetColumns(x => x.DeleteUserId == dto.CurrUserId)
.SetColumns(x => x.DeleteTime == DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"))
.SetColumns(x => x.IsDel == 1)
.Where(x => x.Id == dto.Id)
.ExecuteCommandAsync();
if (del > 0)
{
_jv.Msg = "操作成功!";
_jv.Code = StatusCodes.Status200OK;
return _jv;
}
return _jv;
}
}
}