using AutoMapper;
using OASystem.Domain;
using OASystem.Domain.Dtos.Groups;
using OASystem.Domain.Entities.Groups;
using OASystem.Domain.ViewModels.Groups;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace OASystem.Infrastructure.Repositories.Groups
{
///
/// 团组-出入境费用报价表 仓储
///
public class EnterExitCostQuoteRepository : BaseRepository
{
private readonly IMapper _mapper;
public EnterExitCostQuoteRepository(SqlSugarClient sqlSugar, IMapper mapper) : base(sqlSugar)
{
_mapper = mapper;
}
///
/// 初始化基础项
///
/// 是否移除换行符
///
public async Task> InitBasicItemAsync(bool removeNl)
{
var origList = await _sqlSugar.Queryable()
.Where(x => x.IsDel == 0 && x.STid == 105)
.Select(x => new
{
Id = x.Id,
Name = x.Name,
Index = x.Remark ?? "-1"
}).ToListAsync();
var newList = origList.Select(x => new InitBasicItemView
{
Id = x.Id,
Name = removeNl ? x.Name.Replace("\r\n", "") : x.Name,
Index = int.TryParse(x.Index,out int index) ? index : -1
})
.OrderBy(x => x.Index)
.ToList();
return newList;
}
///
/// 获取报价名称列表
///
///
///
///
///
public async Task QuoteNameListAsync(EnterExitCostQuoteNameListDto dto)
{
int pageIndex = dto.PageIndex, pageSize = dto.PageSize;
string name = dto.Name;
if (pageIndex < 1 || pageSize < 1)
{
var noPageList = await _sqlSugar.Queryable()
.Where(x => x.IsDel == 0 && !string.IsNullOrEmpty(x.Name))
.WhereIF(!string.IsNullOrEmpty(name), x => x.Name.Contains(name))
.Select(x => new EnterExitCostQuoteNameView
{
Id = x.Id,
Name = x.Name
}).ToListAsync();
return new JsonView
{
Code = StatusCodes.Status200OK,
Msg = "获取成功",
Count = noPageList.Count,
Data = noPageList
};
}
RefAsync total = 0;
var pageList = await _sqlSugar.Queryable()
.Where(x => x.IsDel == 0 && !string.IsNullOrEmpty(x.Name))
.WhereIF(!string.IsNullOrEmpty(name), x => x.Name.Contains(name))
.Select(x => new EnterExitCostQuoteNameView
{
Id = x.Id,
Name = x.Name
}).ToPageListAsync(pageIndex, pageSize, total);
return new JsonView
{
Code = StatusCodes.Status200OK,
Msg = "获取成功",
Count = total,
Data = pageList
};
}
///
/// 获取团组名称列表
///
///
///
///
///
public async Task GroupNameListAsync(EnterExitCostQuoteGroupNameListDto dto)
{
int pageIndex = dto.PageIndex, pageSize = dto.PageSize;
string name = dto.Name;
if (pageIndex < 1 || pageSize < 1)
{
var noPageList = await _sqlSugar.Queryable()
.Where(x => x.IsDel == 0 && !string.IsNullOrEmpty(x.TeamName))
.WhereIF(!string.IsNullOrEmpty(name), x => x.TeamName.Contains(name))
.OrderByDescending(x => x.CreateTime)
.Select(x => new EnterExitCostQuoteGroupNameView
{
Id = x.Id,
Name = x.TeamName
}).ToListAsync();
return new JsonView
{
Code = StatusCodes.Status200OK,
Msg = "获取成功",
Count = noPageList.Count,
Data = noPageList
};
}
RefAsync total = 0;
var pageList = await _sqlSugar.Queryable()
.Where(x => x.IsDel == 0 && !string.IsNullOrEmpty(x.TeamName))
.WhereIF(!string.IsNullOrEmpty(name), x => x.TeamName.Contains(name))
.OrderByDescending(x => x.CreateTime)
.Select(x => new EnterExitCostQuoteGroupNameView
{
Id = x.Id,
Name = x.TeamName
}).ToPageListAsync(pageIndex, pageSize, total);
return new JsonView
{
Code = StatusCodes.Status200OK,
Msg = "获取成功",
Count = total,
Data = pageList
};
}
///
/// 获取团组名称列表
///
///
///
///
///
public async Task InfoAsync(EnterExitCostQuoteInfoDto dto)
{
if (dto.Id < 1)
{
return new JsonView
{
Code = StatusCodes.Status400BadRequest,
Msg = MsgTips.Id
};
}
var quoteInfo = await _sqlSugar.Queryable()
.Where(x => x.IsDel == 0 && x.Id == x.Id)
.FirstAsync();
if (quoteInfo == null)
{
return new JsonView
{
Code = StatusCodes.Status400BadRequest,
Msg = $"未找到Id为{dto.Id}的数据"
};
}
//(List?)CommonFun.GetCurrencyChinaToList(enterExitCostData.CurrencyRemark)
return new JsonView
{
Code = StatusCodes.Status200OK,
Msg = "获取成功",
// Data = pageList
};
}
}
}