using AutoMapper; using MySqlX.XDevAPI.Common; using OASystem.Domain; using OASystem.Domain.Dtos.Groups; using OASystem.Domain.Entities.Groups; using OASystem.Domain.ViewModels.Groups; using OASystem.Domain.ViewModels.QiYeWeChat; using OASystem.Infrastructure.Repositories.System; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Result = OASystem.Domain.Result; namespace OASystem.Infrastructure.Repositories.Groups { /// /// 酒店询价 仓储 /// public class HotelInquiryRepository:BaseRepository { private readonly IMapper _mapper; private readonly SetDataRepository _setDataRep; /// /// Init /// /// public HotelInquiryRepository(SqlSugarClient sqlSugar, IMapper mapper, SetDataRepository setDataRep) : base(sqlSugar) { _mapper = mapper; _setDataRep = setDataRep; } /// /// 酒店询价 /// 初始化数据 /// /// public async Task _Init() { var currDataResult = await _setDataRep.GetSetDataBySTId(_setDataRep, 66); dynamic currDatas = null; if (currDataResult.Code == 0) currDatas = currDataResult.Data; var data = new { CurrData = currDatas }; return new Result() { Code = 0 ,Msg="操作成功!",Data = data }; } /// /// 酒店询价 /// Page 列表 /// /// /// /// public async Task _PageItem(int pageIndex,int pageSize, int portType, int diId) { if (portType < 1 || portType > 3) return new Result() { Code = -1, Msg = MsgTips.Port}; if (diId < 1) return new Result() { Code = -1, Msg = MsgTips.DiId }; if (pageIndex < 1) return new Result() { Code = -1, Msg = MsgTips.PageIndex }; if (pageIndex < 1) return new Result() { Code = -1, Msg = MsgTips.PageSize }; string sql = string.Format(@$"SELECT hi.Id, hi.DiId, hi.City, hi.[Name], hi.[SelectDt], hi.CheckInDate, hi.CheckOutDate, hi.SinglePrice, hi.SingleQuantity, sd1.[Name] AS SingleCurrency, hi.DoublePrice, hi.DoubleQuantity, sd2.[Name] AS DoubleCurrency, hi.SuitePrice, hi.SuiteQuantity, sd3.[Name] AS SuiteCurrency, hi.OtherPrice, hi.OtherQuantity, sd4.[Name] AS OtherCurrency, hi.Remark, u.CnName AS CreateUserName, hi.CreateTime FROM Grp_HotelInquiry hi WITH (NoLock) LEFT JOIN Sys_Users u WITH (NoLock) ON hi.CreateUserId = u.Id LEFT JOIN Sys_SetData sd1 WITH (NoLock) ON hi.SingleCurrency = sd1.Id LEFT JOIN Sys_SetData sd2 WITH (NoLock) ON hi.DoubleCurrency = sd2.Id LEFT JOIN Sys_SetData sd3 WITH (NoLock) ON hi.SuiteCurrency = sd3.Id LEFT JOIN Sys_SetData sd4 WITH (NoLock) ON hi.OtherCurrency = sd4.Id WHERE hi.Isdel = 0 AND hi.DiId = {diId}"); if (portType == 1 || portType == 2 || portType == 3) { RefAsync total = 0; var eqquiryDatas = await _sqlSugar.SqlQueryable(sql).OrderBy(it => it.checkInDate).ToPageListAsync(pageIndex, pageSize, total); return new Result() { Code = 0, Msg = MsgTips.Succeed, Data = new PageDataViewBase { Data = eqquiryDatas, Total = total } }; } return new Result() { Code = -1, Msg = MsgTips.Fail }; } /// /// info /// /// /// /// public async Task _Info(int portType, int id) { if (portType < 1 || portType > 3) return new Result() { Code = -1, Msg = MsgTips.Port }; if (id < 1 ) return new Result() { Code = -1, Msg = MsgTips.Id }; var info = await _sqlSugar.Queryable() .Where(it => it.IsDel == 0 && it.Id == id) .Select(it => new { it.Id, it.DiId, it.City, it.Name, it.Address, it.SelectDt, it.CheckInDate, it.CheckOutDate, it.SinglePrice, it.SingleQuantity, it.SingleCurrency, it.DoublePrice, it.DoubleQuantity, it.DoubleCurrency, it.SuitePrice, it.SuiteQuantity, it.SuiteCurrency, it.OtherPrice, it.OtherQuantity, it.OtherCurrency, it.Remark, }) .FirstAsync(); return new Result() { Code = 0, Msg = MsgTips.Succeed,Data = info }; } /// /// Add Or Edit /// /// /// public async Task _AddOrEdit(HotelInquiryAddOrEditDto _dto) { #region 参数验证 if (_dto.DiId < 1) return new Result() { Code = -1, Msg = MsgTips.DiId }; if (_dto.Status < 1 || _dto.Status > 2) return new Result() { Code = -1, Msg = MsgTips.Status }; #endregion Grp_HotelInquiry _HotelInquiry = _mapper.Map(_dto); if (_dto.Status == 1) { var add = await _sqlSugar.Insertable(_HotelInquiry).ExecuteReturnIdentityAsync(); if (add > 0 ) return new Result() { Code = 0, Msg = MsgTips.Succeed }; } else if (_dto.Status == 2) { var update = await _sqlSugar.Updateable(_HotelInquiry) .IgnoreColumns(it => new { it.CreateUserId, it.CreateTime, it.DeleteUserId, it.DeleteTime, it.IsDel }) .WhereColumns(it => new { it.Id }) .ExecuteCommandAsync(); if (update > 0) return new Result() { Code = 0, Msg = MsgTips.Succeed }; } return new Result() { Code = -1, Msg = MsgTips.Fail }; } /// /// Del /// /// /// public async Task _Del(int id,int userId) { #region 参数验证 if (id < 1) return new Result() { Code = -1, Msg = MsgTips.Id }; if (userId < 0) return new Result() { Code = -1, Msg = MsgTips.UserId }; #endregion var del = await SoftDeleteByIdAsync(id.ToString(), userId); if (del) return new Result() { Code = 0, Msg = MsgTips.Succeed }; return new Result() { Code = -1, Msg = MsgTips.Fail }; } } }