From cc170291673472d3cda8d7ea77f6bd3a3b5dbb83 Mon Sep 17 00:00:00 2001 From: username@email.com <yzy2002yzy@163.com> Date: 星期一, 09 九月 2024 14:06:09 +0800 Subject: [PATCH] 增加了一些统计修改 --- CoreCms.Net.Services/baifenbingfa/BfbfComAPIService.cs | 126 ++++++++++++++++++++++++++++++++++++++++- 1 files changed, 122 insertions(+), 4 deletions(-) diff --git a/CoreCms.Net.Services/baifenbingfa/BfbfComAPIService.cs b/CoreCms.Net.Services/baifenbingfa/BfbfComAPIService.cs index e02d672..9f355f2 100644 --- a/CoreCms.Net.Services/baifenbingfa/BfbfComAPIService.cs +++ b/CoreCms.Net.Services/baifenbingfa/BfbfComAPIService.cs @@ -1,7 +1,11 @@ -锘縰sing CoreCms.Net.IRepository.UnitOfWork; +锘縰sing CoreCms.Net.Configuration; +using CoreCms.Net.IRepository.UnitOfWork; using CoreCms.Net.IServices; 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; @@ -18,18 +22,19 @@ private readonly ICoreCmsUserServices _userServices; private readonly IUnitOfWork _unitOfWork; - - public BfbfComAPIService(ICoreCmsUserServices userServices,IUnitOfWork unitOfWork) + private readonly ICoreCmsSettingServices _coreCmsSettingServices; + public BfbfComAPIService(ICoreCmsUserServices userServices,IUnitOfWork unitOfWork, ICoreCmsSettingServices coreCmsSettingServices) { _userServices = userServices; _unitOfWork = unitOfWork; + _coreCmsSettingServices = coreCmsSettingServices; } public async Task<List<SearchUserData>> SearchUserData(string s) { 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)) @@ -38,5 +43,118 @@ } return ListData.Where(x => x.name.Contains(s)).ToList(); } + + public async Task<bool> IsDictionary(int UserId) + { + if (UserId == 0) + return false; + var user=await _unitOfWork.GetDbClient().Queryable<CoreCmsUser>().Includes(x=>x.gradeInfo).Where(x=>x.id== UserId).WithCache(10).SingleAsync(); + if (user == null) + return false; + if(user.gradeInfo==null) + return false; + var allConfigs = await _coreCmsSettingServices.GetConfigDictionaries(); + var kc = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.DictionaryUserGroupKey); + if (user.gradeInfo.valueKey == kc) + return true; + 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> + /// 鑾峰彇鏈夋晥鏍″洯浠g悊 + /// </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=="鏍″洯浠g悊"&&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; + } } } -- Gitblit v1.9.1