using AutoMapper; using OASystem.Domain; using OASystem.Domain.Dtos.Groups; using OASystem.Domain.Entities.Customer; using OASystem.Domain.Entities.Groups; using OASystem.Domain.ViewModels.Groups; using OASystem.Infrastructure.Tools; using Org.BouncyCastle.Utilities.Encoders; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace OASystem.Infrastructure.Repositories.Groups { /// /// 接团客户名单 /// 仓库 /// public class TourClientListRepository :BaseRepository { private readonly Result _result; private readonly IMapper _mapper; public TourClientListRepository(SqlSugarClient sqlSugar, IMapper mapper) : base(sqlSugar) { _result = new Result() { Code = -1, Msg = "操作失败!" }; _mapper = mapper; } /// /// 根据团组Id查询List /// /// /// /// public async Task _ItemByDiId(int portId, int diId) { if (portId == 1 || portId == 2 || portId == 3 ) // 1 web 2 Android 3 ios { string sql = string.Format(@"Select tcl.Id,tcl.DiId,temp.* From Grp_TourClientList tcl Left Join (Select dc.Id As DcId,dc.LastName,dc.FirstName,ccom.CompanyFullName,dc.Job,cc.CertNo As IDCardNo,dc.Sex From Crm_DeleClient dc Left Join Crm_CustomerCompany ccom On dc.CrmCompanyId = ccom.Id And ccom.IsDel = 0 Left Join Crm_CustomerCert cc On dc.Id = cc.DcId And cc.SdId = 773 And cc.IsDel = 0 Where dc.IsDel = 0) temp On temp.DcId =tcl.ClientId Where tcl.IsDel = 0 And tcl.DiId = {0}", diId); var data = await _sqlSugar.SqlQueryable(sql).ToListAsync(); _result.Code = 0; _result.Data = data; } else { _result.Msg = "请传入有效的PortType参数,1 Web 2 Android 3 IOS!"; } return _result; } /// /// 基础数据 Init /// /// /// public async Task _BasicDataInit(int portId) { if (portId == 1 || portId == 2 || portId == 3) // 1 web 2 Android 3 ios { var setData = await _sqlSugar.Queryable().Where(it => it.IsDel == 0) .ToListAsync(); var shippingSpaceTypeData = setData.Where(it => it.STid == 44).ToList(); //舱位类型 List _ShippingSpaceTypeData = _mapper.Map>(shippingSpaceTypeData); var passportTypeData = setData.Where(it => it.STid == 74).ToList(); //护照类型 List _PassportTypeData = _mapper.Map>(passportTypeData); var _view = new { ShippingSpaceTypeData = _ShippingSpaceTypeData, PassportTypeData = _PassportTypeData }; _result.Code = 0; _result.Data = _view; } else { _result.Msg = "请传入有效的PortType参数,1 Web 2 Android 3 IOS!"; } return _result; } /// /// 根据Id查询Details /// /// /// /// public async Task _Details(int portId, int id) { if (portId == 1 || portId == 2 || portId == 3) // 1 web 2 Android 3 ios { string sql = string.Format(@"Select tcl.Id,tcl.DiId,temp.*,tcl.ShippingSpaceTypeId,tcl.ShippingSpaceSpecialNeeds, tcl.HotelSpecialNeeds,tcl.MealSpecialNeeds,tcl.Remark From Grp_TourClientList tcl Left Join (Select dc.Id As DcId,dc.LastName,dc.FirstName,dc.Pinyin,dc.Sex,ccom.CompanyFullName,dc.Job, cc1.CertNo As IDCardNo,dc.Phone,dc.BirthDay,cc2.PassportType,cc2.CertNo As PassportNo,cc2.Country, cc2.Area,cc2.IssueDt,cc2.ExpiryDt From Crm_DeleClient dc Left Join Crm_CustomerCompany ccom On dc.CrmCompanyId = ccom.Id And ccom.IsDel = 0 Left Join Crm_CustomerCert cc1 On dc.Id = cc1.DcId And cc1.SdId = 773 And cc1.IsDel = 0 Left Join Crm_CustomerCert cc2 On dc.Id = cc2.DcId And cc2.SdId = 774 And cc2.IsDel = 0 Where dc.IsDel = 0) temp On temp.DcId =tcl.ClientId Where tcl.IsDel = 0 And tcl.Id = {0}", id); var data = await _sqlSugar.SqlQueryable(sql).FirstAsync(); if (data != null) { data.BirthDay = data.BirthDay.DateFormat("yyyy-MM-dd"); data.IssueDt = data.IssueDt.DateFormat("yyyy-MM-dd"); data.ExpiryDt = data.ExpiryDt.DateFormat("yyyy-MM-dd"); _result.Code = 0; _result.Data = data; } } else { _result.Msg = "请传入有效的PortType参数,1 Web 2 Android 3 IOS!"; } return _result; } /// /// Add Or Edit /// /// /// /// public async Task _AddOrEdit(TourClientListAddOrEditDto dto) { if (dto.Id < 0) // 1 web 2 Android 3 ios { if (dto.Id == 0) // 添加 { #region 参数处理 _sqlSugar.BeginTran(); int clientId = -1; var clientInfo = await _sqlSugar.Queryable().Where(it => it.IsDel == 0 && it.LastName.Equals(dto.LastName) && it.FirstName.Equals(dto.FirstName) && it.Phone.Equals(dto.Phone) ).FirstAsync(); if (clientInfo != null) //该客户存在 修改信息 { Crm_DeleClient _DeleClient = new Crm_DeleClient() { LastName = dto.LastName, FirstName = dto.FirstName, Pinyin = dto.Pinyin, Sex = dto.Sex, Phone = dto.Phone, BirthDay = dto.BirthDay }; clientId = clientInfo.Id; //1.修改基本信息 var clientEdit = await _sqlSugar.Updateable(_DeleClient).UpdateColumns(it => new { it.LastName, it.FirstName, it.Pinyin, it.Sex, it.Phone, it.BirthDay } ) .Where(it => it.Id == clientId) .ExecuteCommandAsync(); if (clientEdit < 0) { _sqlSugar.RollbackTran(); _result.Msg = "客户基础信息修改失败!"; } //2.修改卡类型信息 //2.1 修改身份证信息 } else //不存在添加 客户信息 { //1.添加基本信息 //2.添加卡类型信息 //2.1 添加身份证信息 //2.2 添加护照信息 } Grp_TourClientList _TourClientList = new Grp_TourClientList() { DiId = dto.DiId, ClientId = clientId, ShippingSpaceTypeId = dto.ShippingSpaceTypeId, ShippingSpaceSpecialNeeds = dto.ShippingSpaceSpecialNeeds, HotelSpecialNeeds = dto.HotelSpecialNeeds, MealSpecialNeeds = dto.MealSpecialNeeds, CreateUserId = dto.UserId, IsDel = 0 }; _sqlSugar.CommitTran(); #endregion } else if (dto.Id > 0) //修改 { } } else { _result.Msg = "请传入有效的id参数!"; } return _result; } } }