///// <summary> ///// 网站所有者 ///// </summary> //private string webSiteOwner; /// <summary> /// 处理请求 /// </summary> /// <param name="context"></param> public void ProcessRequest(HttpContext context) { context.Response.ContentType = "application/json"; context.Response.Expires = 0; string result = "false"; try { if (bll.IsLogin) { currentUserInfo = bll.GetCurrentUserInfo(); } //webSiteOwner = bll.WebsiteOwner; string Action = context.Request["action"]; //利用反射找到未知的调用的方法 if (!string.IsNullOrEmpty(Action)) { MethodInfo method = this.GetType().GetMethod(Action, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.IgnoreCase); //找到方法BindingFlags.NonPublic指定搜索非公有方法 result = Convert.ToString(method.Invoke(this, new[] { context })); //调用方法 } else { resp.errmsg = "action not exist"; result = Common.JSONHelper.ObjectToJson(resp); } } catch (Exception ex) { resp.errcode = -1; resp.errmsg = ex.ToString(); result = Common.JSONHelper.ObjectToJson(resp); } if (!string.IsNullOrEmpty(context.Request["callback"])) { //返回 jsonp数据 context.Response.Write(string.Format("{0}({1})", context.Request["callback"], result)); } else { //返回json数据 context.Response.Write(result); } }
public void ProcessRequest(HttpContext context) {//DateTime start = DateTime.Now; int pageIndex = Convert.ToInt32(context.Request["pageIndex"]), pageSize = Convert.ToInt32(context.Request["pageSize"]), isGetNoCommentData = Convert.ToInt32(context.Request["isGetNoCommentData"]), isHasCommentAndReplayCount = Convert.ToInt32(context.Request["isHasCommentAndReplayCount"]); string cateId = context.Request["cateId"], rootId = context.Request["root_id"], keyword = context.Request["keyword"], tags = context.Request["tags"], cityCode = context.Request["city"], provinceCode = context.Request["province"], orderby = context.Request["orderby"], type = context.Request["type"], author = context.Request["author"], keyType = context.Request["keyType"], hasStatisticsStr = context.Request["hasStatistics"], hasAuthorStr = context.Request["hasAuthor"], column = context.Request["column"], data_type = context.Request["data_type"], create_start = context.Request["create_start"], create_end = context.Request["create_end"], keyword_author = context.Request["keyword_author"], order_all = context.Request["order_all"], chk_friend = context.Request["chk_friend"], hide_subcount = context.Request["hide_subcount"], hide_replyuser = context.Request["hide_replyuser"], hide_province = context.Request["hide_province"], is_hide = context.Request["is_hide"]; if (orderby == "comment") { orderby = "CommentAndReplayCount desc"; } bool hasStatistics = true; bool hasAuthor = true; bool chkFriend = false; bool hideSubCount = false; bool hideReplyUser = false; bool hideProvince = false; bool isHide = false; bool isForward = false; if (hasStatisticsStr == "0") { hasStatistics = false; } if (hasAuthorStr == "0") { hasAuthor = false; } if (chk_friend == "1") { chkFriend = true; } if (hide_subcount == "1") { hideSubCount = true; } if (hide_replyuser == "1") { hideReplyUser = true; } if (hide_province == "1") { hideProvince = true; } if (is_hide == "all") { isHide = true; } if (data_type == "1") { isForward = true; } if (!string.IsNullOrWhiteSpace(author)) { author = bllUser.GetUserInfoByAutoID(int.Parse(author)).UserID; } currentUserInfo = bll.GetCurrentUserInfo(); var totalCount = 0; var sourceData = this.bll.GetJuActivityList( type, "", out totalCount, pageIndex, pageSize, author, this.currentUserInfo == null ? "" : this.currentUserInfo.UserID, cateId, this.bll.WebsiteOwner, keyword, tags, provinceCode, cityCode, null, isGetNoCommentData > 0, orderby, isHasCommentAndReplayCount > 0, isHide, null, false, column, hasStatistics, hasAuthor, isForward, create_start, create_end, keyword_author == "1", order_all, hideSubCount, hideReplyUser, hideProvince, rootId ); //DateTime dataend = DateTime.Now; List <dynamic> returnList = new List <dynamic>(); foreach (var item in sourceData) { returnList.Add(papi.StructureArticle(item, false, currentUserInfo, chkFriend)); } //DateTime dataStructure = DateTime.Now; apiResp.status = true; apiResp.code = (int)ZentCloud.BLLJIMP.Enums.APIErrCode.IsSuccess; apiResp.result = new { totalcount = totalCount, list = returnList //, //start = start.ToString("yyyy-MM-dd hh:mm:ss.fff"), //dataend = dataend.ToString("yyyy-MM-dd hh:mm:ss.fff"), //dataStructure = dataStructure.ToString("yyyy-MM-dd hh:mm:ss.fff") }; bll.ContextResponse(context, apiResp); }
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; if (bll.IsLogin) { currentUserInfo = bll.GetCurrentUserInfo(); } string activityId = context.Request["activity_id"]; if (string.IsNullOrEmpty(activityId)) { resp.errcode = 1; resp.errmsg = "activity_id 为必填项,请检查"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } JuActivityInfo juInfo = bll.GetJuActivity(int.Parse(activityId), true); if (juInfo == null) { resp.errcode = 4; resp.errmsg = "活动不存在!"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } #region 是否可以报名 if (juInfo.ActivityStatus.Equals(1)) { resp.errcode = 2; resp.errmsg = "活动已停止"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } if (juInfo.MaxSignUpTotalCount > 0)//检查报名人数 { if (juInfo.SignUpTotalCount > (juInfo.MaxSignUpTotalCount - 1)) { resp.errcode = 3; resp.errmsg = "报名人数已满"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } } if (juInfo.ActivityIntegral > 0) { if (currentUserInfo.TotalScore < juInfo.ActivityIntegral) { resp.errcode = 4; resp.errmsg = "您的积分不足"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } } if (juInfo.GuaranteeCreditAcount > 0) { if (currentUserInfo.CreditAcount < juInfo.GuaranteeCreditAcount) { resp.errcode = 6; resp.errmsg = "您的信用金不足"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } } #endregion dicPar = bll.GetRequestParameter(); //string weixinOpenID = null; string activityIdBySignUp = juInfo.SignUpActivityID; string spreadUserId = null; dicPar.TryGetValue("SpreadUserID", out spreadUserId); string strDistinctKeys = null;//检查重复的字段,多个字段用,分隔, //没有此参数默认用手机检查 dicPar.TryGetValue("DistinctKeys", out strDistinctKeys); string monitorPlanID = null; dicPar.TryGetValue("MonitorPlanID", out monitorPlanID); string name = null; dicPar.TryGetValue("Name", out name); string phone = null; dicPar.TryGetValue("Phone", out phone); ActivityInfo activity = bll.Get <ActivityInfo>(string.Format("ActivityID='{0}'", activityIdBySignUp)); #region IP限制 //获取用户IP; string userHostAddress = context.Request.UserHostAddress; var count = DataCache.GetCache(userHostAddress); if (count != null) { int newCount = int.Parse(count.ToString()) + 1; DataCache.SetCache(userHostAddress, newCount); int limitCount = 1000; if (activity != null) { limitCount = activity.LimitCount; } if (newCount >= limitCount) { resp.errcode = 5; resp.errmsg = "您的提交过于频繁,请稍后再试"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } } else { DataCache.SetCache(userHostAddress, 1, DateTime.MaxValue, new TimeSpan(4, 0, 0)); } #endregion #region 活动权限验证 if (juInfo == null) { resp.errcode = 6; resp.errmsg = "活动不存在!"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } if (juInfo.ActivityStatus.Equals(1)) { resp.errcode = 7; resp.errmsg = "活动已关闭!"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } if (activity.IsDelete.Equals(1)) { resp.errcode = 8; resp.errmsg = "活动已删除!"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } #endregion #region 判断必填项 if (string.IsNullOrEmpty(name) || string.IsNullOrEmpty(phone)) { resp.errcode = 9; resp.errmsg = "姓名和手机不能为空!"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } if ((!phone.StartsWith("1")) || (!phone.Length.Equals(11))) { resp.errcode = 10; resp.errmsg = "手机号码无效!"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } #endregion #region 检查自定义必填项 List <ActivityFieldMappingInfo> listRequiredField = bll.GetList <ActivityFieldMappingInfo>(string.Format("ActivityID='{0}' And FieldIsNull=1", activity.ActivityID)); if (listRequiredField.Count > 0) { foreach (var requiredField in listRequiredField) { if (string.IsNullOrEmpty(dicPar.SingleOrDefault(p => p.Key.Equals(string.Format("K{0}", requiredField.ExFieldIndex))).Value)) { resp.errcode = 11; resp.errmsg = string.Format(" {0} 必填", requiredField.MappingName); context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } } } #endregion #region 检查数据格式 //检查数据格式 List <ActivityFieldMappingInfo> activityFieldMapping = bll.GetList <ActivityFieldMappingInfo>(string.Format("ActivityID='{0}'", activity.ActivityID)); foreach (var item in activityFieldMapping) { string value = dicPar.SingleOrDefault(p => p.Key.Equals(string.Format("K{0}", item.ExFieldIndex))).Value; if (string.IsNullOrWhiteSpace(value)) { continue; } //检查数据格式 if (item.FormatValiFunc == "email")//email检查 { if (!ZentCloud.Common.ValidatorHelper.EmailLogicJudge(value)) { resp.errcode = 12; resp.errmsg = string.Format("{0}格式不正确", item.MappingName); context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } } if (item.FormatValiFunc == "url") //url检查 { System.Text.RegularExpressions.Regex regUrl = new System.Text.RegularExpressions.Regex(@"http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?"); //网址 System.Text.RegularExpressions.Match m = regUrl.Match(value); if (!m.Success) { resp.errcode = 13; resp.errmsg = string.Format("{0}格式不正确", item.MappingName); context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } } } #endregion #region 检查是否已经报名 if (!string.IsNullOrEmpty(strDistinctKeys)) { if (!strDistinctKeys.Equals("none"))//自定义检查重复 { System.Text.StringBuilder sb = new System.Text.StringBuilder("1=1 "); string[] distinctKeys = strDistinctKeys.Split(','); foreach (var item in distinctKeys) { sb.AppendFormat("And {0}='{1}' ", item, dicPar.Single(p => p.Key.Equals(item)).Value); } sb.Append(" and IsDelete = 0 "); if (bll.GetCount <ActivityDataInfo>(sb.ToString()) > 0) { resp.errcode = 14; resp.errmsg = "重复的报名!"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } } else//不检查重复 { } } else//默认检查 { if (bll.GetCount <ActivityDataInfo>(string.Format("ActivityID='{0}' And Phone='{1}' and IsDelete = 0 ", activityIdBySignUp, phone)) > 0) { resp.errcode = 15; resp.errmsg = "已经报过名了!"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } } #endregion var newActivityUID = 1001; var lastActivityDataInfo = bll.Get <ActivityDataInfo>(string.Format("ActivityID='{0}' order by UID DESC", activityIdBySignUp)); if (lastActivityDataInfo != null) { newActivityUID = lastActivityDataInfo.UID + 1; } ActivityDataInfo model = bll.ConvertRequestToModel <ActivityDataInfo>(new ActivityDataInfo()); model.UID = newActivityUID; model.SpreadUserID = spreadUserId; model.ActivityID = activityIdBySignUp; if (juInfo.GuaranteeCreditAcount > 0) { if (model.GuaranteeCreditAcount < juInfo.GuaranteeCreditAcount) { resp.errcode = 18; resp.errmsg = string.Format("担保信用金不能少于{0}!", Convert.ToDouble(juInfo.GuaranteeCreditAcount)); context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } } if (!string.IsNullOrEmpty(monitorPlanID)) { model.MonitorPlanID = int.Parse(monitorPlanID); } model.WebsiteOwner = bll.WebsiteOwner; if (bll.IsLogin) { UserInfo curUser = bll.GetCurrentUserInfo(); model.UserId = curUser.UserID; model.WeixinOpenID = curUser.WXOpenId; if (context.Request["limit_userid_signupcount"] == "1")//限制每个登录账号只能报名一次 { if (bll.GetCount <ActivityDataInfo>(string.Format(" UserId='{0}' AND ActivityID={1} AND IsDelete=0 " , model.UserId, juInfo.SignUpActivityID)) > 0) { resp.errcode = 14; resp.errmsg = "重复的报名!"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } } if (context.Request["limit_wxopenid_signupcount"] == "1")//限制每个微信只能报名一次 { if (bll.GetCount <ActivityDataInfo>(string.Format(" UserId='{0}' AND ActivityID={1} AND IsDelete=0 " , model.WeixinOpenID, juInfo.SignUpActivityID)) > 0) { resp.errcode = 14; resp.errmsg = "重复的报名!"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } } } if (bll.Add(model)) { bll.PlusNumericalCol("SignUpCount", juInfo.JuActivityID);//报名数+1 resp.errmsg = "ok"; resp.errcode = 0; resp.isSuccess = true; #region 当ActivityIntegral>0 扣积分 if (juInfo.ActivityIntegral > 0)//扣积分 { currentUserInfo.TotalScore -= juInfo.ActivityIntegral; if (bll.Update(currentUserInfo, string.Format("TotalScore={0}", currentUserInfo.TotalScore), string.Format(" AutoID={0}", currentUserInfo.AutoID)) <= 0) { resp.errcode = 16; resp.errmsg = "扣除用户积分失败"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } else { // BLLJIMP.Model.WBHScoreRecord scoreRecord = new BLLJIMP.Model.WBHScoreRecord(); scoreRecord.Nums = "b55"; scoreRecord.InsertDate = DateTime.Now; scoreRecord.WebsiteOwner = bll.WebsiteOwner; scoreRecord.UserId = currentUserInfo.UserID; scoreRecord.RecordType = "2"; scoreRecord.NameStr = "参加活动:" + juInfo.ActivityName; scoreRecord.ScoreNum = string.Format("-{0}", juInfo.ActivityIntegral); if (!bll.Add(scoreRecord)) { resp.errcode = 17; resp.errmsg = "插入积分记录失败"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } } } #endregion #region 当ActivityIntegral>0 扣信用金 if (juInfo.GuaranteeCreditAcount > 0)//扣积分 { BLLJIMP.BLLUser bllUser = new BLLJIMP.BLLUser(); bllUser.AddUserCreditAcountDetails(currentUserInfo.UserID, "ApplyCost", bllUser.WebsiteOwner, 0 - model.GuaranteeCreditAcount , string.Format("报名【{0}】消耗{1}信用金", juInfo.ActivityName, Convert.ToDouble(model.GuaranteeCreditAcount))); } #endregion } else { resp.errcode = 1; resp.errmsg = "报名失败,请重试或联系管理员!"; } context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); }
protected void Page_Load(object sender, EventArgs e) { try { model = bll.GetJuActivity(int.Parse(Request["id"])); model.PV++; bll.Update(model); txtPraiseNum.Text = model.UpCount.ToString(); try { BLLJIMP.Model.ForwardingRecord frecord = bll.Get <BLLJIMP.Model.ForwardingRecord>(string.Format(" FUserID='{0}' AND RUserID='{1}' AND websiteOwner='{2}' AND TypeName = '文章赞'", bll.GetCurrentUserInfo().UserID, int.Parse(Request["id"]), bll.WebsiteOwner)); if (frecord != null) { zan = true; } #region 加投票功能 if (model.ActivityDescription.Contains("$TOUPIAO@")) { int start = model.ActivityDescription.IndexOf("$TOUPIAO@"); int end = model.ActivityDescription.LastIndexOf("TOUPIAO$"); int length = end - start - 1; string Voteid = model.ActivityDescription.Substring(model.ActivityDescription.IndexOf("$TOUPIAO@") + 1, length).Replace("TOUPIAO@", null); string str = "$TOUPIAO@" + Voteid + "TOUPIAO$"; model.ActivityDescription = model.ActivityDescription.Replace(str, bll.GetTheVoteInfo(Voteid)); } #endregion } catch (Exception) { } } catch (Exception) { Response.End(); } }