/// <summary> /// 确认结算,如果这条消费记录的卡号不属于自己的,则给下级经销商生成结算请求 /// </summary> /// <param name="id"></param> /// <returns></returns> public void Close(int id) { TransactionHelper.BeginTransaction(); var item = DistributorBrokerageService.GetDistributorBrokerageById(id); if (item == null) { return; } var user = this.SecurityHelper.GetCurrentUser(); int currentId = -1; if (user is DistributorUserModel) { currentId = DistributorService.GetByUserId(user.CurrentUser.Id).DistributorId; } if (item.settlementDistributorId == currentId && item.status == false) { item.status = true; DistributorBrokerageService.UpdateDistributorBrokerage(item); //增加经销商的余额 var distributor1 = DistributorService.GetById(item.settlementDistributorId); distributor1.Amount += item.brokerage; DistributorService.Update(distributor1); if (item.DistributorId != item.settlementDistributorId) { //归属他下属的卡消费,他要跟下属结算。 //如果是多级还要找到他的直接下属,只能向他的直接下属发起结算请求。 int underId = GetDirectlyUnder(item.settlementDistributorId, item.DistributorId); if (underId != 0) { var distributor = DistributorService.GetAccountLevelPolicyRates(underId).FirstOrDefault(); DistributorBrokerage model = new DistributorBrokerage(); model.DistributorId = item.DistributorId; model.AccountId = item.AccountId; model.Bdate = item.Bdate; model.consume = item.consume; model.Edate = item.Edate; model.settlementDistributorId = underId; model.Rate = distributor.Rate; model.brokerage = item.consume * distributor.Rate; model.status = false; DistributorBrokerageService.CreateDistributorBrokerage(model); } AddMessage("update.success", item.Id); } } else { AddError("不是结算经销商", item.Id); } TransactionHelper.Commit(); }
public void Query(out string pageHtml) { pageHtml = string.Empty; var query = DistributorService.Query().ToList(); var request = new UserRequest(); if (request.PageIndex == null || request.PageIndex <= 0) { request.PageIndex = 1; } if (request.PageSize == null || request.PageSize <= 0) { request.PageSize = 10; } if (!string.IsNullOrEmpty(this.Name)) { request.NameWith = Name; } var users = MembershipService.QueryUsers <DistributorUser>(request).ToList(); var user = this.SecurityHelper.GetCurrentUser(); int pid = 0; if (user is DistributorUserModel) { pid = ((DistributorUserModel)user).DistributorId; query = query.Where(x => users.Any(u => u.UserId == x.UserId) && x.ParentId == pid).ToList(); } if (this.State == 100000) { } else { query = query.Where(x => users.Any(u => u.UserId == x.UserId) && x.State == this.State).ToList();//.ToList(this, x => new ListDistributor(x) { Owner = users.First(u => u.UserId == x.UserId) }); } List = query.ToList(this, x => new ListDistributor(x) { Owner = users.First(u => u.UserId == x.UserId) }); foreach (var item in List) { var rate = DistributorService.GetAccountLevelPolicyRates(item.DistributorId).FirstOrDefault(); if (rate != null) { item.Rate = rate.Rate * 100; } } if (query.Count > 0) { pageHtml = MvcPage.AjaxPager((int)request.PageIndex, (int)request.PageSize, query.Count); } }
public List <ListDistributor> AjaxGet(UserRequest request, out string pageHtml) { var totalCount = 0; pageHtml = string.Empty; if (request.PageIndex == null || request.PageIndex <= 0) { request.PageIndex = 1; } if (request.PageSize == null || request.PageSize <= 0) { request.PageSize = 10; } var query = DistributorService.Query().ToList(); if (!string.IsNullOrEmpty(this.Name)) { request.NameWith = Name; } var users = MembershipService.QueryUsers <DistributorUser>(request).ToList(); var user = this.SecurityHelper.GetCurrentUser(); int pid = 0; if (user is DistributorUserModel) { pid = ((DistributorUserModel)user).DistributorId; query = query.Where(x => users.Any(u => u.UserId == x.UserId) && x.ParentId == pid).ToList(); } if (!(request.State == null)) { query = query.Where(x => users.Any(u => u.UserId == x.UserId) && x.State == request.State).ToList();//.ToList(this, x => new ListDistributor(x) { Owner = users.First(u => u.UserId == x.UserId) }); } totalCount = query.Count; query = query.Skip(Convert.ToInt32(request.PageSize) * Convert.ToInt32((request.PageIndex - 1))).Take(Convert.ToInt32(request.PageSize)).ToList(); var datas = query.Select(x => new ListDistributor(x) { Owner = users.First(u => u.UserId == x.UserId) }).ToList(); foreach (var item in datas) { var rate = DistributorService.GetAccountLevelPolicyRates(item.DistributorId).FirstOrDefault(); if (rate != null) { item.Rate = rate.Rate * 100; } } foreach (var item in datas) { item.boor += "<a href='#' onclick=OperatorThis('Edit','/Distributor/Edit/" + item.DistributorId + "') class='tablelink'>编辑 </a> "; if (item.InnerObject.State == UserStates.Normal) { item.boor += "<a href='#' onclick=OperatorThis('Suspend','/Distributor/Suspend/" + item.DistributorId + "') class='tablelink'>停用 </a> "; } if (item.InnerObject.State == UserStates.Invalid) { item.boor += "<a href='#' onclick=OperatorThis('Resume','/Distributor/Resume/" + item.DistributorId + "') class='tablelink'>启用 </a> "; } } if (query.Count > 0) { pageHtml = MvcPage.AjaxPager((int)request.PageIndex, (int)request.PageSize, totalCount); } return(datas); }