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; } } }