Esempio n. 1
0
    public Model.ReturnValue Recovery()
    {
        int id = Common.TypeHelper.ObjectToInt(Request["OrderId"], 0);

        model = OrderDal.GetModel(id);

        if (model.Id <= 0)
        {
            returnValue.ErrMessage = "订单不存在";
            returnValue.Success    = false;
            return(returnValue);
        }

        if (UserSession.GroupId != 2)
        {
            returnValue.Success    = false;
            returnValue.ErrMessage = "请联系管理员执行此操作";
            return(returnValue);
        }

        if (model.States != -1)
        {
            returnValue.Success    = false;
            returnValue.ErrMessage = "订单未作废无法恢复";
            return(returnValue);
        }

        model.States     = 0;
        model.UpdateTime = DateTime.Now;

        mdlog.Status        = model.States;
        mdlog.OperationType = "恢复订单状态";
        mdlog.OrderCode     = model.OrderCode;
        mdlog.Mobile        = model.Mob;

        int i = 0;

        if (IsBack)
        {
            #region Check中奖数是否已满
            List <Model.AwardsStatisticsModel> AwardsList = new Db.AwardsStatisticsDal().GetModelList().Where(w => (w.AwardsId == model.AwardId && w.AwardsType == 1) || (w.AwardsId == model.RedAwardId && w.AwardsType == 2)).ToList();
            if (AwardsList.Count == 0)
            {
                returnValue.Success    = false;
                returnValue.ErrMessage = "系统错误,请联系管理员";
                return(returnValue);
            }
            foreach (var AwardsModel in AwardsList)
            {
                string sqlwhere = "";
                if (AwardsModel.AwardsType == 1)
                {
                    sqlwhere = string.Format(" and AwardId={0} and IsBack=0", model.AwardId);
                }
                if (AwardsModel.AwardsType == 2)
                {
                    sqlwhere = string.Format(" and RedAwardId={0} and IsBack=0", model.RedAwardId);
                }

                if (OrderDal.CheckCount(sqlwhere) >= GetPrizeCount(AwardsModel.AwardsType, AwardsModel.AwardsName))
                {
                    returnValue.Success    = false;
                    returnValue.ErrMessage = "奖项总数已达上限,无法恢复订单";
                    return(returnValue);
                }
            }
            #endregion

            i = OrderDal.Recovery(model, mdlog);
        }
        else
        {
            i = OrderDal.EditOrder(model, mdlog);
        }

        if (i > 0)
        {
            returnValue.Success = true;
            return(returnValue);
        }

        returnValue.Success    = false;
        returnValue.ErrMessage = "修改失败";

        return(returnValue);
    }