public ActionResult ReturnBorrow(int id) { var ubr = new UserBorrowRepository(); var borrow = ubr.Get(id); if (borrow != null) { var up = ur.GetProductByUser(borrow.ProductId, CurrentUser.Id); if (up == null || (up.TotalCount - up.FrozenCount) < borrow.BorrowCount) { return(Content("没有足够的产品可供归还")); } borrow.Status = 1; borrow.ReturnTime = DateTime.Now; ubr.Update(borrow); //利息 var interests = borrow.DailyInterest * borrow.BorrowCount * borrow.Price * (int)(DateTime.Today - borrow.CreateTime).TotalDays; CurrentUser.FrozenScore -= borrow.Bail; CurrentUser.TotalScore -= interests; ur.Update(CurrentUser); RefreshCurrentUser(); up.TotalCount -= borrow.BorrowCount; up.UpdateTime = DateTime.Now; ur.UpdateUserProduct(up); var score = new UserScore { TypeId = (int)ScoreType.果实归还, UserId = borrow.UserId, ChargeFee = 0, Score = borrow.Bail, Status = 1, CreateTime = DateTime.Now }; new UserScoreRepository().Create(score); } return(Content("1")); }
public ActionResult BorrowHistory(UserCriteria criteria) { StringBuilder where = new StringBuilder(); DynamicParameters parameter = new DynamicParameters(); int uid = 0; int.TryParse(criteria.UserId, out uid); where.Append(" 1=1 "); if (uid > 0) { where.Append(" AND u.UserId = @userId"); parameter.Add("userId", uid); } if (criteria.StartDate.HasValue) { where.Append(" AND u.CreateTime >= @start"); parameter.Add("start", criteria.StartDate.Value); } if (criteria.EndDate.HasValue) { where.Append(" AND u.CreateTime < @end"); parameter.Add("end", criteria.EndDate.Value); } var pc = new PageCriteria() { Table = "UserBorrow u INNER JOIN Product p ON u.ProductId = p.Id", Order = "u.Id DESC", Where = where.ToString(), Parameter = parameter, PageIndex = CurrentPageIndex, PageSize = PageSize }; var model = new UserBorrowRepository().GetPagedData <UserBorrow, Product, UserBorrow>(pc, (u, p) => { u.Product = p; return(u); }); return(View(model)); }