using AutoMapper;
using OASystem.Domain;
using OASystem.Domain.Dtos;
using OASystem.Domain.Dtos.CRM;
using OASystem.Domain.Dtos.UserDto;
using OASystem.Domain.Entities.Customer;
using OASystem.Domain.Entities.Groups;
using OASystem.Domain.Entities.Resource;
using OASystem.Domain.ViewModels.CRM;
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.CRM
{
///
/// 签证客户 仓库
///
public class VisaDeleClientRepository : BaseRepository
{
private readonly IMapper _mapper;
public VisaDeleClientRepository(SqlSugarClient sqlSugar,IMapper mapper) :
base(sqlSugar)
{
_mapper = mapper;
}
///
/// 签证客户list
///
///
///
public async Task GetCrmList(DtoBase dto)
{
Result result = new Result() { Code = -2 };
if (dto.PortType == 1 || dto.PortType == 2)
{
string sql = string.Format(@"Select cdc.Id,LastName+FirstName ClientName,ccc.CompanyName,Sex,Marriage,
Phone LandlinePhone,Tel,crmCard1.CertNo IDNo,crmCard2.CertNo PassportNo
From Crm_DeleClient cdc
Left Join Crm_CustomerCompany ccc On cdc.crmCompanyId = ccc.Id
Left Join Crm_CustomerCert crmCard1 On crmCard1.SdId = 773 And cdc.Id = crmCard1.DcId
Left Join Crm_CustomerCert crmCard2 On crmCard2.SdId = 774 And cdc.Id = crmCard2.DcId ");
var clientList = await _sqlSugar.SqlQueryable(sql).ToListAsync();
if (clientList.Count > 0)
{
result.Code = 0;
result.Msg = "成功!";
result.Data = clientList;
}
else
{
result.Msg = "暂无数据!";
}
}
return result;
}
///
/// 签证客户操作
///
///
///
public async Task CrmClinetoperation(LoginDto loginDto)
{
Result result = new Result() { Code = -2 };
return result;
}
///
/// 签证客户 新增
///
///
///
public async Task CrmClinetAdd(Crm_DeleClient client)
{
int addId = -1;
return addId;
}
///
/// 根据身份证识别修改ocr添加
///
///
///
public async Task SetCrmUpdPassIdCardOCR(SetCrmUpdPassIdCardOCRDto client)
{
string clientSql = string.Format(@"Select * From Crm_DeleClient Where LastName+FirstName='{0}' And Sex = {1}",
client.ClientName, client.Sex);
var clientInfo = await _sqlSugar.SqlQueryable(clientSql).FirstAsync();
if(clientInfo == null) return false;
string cardSql = string.Format(@"Select * From Crm_CustomerCert Where SdId=773 And DcId={0}", clientInfo.Id);
var cardInfo = await _sqlSugar.SqlQueryable(cardSql).FirstAsync();
if (cardInfo == null) //添加
{
int cerdAdd = await _sqlSugar.Insertable(new Crm_CustomerCert
{
DcId = clientInfo.Id,
SdId = 773,
Country = "中国",
CertNo = client.CerdNo,
TargetCountry = "",
IssueDt = new DateTime(1990, 1, 1),
ExpiryDt = new DateTime(1990, 1, 1),
CreateUserId = client.UserId,
CreateTime = DateTime.Now,
DeleteUserId = null,
DeleteTime = "1990-01-01 00:00:00.000",
Remark = "",
IsDel = 0
}).ExecuteReturnIdentityAsync();
if (cerdAdd > 0) return true;
}
else //修改
{
var cerdStatus = await _sqlSugar.Updateable()
.Where(c => c.Id == cardInfo.Id)
.SetColumns(c => new Crm_CustomerCert
{
CertNo = cardInfo.CertNo,
IDCardAddress = cardInfo.IDCardAddress
}).ExecuteCommandAsync();
if (cerdStatus > 0) return true;
}
return false;
}
public async Task OpCustomer(DeleClientOpDto dto)
{
Result result = new Result() { Code = -2, Msg = "未知错误" };
try
{
if (dto.Status==1)//添加
{
string selectSql = string.Format(@"select * from Crm_DeleClient where LastName+FirstName='{0}' and Phone='{1}' and IsDel='{2}'"
, dto.DeleClient.LastName+dto.DeleClient.FirstName, dto.DeleClient.Phone, 0);
var DeleClient = await _sqlSugar.SqlQueryable(selectSql).FirstAsync();//查询是否存在
if (DeleClient != null)
{
return result = new Result() { Code = -1, Msg = "该客户已存在,请勿重复添加!" };
}
else//不存在,可添加
{
Crm_DeleClient _CountryFeeCost = _mapper.Map(dto.DeleClient);
int id = await AddAsyncReturnId(_CountryFeeCost);
if (id == 0)
{
return result = new Result() { Code = -1, Msg = "添加失败!" };
}
return result = new Result() { Code = 0, Msg = "添加成功!", Data = new { Id = id } };
//进行其他表炒作
}
}
else if (dto.Status == 2)//修改
{
bool res = await UpdateAsync(a => a.Id == dto.DeleClient.Id, a => new Crm_DeleClient
{
LastName = dto.DeleClient.LastName,
FirstName = dto.DeleClient.FirstName,
OldName = dto.DeleClient.OldName,
Pinyin = dto.DeleClient.Pinyin,
Sex = dto.DeleClient.Sex,
Marriage = dto.DeleClient.Marriage,
Phone = dto.DeleClient.Phone,
BirthProvince = dto.DeleClient.BirthProvince,
BirthCity = dto.DeleClient.BirthCity,
BirthDay = dto.DeleClient.BirthDay,
AirType = dto.DeleClient.AirType,
SeatPref = dto.DeleClient.SeatPref,
AirRemark = dto.DeleClient.AirRemark,
RoomType = dto.DeleClient.RoomType,
RoomPref = dto.DeleClient.RoomPref,
Tel = dto.DeleClient.Tel,
Email = dto.DeleClient.Email,
Address = dto.DeleClient.Address,
HighestEducation = dto.DeleClient.HighestEducation,
PostCodes = dto.DeleClient.PostCodes,
CrmCompanyId = dto.DeleClient.CrmCompanyId,
Job = dto.DeleClient.Job,
WorkState = dto.DeleClient.WorkState,
WorkDate = dto.DeleClient.WorkDate,
Wage = dto.DeleClient.Wage,
ClientPhone = dto.DeleClient.ClientPhone,
ClientFax = dto.DeleClient.ClientFax,
ClientEmail = dto.DeleClient.ClientEmail,
ClientLeader = dto.DeleClient.ClientLeader,
ClientLeaderJob = dto.DeleClient.ClientLeaderJob,
IsGetSchengen = dto.DeleClient.IsGetSchengen,
StartTime = dto.DeleClient.StartTime,
EndTime = dto.DeleClient.EndTime,
IsFinger = dto.DeleClient.IsFinger,
FingerDate = dto.DeleClient.FingerDate,
IsVisitUC = dto.DeleClient.IsVisitUC,
USADate = dto.DeleClient.USADate,
USADays = dto.DeleClient.USADays,
CanDate = dto.DeleClient.CanDate,
CanDays = dto.DeleClient.CanDays,
IsUSAVia = dto.DeleClient.IsUSAVia,
GetUSAVisaDate = dto.DeleClient.GetUSAVisaDate,
GetUPPlace = dto.DeleClient.GetUPPlace,
USAVisaCate = dto.DeleClient.USAVisaCate,
USAVisaCode = dto.DeleClient.USAVisaCode,
USAFinger = dto.DeleClient.USAFinger,
IsRejected = dto.DeleClient.IsRejected,
RejectedDate = dto.DeleClient.RejectedDate,
RejectedPlace = dto.DeleClient.RejectedPlace,
RejectedVisa = dto.DeleClient.RejectedVisa,
IsRevoke = dto.DeleClient.IsRevoke,
IsLose = dto.DeleClient.IsLose,
LoseDate = dto.DeleClient.LoseDate,
LoseCode = dto.DeleClient.LoseCode,
IsUSAVisa = dto.DeleClient.IsUSAVisa,
MateUSA = dto.DeleClient.MateUSA,
MateIden = dto.DeleClient.MateIden,
WHUSA = dto.DeleClient.WHUSA,
WHIden = dto.DeleClient.WHIden,
ParentUSA = dto.DeleClient.ParentUSA,
ParentIden = dto.DeleClient.ParentIden,
ChildUSA = dto.DeleClient.ChildUSA,
ChildIden = dto.DeleClient.ChildIden,
BroUSA = dto.DeleClient.BroUSA,
BroIden = dto.DeleClient.BroIden,
Social = dto.DeleClient.Social,
IsArmy = dto.DeleClient.IsArmy,
ArmyState = dto.DeleClient.ArmyState,
CostBearers = dto.DeleClient.CostBearers,
TableOpName = dto.DeleClient.TableOpName,
TableOpTel = dto.DeleClient.TableOpTel,
TableDate = dto.DeleClient.TableDate,
Party = dto.DeleClient.Party,
Nationality = dto.DeleClient.Nationality,
WeddingDate = dto.DeleClient.WeddingDate,
DivorceDate = dto.DeleClient.DivorceDate,
MateName = dto.DeleClient.MateName,
MateBirthDay = dto.DeleClient.MateBirthDay,
MateBirthCity = dto.DeleClient.MateBirthCity,
MateBirthCountry = dto.DeleClient.MateBirthCountry,
MateAddress = dto.DeleClient.MateAddress,
MateClient = dto.DeleClient.MateClient,
MateClientAddress = dto.DeleClient.MateClientAddress,
MateJob = dto.DeleClient.MateJob,
VisitCountry = dto.DeleClient.VisitCountry,
Paper = dto.DeleClient.Paper,
Papent = dto.DeleClient.Papent,
PhD = dto.DeleClient.PhD,
CreateUserId = dto.DeleClient.CreateUserId,
Remark = dto.DeleClient.Remark,
});
if (!res)
{
return result = new Result() { Code = -1, Msg = "修改失败!" };
}
foreach (var item in dto.CustomerFamily)
{
if (item.Id!=0)//修改
{
}
else//添加
{
}
}
return result = new Result() { Code = 0, Msg = "修改成功!" };
//进行其他表操作
}
}
catch (Exception)
{
return result = new Result() { Code = -2, Msg = "程序错误!" };
throw;
}
return result;
}
}
}