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); } }
/// <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; } }
public static ModelBase Cancel(ApiCode code, string cardOrderId) { var request = GetNewRequest(code, UrlManager.CancelReserve); request.AddParameter("RecordID", cardOrderId); return(RequestClient.DoWithRequest <ModelBase>(request)); }
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)); }
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)); }
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)); }
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 }); }
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); }
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)); }
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); }
/// <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); }
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); }
/// <summary> /// html 版投注处理 /// </summary> private void HtmlAddBetDetails() { /* * loginUserId=63&lotterycode=cqssc&lotteryid=1&play_source=&pmode=2<_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<_total_nums=1<_total_money=2<_trace_if=yes<_trace_stop=yes<_trace_times_margin=1<_trace_margin=50<_trace_times_same=1& * lt_trace_diff=1<_trace_times_diff=2<_trace_count_input=10<_trace_money=20<_trace_issues%5b%5d=20150707011<_trace_issues%5b%5d=20150707012<_trace_issues%5b%5d= * 20150707013<_trace_issues%5b%5d=20150707014<_trace_times_20150707011=1<_trace_times_20150707012=2<_trace_times_20150707013=3<_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); } }
public ApiResult(ApiCode _code, string _msg) { Code = (int)_code; Msg = _msg; }
public ApiException(ApiCode code, string message) : base(message) { this.Code = code; }
public ApiException(ApiCode code) : this(code, "") { }
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); }
public ApiResult(ApiCode code, string msg, T data) { Code = (int)code; Msg = msg; Data = data; }
public ApiResult(ApiCode code) { Code = (int)code; Msg = ""; Data = default(T); }
public ApiResult(ApiCode code, string msg) { Code = (int)code; Msg = msg; Data = default(T); }
/// <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 } }
public ApiResponse(ApiCode apiCode) { _apiCode = apiCode; }
/// <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)); }
private static void Send(ApiCode code, object data, Guid sendTo) { Room.GetInstance.Send(Packet.Write(code, data.ToJson()), sendTo); }