示例#1
0
        public object getfoods(Dictionary <string, object> dicParas)
        {
            try
            {
                string          errMsg     = string.Empty;
                TokenType       tokenType  = TokenType.Member;
                StoreCacheModel storeModel = null;
                List <XCCloudService.Model.XCGame.t_foods>       xcGameFoodsList = null;
                List <XCCloudService.Model.XCCloudRS232.t_foods> rs232FoodsList  = null;

                //获取token模式
                MobileTokenModel       mobileTokenModel = null;
                XCGameMemberTokenModel memberTokenModel = null;
                if (!XCCloudService.Business.XCGame.MeberAndMobileTokenBusiness.GetTokenData(dicParas, out tokenType, ref mobileTokenModel, ref memberTokenModel, out errMsg))
                {
                    return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, errMsg));
                }

                //验证门店
                StoreBusiness store = new StoreBusiness();
                if (!store.IsEffectiveStore(memberTokenModel.StoreId, ref storeModel, out errMsg))
                {
                    return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, errMsg));
                }
                if (storeModel.StoreType == 0)
                {
                    XCCloudService.BLL.IBLL.XCGame.IFoodsService memberService = BLLContainer.Resolve <XCCloudService.BLL.IBLL.XCGame.IFoodsService>(storeModel.StoreDBName);
                    xcGameFoodsList = memberService.GetModels(p => p.FoodState.Equals("1") && p.FoodType.Equals("0") && p.ForeAuthorize.ToString().Equals("0")).ToList <XCCloudService.Model.XCGame.t_foods>();
                }
                else if (storeModel.StoreType == 1)
                {
                    XCCloudService.BLL.IBLL.XCCloudRS232.IFoodsService memberService = BLLContainer.Resolve <XCCloudService.BLL.IBLL.XCCloudRS232.IFoodsService>();
                    rs232FoodsList = memberService.GetModels(p => p.FoodState == 1).ToList <XCCloudService.Model.XCCloudRS232.t_foods>();
                }

                //根据查询结果输出
                if (xcGameFoodsList == null && rs232FoodsList == null)
                {
                    return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, "套餐明细信息不存在"));
                }
                else
                {
                    if (xcGameFoodsList != null)
                    {
                        List <FoodsResponseModel> foodsResponseModel = Utils.GetCopyList <FoodsResponseModel, XCCloudService.Model.XCGame.t_foods>(xcGameFoodsList);
                        SetFoodsResponseModelList(foodsResponseModel);
                        return(ResponseModelFactory <List <FoodsResponseModel> > .CreateModel(isSignKeyReturn, foodsResponseModel));
                    }
                    else
                    {
                        List <FoodsResponseModel> foodsResponseModel = Utils.GetCopyList <FoodsResponseModel, XCCloudService.Model.XCCloudRS232.t_foods>(rs232FoodsList);
                        SetFoodsResponseModelList(foodsResponseModel);
                        return(ResponseModelFactory <List <FoodsResponseModel> > .CreateModel(isSignKeyReturn, foodsResponseModel));
                    }
                }
            }
            catch (Exception e)
            {
                throw e;
            }
        }
示例#2
0
        private bool Recharge(XCGameManaDeviceStoreType deviceStoreType, string mobile, string xcGameDBName, string storeId, int icCardId, int memberLevelId, int foodId, string orderId, string money, int coins, int balance, string paymentype, string deviceId, int deviceIdentityId, out string foodName, out string errMsg)
        {
            foodName = string.Empty;
            errMsg   = string.Empty;
            balance += coins;
            if (deviceStoreType == XCGameManaDeviceStoreType.Store)
            {
                //验证套餐信息

                XCCloudService.BLL.IBLL.XCGame.IFoodsService foodservice = BLLContainer.Resolve <XCCloudService.BLL.IBLL.XCGame.IFoodsService>(xcGameDBName);
                var foodModel = foodservice.GetModels(p => p.FoodID == foodId).FirstOrDefault <XCCloudService.Model.XCGame.t_foods>();
                if (foodModel == null)
                {
                    errMsg = "套餐明细不存在";
                    return(false);
                }
                foodName = foodModel.FoodName;
                //验证班次信息
                XCCloudService.BLL.IBLL.XCGame.IScheduleService scheduleService = BLLContainer.Resolve <XCCloudService.BLL.IBLL.XCGame.IScheduleService>(xcGameDBName);
                var schedulelist = scheduleService.GetModels(p => p.State.Equals("0", StringComparison.OrdinalIgnoreCase)).FirstOrDefault <XCCloudService.Model.XCGame.flw_schedule>();
                if (schedulelist == null)
                {
                    errMsg = "相关班次不存在";
                    return(false);
                }

                string         sql        = "exec RechargeFood @Balance,@ICCardID,@FoodID,@CoinQuantity,@Point,@MemberLevelID,@UserID,@ScheduleID,@WorkStation,@MacAddress,@OrderID,@FoodName,@Money,@Paymentype,@Return output ";
                SqlParameter[] parameters = new SqlParameter[15];
                parameters[0]            = new SqlParameter("@Balance", balance);
                parameters[1]            = new SqlParameter("@ICCardID", icCardId);
                parameters[2]            = new SqlParameter("@FoodID", foodId);
                parameters[3]            = new SqlParameter("@CoinQuantity", coins);
                parameters[4]            = new SqlParameter("@Point", "0");
                parameters[5]            = new SqlParameter("@MemberLevelID", memberLevelId);
                parameters[6]            = new SqlParameter("@UserID", Convert.ToInt32(schedulelist.UserID));
                parameters[7]            = new SqlParameter("@ScheduleID", schedulelist.ID.ToString());
                parameters[8]            = new SqlParameter("@WorkStation", schedulelist.WorkStation);
                parameters[9]            = new SqlParameter("@MacAddress", "");
                parameters[10]           = new SqlParameter("@OrderID", orderId);
                parameters[11]           = new SqlParameter("@FoodName", foodModel.FoodName);
                parameters[12]           = new SqlParameter("@Money", money);
                parameters[13]           = new SqlParameter("@Paymentype", paymentype);
                parameters[14]           = new SqlParameter("@Return", 0);
                parameters[14].Direction = System.Data.ParameterDirection.Output;
                XCCloudService.BLL.IBLL.XCGame.IFoodsaleService foodsale = BLLContainer.Resolve <XCCloudService.BLL.IBLL.XCGame.IFoodsaleService>(xcGameDBName);
                XCCloudService.Model.XCGame.flw_food_sale       member   = foodsale.SqlQuery(sql, parameters).FirstOrDefault <XCCloudService.Model.XCGame.flw_food_sale>();
            }
            else if (deviceStoreType == XCGameManaDeviceStoreType.Merch)
            {
                XCCloudService.BLL.IBLL.XCCloudRS232.IFoodSaleService foodsale = BLLContainer.Resolve <XCCloudService.BLL.IBLL.XCCloudRS232.IFoodSaleService>();
                XCCloudService.Model.XCCloudRS232.flw_food_sale       flwFood  = new Model.XCCloudRS232.flw_food_sale();
                flwFood.OrderID      = orderId;
                flwFood.MerchID      = int.Parse(storeId);
                flwFood.ICCardID     = icCardId;
                flwFood.DeviceID     = deviceIdentityId;
                flwFood.FlowType     = 1;
                flwFood.CoinQuantity = coins;
                flwFood.TotalMoney   = decimal.Parse(money);
                flwFood.Point        = 0;
                flwFood.Balance      = balance;
                flwFood.Note         = string.Empty;
                flwFood.PayType      = PayBusiness.GetPaymentTypeId(paymentype);
                flwFood.PayTime      = System.DateTime.Now;
                flwFood.PayState     = 1;
                flwFood.PayTotal     = 0;

                XCCloudService.BLL.IBLL.XCCloudRS232.IMemberService memberService = BLLContainer.Resolve <XCCloudService.BLL.IBLL.XCCloudRS232.IMemberService>();
                var memberModel = memberService.GetModels(p => p.Mobile.Equals(mobile, StringComparison.OrdinalIgnoreCase)).FirstOrDefault <XCCloudService.Model.XCCloudRS232.t_member>();
                memberModel.Balance = Convert.ToInt32(memberModel.Balance) + coins;

                using (var transactionScope = new System.Transactions.TransactionScope(TransactionScopeOption.RequiresNew))
                {
                    foodsale.Add(flwFood);
                    memberService.Update(memberModel);
                    transactionScope.Complete();
                }

                return(true);
            }
            else
            {
                errMsg = "门店类型不正确";
            }
            return(true);
        }