using AutoMapper;
using OASystem.Domain;
using OASystem.Domain.Entities.Groups;
using OASystem.Domain.ViewModels.Groups;
using OASystem.Infrastructure.Tools;
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(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;
}
}
}