| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595 | 
							- using AutoMapper;
 
- using OASystem.Domain;
 
- using OASystem.Domain.Dtos.Groups;
 
- using OASystem.Domain.Entities.Groups;
 
- using OASystem.Domain.Entities.Resource;
 
- using OASystem.Domain.ViewModels.Groups;
 
- using OASystem.Domain.ViewModels.Resource;
 
- using OASystem.Infrastructure.Repositories.Resource;
 
- namespace OASystem.Infrastructure.Repositories.Groups
 
- {
 
-     /// <summary>
 
-     /// 团组签证费用详情 info
 
-     /// 仓储
 
-     /// </summary>
 
-     public class VisaFeeInfoRepository : BaseRepository<Grp_VisaFeeInfo, VisaInfoView>
 
-     {
 
-         private readonly IMapper _mapper;
 
-         private Result _result;
 
-         private readonly CountryFeeRepository _countryFeeRep;
 
-         private readonly DelegationInfoRepository _groupRep;
 
-         public VisaFeeInfoRepository(SqlSugarClient sqlSugar, IMapper mapper, CountryFeeRepository countryFeeRep, DelegationInfoRepository groupRep)
 
-             : base(sqlSugar)
 
-         {
 
-             _mapper = mapper;
 
-             _result = new Result() { Code = -2, Msg = "操作失败!" };
 
-             _countryFeeRep = countryFeeRep;
 
-             _groupRep = groupRep;
 
-         }
 
-         /// <summary>
 
-         /// Init
 
-         /// </summary>
 
-         /// <param name="portType"></param>
 
-         /// <param name="diId"></param>
 
-         /// <returns></returns>
 
-         public async Task<Result> Init()
 
-         {
 
-             var data = await _sqlSugar.Queryable<Res_CountryFeeCost>().Where(it => it.IsDel == 0).ToListAsync();
 
-             _result.Code = 0;
 
-             _result.Data = data;
 
-             _result.Msg = "操作成功!";
 
-             return _result;
 
-         }
 
-         /// <summary>
 
-         /// List
 
-         /// </summary>
 
-         /// <param name="portType"></param>
 
-         /// <param name="diId"></param>
 
-         /// <returns></returns>
 
-         public async Task<JsonView> List(int portType, int diId)
 
-         {
 
-             if (diId < 0)
 
-                 return new JsonView() { Code = StatusCodes.Status400BadRequest, Msg = "请传入有效的DiId参数" };
 
-             if (portType < 1 || portType > 3)
 
-                 return new JsonView() { Code = StatusCodes.Status400BadRequest, Msg = "请传入有效的portType参数" };
 
-             //防SQL注入
 
-             string sql = @"Select vfi.Id,vfi.IsChecked,cfc.VisaCountry AS Country,cfc.VisaPrice As VisaFee,
 
-                    vfi.OBType,vfi.AgencyFee,vfi.OtherFee,vfi.Remark 
 
-                    From Grp_VisaFeeInfo vfi
 
-                    Left Join Res_CountryFeeCost cfc On vfi.CountryVisaFeeId = cfc.Id
 
-                    Where vfi.Isdel = 0  And vfi.Diid = @diId";
 
-             var data = await _sqlSugar.SqlQueryable<VisaFeeInfosView>(sql)
 
-                 .AddParameters(new { diId })
 
-                 .ToListAsync();
 
-             if (data.Count == 0)
 
-             {
 
-                 var groupInfo = await _sqlSugar.Queryable<Grp_DelegationInfo>()
 
-                     .FirstAsync(x => x.IsDel == 0 && x.Id == diId);
 
-                 if (groupInfo == null)
 
-                     return new JsonView() { Code = StatusCodes.Status200OK, Data = data, Msg = "团组信息不存在!" };
 
-                 var countrys = _groupRep.GroupSplitCountry(groupInfo.VisitCountry ?? "");
 
-                 if (countrys.Count > 0)
 
-                 {
 
-                     var visaFeeCountrys = await _sqlSugar.Queryable<Res_VisaFeeStandard>()
 
-                         .Where(x => x.IsDel == 0 && x.FeeType == 0 && countrys.Contains(x.Country))
 
-                         .Select(x => new VisaFeeStandardInfoView
 
-                         {
 
-                             Id = x.Id,
 
-                             Continent = x.Continent,
 
-                             Country = x.Country,
 
-                             FeeType = x.FeeType,
 
-                         })
 
-                         .ToListAsync();
 
-                     if (visaFeeCountrys.Count > 0)
 
-                     {
 
-                         var visaFeeCountryIds = visaFeeCountrys.Select(x => x.Id).ToList();
 
-                         var visaFeeDetails = await _sqlSugar.Queryable<Res_VisaFeeStandardDetails>()
 
-                             .Where(x => x.IsDel == 0 && visaFeeCountryIds.Contains(x.ParentId))
 
-                             .ToListAsync();
 
-                         // 建立ParentId到Details的字典,避免多次Where查找
 
-                         var detailsDict = visaFeeDetails
 
-                             .GroupBy(x => x.ParentId)
 
-                             .ToDictionary(g => g.Key, g => g.ToList());
 
-                         foreach (var countryInfo in visaFeeCountrys)
 
-                         {
 
-                             if (detailsDict.TryGetValue(countryInfo.Id, out var details))
 
-                             {
 
-                                 // 只做映射,无副作用可省略变量
 
-                                 countryInfo.VisaFees = _mapper.Map<List<VisaFeeStandardDetails>>(details);
 
-                             }
 
-                         }
 
-                         var provCityDatas = await _groupRep.ProvinceCityBasicSource();
 
-                         int provinceId = _groupRep.FindParentIdByChildId(provCityDatas, groupInfo.CityId) ?? 0;
 
-                         foreach (var country in countrys)
 
-                         {
 
-                             var countryInfo = visaFeeCountrys.FirstOrDefault(x => x.Country == country);
 
-                             if (countryInfo != null && countryInfo.VisaFees != null)
 
-                             {
 
-                                 //如果未找到对应的城市则默认四川的费用标准
 
-                                 var cityVisaFeeInfo = countryInfo.VisaFees.FirstOrDefault(x => x.ProvinceId == provinceId)
 
-                                     ?? countryInfo.VisaFees.FirstOrDefault(x => x.ProvinceId == 122); // 122 四川省ID
 
-                                 if (cityVisaFeeInfo != null)
 
-                                 {
 
-                                     data.Add(new VisaFeeInfosView()
 
-                                     {
 
-                                         IsChecked = 0,
 
-                                         Country = country,
 
-                                         //大公务签证费用为0时,使用小公务签证费用
 
-                                         VisaFee = cityVisaFeeInfo.LargeVisaPrice == 0.00M
 
-                                                   ? cityVisaFeeInfo.SmallVisaPrice
 
-                                                   : cityVisaFeeInfo.LargeVisaPrice,
 
-                                         OBType = 1,
 
-                                         AgencyFee = cityVisaFeeInfo.LargeAgencyFee
 
-                                     });
 
-                                     data.Add(new VisaFeeInfosView()
 
-                                     {
 
-                                         IsChecked = 0,
 
-                                         Country = country,
 
-                                         //小公务签证费用为0时,使用大公务签证费用
 
-                                         VisaFee = cityVisaFeeInfo.SmallVisaPrice == 0.00M
 
-                                                   ? cityVisaFeeInfo.LargeVisaPrice
 
-                                                   : cityVisaFeeInfo.SmallVisaPrice,
 
-                                         OBType = 2,
 
-                                         AgencyFee = cityVisaFeeInfo.SmallAgencyFee
 
-                                     });
 
-                                     continue;
 
-                                 }
 
-                             }
 
-                             // 没有费用信息时补空行
 
-                             data.Add(new VisaFeeInfosView()
 
-                             {
 
-                                 IsChecked = 0,
 
-                                 Country = country,
 
-                                 OBType = 1,
 
-                             });
 
-                             data.Add(new VisaFeeInfosView()
 
-                             {
 
-                                 IsChecked = 0,
 
-                                 Country = country,
 
-                                 OBType = 2,
 
-                             });
 
-                         }
 
-                     }
 
-                     AddDefaultRows(data, 10);
 
-                 }
 
-                 else
 
-                 {
 
-                     AddDefaultRows(data, 10);
 
-                 }
 
-             }
 
-             else if (data.Count <= 10)
 
-             {
 
-                 AddDefaultRows(data, 10);
 
-             }
 
-             return new JsonView() { Code = StatusCodes.Status200OK, Data = data, Msg = "操作成功!" };
 
-         }
 
-         /// <summary>
 
-         /// 补齐默认行
 
-         /// </summary>
 
-         /// <param name="list"></param>
 
-         /// <param name="totalRows"></param>
 
-         private static void AddDefaultRows(List<VisaFeeInfosView> list, int totalRows)
 
-         {
 
-             int defaultRow = totalRows - list.Count;
 
-             for (int i = 0; i < defaultRow; i++)
 
-             {
 
-                 list.Add(new VisaFeeInfosView { Id = 0, OBType = 1 });
 
-             }
 
-         }
 
-         /// <summary>
 
-         /// List
 
-         /// </summary>
 
-         /// <param name="dto"></param>
 
-         /// <returns></returns>
 
-         public async Task<Result> Update(VisaFeeAddAndUpdateDto dto)
 
-         {
 
-             if (dto.VisaFeeInfos.Count < 1) return _result = new Result() { Code = -1, Msg = "请传入有效的签证费用集合参数" };
 
-             if (dto.PortType < 1 || dto.PortType > 3) return _result = new Result() { Code = -1, Msg = "请传入有效的portType参数" };
 
-             var visaInfos = new List<Grp_VisaFeeInfo>();
 
-             BeginTran();
 
-             //bool visaFeeUpdate = false;
 
-             var countrys = dto.VisaFeeInfos.GroupBy(x => x.Country);
 
-             foreach (var country in countrys)
 
-             {
 
-                 int countryVisaFeeId = 0;
 
-                 decimal _grandBusinessAgencyFee = 0;
 
-                 decimal _pettyBusinessAgencyFee = 0;
 
-                 decimal _visaFee = 0;
 
-                 foreach (var item in country.ToList())
 
-                 {
 
-                     _visaFee = item.VisaFee;
 
-                     if (item.OBType == 1) _grandBusinessAgencyFee = item.AgencyFee;
 
-                     else if (item.OBType == 2) _pettyBusinessAgencyFee = item.AgencyFee;
 
-                 }
 
-                 var info = await _countryFeeRep.InfoByCountryName(country.Key);
 
-                 if (info == null) //添加
 
-                 {
 
-                     int addId = _sqlSugar.Insertable(
 
-                         new Res_CountryFeeCost()
 
-                         {
 
-                             VisaCountry = country.Key,
 
-                             VisaPrice = _visaFee,
 
-                             GrandBusinessAgencyFee = _grandBusinessAgencyFee,
 
-                             PettyBusinessAgencyFee = _pettyBusinessAgencyFee,
 
-                             LastUpdateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
 
-                             CreateUserId = dto.OpUserId,
 
-                         }).ExecuteReturnIdentity();
 
-                     if (addId > 0) countryVisaFeeId = addId;
 
-                 }
 
-                 else //修改
 
-                 {
 
-                     countryVisaFeeId = info.Id;
 
-                     if (_visaFee != info.VisaPrice) //价格不同的时候执行修改
 
-                     {
 
-                         var _CountryFeeCost = new Res_CountryFeeCost()
 
-                         {
 
-                             Id = info.Id,
 
-                             VisaPrice = _visaFee,
 
-                             GrandBusinessAgencyFee = _grandBusinessAgencyFee,
 
-                             PettyBusinessAgencyFee = _pettyBusinessAgencyFee,
 
-                             LastUpdateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
 
-                         };
 
-                         int update1 = _sqlSugar.Updateable(_CountryFeeCost).UpdateColumns(it => new { it.VisaPrice, it.LastUpdateTime }).WhereColumns(it => it.Id).ExecuteCommand();
 
-                         //if (update1 > 0)
 
-                         //{
 
-                         //    visaFeeUpdate = true;
 
-                         //}
 
-                     }
 
-                 }
 
-                 foreach (var item in country.ToList())
 
-                 {
 
-                     visaInfos.Add(new Grp_VisaFeeInfo()
 
-                     {
 
-                         Id = item.Id,
 
-                         DiId = dto.DiId,
 
-                         IsChecked = item.IsChecked,
 
-                         CountryVisaFeeId = countryVisaFeeId,
 
-                         OBType = item.OBType,
 
-                         AgencyFee = item.AgencyFee,
 
-                         OtherFee = item.OtherFee
 
-                     });
 
-                 }
 
-             }
 
-             //执行删除
 
-             var update = _sqlSugar.Updateable<Grp_VisaFeeInfo>().SetColumns(it => new Grp_VisaFeeInfo()
 
-             {
 
-                 DeleteUserId = dto.OpUserId,
 
-                 DeleteTime = DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss"),
 
-                 IsDel = 1
 
-             }).Where(it => it.DiId == dto.DiId).ExecuteCommand();
 
-             var add = _sqlSugar.Insertable(visaInfos).ExecuteCommand();
 
-             if (add > 0)
 
-             {
 
-                 CommitTran();
 
-                 return new Result() { Code = 0, Msg = "操作成功!" };
 
-             }
 
-             RollbackTran();
 
-             return _result;
 
-         }
 
-         /// <summary>
 
-         /// 根据Country和城市Id获取签证费用标准详情
 
-         /// </summary>
 
-         /// <param name="countrys">国家名称</param>
 
-         /// <param name="cityId">城市Id</param>
 
-         /// <returns></returns>
 
-         public async Task<List<VisaFeeStandardDetailsView>> VisaInfoByCountryAndCityId(List<string> countrys, int cityId)
 
-         {
 
-             if (countrys == null || countrys.Count == 0 || cityId < 1)
 
-                 return new List<VisaFeeStandardDetailsView>();
 
-             var countryIds = await _sqlSugar.Queryable<Res_VisaFeeStandard>()
 
-                 .Where(it => it.IsDel == 0 && countrys.Contains(it.Country))
 
-                 .Select(it => it.Id)
 
-                 .ToListAsync();
 
-             if (countryIds.Count == 0)
 
-                 return new List<VisaFeeStandardDetailsView>();
 
-             var visaFeeStandardDetails = await _sqlSugar.Queryable<Res_VisaFeeStandardDetails>()
 
-                 .LeftJoin<Res_VisaFeeStandard>((x, y) => x.ProvinceId == y.Id)
 
-                 .LeftJoin<Sys_Cities>((x, y, z) => x.ProvinceId == z.Id && (z.Level == 1 || z.Level == 4))
 
-                 .Where((x, y, z) => x.IsDel == 0 && countryIds.Contains(x.ParentId))
 
-                 .Select((x, y, z) => new VisaFeeStandardDetailsView
 
-                 {
 
-                     Id = x.Id,
 
-                     ParentId = x.ParentId,
 
-                     CountryName = y.Country,
 
-                     ProvinceId = x.ProvinceId,
 
-                     ProvinceName = z.Name_CN,
 
-                     VisaAddress = x.VisaAddress,
 
-                     IsVisaOnArrival = x.IsVisaOnArrival,
 
-                     IsElectronicSign = x.IsElectronicSign,
 
-                     VisaTime = x.VisaTime,
 
-                     IsVisaExemptionLarge = x.IsVisaExemptionLarge,
 
-                     LargeVisaPrice = x.LargeVisaPrice,
 
-                     LargeAgencyFee = x.LargeAgencyFee,
 
-                     IsVisaExemptionSmall = x.IsVisaExemptionSmall,
 
-                     SmallVisaPrice = x.SmallVisaPrice,
 
-                     SmallAgencyFee = x.SmallAgencyFee,
 
-                     NormExtFee = x.NormExtFee,
 
-                     UrgExtFee = x.UrgExtFee,
 
-                     IsUrgent = x.IsUrgent,
 
-                     UrgentTime = x.UrgentTime,
 
-                     UrgentPrice = x.UrgentPrice,
 
-                     UrgentPriceDesc = x.UrgentPriceDesc,
 
-                     Remark = x.Remark,
 
-                 })
 
-                 .ToListAsync();
 
-             // 默认四川省ID
 
-             const int defaultProvinceId = 122;
 
-             var visaFeeInfoDefaultList = visaFeeStandardDetails.Where(it => it.ProvinceId == defaultProvinceId).ToList();
 
-             var provCityDatas = await _groupRep.ProvinceCityBasicSource();
 
-             int provinceId = _groupRep.FindParentIdByChildId(provCityDatas, cityId) ?? 0;
 
-             if (provinceId == defaultProvinceId)
 
-                 return visaFeeInfoDefaultList;
 
-             // 其他省份优先返回对应省份数据,否则用四川数据
 
-             //其他省份单项信息为空或者费用为0时,使用四川的签证费用信息
 
-             var visaInfosGroup = visaFeeStandardDetails.GroupBy(x => x.ParentId);
 
-             var resultList = new List<VisaFeeStandardDetailsView>();
 
-             var VisaInfoOtherProvs = new List<VisaFeeStandardDetailsView>();
 
-             foreach (var group in visaInfosGroup)
 
-             {
 
-                 var scInfo = group.FirstOrDefault(x => x.ProvinceId == defaultProvinceId);
 
-                 var provInfo = group.FirstOrDefault(x => x.ProvinceId == provinceId);
 
-                 if (provInfo != null)
 
-                 {
 
-                     //送签地址
 
-                     if (!string.IsNullOrEmpty(provInfo.VisaAddress)) scInfo.VisaAddress = provInfo.VisaAddress;
 
-                     //签证时间(工作日)
 
-                     if (!string.IsNullOrEmpty(provInfo.VisaTime)) scInfo.VisaTime = provInfo.VisaTime;
 
-                     //是否免签(大公务) 
 
-                     if (provInfo.IsVisaExemptionLarge) scInfo.IsVisaExemptionLarge = true;
 
-                     //签证费用(大公务)
 
-                     if (provInfo.LargeVisaPrice > 0.00M) scInfo.LargeVisaPrice = provInfo.LargeVisaPrice;
 
-                     //代办费(大公务)
 
-                     if (provInfo.LargeAgencyFee > 0.00M) scInfo.LargeAgencyFee = provInfo.LargeAgencyFee;
 
-                     //是否免签(小公务) 
 
-                     if (provInfo.IsVisaExemptionSmall) scInfo.IsVisaExemptionSmall = true;
 
-                     //签证费用(小公务)
 
-                     if (provInfo.SmallVisaPrice > 0.00M) scInfo.SmallVisaPrice = provInfo.SmallVisaPrice;
 
-                     //代办费(小公务)
 
-                     if (provInfo.SmallAgencyFee > 0.00M) scInfo.SmallAgencyFee = provInfo.SmallAgencyFee;
 
-                     //外办费用(普通)
 
-                     if (provInfo.NormExtFee > 0.00M) scInfo.NormExtFee = provInfo.NormExtFee;
 
-                     //外办费用(加急)
 
-                     if (provInfo.UrgExtFee > 0.00M) scInfo.UrgExtFee = provInfo.UrgExtFee;
 
-                     //签证是否加急
 
-                     if (provInfo.IsUrgent) scInfo.IsUrgent = true;
 
-                     //加急费用
 
-                     if (provInfo.UrgentPrice > 0.00M) scInfo.UrgentPrice = provInfo.UrgentPrice;
 
-                     //加急费用描述 
 
-                     if (!string.IsNullOrEmpty(provInfo.UrgentPriceDesc)) scInfo.UrgentPriceDesc = provInfo.UrgentPriceDesc;
 
-                     //备注 
 
-                     if (!string.IsNullOrEmpty(provInfo.Remark)) scInfo.Remark = provInfo.Remark;
 
-                     resultList.Add(scInfo);
 
-                 }
 
-             }
 
-             return resultList;
 
-         }
 
-         /// <summary>
 
-         /// 出入境费用签证费用提示
 
-         /// </summary>
 
-         /// <param name="diId"></param>
 
-         /// <returns></returns>
 
-         public async Task<Result> EnterExitCostVisaTips(int diId)
 
-         {
 
-             if (diId < 1) return _result = new Result() { Code = -1, Msg = "请传入有效的DiId参数" };
 
-             var visaData = await _sqlSugar.Queryable<Grp_VisaFeeInfo>().Where(it => it.IsDel == 0 && it.DiId == diId).ToListAsync();
 
-             List<int> ids = visaData.Select(it => it.CountryVisaFeeId).ToList();
 
-             var visaCountryDatas = await _sqlSugar.Queryable<Res_CountryFeeCost>().Where(it => ids.Contains(it.Id)).ToListAsync();
 
-             var datas = new List<dynamic>();
 
-             string remark = "";
 
-             decimal feeTotal = 0.00M;
 
-             visaData = visaData.Where(it => it.IsChecked == 1).ToList();
 
-             var visaData1 = visaData.GroupBy(it => it.CountryVisaFeeId);
 
-             //费用报价系数
 
-             decimal priceCoeff = 1.00M;
 
-             foreach (var kvp in visaData1)
 
-             {
 
-                 var countryData = visaCountryDatas.Find(it => it.Id == kvp.Key);
 
-                 decimal _otherFee = kvp.FirstOrDefault()?.OtherFee * priceCoeff ?? 0;
 
-                 decimal _visaFee = Convert.ToDecimal(countryData?.VisaPrice ?? 0.00M) * priceCoeff;
 
-                 decimal visaFeeTotal = _visaFee + _otherFee;
 
-                 decimal _agencyFee = 0;
 
-                 decimal _GrandBusinessAgencyFee = 0;
 
-                 decimal _PettyBusinessAgencyFee = 0;
 
-                 string remark1 = $"签证费:{_visaFee:#0.00}元、";
 
-                 var obTypes = kvp.Select(it => it.OBType).Distinct().ToList();
 
-                 if (obTypes.Contains(1) && obTypes.Contains(2)) //大\小公务
 
-                 {
 
-                     var agencyFeeInfo = kvp.FirstOrDefault();
 
-                     if (agencyFeeInfo.AgencyFee > 0)
 
-                     {
 
-                         remark1 += $"大/小公务代办费:{agencyFeeInfo.AgencyFee:#0.00}元、";
 
-                         _agencyFee += agencyFeeInfo.AgencyFee;
 
-                         _GrandBusinessAgencyFee = agencyFeeInfo.AgencyFee * priceCoeff;
 
-                     }
 
-                 }
 
-                 else if (obTypes.Contains(1)) //大公务
 
-                 {
 
-                     var agencyFeeInfo = kvp.FirstOrDefault(x => x.OBType == 1);
 
-                     if (agencyFeeInfo.AgencyFee > 0)
 
-                     {
 
-                         remark1 += $"大公务代办费:{agencyFeeInfo.AgencyFee:#0.00}元、";
 
-                         _agencyFee += agencyFeeInfo.AgencyFee;
 
-                         _GrandBusinessAgencyFee = agencyFeeInfo.AgencyFee * priceCoeff;
 
-                     }
 
-                 }
 
-                 else if (obTypes.Contains(2)) //小公务
 
-                 {
 
-                     var agencyFeeInfo = kvp.FirstOrDefault(x => x.OBType == 2);
 
-                     if (agencyFeeInfo.AgencyFee > 0)
 
-                     {
 
-                         remark1 += $"小公务代办费:{agencyFeeInfo.AgencyFee:#0.00}元、";
 
-                         _agencyFee += agencyFeeInfo.AgencyFee;
 
-                         _GrandBusinessAgencyFee = agencyFeeInfo.AgencyFee * priceCoeff;
 
-                     }
 
-                 }
 
-                 //foreach (var item in kvp.ToList())
 
-                 //{
 
-                 //    if (item.OBType == 1)
 
-                 //    {
 
-                 //        if (item.AgencyFee > 0)
 
-                 //        {
 
-                 //            remark1 += $@"大公务代办费:{item.AgencyFee:#0.00}元、";
 
-                 //            _agencyFee += item.AgencyFee;
 
-                 //            _GrandBusinessAgencyFee = item.AgencyFee * priceCoeff;
 
-                 //        }
 
-                 //    }
 
-                 //    else if (item.OBType == 1)
 
-                 //    {
 
-                 //        if (item.AgencyFee > 0)
 
-                 //        {
 
-                 //            remark1 += $@"小公务代办费:{item.AgencyFee.ToString("#0.00")}元、";
 
-                 //            _agencyFee += item.AgencyFee;
 
-                 //            _PettyBusinessAgencyFee = item.AgencyFee * priceCoeff;
 
-                 //        }
 
-                 //    }
 
-                 //}
 
-                 if (remark1.Length > 0) remark1 = remark1.Substring(0, remark1.Length - 1);
 
-                 if (_otherFee > 0) remark1 += $@";其他费用:{_otherFee:#0.00}元;";
 
-                 visaFeeTotal += (_GrandBusinessAgencyFee + _PettyBusinessAgencyFee);
 
-                 remark += $@"{countryData?.VisaCountry ?? ""}:签证总费用:{visaFeeTotal:#0.00}元/人 其中({remark1});";
 
-                 feeTotal += visaFeeTotal;
 
-                 datas.Add(new
 
-                 {
 
-                     Country = countryData?.VisaCountry ?? "",
 
-                     visaFeeTotal,
 
-                     VisaFee = countryData?.VisaPrice ?? 0.00M,
 
-                     GrandBusinessAgencyFee = _GrandBusinessAgencyFee,
 
-                     PettyBusinessAgencyFee = _PettyBusinessAgencyFee,
 
-                     OtherFee = _otherFee
 
-                 });
 
-             }
 
-             _result.Code = 0;
 
-             _result.Data = new
 
-             {
 
-                 feeTotal,
 
-                 data = datas,
 
-                 remark
 
-             };
 
-             return _result;
 
-         }
 
-         /// <summary>
 
-         /// 出入境费用草稿签证费用提示
 
-         /// </summary>
 
-         /// <param name="portType"></param>
 
-         /// <param name="diId"></param>
 
-         /// <returns></returns>
 
-         public async Task<(decimal, string)> EnterExitCostDraftVisaTips(string[] countrys)
 
-         {
 
-             var visaCountryDatas = await _sqlSugar.Queryable<Res_CountryFeeCost>().Where(it => countrys.Contains(it.VisaCountry)).ToListAsync();
 
-             string remark = "";
 
-             decimal feeTotal = 0.00M;
 
-             //费用报价系数
 
-             decimal priceCoeff = 1.00M;
 
-             foreach (var kvp in visaCountryDatas)
 
-             {
 
-                 var countryName = kvp?.VisaCountry ?? "";
 
-                 //免签
 
-                 if (kvp.IsVisaExemption == 0)
 
-                 {
 
-                     remark += $@"{countryName}:免签;";
 
-                     continue;
 
-                 }
 
-                 decimal visaFee = Convert.ToDecimal(kvp?.VisaPrice ?? 0.00M) * priceCoeff;
 
-                 decimal gbAgencyFee = kvp.GrandBusinessAgencyFee;
 
-                 decimal pbAgencyFee = kvp.PettyBusinessAgencyFee;
 
-                 string remark1 = $"签证费:{visaFee:#0.00}元、";
 
-                 if (gbAgencyFee > 0.00M)
 
-                 {
 
-                     remark1 += $@"大公务代办费:{gbAgencyFee:#0.00}元、";
 
-                     gbAgencyFee *= priceCoeff;
 
-                 }
 
-                 if (pbAgencyFee > 0.00M)
 
-                 {
 
-                     remark1 += $@"小公务代办费:{pbAgencyFee:#0.00}元、";
 
-                     pbAgencyFee *= priceCoeff;
 
-                 }
 
-                 if (remark1.Length > 0) remark1 = remark1.Substring(0, remark1.Length - 1);
 
-                 decimal visaFeeTotal = visaFee + gbAgencyFee + pbAgencyFee;
 
-                 remark += $@"{countryName}:签证总费用:{visaFeeTotal}元/人 其中({remark1});";
 
-                 feeTotal += visaFeeTotal;
 
-             }
 
-             return (feeTotal, remark);
 
-         }
 
-     }
 
- }
 
 
  |