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;
            }
        }
示例#3
0
 /// <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;
     }
 }