decimal GetCommissionMoney() { //平台应抽成金额 decimal commissionMoney = 0; //区域运营商对商家的抽成配置 var merchantCommission = CacheCollection.AreaForMerchantCommissionCache.Get(_areaID, _merchantID, (int)_option); //不存在独立商家的抽成配置则从默认抽成中获取 if (null == merchantCommission) { merchantCommission = new Func <AreaForMerchantCommissionCacheModel>(() => { var defaultMerchantCommission = CacheCollection.AreaDefaultCommissionCache.Get(_areaID, (int)_option); if (null != defaultMerchantCommission) { AreaDefaultCommissionOption comOption = default(AreaDefaultCommissionOption); switch (_option) { case AreaMerchantCommissionOption.MerchantProductOrder: comOption = AreaDefaultCommissionOption.MerchantProductOrder; break; case AreaMerchantCommissionOption.MerchantServiceOrder: comOption = AreaDefaultCommissionOption.MerchantServiceOrder; break; } return(new AreaForMerchantCommissionCacheModel { AreaID = defaultMerchantCommission.AreaID, CommissionItem = (int)comOption, CommissionType = defaultMerchantCommission.CommissionType, MerchantID = _merchantID, Value = defaultMerchantCommission.Value }); } return(null); }).Invoke(); } if (null != merchantCommission && merchantCommission.Value > 0) { if (merchantCommission.CommissionType == (int)CommissionType.FixedAmount) { commissionMoney = merchantCommission.Value; } else if (merchantCommission.CommissionType == (int)CommissionType.MoneyRate) { commissionMoney = Math.Round(_baseAmount * merchantCommission.Value * 0.01M, 2, MidpointRounding.ToEven); } } return(commissionMoney); }
decimal GetCommissionMoney() { //平台应抽成金额 decimal commissionMoney = 0; //区域运营商对个人服务者的抽成配置 var workerCommission = CacheCollection.AreaForPersonalWorkerCommissionCache.Get(_areaID, _workerID, (int)_option); //不存在独立个人服务者的抽成配置则从默认抽成中获取 if (null == workerCommission) { workerCommission = new Func <AreaForPersonalWorkerCommissionCacheModel>(() => { var defaultWorkerCommission = CacheCollection.AreaDefaultCommissionCache.Get(_areaID, (int)_option); if (null != defaultWorkerCommission) { AreaDefaultCommissionOption comOption = default(AreaDefaultCommissionOption); switch (_option) { case AreaWorkerCommissionOption.WorkerServiceOrder: comOption = AreaDefaultCommissionOption.WorkerServiceOrder; break; } return(new AreaForPersonalWorkerCommissionCacheModel { AreaID = defaultWorkerCommission.AreaID, CommissionItem = (int)comOption, CommissionType = defaultWorkerCommission.CommissionType, UserID = _workerID, Value = defaultWorkerCommission.Value }); } return(null); }).Invoke(); } if (null != workerCommission && workerCommission.Value > 0) { if (workerCommission.CommissionType == (int)CommissionType.FixedAmount) { commissionMoney = workerCommission.Value; } else if (workerCommission.CommissionType == (int)CommissionType.MoneyRate) { commissionMoney = Math.Round(_baseAmount * workerCommission.Value * 0.01M, 2, MidpointRounding.ToEven); } } return(commissionMoney); }