public HttpResponseMessage Index() { var con=new CommissionRatioSearchCondition { Page = 1, PageSize = 1 }; var commissionRatio = _commissionRatioService.GetCommissionRatioCondition(con).Select(p=>new Models.Trading.CommissionRatio.CommissionRatio { Id = p.Id, RecCfbScale = p.RecCfbScale, RecAgentScale = p.RecAgentScale, TakeCfbScale = p.TakeCfbScale, TakeAgentScale = p.TakeAgentScale, RecPartnerScale = p.RecPartnerScale, TakePartnerScale = p.TakePartnerScale }).FirstOrDefault(); if (commissionRatio==null) { return PageHelper.toJson(PageHelper.ReturnValue(false, "数据不存在")); } return PageHelper.toJson(commissionRatio); }
public IQueryable<CommissionRatioEntity> GetCommissionRatioCondition(CommissionRatioSearchCondition condition) { var query = _commissionRatioRepository.Table; try { if (condition.Id != null && condition.Id.Any()) { query = query.Where(q => condition.Id.Contains(q.Id)); } if (condition.OrderBy.HasValue) { switch (condition.OrderBy.Value) { case EnumCommissionSearchOrderBy.OrderById: query = condition.IsDescending ? query.OrderByDescending(q => q.Id) : query.OrderBy(q => q.Id); break; } } else { query = query.OrderBy(q => q.Id); } if (condition.Page.HasValue && condition.PageSize.HasValue) { query = query.Skip((condition.Page.Value - 1)*condition.PageSize.Value).Take(condition.PageSize.Value); } return query; } catch (Exception e) { _log.Error(e,"数据库操作出错"); return null; } }
/// <summary> /// 计算佣金 /// </summary> /// <param name="model">订单对象</param> /// <returns></returns> public AmountModel GetCommission(OrderEntity model) { var con = new CommissionRatioSearchCondition { Page = 1, PageSize = 1 }; //获取佣金分成比例 var commissionRatio = _commissionRatioService.GetCommissionRatioCondition(con) .Select(p => new Models.Trading.CommissionRatio.CommissionRatio { Id = p.Id, RecCfbScale = p.RecCfbScale, RecAgentScale = p.RecAgentScale, TakeCfbScale = p.TakeCfbScale, TakeAgentScale = p.TakeAgentScale, RecPartnerScale = p.RecPartnerScale, TakePartnerScale = p.TakePartnerScale }).FirstOrDefault(); if (commissionRatio == null) return null; var ode = model.OrderDetail; var amount = new AmountModel(); var broker = _brokerService.GetBrokerById(model.AgentId); if (GetPartner(broker.UserId) == null) { switch (model.Ordertype) { case EnumOrderType.推荐订单: //如果是推荐订单; if (model.Shipstatus == 3) { amount.CFBamount = ode.Dealcommission * commissionRatio.RecCfbScale; amount.Agentamount = ode.Dealcommission * commissionRatio.RecAgentScale + ode.RecCommission; } else { amount.Agentamount = ode.RecCommission; } break; case EnumOrderType.带客订单: if (model.Shipstatus == 3) { amount.CFBamount = ode.Dealcommission * commissionRatio.TakeCfbScale; amount.Agentamount = ode.Dealcommission * commissionRatio.TakeAgentScale + ode.Commission; } else { amount.Agentamount = ode.Commission; } break; } } else { switch (model.Ordertype) { case EnumOrderType.推荐订单: //如果是推荐订单; if (model.Shipstatus == 3) { amount.CFBamount = ode.Dealcommission * commissionRatio.RecCfbScale; amount.Agentamount = (ode.Dealcommission * commissionRatio.RecAgentScale - ode.Dealcommission * commissionRatio.RecAgentScale * commissionRatio.RecPartnerScale) + ode.RecCommission; amount.Partneramount = ode.Dealcommission * commissionRatio.RecAgentScale * commissionRatio.RecPartnerScale; } else { amount.Agentamount = ode.RecCommission; } break; case EnumOrderType.带客订单: if (model.Shipstatus == 3) { amount.CFBamount = ode.Dealcommission * commissionRatio.TakeCfbScale; amount.Agentamount = (ode.Dealcommission * commissionRatio.TakeAgentScale - ode.Dealcommission * commissionRatio.TakeAgentScale * commissionRatio.TakePartnerScale) + ode.Commission; amount.Partneramount = ode.Dealcommission * commissionRatio.TakeAgentScale * commissionRatio.TakePartnerScale; } else { amount.Agentamount = ode.Commission; } break; } } return amount; }
public int GetCommissionRatioCount(CommissionRatioSearchCondition condition) { var query = _commissionRatioRepository.Table; try { if (condition.Id != null && condition.Id.Any()) { query = query.Where(q => condition.Id.Contains(q.Id)); } if (condition.Page.HasValue && condition.PageSize.HasValue) { query = query.Skip((condition.Page.Value - 1) * condition.PageSize.Value).Take(condition.PageSize.Value); } return query.Count(); } catch (Exception e) { _log.Error(e, "数据库操作出错"); return -1; } }