| | |
| | | using CoreCms.Net.IServices.baifenbingfa; |
| | | using CoreCms.Net.Model.Entities; |
| | | using CoreCms.Net.Utility.Helper; |
| | | using Nest; |
| | | using SqlSugar; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | |
| | | var ListData= await _unitOfWork.GetDbClient().Queryable<CoreCmsUser>().Where(x => x.isDelete == false).Select(x => new SearchUserData |
| | | { |
| | | Id = x.id, |
| | | name = x.mobile + "|" + x.userName + "|" + x.nickName, |
| | | name = x.mobile /*+ "|" + x.userName*/ + "|" + x.nickName, |
| | | |
| | | }).WithCache(50).ToListAsync(); |
| | | if (string.IsNullOrEmpty(s)) |
| | |
| | | return false; |
| | | |
| | | } |
| | | |
| | | public async Task<List<CoreCmsGoodsCategory>> GetGoodsCategory() |
| | | { |
| | | return await _unitOfWork.GetDbClient().Queryable<CoreCmsGoodsCategory>().Where(x=>x.isShow==true).WithCache(10).ToTreeAsync(x=>x.children, x=>x.parentId,0); |
| | | } |
| | | |
| | | |
| | | public decimal CommandCustomizable(int count) |
| | | { |
| | | if (count > 9999) |
| | | return 0; |
| | | return count * 1; |
| | | } |
| | | |
| | | public List<DistributorSort> orderedDistributors(List<DistributorSort> DataList, string latitude, string longitude) |
| | | { |
| | | |
| | | |
| | | GeoCoordinate inputLocation = new GeoCoordinate(double.Parse(longitude), double.Parse(latitude)); // 输入的经纬度 |
| | | |
| | | var sortedDistributors = DataList.OrderBy(d => CalculateDistance(inputLocation, new GeoCoordinate(double.Parse(d.longitude), double.Parse(d.latitude)))) |
| | | .ToList(); |
| | | return sortedDistributors; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 计算经纬达距离 |
| | | /// </summary> |
| | | /// <param name="location1"></param> |
| | | /// <param name="location2"></param> |
| | | /// <returns></returns> |
| | | private static double CalculateDistance(GeoCoordinate location1, GeoCoordinate location2) |
| | | { |
| | | const double earthRadiusKm = 6371; |
| | | var dLat = ToRadians(location2.Latitude - location1.Latitude); |
| | | var dLon = ToRadians(location2.Longitude - location1.Longitude); |
| | | |
| | | var a = Math.Sin(dLat / 2) * Math.Sin(dLat / 2) + |
| | | Math.Cos(ToRadians(location1.Latitude)) * Math.Cos(ToRadians(location2.Latitude)) * |
| | | Math.Sin(dLon / 2) * Math.Sin(dLon / 2); |
| | | var c = 2 * Math.Atan2(Math.Sqrt(a), Math.Sqrt(1 - a)); |
| | | var distance = earthRadiusKm * c; |
| | | |
| | | return distance; |
| | | } |
| | | |
| | | private static double ToRadians(double degree) |
| | | { |
| | | return degree * Math.PI / 180; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取有效校园代理 |
| | | /// </summary> |
| | | /// <param name="PIds"></param> |
| | | /// <returns></returns> |
| | | public async Task< List<DistributorSort>> GetDistributorsList(List<int> PIds) |
| | | { |
| | | var blist= await _unitOfWork.GetDbClient().Queryable<CoreCmsDistribution>().Where(x=>x.profession=="校园代理"&&x.verifyStatus== (int)GlobalEnumVars.DistributionVerifyStatus.VerifyYes).ToListAsync(); |
| | | List < DistributorSort > retlist=new List<DistributorSort>(); |
| | | foreach (var item in blist) |
| | | { |
| | | if (string.IsNullOrEmpty(item.storeCoordinate) || item.storeCoordinate == ",") |
| | | //没有定位,不加入 |
| | | continue; |
| | | var ldinate= item.storeCoordinate.Split(','); |
| | | retlist.Add( new DistributorSort() |
| | | { |
| | | id = item.id, |
| | | latitude = ldinate[0], |
| | | longitude = ldinate[1], |
| | | name = item.schoolName + ":" + item.name |
| | | |
| | | |
| | | |
| | | }); |
| | | } |
| | | return retlist; |
| | | } |
| | | |
| | | |
| | | |
| | | public async Task< List< int>> GetOderProductsIDs(string[] OderIds) |
| | | { |
| | | var list= await _unitOfWork.GetDbClient().Queryable<CoreCmsOrder>().Where(x => OderIds.Contains(x.orderId)) |
| | | .Select(x => new { items = SqlFunc.Subqueryable<CoreCmsOrderItem>().Where(it => it.orderId == x.orderId).ToList() }).ToListAsync(); |
| | | var li=new List<int>(); |
| | | foreach (var item in list) |
| | | { |
| | | li.AddRange(item.items.Select(x=>x.id).ToList()); |
| | | |
| | | |
| | | } |
| | | return li; |
| | | } |
| | | } |
| | | } |