示例#1
0
 private static void Send(ApiCode code, object data, IEnumerable <Guid> sendTo)
 {
     foreach (var sessionId in sendTo)
     {
         Room.GetInstance.Send(Packet.Write(code, data.ToJson()), sessionId);
     }
 }
示例#2
0
        /// <summary>
        /// 添加设备的监听事件
        /// </summary>
        /// <param name="appkey"></param>
        /// <param name="infokey"></param>
        public void ListenEquipAll(string appkey, string infokey)
        {
            DataResult dr = new DataResult();

            if (string.IsNullOrEmpty(appkey) || string.IsNullOrEmpty(infokey))
            {
                dr = ApiCode.Code1003(dr);
            }
            else
            {
                dr = ServerLib.VerifyService(appkey, infokey, 1);
            }
            if (dr.code != 200)
            {
                string drs = new JavaScriptSerializer().Serialize(dr);
                ServerLib.ErrorLog(drs, "");
                return;
            }

            Dictionary <int, myEquipItem> equipItem = Proxy_DataCenter.EqpItemDict;

            foreach (myEquipItem my in equipItem.Values)
            {
                my.EquipItem.PropertyChanged += EquipItem_PropertyChanged;
            }
        }
示例#3
0
        public static ModelBase Cancel(ApiCode code, string cardOrderId)
        {
            var request = GetNewRequest(code, UrlManager.CancelReserve);

            request.AddParameter("RecordID", cardOrderId);
            return(RequestClient.DoWithRequest <ModelBase>(request));
        }
示例#4
0
        public static ApiGetReservedDateResult Get(ApiCode code, ApiLoginInfo info)
        {
            var request = GetNewRequest(code, UrlManager.GetReservedDateListNew);

            request.AddParameter("AppRecordID", info.RecordID);
            request.AddParameter("TeachID", info.TeachNo);
            return(RequestClient.DoWithRequest <ApiGetReservedDateResult>(request));
        }
示例#5
0
        public static ApiGetTeacherResult Get(ApiCode code, ApiLoginInfo logInfo)
        {
            var request = GetNewRequest(code, UrlManager.GetStudentBindTeachInfo);

            request.AddParameter("AppRecordID", logInfo.RecordID);

            return(RequestClient.DoWithRequest <ApiGetTeacherResult>(request));
        }
        public static ApiGetUncommentedReserveResult Get(ApiCode code, string appRecordId)
        {
            var request = GetNewRequest(code, UrlManager.GetMyApp_CarOrderInfoNew);

            request.AddParameter("AppRecordID", appRecordId);
            request.AddParameter("State", 2); // 订单状态 (1:已预约;2:待评价;0:已取消;4:已评论)
            return(RequestClient.DoWithRequest <ApiGetUncommentedReserveResult>(request));
        }
示例#7
0
        public static ApiExecuteReserveResult Reserve(ApiCode code, string appRecordID, string reserveId)
        {
            var request = GetNewRequest(code, UrlManager.AddCarOrderInfo_Android);

            request.AddParameter("AppRecordID", appRecordID);
            request.AddParameter("ReservedID", reserveId);
            return(RequestClient.DoWithRequest <ApiExecuteReserveResult>(request));
        }
        public static ApiLoginResult DoLogin(ApiCode apiCode)
        {
            var request = GetNewRequest(apiCode, UrlManager.GetLogin);

            request.AddParameter("AppPhoneNumber", LoginParameter.LoginPhoneNumber);
            request.AddParameter("AppPassword", LoginParameter.LoginPassword);
            return(RequestClient.DoWithRequest <ApiLoginResult>(request));
        }
示例#9
0
        protected static RestRequest GetNewRequest(ApiCode apiCode, string urlMethod)
        {
            var request = new RestRequest(urlMethod, Method.GET);

            request.AddParameter("Signature", apiCode.Signature);
            request.AddParameter("Nonce", apiCode.Nonce);
            request.AddParameter("Timestamp", apiCode.Timestamp);
            return(request);
        }
 /// <summary>
 /// 构建result
 /// </summary>
 /// <param name="data"></param>
 /// <param name="code"></param>
 /// <param name="pageCount"></param>
 /// <returns></returns>
 public static ApiResult CreateResult(IEnumerable data, ApiCode code, int total = 0)
 {
     return(new ApiResult()
     {
         Code = code,
         total = total,
         rows = data
     });
 }
示例#11
0
        public static T CreateApiResult <T>(ApiCode apiCode) where T : ApiResultBase
        {
            var result = Activator.CreateInstance <T>();

            result.ApiCode    = (int)apiCode;
            result.ApiResult  = ApiResult.GetApiResult(apiCode);
            result.ApiMessage = string.Empty;
            return(result);
        }
示例#12
0
        public static ApiGetReserveInfoResult Get(ApiCode code, ApiLoginInfo info, string reserveDate, int phase)
        {
            var request = GetNewRequest(code, UrlManager.GetReservedTimeList);

            request.AddParameter("AppRecordID", info.RecordID);
            request.AddParameter("TeachID", info.TeachNo);
            request.AddParameter("ReservedDate", reserveDate);
            request.AddParameter("Phase", phase);
            return(RequestClient.DoWithRequest <ApiGetReserveInfoResult>(request));
        }
        /**
         * GET /PCMIS_App.asmx/UpdateApp_CarOrderInfo?&Signature=14fe20b552b80d6c02988fc2e948f49d9c2feb02&Nonce=1215511576&Timestamp=1215511376&RecordID=0155be1d4a394150a00a1c6a099a56ba&GradeType=3&GradeContent=%E5%BE%88%E5%A5%BD&TeacherStar=05&SchoolStar=05&TeacherScoreCodes=050101|050201|050301|050401|050501&SchoolScoreCodes=050101|050201|050301 HTTP/1.1
         */

        public static ModelBase DoComment(ApiCode code, string reserveRecordId)
        {
            var request = GetNewRequest(code, UrlManager.UpdateApp_CarOrderInfo);

            request.AddParameter("RecordID", reserveRecordId);
            request.AddParameter("GradeType", 3);
            request.AddParameter("GradeContent", UrlManager.MyComment);
            request.AddParameter("TeacherStar", "05");
            request.AddParameter("SchoolStar", "05");
            request.AddParameter("TeacherScoreCodes", "050101|050201|050301|050401|050501");
            request.AddParameter("SchoolScoreCodes", "050101|050201|050301");
            return(RequestClient.DoWithRequest <ModelBase>(request));
        }
示例#14
0
        public object GetSetParmItem(string equip_no, string set_no)
        {
            DataResult dr = new DataResult();

            //判断是否为空
            if (string.IsNullOrEmpty(equip_no) && string.IsNullOrEmpty(set_no))
            {
                return(ApiCode.Code1003(dr));
            }
            string sql = "select * from setParm where equip_no =" + equip_no + " and set_no=" + set_no;

            dr = ServerLib.GetDataTableSQL(sql);//内置接口,执行查询SQL
            return(dr);
        }
示例#15
0
        /// <summary>
        /// 输出结果集
        /// </summary>
        /// <param name="byteArray"></param>
        public static void RenderResult <T>(ApiCode code, T data, string errorMsg, int page = 0, int total = 0)
        {
            RequestResult <T> result = new RequestResult <T>();

            result.Code   = code;
            result.Data   = data;
            result.ErrMsg = errorMsg;
            result.Page   = page;
            result.Total  = total;

            string jsonString = Utils.ToJson(result);

            System.Web.HttpContext.Current.Response.ContentType = "text/html";// "application/json";
            System.Web.HttpContext.Current.Response.Write(jsonString);
        }
示例#16
0
        public static string GetApiResult(ApiCode apiCode)
        {
            switch (apiCode)
            {
            case ApiCode.Success: return(SUCCESS);

            case ApiCode.NotFound: return(NOT_FOUND);

            case ApiCode.BadRequest: return(BAD_REQUEST);

            case ApiCode.Unavailable: return(UNAVAILABLE);

            case ApiCode.Unknown:
            default:
                return(UNKNOWN);
            }
        }
        /// <summary>
        /// 升点功能
        /// </summary>
        private void AddPoints()
        {
            int    uid;        //操作用户
            double remb;       //升点到值
            int    pointsType; //升点类型 0为以量升点 1为配额升点

            if (!int.TryParse(Request.Params["uid"], out uid))
            {
                uid = -1;
            }
            if (!double.TryParse(Request.Params["rmb"], out remb))
            {
                remb = -1;
            }
            if (!int.TryParse(Request.Params["pointsType"], out pointsType))
            {
                pointsType = -1;
            }

            if (uid == -1 || remb == -1 || pointsType == -1)
            {
                AppGlobal.RenderResult(ApiCode.ParamEmpty);
                return;
            }
            ApiCode apicode = ApiCode.Fail;

            switch (pointsType)
            {
            case 0:    //以量升点
                apicode = QuoSales(uid, remb);
                break;

            case 1:    //配额升点
                apicode = this.QuoAddPoints(uid, remb);
                break;
            }

            AppGlobal.RenderResult(apicode);
        }
示例#18
0
        /// <summary>
        /// html 版投注处理
        /// </summary>
        private void HtmlAddBetDetails()
        {
            /*
             * loginUserId=63&lotterycode=cqssc&lotteryid=1&play_source=&pmode=2&lt_project%5b%5d=%7b%27type%27%3a%27digital%27%2c%27methodid%27%3a0%2c%27codes%27%3a%274%7c4%7c4%7c4%7c4%27%2c%27nums%27%3a1%2c%27
             * omodel%27%3a2%2c%27times%27%3a1%2c%27money%27%3a2%2c%27mode%27%3a1%2c%27desc%27%3a%27%5b%u4e94%u661f_%u76f4%u9009%u590d%u5f0f%5d+4%2c4%2c4%2c4%2c4%27%7d&
             * lt_issue_start=20150707010&lt_total_nums=1&lt_total_money=2&lt_trace_if=yes&lt_trace_stop=yes&lt_trace_times_margin=1&lt_trace_margin=50&lt_trace_times_same=1&
             * lt_trace_diff=1&lt_trace_times_diff=2&lt_trace_count_input=10&lt_trace_money=20&lt_trace_issues%5b%5d=20150707011&lt_trace_issues%5b%5d=20150707012&lt_trace_issues%5b%5d=
             * 20150707013&lt_trace_issues%5b%5d=20150707014&lt_trace_times_20150707011=1&lt_trace_times_20150707012=2&lt_trace_times_20150707013=3&lt_trace_times_20150707014=4&randomNum=4371
             */

            int pmode = -1;

            int.TryParse(Request.Params["pmode"], out pmode);
            string projects        = Request.Params["lt_project[]"];         //投注内容
            string issueCode       = Request.Params["lt_issue_start"];       //投注期号
            bool   lt_trace_if     = Request.Params["lt_trace_if"] == "yes"; //是否追号
            string lt_trace_stop   = Request.Params["lt_trace_stop"];        //是否中奖后自动停止
            string lt_trace_issues = Request.Params["lt_trace_issues[]"];    //追号期数
            string lotteryStr      = Request.Params["lotteryid"];            //彩种。。
            int    lotteryid       = -1;

            if (!int.TryParse(lotteryStr, out lotteryid))
            {
                AppGlobal.RenderResult(ApiCode.ParamEmpty);
                return;
            }

            //追号倍数  lt_trace_times_期号
            if (string.IsNullOrEmpty(projects) ||
                string.IsNullOrEmpty(issueCode))
            {
                AppGlobal.RenderResult(ApiCode.ParamEmpty);
                return;
            }
            projects = "[" + projects + "]";
            var bettingInfo = Newtonsoft.Json.JsonConvert.DeserializeObject <List <HtmlParamDto> >(projects);//投注内容

            if (bettingInfo.Count < 1)
            {
                AppGlobal.RenderResult(ApiCode.ParamEmpty);
                return;
            }
            var user = this.mSysUserService.Get(this.LoginUserId);//获取用户返点

            if (null == user)
            {
                AppGlobal.RenderResult(ApiCode.Fail);
                return;
            }
            BettingDTO betting = new BettingDTO();

            betting.BetDetails = new List <BetDetailDTO>();
            betting.IsAutoStop = lt_trace_stop == "yes"; //是否自动停止追号

            try
            {
                foreach (var item in bettingInfo)
                {
                    if (string.IsNullOrEmpty(item.codes))
                    {
                        continue;
                    }
                    if (!string.IsNullOrEmpty(item.poschoose))
                    {
                        item.codes += "_" + item.poschoose;
                    }
                    var details = new BetDetailDTO()
                    {
                        PalyRadioCode = item.methodid,
                        Model         = item.mode - 1,
                        Multiple      = item.times,
                        PrizeType     = item.omodel == 2 ? 0 : 1,//omodel为2则表示舍弃返点的最高奖金 奖金类型 1 为有返点 0为无返点
                        IssueCode     = issueCode,
                        BetContent    = item.codes,
                    };
                    List <BetDetailDTO> appendSource = PostionSplitHelper.Split(details);
                    betting.BetDetails.AddRange(appendSource);
                }
                //组织追号数据
                if (lt_trace_if && !string.IsNullOrEmpty(lt_trace_issues))
                { //追号,组织追号数据
                    betting.CatchDtos = new List <CatchDto>();
                    foreach (var item in lt_trace_issues.Split(','))
                    {
                        int outMultiple = 0;
                        if (!int.TryParse(Request.Params["lt_trace_times_" + item], out outMultiple))
                        {
                            continue;
                        }
                        betting.CatchDtos.Add(new CatchDto()
                        {
                            IssueCode = item,
                            Multiple  = outMultiple
                        });
                    }
                }

                ApiCode errorCode = ApiCode.Success;
                bool    isCompled = false;
                if (lt_trace_if)//追号
                {
                    isCompled = this.CatchBetting(user, betting, ref errorCode, lotteryid, true);
                }
                else
                {
                    isCompled = DefaultDetails(user, betting.BetDetails, ref errorCode, lotteryid, true);//普通投注
                }
                if (isCompled)
                {
                    AppGlobal.RenderResult(ApiCode.Success);
                }
                else
                {
                    AppGlobal.RenderResult(errorCode);
                }
            }
            catch (Exception ex)
            {
                Ytg.Scheduler.Comm.LogManager.Error("HtmlAddBetDetails", ex);
                AppGlobal.RenderResult(ApiCode.Exception);
            }
        }
示例#19
0
 public ApiResult(ApiCode _code, string _msg)
 {
     Code = (int)_code;
     Msg  = _msg;
 }
示例#20
0
 public ApiException(ApiCode code, string message)
     : base(message)
 {
     this.Code = code;
 }
示例#21
0
 public ApiException(ApiCode code)
     : this(code, "")
 {
 }
示例#22
0
        private bool DefaultDetails(SysUser user, List <BetDetailDTO> details, ref ApiCode errorType, int lotteryid, bool ishtml = false)
        {
            int index = 0;

            //获取用户余额
            //decimal userAmt = 0;
            //var userbalance = this.mSysUserBalanceService.GetUserBalance(user.Id);
            //if (null != userbalance)
            //    userAmt = userbalance.UserAmt;//获取用户余额
            foreach (var detail in details)
            {
                var radioContent = Ytg.Scheduler.Comm.Bets.RadioContentFactory.CreateInstance(detail.PalyRadioCode);
                if (null == radioContent)
                {
                    errorType = ApiCode.Exception;//服务器错误
                }
                if (ishtml)
                {
                    detail.BetContent = radioContent.HtmlContentFormart(detail.BetContent);
                }
                if (string.IsNullOrEmpty(detail.BetContent))
                {
                    continue;
                }
                //验证投注时间和当前投注期数的时间差,不在时间内,不允许投注
                //var issueInfo=this.mLotteryIssueService.Get(lotteryid,detail.IssueCode);
                //if (issueInfo == null
                //    || issueInfo.EndSaleTime.Value < DateTime.Now)
                //{
                //    errorType = ApiCode.Empty;
                //    return false;
                //}
                //
                //计算总注数
                int betCount = radioContent.TotalBetCount(new BetDetail()
                {
                    BetContent = detail.BetContent
                });
                if (betCount < 0)             //超过指定注数,不允许投注
                {
                    errorType = ApiCode.Fail; //服务器错误 非法请求
                    return(false);
                }
                //var playRadio = Ytg.Service.Lott.BaseDataCatch.GetPalyTypeRadio().Where(radio => radio.RadioCode == detail.PalyRadioCode).FirstOrDefault();
                //if (playRadio == null)
                //{
                //    errorType = ApiCode.Fail;//服务器错误
                //    return false;
                //}

                //计算本注需用金额
                decimal sumMonery = CalculateMonery(betCount, detail.Model, (int)detail.Multiple, lotteryid);
                if (lotteryid == 21)//六合彩
                {
                    detail.Multiple = 1;
                }
                //验证可能中奖的最大金额,若超过该限制,则不允许投注
                if (WinMoneryHelper.GetAutoWinMonery(detail, this.LoginUser) > WinMoneryHelper.GetMaxReboMonery())
                {
                    errorType = ApiCode.NotScope;//超过限额
                    return(false);
                }


                //if (userAmt < sumMonery)//余额不够本次
                //{
                //     errorType = ApiCode.NotEnough;//余额不够本次
                //    return false;
                //}
                //userAmt -= sumMonery;
                var bet = new BetDetail()
                {
                    BetCode       = "b" + Utils.BuilderNum(),
                    IsMatch       = false,
                    IssueCode     = detail.IssueCode,
                    BetContent    = detail.BetContent,
                    Model         = detail.Model,
                    Multiple      = (int)detail.Multiple,
                    PalyRadioCode = detail.PalyRadioCode,
                    PrizeType     = detail.PrizeType,
                    UserId        = user.Id,
                    TotalAmt      = sumMonery,
                    LotteryCode   = this.LotteryCode,
                    BetCount      = betCount,
                    BackNum       = (decimal)(detail.PrizeType == 0 ? user.Rebate : 0),
                    BonusLevel    = LoginUser.PlayType == UserPlayType.P1800 ? 1800 : 1700,
                    PostionName   = detail.PostionName,
                    HasState      = betCount <= detail.MaxBetCount ? 1 : 0
                };
                /**最新投注方法 提高性能*/
                int state   = 0;
                var userAmt = this.mBetDetailService.AddBetting(bet, CreateUserBalanceDetial(user.Id, -sumMonery, TradeType.投注扣款, 0, bet.BetCode), lotteryid, ref state);
                if (state == 1)
                {//超过投注时间,不允许投注
                    errorType = ApiCode.Empty;
                    return(false);
                }
                else if (state == 2)
                {
                    //用户余额不够
                    errorType = ApiCode.NotEnough;//余额不够本次
                    return(false);
                }
                else
                {
                    //提交成功
                }
                /**最新投注方法*/


                //this.mBetDetailService.Create(bet);
                //保存用户余额
                // userbalance.UserAmt = userAmt - sumMonery;
                //投注消费记录s
                // this.mSysUserBalanceDetailService.Create(CreateUserBalanceDetial(user.Id, -sumMonery, TradeType.投注扣款, userAmt, bet.BetCode));
                //返点消费记录
                //不在投注时计算返点,hqh 2015/04/17 by update
                //if (bet.PrizeType == 1)
                //     this.mRebateHelper.BettingCalculate(userId, sumMonery, bet.BetCode);
                //this.mSysUserBalanceService.UpdateUserBalance(CreateUserBalanceDetial(user.Id, -sumMonery, TradeType.投注扣款, userAmt, bet.BetCode), -sumMonery);
                //this.mBetDetailService.Save();
                index++;
            }
            return(true);
        }
示例#23
0
 public ApiResult(ApiCode code, string msg, T data)
 {
     Code = (int)code;
     Msg  = msg;
     Data = data;
 }
示例#24
0
 public ApiResult(ApiCode code)
 {
     Code = (int)code;
     Msg  = "";
     Data = default(T);
 }
示例#25
0
 public ApiResult(ApiCode code, string msg)
 {
     Code = (int)code;
     Msg  = msg;
     Data = default(T);
 }
示例#26
0
        /// <summary>
        /// 投注明细 支持添加一条或多条 json格式
        /// </summary>
        private void AddBetDetails()
        {
            int    userId      = this.LoginUserId;
            string jsonDataStr = Request.Params["data"];

            if (string.IsNullOrEmpty(jsonDataStr))
            {
                AppGlobal.RenderResult(ApiCode.ParamEmpty);
                return;
            }
            var user = this.mSysUserService.Get(this.LoginUserId);//获取用户返点

            if (null == user)
            {
                AppGlobal.RenderResult(ApiCode.Fail);
                return;
            }

            try
            {
                var bettingInfo = Newtonsoft.Json.JsonConvert.DeserializeObject <BettingDTO>(jsonDataStr);
                if (bettingInfo.BetDetails == null || bettingInfo.BetDetails.Count < 1)
                {
                    AppGlobal.RenderResult(ApiCode.ParamEmpty);
                    return;
                }
                var issueCode = bettingInfo.BetDetails.FirstOrDefault().IssueCode;//当期编号,
                //
                if (!VdaActionEndTime(issueCode))
                {
                    AppGlobal.RenderResult(ApiCode.ValidationFails);//不存在指定期数或者超过投注时间,不允许投注
                    return;
                }
                // -2 为可能中奖的金额超过限额
                //
                ApiCode errorType = ApiCode.Success;
                bool    isCompled = false;
                if (bettingInfo.CatchDtos == null || bettingInfo.CatchDtos.Count < 1)
                {
                    isCompled = DefaultDetails(user, bettingInfo.BetDetails, ref errorType, -1);//普通投注
                }
                else
                {
                    //追号
                    isCompled = this.CatchBetting(user, bettingInfo, ref errorType, -1);
                }
                if (isCompled)
                {
                    AppGlobal.RenderResult(ApiCode.Success);
                }
                else
                {
                    AppGlobal.RenderResult(errorType);
                }
            }
            catch (Exception ex)
            {
                Ytg.Scheduler.Comm.LogManager.Error("AddBetDetails", ex);
                AppGlobal.RenderResult(ApiCode.Exception);
                //log
            }
        }
示例#27
0
 public ApiResponse(ApiCode apiCode)
 {
     _apiCode = apiCode;
 }
示例#28
0
        /// <summary>
        /// 追号投注
        /// </summary>
        private bool CatchBetting(SysUser user, BettingDTO dto, ref ApiCode errorType, int lotteryid, bool ishtml = false)
        {
            var details = dto.BetDetails;


            //获取用户余额
            decimal userAmt     = 0;
            var     userbalance = this.mSysUserBalanceService.GetUserBalance(user.Id);

            if (null != userbalance)
            {
                userAmt = userbalance.UserAmt;//获取用户余额
            }
            int index = 0;

            foreach (var detail in details)
            {
                var radioContent = Ytg.Scheduler.Comm.Bets.RadioContentFactory.CreateInstance(detail.PalyRadioCode);
                if (null == radioContent)
                {
                    errorType = ApiCode.Exception;//服务器错误
                    return(false);
                }
                if (ishtml)
                {
                    detail.BetContent = radioContent.HtmlContentFormart(detail.BetContent);
                }
                //计算总注数
                int betCount = radioContent.TotalBetCount(new BetDetail()
                {
                    BetContent = detail.BetContent
                });
                if (betCount < 0)             //超过指定注数,不允许投注
                {
                    errorType = ApiCode.Fail; //服务器错误
                    return(false);
                }
                //验证投注时间和当前投注期数的时间差,不在时间内,不允许投注
                var issueInfo = this.mLotteryIssueService.Get(lotteryid, detail.IssueCode);
                if (issueInfo == null ||
                    issueInfo.EndSaleTime.Value < DateTime.Now)
                {
                    errorType = ApiCode.Empty;
                    return(false);
                }
                decimal detailMonery = CalculateMonery(betCount, detail.Model, (int)detail.Multiple, lotteryid);
                var     playRadio    = Ytg.Service.Lott.BaseDataCatch.GetPalyTypeRadio().Where(radio => radio.RadioCode == detail.PalyRadioCode).FirstOrDefault();
                if (playRadio == null)
                {
                    errorType = ApiCode.Fail;//服务器错误
                    return(false);
                }

                //追号最大倍数
                int maxMulite = dto.CatchDtos.Max(x => x.Multiple);
                int oldMulite = (int)detail.Multiple;
                detail.Multiple = maxMulite;
                //验证可能中奖的最大金额,若超过该限制,则不允许投注
                if (WinMoneryHelper.GetAutoWinMonery(detail, this.LoginUser) > WinMoneryHelper.GetMaxReboMonery())
                {
                    errorType = ApiCode.NotScope;//超过限额
                    return(false);
                }
                detail.Multiple = oldMulite;//还原初始倍数
                //追号
                string catchNumCode = "c" + Utils.BuilderNum();

                var fstCode = string.Empty;
                //计算本次追号需用的总金额
                decimal sumMonery = CatchIssue(catchNumCode, detailMonery, dto.CatchDtos, lotteryid, ref fstCode);
                if (userAmt < sumMonery)//余额不够本次
                {
                    errorType = ApiCode.NotEnough;
                    return(false);
                }
                userAmt -= sumMonery;

                var bet = new CatchNum()
                {
                    CatchNumCode   = catchNumCode,
                    BetContent     = detail.BetContent,
                    Model          = detail.Model,
                    PalyRadioCode  = detail.PalyRadioCode,
                    PrizeType      = detail.PrizeType,
                    BackNum        = (decimal)(detail.PrizeType == 0 ? user.Rebate : 0),
                    UserId         = user.Id,
                    IsAutoStop     = dto.IsAutoStop,
                    Stauts         = CatchNumType.Runing,
                    SumAmt         = sumMonery,
                    BeginIssueCode = fstCode,
                    CatchIssue     = dto.CatchDtos.Count,
                    BonusLevel     = LoginUser.PlayType == UserPlayType.P1800 ? 1800 : 1700,
                    LotteryCode    = this.LotteryCode,
                    BetCount       = betCount,
                    PostionName    = detail.PostionName,
                    HasState       = betCount <= detail.MaxBetCount ? 1 : 0
                };

                //插入追号记录
                this.mSysCatchNumService.Create(bet);
                //保存用户余额
                // userbalance.UserAmt = userAmt - sumMonery;
                //投注消费记录s
                // this.mSysUserBalanceDetailService.Create(CreateUserBalanceDetial(user.Id, -sumMonery, TradeType.追号扣款, userAmt,bet.CatchNumCode));
                //返点消费记录
                //不计算返点
                //if (detail.PrizeType == 1)
                //  this.mRebateHelper.CatchCalculate(userId, sumMonery, bet.CatchNumCode, mRebateHelper.GetRadioMaxRemo(bet.PalyRadioCode, bet.BonusLevel));
                this.mSysUserBalanceService.UpdateUserBalance(CreateUserBalanceDetial(user.Id, -sumMonery, TradeType.追号扣款, userAmt, bet.CatchNumCode), -sumMonery);

                this.mBetDetailService.Save();//保存状态
                //修改账变

                index++;
            }

            return(true);
        }
 /// <summary>
 /// 失败
 /// </summary>
 /// <param name="code"></param>
 /// <returns></returns>
 public static ApiResult FailResult(ApiCode code)
 {
     return(CreateResult(null, code));
 }
示例#30
0
 private static void Send(ApiCode code, object data, Guid sendTo)
 {
     Room.GetInstance.Send(Packet.Write(code, data.ToJson()), sendTo);
 }