From 557c2711a3e103ebc3d0492344eca9730d5e92b2 Mon Sep 17 00:00:00 2001
From: 移动系统liao <liaoxujun@qq.com>
Date: 星期一, 17 二月 2025 10:47:47 +0800
Subject: [PATCH] 增加司机配送单超时处理任务,防止一直不停手机定位信息,
---
CoreCms.Net.Services/Distribution/CoreCmsDistributionOrderServices.cs | 92 ++++++++++++++++++++++++++++++++++-----------
1 files changed, 69 insertions(+), 23 deletions(-)
diff --git a/CoreCms.Net.Services/Distribution/CoreCmsDistributionOrderServices.cs b/CoreCms.Net.Services/Distribution/CoreCmsDistributionOrderServices.cs
index fedf49c..62d428f 100644
--- a/CoreCms.Net.Services/Distribution/CoreCmsDistributionOrderServices.cs
+++ b/CoreCms.Net.Services/Distribution/CoreCmsDistributionOrderServices.cs
@@ -1,10 +1,10 @@
/***********************************************************************
- * Project: CoreCms
- * ProjectName: 鏍稿績鍐呭绠$悊绯荤粺
- * Web: https://www.corecms.net
- * Author: 澶х伆鐏�
- * Email: jianweie@163.com
- * CreateTime: 2021/1/31 21:45:10
+ * Project: baifenBinfa
+ * ProjectName: 鐧惧垎鍏垫硶绠$悊绯荤粺
+ * Web: http://chuanyin.com
+ * Author:
+ * Email:
+ * CreateTime: 202403/02
* Description: 鏆傛棤
***********************************************************************/
@@ -17,6 +17,7 @@
using CoreCms.Net.IRepository;
using CoreCms.Net.IRepository.UnitOfWork;
using CoreCms.Net.IServices;
+using CoreCms.Net.IServices.baifenbingfa;
using CoreCms.Net.Loging;
using CoreCms.Net.Model.Entities;
using CoreCms.Net.Model.ViewModels.Basics;
@@ -30,7 +31,7 @@
namespace CoreCms.Net.Services
{
/// <summary>
- /// 鍒嗛攢鍟嗚鍗曡褰曡〃 鎺ュ彛瀹炵幇
+ /// 缁忛攢鍟嗚鍗曡褰曡〃 鎺ュ彛瀹炵幇
/// </summary>
public class CoreCmsDistributionOrderServices : BaseServices<CoreCmsDistributionOrder>, ICoreCmsDistributionOrderServices
{
@@ -45,10 +46,11 @@
private readonly ICoreCmsGoodsServices _goodsServices;
private readonly ICoreCmsDistributionOrderDetailsServices _distributionOrderDetailsServices;
private readonly ICoreCmsSettingServices _settingServices;
+ private readonly IBfbfComAPIService _bfbfComAPIService;
private readonly IUnitOfWork _unitOfWork;
- public CoreCmsDistributionOrderServices(IUnitOfWork unitOfWork, ICoreCmsDistributionOrderRepository dal, ICoreCmsDistributionServices distributionServices, ICoreCmsUserBalanceServices balanceServices, ICoreCmsOrderServices orderServices, ICoreCmsUserServices userServices, ICoreCmsOrderItemServices orderItemServices, ICoreCmsProductsDistributionServices productsDistributionServices, ICoreCmsProductsServices productsServices, ICoreCmsGoodsServices goodsServices, ICoreCmsDistributionOrderDetailsServices distributionOrderDetailsServices, ICoreCmsSettingServices settingServices)
+ public CoreCmsDistributionOrderServices(IBfbfComAPIService bfbfComAPIService, IUnitOfWork unitOfWork, ICoreCmsDistributionOrderRepository dal, ICoreCmsDistributionServices distributionServices, ICoreCmsUserBalanceServices balanceServices, ICoreCmsOrderServices orderServices, ICoreCmsUserServices userServices, ICoreCmsOrderItemServices orderItemServices, ICoreCmsProductsDistributionServices productsDistributionServices, ICoreCmsProductsServices productsServices, ICoreCmsGoodsServices goodsServices, ICoreCmsDistributionOrderDetailsServices distributionOrderDetailsServices, ICoreCmsSettingServices settingServices)
{
this._dal = dal;
_distributionServices = distributionServices;
@@ -63,6 +65,7 @@
_settingServices = settingServices;
base.BaseDal = dal;
_unitOfWork = unitOfWork;
+ _bfbfComAPIService = bfbfComAPIService;
}
@@ -101,7 +104,8 @@
if (user is { parentId: > 0 })
{
//鑾峰彇璐墿鏄庣粏
- var orderItems = await _orderItemServices.QueryListByClauseAsync(p => p.orderId == order.orderId);
+ var orderItems = await _unitOfWork.GetDbClient().Queryable<CoreCmsOrderItem>().Where(p => p.orderId == order.orderId).Includes(x => x.productInfo).ToListAsync();
+ //await _orderItemServices.QueryListByClauseAsync(p => p.orderId == order.orderId);
var goodIds = orderItems.Select(p => p.goodsId).ToList();
var productIds = orderItems.Select(p => p.productId).ToList();
//鑾峰彇璐у搧鏁版嵁
@@ -142,14 +146,16 @@
var user = await _userServices.QueryByClauseAsync(p => p.id == userId);
if (user != null)
{
+
var commission = await _distributionServices.GetGradeAndCommission(user.id);
- if (commission.status && commission.data != null) //涓嶆槸鍒嗛攢鍟嗙殑锛屼笉杩斿埄銆�
+ if (commission.status && commission.data != null) //涓嶆槸缁忛攢鍟嗙殑锛屼笉杩斿埄銆�
{
var ommissionDto = commission.data as DistributionDto;
//鐩磋繑鏈骇
decimal amount = 0;
var distributionOrderDetails = new List<CoreCmsDistributionOrderDetails>();
-
+ //鐧惧垎鍏垫硶鍒ゆ柇璁㈠崟鐢ㄦ埛鏄惁鏄粡閿�鍟�
+ bool OderUserIsDic = await _bfbfComAPIService.IsDictionary(order.userId);
foreach (var item in orderItems)
{
var orderDetails = new CoreCmsDistributionOrderDetails();
@@ -197,6 +203,8 @@
//濡傛灉鍘绘帀浼樻儬闇�瑕佽礋浜嗭紝灏变负0
if (itemAmount < 0) itemAmount = 0;
+
+
mathMoney = level switch
{
//涓�绾у垎閿�
@@ -230,21 +238,41 @@
{
continue;
}
-
- mathMoney = level switch
+ //鐧惧垎鍏垫硶鍩烘暟鎸�
+ switch (level)
{
- 1 when productsDistribution.levelOne > 0 => Math.Round(
- productsDistribution.levelOne * item.nums, 2),
- 2 when productsDistribution.levelTwo > 0 => Math.Round(
- productsDistribution.levelTwo * item.nums, 2),
- 3 when productsDistribution.levelThree > 0 => Math.Round(
- productsDistribution.levelThree * item.nums, 2),
- _ => mathMoney
- };
+ case 1 :
+
+ if(OderUserIsDic)
+ //鏄粡閿�鍟嗚喘涔�
+ mathMoney = item.productInfo.distributionCutMoney;
+ else
+ //闈炵粡閿�鍟嗚喘涔�
+ mathMoney= item.productInfo.cutMoney ;
+
+ break;
+ case 2 when productsDistribution.levelTwo > 0:
+ break;
+ case 3 when productsDistribution.levelThree>0:
+ break;
+ default:
+ break;
+ }
+ //鍘熶剑閲戣绠楁柟娉�
+ //mathMoney = level switch
+ //{
+ // 1 when productsDistribution.levelOne > 0 => Math.Round(
+ // productsDistribution.levelOne * item.nums, 2),
+ // 2 when productsDistribution.levelTwo > 0 => Math.Round(
+ // productsDistribution.levelTwo * item.nums, 2),
+ // 3 when productsDistribution.levelThree > 0 => Math.Round(
+ // productsDistribution.levelThree * item.nums, 2),
+ // _ => mathMoney
+ //};
}
- amount += mathMoney;
- orderDetails.amount = mathMoney;
+ amount += mathMoney*item.nums;
+ orderDetails.amount = mathMoney * item.nums;
distributionOrderDetails.Add(orderDetails);
}
@@ -364,6 +392,24 @@
}
+
+ /// <summary>
+ /// 缁忛攢涓婇厤閫佽垂缁撶畻涓撶敤
+ /// </summary>
+ /// <param name="list"></param>
+ /// <returns></returns>
+ private async IAsyncEnumerable<WebApiCallBack> ChangeForEachForDistributionDelivery(List<CoreCmsDistributionOrder> list)
+ {
+ foreach (var item in list)
+ {
+ //閽辨尓鍒颁細鍛樹綑棰濋噷闈�
+ var result = await _balanceServices.Change(item.userId, (int)GlobalEnumVars.UserBalanceSourceTypes.DistributionDelivery,
+ item.amount, item.orderId);
+
+ yield return result;
+ }
+ }
+
#endregion
#region 浣滃簾璁㈠崟
--
Gitblit v1.9.1