예제 #1
0
 public static bool PushMemberCoinsMsg(string coinsType, string storeName, string mobile, int icCardId, int coins, int balance, string form_id, string remark, out string errMsg)
 {
     errMsg = string.Empty;
     try
     {
         string openId = string.Empty;
         if (MobileTokenBusiness.GetOpenId(mobile, out openId, out errMsg))
         {
             MemberCoinsDataModel dataModel = new MemberCoinsDataModel();
             dataModel.StoreName = storeName;
             dataModel.Date      = System.DateTime.Now.ToString("yyyy年MM月dd日");
             dataModel.Coins     = coins;
             dataModel.Type      = coinsType;
             dataModel.Mobile    = mobile;
             dataModel.Balance   = balance;
             dataModel.Remark    = remark;
             return(SAppMessageMana.Push <MemberCoinsConfigModel, MemberCoinsDataModel>(openId, form_id, dataModel, out errMsg));
         }
         else
         {
             return(false);
         }
     }
     catch (Exception e)
     {
         errMsg = e.Message;
         return(false);
     }
 }
예제 #2
0
 public static bool PushMemberFoodSaleMsg(string storeName, string mobile, string orderId, string foodName, int foodNum, int icCardId, decimal money, string buyType, int coins, string form_id, out string errMsg)
 {
     errMsg = string.Empty;
     try
     {
         string openId = string.Empty;
         if (MobileTokenBusiness.GetOpenId(mobile, out openId, out errMsg))
         {
             MemberFoodSaleDataModel dataModel = new MemberFoodSaleDataModel();
             dataModel.StoreName  = storeName;
             dataModel.BuyDate    = System.DateTime.Now.ToString("yyyy年MM月dd日");
             dataModel.OrderId    = orderId;
             dataModel.FoodName   = foodName;
             dataModel.FoodNum    = foodNum;
             dataModel.BuyMobile  = mobile;
             dataModel.BuyAmmount = money;
             dataModel.Remark     = buyType;
             return(SAppMessageMana.Push <MemberFoodSaleConfigModel, MemberFoodSaleDataModel>(openId, form_id, dataModel, out errMsg));
         }
         else
         {
             return(false);
         }
     }
     catch (Exception e)
     {
         errMsg = e.Message;
         return(false);
     }
 }
예제 #3
0
        public object foodsale(Dictionary <string, object> dicParas)
        {
            try
            {
                string errMsg           = string.Empty;
                string storeName        = string.Empty;
                string foodName         = string.Empty;
                string storePassword    = string.Empty;
                int    icCardId         = 0; //会员
                int    balance          = 0; //币余额
                int    memberLevelId    = 0; //会员级别
                string state            = string.Empty;
                string stateName        = string.Empty;
                string mobile           = string.Empty;
                string segment          = string.Empty;
                string mcuId            = string.Empty;
                string storeId          = string.Empty;
                string deviceId         = string.Empty;
                int    foodId           = 0;
                int    deviceIdentityId = 0;
                string terminalNo       = dicParas.ContainsKey("deviceToken") ? dicParas["deviceToken"].ToString() : string.Empty;
                string type             = dicParas.ContainsKey("type") ? dicParas["type"].ToString() : string.Empty;
                string paymentype       = dicParas.ContainsKey("Paymentype") ? dicParas["Paymentype"].ToString() : string.Empty; //获取支付方式
                string foodIdStr        = dicParas.ContainsKey("foodid") ? dicParas["foodid"].ToString() : string.Empty;         //获取支付方式
                string money            = dicParas.ContainsKey("money") ? dicParas["money"].ToString() : string.Empty;
                string orderId          = dicParas.ContainsKey("OrderID") ? dicParas["OrderID"].ToString() : string.Empty;
                int    coins            = int.Parse(dicParas.ContainsKey("Coins") ? dicParas["Coins"].ToString() : string.Empty);
                int    foodNum          = int.Parse(dicParas.ContainsKey("foodNum") ? dicParas["foodNum"].ToString() : "1");
                int.TryParse(foodIdStr, out foodId);

                XCGameMemberTokenModel memberTokenModel = (XCGameMemberTokenModel)(dicParas[Constant.XCGameMemberTokenModel]);
                mobile = memberTokenModel.Mobile;

                if (string.IsNullOrEmpty(orderId))
                {
                    orderId = System.Guid.NewGuid().ToString("N");
                }

                if (type == "购币")
                {
                    string xcGameDBName = string.Empty;
                    //根据终端号查询终端号是否存在
                    XCGameManaDeviceStoreType deviceStoreType;
                    if (!ExtendBusiness.checkXCGameManaDeviceInfo(terminalNo, out deviceStoreType, out storeId, out deviceId))
                    {
                        return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, "终端号不存在"));
                    }
                    //验证会员令牌的门店号和设备门店号
                    if (!memberTokenModel.StoreId.Equals(storeId))
                    {
                        return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, "会员令牌不能再此设备上操作"));
                    }
                    //验证门店信息和设备状态是否为启用状态
                    if (!ExtendBusiness.checkStoreDeviceInfo(deviceStoreType, storeId, deviceId, out segment, out mcuId, out xcGameDBName, out deviceIdentityId, out storePassword, out storeName, out errMsg))
                    {
                        return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, errMsg));
                    }
                    //验证雷达设备缓存状态
                    if (!ExtendBusiness.checkRadarDeviceState(deviceStoreType, storeId, deviceId, out errMsg))
                    {
                        return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, errMsg));
                    }
                    //获取会员信息
                    if (!ExtendBusiness.GetMemberInfo(deviceStoreType, mobile, xcGameDBName, out balance, out icCardId, out memberLevelId, out errMsg))
                    {
                        return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, errMsg));
                    }
                    //购币
                    if (!BuyCoin(deviceStoreType, xcGameDBName, storeId, icCardId, memberLevelId, foodId, orderId, money, coins, balance, paymentype, deviceId, deviceIdentityId, out errMsg))
                    {
                        return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, errMsg));
                    }
                    //请求雷达处理出币
                    if (!IConUtiltiy.DeviceOutputCoin(deviceStoreType, DevieControlTypeEnum.出币, storeId, mobile, icCardId, orderId, segment, mcuId, storePassword, foodId, coins, string.Empty, out errMsg))
                    {
                        return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, errMsg));
                    }
                    //设置推送消息的缓存结构
                    string form_id = dicParas.ContainsKey("form_id") ? dicParas["form_id"].ToString() : string.Empty;
                    MemberFoodSaleNotifyDataModel dataModel = new MemberFoodSaleNotifyDataModel("购币", storeName, mobile, foodName, foodNum, icCardId, decimal.Parse(money), coins);
                    SAppMessageMana.SetMemberCoinsMsgCacheData(SAppMessageType.MemberFoodSaleNotify, orderId, form_id, mobile, dataModel, out errMsg);
                }
                else if (type == "充值")
                {
                    StoreCacheModel           storeModel = null;
                    XCGameManaDeviceStoreType deviceStoreType;
                    //验证门店
                    StoreBusiness store = new StoreBusiness();
                    if (!store.IsEffectiveStore(memberTokenModel.StoreId, out deviceStoreType, ref storeModel, out errMsg))
                    {
                        return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, errMsg));
                    }
                    //获取会员信息
                    if (!ExtendBusiness.GetMemberInfo(deviceStoreType, mobile, storeModel.StoreDBName, out balance, out icCardId, out memberLevelId, out errMsg))
                    {
                        return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, errMsg));
                    }
                    //充值
                    LogHelper.SaveLog(TxtLogType.Api, TxtLogContentType.Debug, TxtLogFileType.Day, "Recharge:" + errMsg);
                    if (!Recharge(deviceStoreType, mobile, storeModel.StoreDBName, storeId, icCardId, memberLevelId, foodId, orderId, money, coins, balance, paymentype, deviceId, deviceIdentityId, out foodName, out errMsg))
                    {
                        return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, errMsg));
                    }
                    //推送消息
                    string form_id = dicParas.ContainsKey("form_id") ? dicParas["form_id"].ToString() : string.Empty;
                    SAppMessageMana.PushMemberFoodSaleMsg("", "", "充值", storeModel.StoreName, mobile, orderId, foodName, foodNum, icCardId, decimal.Parse(money), coins, form_id, out errMsg);
                }
                else
                {
                    return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, "类型无效"));
                }


                return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.T, ""));
            }
            catch (Exception e)
            {
                throw e;
            }
        }
예제 #4
0
        public object saveCoins(Dictionary <string, object> dicParas)
        {
            try
            {
                string state         = string.Empty;
                string stateName     = string.Empty;
                string xcGameDBName  = string.Empty;
                string errMsg        = string.Empty;
                string storePassword = string.Empty;
                string terminalNo    = dicParas.ContainsKey("deviceToken") ? dicParas["deviceToken"].ToString() : string.Empty;

                XCGameMemberTokenModel memberTokenModel = (XCGameMemberTokenModel)(dicParas[Constant.XCGameMemberTokenModel]);
                MobileTokenModel       mobileTokenModel = (MobileTokenModel)(dicParas[Constant.MobileTokenModel]);

                //根据终端号查询终端号是否存在
                XCCloudService.BLL.IBLL.XCGameManager.IDeviceService deviceService = BLLContainer.Resolve <XCCloudService.BLL.IBLL.XCGameManager.IDeviceService>();
                var deviceModel = deviceService.GetModels(p => p.TerminalNo.Equals(terminalNo, StringComparison.OrdinalIgnoreCase)).FirstOrDefault <XCCloudService.Model.XCGameManager.t_device>();
                if (deviceModel == null)
                {
                    return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, "终端号不存在"));
                }
                StoreBusiness store = new StoreBusiness();
                if (!store.IsEffectiveStore(deviceModel.StoreId, out xcGameDBName, out storePassword, out errMsg))
                {
                    return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, errMsg));
                }

                if (!deviceModel.StoreId.Equals(memberTokenModel.StoreId))
                {
                    return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, "会员令牌对应门店和设备不一致"));
                }

                //判断设备状态是否为启用状态
                XCCloudService.BLL.IBLL.XCGame.IDeviceService ids = BLLContainer.Resolve <XCCloudService.BLL.IBLL.XCGame.IDeviceService>(xcGameDBName);
                var menlist = ids.GetModels(p => p.MCUID.Equals(deviceModel.DeviceId, StringComparison.OrdinalIgnoreCase)).FirstOrDefault <XCCloudService.Model.XCGame.t_device>();
                if (menlist == null)
                {
                    return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, "设备不存在"));
                }

                if (menlist.state != "启用")
                {
                    return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, "设备未启用"));
                }

                //验证缓存设备状态
                if (DeviceStateBusiness.ExistDeviceState(deviceModel.StoreId, deviceModel.DeviceId))
                {
                    state = DeviceStateBusiness.GetDeviceState(deviceModel.StoreId, deviceModel.DeviceId);
                }
                if (state != "1")
                {
                    stateName = DeviceStateBusiness.GetStateName(state);
                    return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, stateName));
                }

                //请求雷达处理存币
                string action  = ((int)(DevieControlTypeEnum.存币)).ToString();
                string sn      = UDPSocketAnswerBusiness.GetSN();
                string orderId = System.Guid.NewGuid().ToString("N");
                DeviceControlRequestDataModel deviceControlModel = new DeviceControlRequestDataModel(deviceModel.StoreId, mobileTokenModel.Mobile, memberTokenModel.ICCardId, menlist.segment, menlist.MCUID, action, 0, sn, orderId, storePassword, 0, "");
                MPOrderBusiness.AddTCPAnswerOrder(orderId, mobileTokenModel.Mobile, 0, action, memberTokenModel.ICCardId, deviceModel.StoreId);
                IconOutLockBusiness.AddByNoTimeLimit(mobileTokenModel.Mobile);
                if (!DataFactory.SendDataToRadar(deviceControlModel, out errMsg))
                {
                    ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.F, "", Result_Code.T, errMsg);
                }

                //设置推送消息的缓存结构
                string form_id = dicParas.ContainsKey("form_id") ? dicParas["form_id"].ToString() : string.Empty;
                SAppMessageMana.SetMemberCoinsMsgCacheData(SAppMessageType.MemberCoinsOperationNotify, orderId, form_id, mobileTokenModel.Mobile, null, out errMsg);

                return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.T, ""));
            }
            catch (Exception e)
            {
                throw e;
            }
        }
예제 #5
0
        public static void RadarNotify(string requestDataJson, UDPClientItemBusiness.ClientItem item)
        {
            object outModel     = null;
            object requestModel = null;

            DataFactory.CreateResponseProtocolData(TransmiteEnum.雷达通知指令, requestDataJson, ref requestModel, ref outModel);
            RadarNotifyRequestModel     rnrModel         = Utils.DataContractJsonDeserializer <RadarNotifyRequestModel>(requestDataJson);
            RadarNotifyOutParamsModel   responseOutModel = (RadarNotifyOutParamsModel)outModel;
            XCGameRadarDeviceTokenModel radarTokenModel  = XCGameRadarDeviceTokenBusiness.GetRadarDeviceTokenModel(rnrModel.Token);

            Send(((IPEndPoint)item.remotePoint).Address.ToString(), ((IPEndPoint)item.remotePoint).Port, ((RadarNotifyOutParamsModel)outModel).ResponsePackages);
            RadarNotifyRequestModel requestDataModel = (RadarNotifyRequestModel)requestModel;

            //验证相应模式
            bool bCoinSuccess = false;

            if (responseOutModel.ResponseModel.GetType().Name.Equals("ComonErrorResponseModel"))
            {
                ComonErrorResponseModel model = (ComonErrorResponseModel)(responseOutModel.ResponseModel);
                bCoinSuccess = model.Result_Code == "1" ? true : false;
            }
            else if (responseOutModel.ResponseModel.GetType().Name.Equals("ComonSuccessResponseModel"))
            {
                ComonSuccessResponseModel model = (ComonSuccessResponseModel)(responseOutModel.ResponseModel);
                bCoinSuccess = model.Result_Code == "1" ? true : false;
            }

            //记录日志
            string logTxt = "[接收:" + requestDataJson + "]" + "[响应:" + responseOutModel.ResponseJson + "]" + System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");

            UDPLogHelper.SaveUDPRadarNotifyLog(requestDataModel.StoreId, requestDataModel.OrderId, requestDataModel.Token, requestDataModel.SN, int.Parse(requestDataModel.Coins), int.Parse(requestDataModel.Action), requestDataModel.Result, ((IPEndPoint)item.remotePoint).Address.ToString(), ((IPEndPoint)item.remotePoint).Port, requestDataJson, responseOutModel.ResponseJson, bCoinSuccess, logTxt);
            string message = "[接收:" + requestDataJson + "]" + "[响应:" + responseOutModel.ResponseJson + "]";

            SignalrServerToClient.BroadcastMessage(Convert.ToInt32(TransmiteEnum.雷达通知指令), "雷达通知指令", requestDataModel.Token, message, System.DateTime.Now);
            if (rnrModel.Result == "成功" && bCoinSuccess)
            {
                //出币后向客户端发送成功信息
                try
                {
                    TCPAnswerOrderModel taoModel = null;
                    //如果订单缓存信息存在
                    if (MPOrderBusiness.ExistTCPAnswerOrder(rnrModel.OrderId, ref taoModel))
                    {
                        string coinType      = CoinBusiess.GetCoinOpetionName(taoModel.Action);
                        string notifyMsg     = string.Empty;
                        string answerMsgType = string.Empty;
                        string errMsg        = string.Empty;
                        SAppPushMessageCacheModel msgModel = null;

                        if (taoModel.Action == "1")
                        {
                            notifyMsg     = "成功出币" + taoModel.Coins.ToString() + "个";
                            answerMsgType = ((int)(TCPAnswerMessageType.出币)).ToString();
                            if (SAppPushMessageBusiness.GetModel(rnrModel.OrderId, ref msgModel))
                            {
                                if (msgModel.SAppMessageType == SAppMessageType.MemberCoinsOperationNotify)
                                {
                                    MemberCoinsOperationNotifyDataModel dataModel = (MemberCoinsOperationNotifyDataModel)(msgModel.DataObj);
                                    SAppMessageMana.PushMemberCoinsMsg(msgModel.OpenId, msgModel.SAppAccessToken, "提币", dataModel.StoreName, dataModel.Mobile, dataModel.ICCardId, int.Parse(requestDataModel.Coins), dataModel.LastBalance, msgModel.FormId, "", out errMsg);
                                }
                                else if (msgModel.SAppMessageType == SAppMessageType.MemberFoodSaleNotify)
                                {
                                    MemberFoodSaleNotifyDataModel dataModel = (MemberFoodSaleNotifyDataModel)(msgModel.DataObj);
                                    SAppMessageMana.PushMemberFoodSaleMsg(msgModel.OpenId, msgModel.SAppAccessToken, "购币", dataModel.StoreName, msgModel.Mobile, msgModel.OrderId, dataModel.FoodName, dataModel.FoodNum, dataModel.ICCardId, dataModel.Money, dataModel.Coins, msgModel.FormId, out errMsg);
                                }
                            }
                        }
                        else if (taoModel.Action == "2")
                        {
                            notifyMsg     = "成功存币" + requestDataModel.Coins.ToString() + "个";
                            answerMsgType = ((int)(TCPAnswerMessageType.存币)).ToString();
                            IconOutLockBusiness.RemoveByNoTimeList(taoModel.Mobile);
                            if (int.Parse(requestDataModel.Coins) > 0)
                            {
                                try
                                {
                                    int    lastBalance = 0;
                                    string storeName   = string.Empty;
                                    string mobile      = string.Empty;
                                    if (MemberPreservationBusiness.PreservationBusiness(int.Parse(taoModel.ICCardId), int.Parse(taoModel.StoreId), int.Parse(requestDataModel.Coins), out lastBalance, out storeName, out mobile))
                                    {
                                        if (SAppPushMessageBusiness.GetModel(rnrModel.OrderId, ref msgModel))
                                        {
                                            MemberCoinsOperationNotifyDataModel dataModel = (MemberCoinsOperationNotifyDataModel)(msgModel.DataObj);
                                            SAppMessageMana.PushMemberCoinsMsg(msgModel.OpenId, msgModel.SAppAccessToken, "存币", dataModel.StoreName, dataModel.Mobile, dataModel.ICCardId, int.Parse(requestDataModel.Coins), dataModel.LastBalance, msgModel.FormId, "", out errMsg);
                                        }
                                    }
                                }
                                catch (Exception e)
                                {
                                    LogHelper.SaveLog(TxtLogType.Api, TxtLogContentType.Debug, TxtLogFileType.Day, "MemberPreservationBusiness.PreservationBusiness:" + e.Message);
                                }
                            }
                        }
                        else if (taoModel.Action == "6")//投币
                        {
                            MemberCoinsOperationNotifyDataModel dataModel = (MemberCoinsOperationNotifyDataModel)(msgModel.DataObj);
                            SAppMessageMana.PushMemberCoinsMsg(msgModel.OpenId, msgModel.SAppAccessToken, "投币", dataModel.StoreName, dataModel.Mobile, dataModel.ICCardId, int.Parse(requestDataModel.Coins), dataModel.LastBalance, msgModel.FormId, "", out errMsg);
                        }
                        else if (taoModel.Action == "7")//退币
                        {
                            MemberCoinsOperationNotifyDataModel dataModel = (MemberCoinsOperationNotifyDataModel)(msgModel.DataObj);
                            SAppMessageMana.PushMemberCoinsMsg(msgModel.OpenId, msgModel.SAppAccessToken, "退币", dataModel.StoreName, dataModel.Mobile, dataModel.ICCardId, int.Parse(requestDataModel.Coins), dataModel.LastBalance, msgModel.FormId, "", out errMsg);
                        }

                        var dataObj = new {
                            result_code   = "1",
                            answerMsg     = notifyMsg,
                            answerMsgType = answerMsgType
                        };
                        MPOrderBusiness.RemoveTCPAnswerOrder(rnrModel.OrderId);
                        TCPServiceBusiness.Send(taoModel.Mobile, dataObj);
                    }
                }
                catch (Exception ex)
                {
                    LogHelper.SaveLog(TxtLogType.UPDService, TxtLogContentType.Exception, TxtLogFileType.Day, "Exception:" + rnrModel.OrderId + Utils.GetException(ex) + System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"));
                }
            }
        }
예제 #6
0
        public object flw_485_coinSale(Dictionary <string, object> dicParas)
        {
            try
            {
                string mobile           = string.Empty;
                string storeId          = string.Empty;
                string deviceId         = string.Empty;
                string errMsg           = string.Empty;
                string segment          = string.Empty;
                string mcuId            = string.Empty;
                string xcGameDBName     = string.Empty;
                int    memberLevelId    = 0;
                string storeName        = string.Empty;
                int    balance          = 0;
                int    icCardId         = 0;
                int    deviceIdentityId = 0;
                int    lastBalance      = 0;
                string storePassword    = string.Empty;
                string orderId          = dicParas.ContainsKey("orderId") ? dicParas["orderId"].ToString() : string.Empty;
                string deviceToken      = dicParas.ContainsKey("deviceToken") ? dicParas["deviceToken"].ToString() : string.Empty;
                int    coins            = Convert.ToInt32(dicParas["coins"]);
                XCGameMemberTokenModel memberTokenModel = (XCGameMemberTokenModel)(dicParas[Constant.XCGameMemberTokenModel]);
                mobile = memberTokenModel.Mobile;

                if (string.IsNullOrEmpty(orderId))
                {
                    orderId = System.Guid.NewGuid().ToString("N");
                }

                //根据终端号查询终端号是否存在
                XCGameManaDeviceStoreType deviceStoreType;
                if (!ExtendBusiness.checkXCGameManaDeviceInfo(deviceToken, out deviceStoreType, out storeId, out deviceId))
                {
                    return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, "终端号不存在"));
                }
                //验证会员令牌的门店号和设备门店号
                if (!memberTokenModel.StoreId.Equals(storeId))
                {
                    return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, "会员令牌不能再此设备上操作"));
                }
                //验证门店信息和设备状态是否为启用状态
                if (!ExtendBusiness.checkStoreDeviceInfo(deviceStoreType, storeId, deviceId, out segment, out mcuId, out xcGameDBName, out deviceIdentityId, out storePassword, out storeName, out errMsg))
                {
                    return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, errMsg));
                }
                //验证雷达设备缓存状态
                if (!ExtendBusiness.checkRadarDeviceState(deviceStoreType, storeId, deviceId, out errMsg))
                {
                    return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, errMsg));
                }
                //获取会员信息
                if (!ExtendBusiness.GetMemberInfo(deviceStoreType, mobile, xcGameDBName, out balance, out icCardId, out memberLevelId, out errMsg))
                {
                    return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, errMsg));
                }
                //验证余额
                if (coins > balance)
                {
                    return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, "币数余额不足"));
                }
                //数据库提币操作
                if (!getCoins(deviceStoreType, xcGameDBName, mobile, balance, coins, icCardId, segment, deviceId, deviceIdentityId, out lastBalance, out errMsg))
                {
                    return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, errMsg));
                }
                //请求雷达处理出币
                if (!IConUtiltiy.DeviceOutputCoin(deviceStoreType, DevieControlTypeEnum.出币, storeId, mobile, icCardId, orderId, segment, mcuId, storePassword, 0, coins, string.Empty, out errMsg))
                {
                    return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, errMsg));
                }

                //设置推送消息的缓存结构
                string form_id = dicParas.ContainsKey("form_id") ? dicParas["form_id"].ToString() : string.Empty;
                MemberCoinsOperationNotifyDataModel dataModel = new MemberCoinsOperationNotifyDataModel("提币", storeName, mobile, icCardId, coins, lastBalance);
                SAppMessageMana.SetMemberCoinsMsgCacheData(SAppMessageType.MemberCoinsOperationNotify, orderId, form_id, mobile, dataModel, out errMsg);

                return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.T, ""));
            }
            catch (Exception e)
            {
                throw e;
            }
        }