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; } } }