public void ProcessRequest(HttpContext context) { RequestModel requestModel = new RequestModel(); try { requestModel = bllScoreDefine.ConvertRequestToModel <RequestModel>(requestModel); } catch (Exception ex) { resp.errcode = (int)APIErrCode.PrimaryKeyIncomplete; resp.errmsg = ex.Message; bllScoreDefine.ContextResponse(context, resp); return; } KeyVauleDataInfo ScoreDefineData = bllkeyValueData.GetKeyData("ScoreDefineType", requestModel.score_type, "Common"); if (ScoreDefineData == null) { resp.errcode = (int)APIErrCode.OperateFail; resp.errmsg = "规则类型暂不支持"; bllScoreDefine.ContextResponse(context, resp); return; } ScoreDefineInfo scoreDefineInfo = new ScoreDefineInfo(); scoreDefineInfo.Score = requestModel.score; scoreDefineInfo.DayLimit = requestModel.day_limit; scoreDefineInfo.Description = requestModel.description; scoreDefineInfo.WebsiteOwner = bllScoreDefine.WebsiteOwner; scoreDefineInfo.CreateUserId = currentUserInfo.UserID; scoreDefineInfo.IsHide = requestModel.ishide; scoreDefineInfo.InsertTime = DateTime.Now; scoreDefineInfo.OrderNum = requestModel.order_num; scoreDefineInfo.Name = ScoreDefineData.DataValue; scoreDefineInfo.ScoreType = ScoreDefineData.DataKey; if (bllScoreDefine.PutScoreDefine(scoreDefineInfo)) { resp.errcode = (int)APIErrCode.IsSuccess; resp.isSuccess = true; } else { resp.errcode = (int)APIErrCode.OperateFail; resp.errmsg = "提交失败"; } bllScoreDefine.ContextResponse(context, resp); }
/// <summary> /// 添加编辑积分规则 /// </summary> /// <param name="context"></param> /// <returns></returns> private string PutDefine(HttpContext context) { int scoreId = int.Parse(context.Request["score_id"]); int score = int.Parse(context.Request["score"]); int limit = int.Parse(context.Request["limit"]); int totalLimit = int.Parse(context.Request["total_limit"]); string summary = context.Request["summary"]; string type = context.Request["type"]; int hide = int.Parse(context.Request["hide"]); int order = int.Parse(context.Request["order"]); string ex1 = context.Request["ex1"]; string scoreEvent = context.Request["score_event"]; string baseRateValue = context.Request["base_rate_value"]; string baseRateScore = context.Request["base_rate_score"]; KeyVauleDataInfo scoreDefineData = bllkeyValueData.GetKeyData("ScoreDefineType", type, bllkeyValueData.WebsiteOwner); if (scoreDefineData == null) { scoreDefineData = bllkeyValueData.GetKeyData("ScoreDefineType", type, "Common"); if (scoreDefineData == null) { resp.Status = (int)APIErrCode.OperateFail; resp.Msg = "规则类型暂不支持"; return(Common.JSONHelper.ObjectToJson(resp)); } } ScoreDefineInfo scoreDefineInfo = new ScoreDefineInfo(); scoreDefineInfo.ScoreId = scoreId; scoreDefineInfo.Score = score; scoreDefineInfo.DayLimit = limit; scoreDefineInfo.TotalLimit = totalLimit; scoreDefineInfo.Description = summary; scoreDefineInfo.WebsiteOwner = bllUser.WebsiteOwner; scoreDefineInfo.CreateUserId = this.currentUserInfo.UserID; scoreDefineInfo.IsHide = hide; scoreDefineInfo.InsertTime = DateTime.Now; scoreDefineInfo.OrderNum = order; scoreDefineInfo.Name = scoreDefineData.DataValue; scoreDefineInfo.ScoreType = scoreDefineData.DataKey; scoreDefineInfo.Ex1 = ex1; scoreDefineInfo.ScoreEvent = scoreEvent; if (!string.IsNullOrEmpty(baseRateValue)) { scoreDefineInfo.BaseRateValue = decimal.Parse(baseRateValue); } if (!string.IsNullOrEmpty(baseRateScore)) { scoreDefineInfo.BaseRateScore = decimal.Parse(baseRateScore); } if (bllScoreDefine.PutScoreDefine(scoreDefineInfo)) { resp.Status = 1; resp.Msg = "提交成功"; } else { resp.Status = -1; resp.Msg = "提交失败"; } return(Common.JSONHelper.ObjectToJson(resp)); }
/// <summary> /// 积分事件触发 /// </summary> /// <param name="websiteOwner">站点所有者</param> /// <param name="openId">openId</param> /// <param name="value">原始值</param> /// <param name="scoreEvent">事件名称</param> /// <param name="remark">备注</param> /// <param name="msg">提示信息</param> /// <param name="addScore">增加积分</param> /// <param name="showName">显示名称</param> /// <returns></returns> public bool EventUpdate(string websiteOwner, string openId, decimal value, string scoreEvent, string remark, out string msg, out int addScore, string showName = "", string serialNumber = "") { int score = 0;//最终添加的积分 addScore = 0; msg = "";//返回消息 BLLApiLog bllApiLog = new BLLApiLog(); BLLScoreDefine bllScoreDefine = new BLLScoreDefine(); ScoreDefineInfo scoreDefineInfo = bllScoreDefine.GetScoreDefineInfoByScoreEvent(scoreEvent, WebsiteOwner); if (scoreDefineInfo == null) { msg = "积分规则不存在,请检查"; return(false); } if (scoreDefineInfo.IsHide == 1) { msg = "积分规则已停用"; return(false); } UserInfo userInfo = bllUser.GetUserInfoByOpenId(openId); if (userInfo == null && (websiteOwner == "dongwu" || websiteOwner == "dongwudev")) { userInfo = bllUser.CreateNewUser(websiteOwner, openId, showName); } if (userInfo == null) { msg = "openid不存在,请检查"; return(false); } List <ScoreDefineInfoExt> scoreDefineEx = bllScoreDefine.GetScoreDefineExList(scoreDefineInfo.ScoreId); //优先级: 扩展->基本比例-一般 if (scoreDefineEx != null && scoreDefineEx.Count > 0) { DateTime dtNow = DateTime.Now; var item = scoreDefineEx.FirstOrDefault(p => p.BeginTime <= DateTime.Now && p.EndTime >= DateTime.Now); if (item != null) { //score = (double)Math.Round(value / (item.RateValue / item.RateScore), 2); score = (int)Math.Ceiling(value / (item.RateValue / item.RateScore)); } } if (score == 0) { if (scoreDefineInfo.BaseRateScore > 0 && scoreDefineInfo.BaseRateValue > 0)//基础比例 { //score = (double)Math.Round(value / (scoreDefineInfo.BaseRateValue / scoreDefineInfo.BaseRateScore), 2); score = (int)Math.Ceiling(value / (scoreDefineInfo.BaseRateValue / scoreDefineInfo.BaseRateScore)); } } if (score == 0) { score = (int)scoreDefineInfo.Score; } //if (score == 0) //{ // msg = "增加积分不能为0"; // return false; //} if (scoreDefineInfo.DayLimit > 0) { double nTotal = bllUser.GetUserDayScoreSUMEvent(userInfo.UserID, scoreEvent, true); if (scoreDefineInfo.DayLimit < nTotal + score) { msg = scoreDefineInfo.ScoreEvent + "每日所得积分超限制"; return(false); } } if (scoreDefineInfo.TotalLimit > 0) { double nTotal = bllUser.GetUserDayScoreSUMEvent(userInfo.UserID, scoreEvent, false); if (scoreDefineInfo.TotalLimit < nTotal + score) { msg = scoreDefineInfo.ScoreEvent + "所得总积分超限制"; return(false); } } //积分记录 UserScoreDetailsInfo scoreModel = new UserScoreDetailsInfo(); scoreModel.AddNote = !string.IsNullOrEmpty(remark) ? remark : scoreDefineInfo.Description; scoreModel.AddTime = DateTime.Now; scoreModel.Score = score; scoreModel.UserID = userInfo.UserID; scoreModel.OpenId = userInfo.WXOpenId; scoreModel.ScoreType = scoreDefineInfo.ScoreType; scoreModel.WebSiteOwner = WebsiteOwner; scoreModel.ScoreEvent = scoreEvent; scoreModel.SerialNumber = serialNumber; BLLTransaction tran = new BLLTransaction(); try { int historyTotalScore = 0; if (score > 0) { historyTotalScore = score; } string sql = string.Format("TotalScore+={0},HistoryTotalScore+={1}", score, historyTotalScore); if (!string.IsNullOrEmpty(showName)) { sql += string.Format(",TrueName='{0}'", showName); } if (Update(userInfo, sql, string.Format(" AutoId={0}", userInfo.AutoID), tran) == 1 && Add(scoreModel, tran)) { #region 日志记录 if (!bllApiLog.Add(userInfo.WebsiteOwner, Enums.EnumApiModule.ScoreEvent, string.Format("积分事件,事件名称:{0}原始值{1}积分值:{2}", scoreDefineInfo.ScoreEvent, value, score), userInfo.WXOpenId, userInfo.UserID, serialNumber)) { msg = "日志记录失败"; tran.Rollback(); return(false); } #endregion tran.Commit(); addScore = score; return(true); } else { msg = "操作失败"; tran.Rollback(); return(false); } } catch (Exception ex) { msg = ex.ToString(); tran.Rollback(); return(false); } }