Ejemplo n.º 1
0
        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"));
        }
Ejemplo n.º 2
0
        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));
        }