public ActionResult ScoreSysUserConsumeListProvide(ScoreConsumeInfo scoreConsumeInfo) { if (!base.HasPermission("guaguaka", PermissionOperate.view)) { if (base.LoginAdmin.KfNumbers.Count == 0) { return(null); } } PagedList <ScoreConsumeInfo> list = _scoreConsumeInfoService.GetConsumeScoreList(scoreConsumeInfo.MpUserId, PageIndex, PageSize); var json = new { total = list.TotalItemCount, rows = (from r in list select new ScoreConsumeInfo() { MpUserId = r.MpUserId, ConsumeType = r.ConsumeType, ConsumePoints = r.ConsumePoints, Summary = r.Summary, ConsumeDateTime = r.ConsumeDateTime, }).ToArray() }; return(Json(json, JsonRequestBehavior.AllowGet)); }
public ActionResult StoreItemExchange(Guid baseId, Guid itemId, string t) { try { if (baseId == Guid.Empty) { return(Json(new { isOK = false, error_code = "ERR_ArgNotExist" })); } if (MpUserID == Guid.Empty) { string rawUrl = "http://wx.ssrcb.com/ScoreSys/StoreItem?id=" + WebHelper.GetGuid("baseId", Guid.Empty); if (string.IsNullOrEmpty(RQuery["openid"])) { return(Json(new { isOK = false, isLogin = true, error_code = "ERR_NotLogin", message = string.Format("https://open.weixin.qq.com/connect/oauth2/authorize?appid={0}&redirect_uri=http://wx.ssrcb.com/mpuser/autologin?refUrl={1}&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect", MpCenterCache.AppID, rawUrl) })); } } ScoreStoreItem scoreStoreItem = _scoreStoreItemServiceService.GetUnique("from ScoreStoreItem where Id='" + itemId.ToString() + "'"); if (scoreStoreItem == null) { return(Json(new { isOK = false, error_code = "ERR_StoreItemNotExist" })); } if (scoreStoreItem.LeftCount <= 0) { return(Json(new { isOK = false, error_code = "ERR_StoreItemScoreRunOut" })); } ScoreUser scoreUser = _scoreUserService.GetUnique("from ScoreUser where MpUserId = '" + MpUserID + "'"); if (scoreUser == null) { return(Json(new { isOK = false, error_code = "ERR_StoreItemUserNotExist" })); } if (scoreUser.CurrentScore < scoreStoreItem.NeedPoint) { return(Json(new { isOK = false, error_code = "ERR_StoreItemScoreNotEnough" })); } string Name = Request.Form["Name"]; string Phone = Request.Form["Phone"]; string Address = Request.Form["Address"]; string ResultID = Request.Form["resultId"]; string isDefaultAddr = Request.Form["DefaultAddr"]; if (isDefaultAddr == "true") { scoreUser.RecvName = Name; scoreUser.RecvPhone = Phone; scoreUser.RecvAddress = Address; _scoreUserService.Update(scoreUser); } ScorePluginResult scorePluginResult = null; if (ResultID == "0") { scorePluginResult = new ScorePluginResult(); scorePluginResult.MobilePhone = Phone; scorePluginResult.Address = Address; scorePluginResult.Name = Name; scorePluginResult.Type = 2; scorePluginResult.CreateDate = DateTime.Now; scorePluginResult.MpUserId = this.MpUserID; scorePluginResult.PluginId = baseId; scorePluginResult.Summary = "申请兑奖【" + scoreStoreItem.PluginName + "】" + scoreStoreItem.AliasName; scorePluginResult.Value = "" + scoreStoreItem.PluginName + "++" + scoreStoreItem.AliasName; _scorePluginResultService.Insert(scorePluginResult); ScoreConsumeInfo scoreConSumeInfo = new ScoreConsumeInfo(); scoreConSumeInfo.ConsumeDateTime = scoreConSumeInfo.CreateDate = DateTime.Now; scoreConSumeInfo.MpUserId = this.MpUserID; scoreConSumeInfo.ConsumeType = (int)(ScoreConsume.Exchange); scoreConSumeInfo.ConsumePoints = -Convert.ToInt32(scoreStoreItem.NeedPoint); scoreConSumeInfo.Summary = "兑换消耗了" + Convert.ToInt32(scoreStoreItem.NeedPoint) + "积分"; _scoreConsumeInfoService.Insert(scoreConSumeInfo); scoreUser.CurrentScore -= scoreStoreItem.NeedPoint; _scoreUserService.Update(scoreUser); return(Json(new { isOK = true, error_code = "ERR_RequireSuccess" })); } else { scorePluginResult = _scorePluginResultService.GetUnique("from ScorePluginResult where MpUserId='" + this.MpUserID.ToString() + "' and Id='" + ResultID.ToString() + "'"); if (scorePluginResult == null) { return(Json(new { isOK = false, error_code = "ERR_ScorePluginResultNotExist" })); } if (scorePluginResult.IsUse == 1) { return(Json(new { isOK = false, error_code = "ERR_AlreadySend" }));//对不起,您已经领取完奖! } scorePluginResult.MobilePhone = Phone; scorePluginResult.Address = Address; scorePluginResult.Name = Name; _scorePluginResultService.Update(scorePluginResult); return(Json(new { isOK = true, error_code = "ERR_ModifySuccess" })); } } catch (Exception ex) { throw new OceanException(ex.Message, ex); } }
public ActionResult PluginsLottery(Guid Id, string t) { try { if (Id == Guid.Empty) { Log4NetImpl.Write("ScoreSYS-PluginLottery:ID is NULL"); return(Json(new { isOK = false, error_code = "ERR_ArgNotExist" })); //message = "参数有误,请检查!" }); } if (MpUserID == Guid.Empty) { string rawUrl = "http://wx.ssrcb.com/ScoreSys/PluginLottery?id=" + WebHelper.GetGuid("Id", Guid.Empty); if (string.IsNullOrEmpty(RQuery["openid"])) { Log4NetImpl.Write("ScoreSYS-PluginLottery:Redirect"); return(Json(new { isOK = false, isLogin = true, error_code = "ERR_NotLogin", message = string.Format("https://open.weixin.qq.com/connect/oauth2/authorize?appid={0}&redirect_uri=http://wx.ssrcb.com/mpuser/autologin?refUrl={1}&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect", MpCenterCache.AppID, rawUrl) })); } } string Score_Plugin_Title = Request.Form["Score_Plugin_Title"]; string Score_Plugin_StartDate = Request.Form["Score_Plugin_StartDate"]; string Score_Plugin_EndDate = Request.Form["Score_Plugin_EndDate"]; string Score_Plugin_UsePoint = Request.Form["Score_Plugin_UsePoint"]; string Score_Plugin_FailsTimes = Request.Form["Score_Plugin_FailsTimes"]; string Score_Plugin_FailsAddOdds = Request.Form["Score_Plugin_FailsAddOdds"]; if (Score_Plugin_Title == "") { return(Json(new { isOK = false, error_code = "ERR_PluginNotExits" })); } if (!string.IsNullOrEmpty(Score_Plugin_StartDate)) { DateTime startDate = TypeConverter.StrToDateTime(Score_Plugin_StartDate); if (startDate > DateTime.Now) { return(Json(new { isOK = false, error_code = "ERR_PluginNotStart" })); } else { if (!string.IsNullOrEmpty(Score_Plugin_EndDate)) { DateTime endDate = TypeConverter.StrToDateTime(Score_Plugin_EndDate); if (endDate < DateTime.Now) { return(Json(new { isOK = false, error_code = "ERR_PluginIsEnd" }));// message = "对不起,抽奖已经结束!" }); } } } } IList <ScoreStoreItem> scoreStoreItems = _scoreStoreItemServiceService.GetList("from ScoreStoreItem where BaseId = '" + Id.ToString() + "'"); scoreStoreItems.OrderBy(storeItems => storeItems.PluginName); ScoreUser scoreUser = _scoreUserService.GetUnique("from ScoreUser where (MpUserId ='" + this.MpUserID.ToString() + "')"); if (scoreUser == null) { return(Json(new { isOK = false, isVertfy = true, error_code = "ERR_UserNotVerify" })); } if (scoreUser.CurrentScore < ViewData.GetInt("Score_Plugin_UsePoint")) { return(Json(new { isOK = false, error_code = "ERR_UserUseOutChance" })); } int prizeItemCount = scoreStoreItems.Count;// TypeConverter.StrToInt(ViewBag.Cst_Plugin_PrizeCount, 12); IList <PrizeGift> prizeGift = new List <PrizeGift>(prizeItemCount); IList <Double> prizeItems = new List <Double>(prizeItemCount); IList <string> prizeItemsName = new List <string>(prizeItemCount); IList <int> prizeAngle = new List <int>(prizeItemCount); prizeItemsName.Add("一"); prizeItemsName.Add("二"); prizeItemsName.Add("三"); prizeItemsName.Add("四"); prizeItemsName.Add("五"); prizeItemsName.Add("六"); prizeItemsName.Add("七"); prizeItemsName.Add("八"); prizeItemsName.Add("九"); prizeItemsName.Add("十"); prizeItemsName.Add("十一"); prizeItemsName.Add("十二"); for (int i = 0; i < prizeItemCount; i++) { ScoreStoreItem storeItem = scoreStoreItems[i]; PrizeGift gift = new PrizeGift(); gift.ID = i; gift.Name = storeItem.PluginName; gift.Alias_Name = storeItem.AliasName; gift.Odds = Convert.ToDouble(storeItem.PrizePercent) / 100; gift.Pic = storeItem.ItemPic; gift.Quantity = storeItem.TotalCount; gift.Leavings_Quantity = storeItem.LeftCount; gift.Angle = Convert.ToInt32(storeItem.PrizeAngle); prizeAngle.Add(gift.Angle); gift.Prize_Name = prizeItemsName[i] + "等奖"; if (!string.IsNullOrEmpty(gift.Alias_Name)) { gift.Prize_Name = gift.Alias_Name; } gift.Has_Gift = 1;// ViewData.GetInt("Cst_Plugin_Items_Has_Gift" + i.ToString()); //gift.Users = ViewData.GetString("Cst_Plugin_Items_SiteUsers" + i.ToString()); //gift.UsersName = ViewData.GetString("Cst_Plugin_Items_SiteUsersName" + i.ToString()); prizeItems.Add(gift.Odds); prizeGift.Add(gift); } prizeItems.OrderBy(d => d); //verifyCodeDetail.LeaveCount = verifyCodeDetail.LeaveCount - 1; //verifyCodeDetail.UseDate = DateTime.Now; //_pluginSceneVerifyCodeDetailService.Update(verifyCodeDetail); int count = _scorePluginResultService.GetCount("from ScorePluginResult where pluginId='" + Id.ToString() + "' and MpUserId='" + this.MpUserID.ToString() + "'"); int tryCount = _scoreConsumeInfoService.GetCount(" from ScoreConsumeInfo where ConsumeType = " + (int)ScoreConsume.Plugins + ""); if (count == 0 && tryCount > Convert.ToInt32(Score_Plugin_FailsTimes)) { PrizeGift _lastGift = prizeGift.Last(); double finalOdds = _lastGift.Odds * (1 + Convert.ToInt32(Score_Plugin_FailsAddOdds)); _lastGift.Odds = finalOdds; prizeItems.RemoveAt(prizeItems.Count - 1); prizeItems.Add(finalOdds); } int result = -1; scoreUser.CurrentScore = scoreUser.CurrentScore - Convert.ToInt32(Score_Plugin_UsePoint);// ViewData.GetInt("Score_Plugin_UsePoint"); scoreUser.LastUpdateDateTime = DateTime.Now; _scoreUserService.Update(scoreUser); #region 更新积分消耗纪录 ScoreConsumeInfo scoreConSumeInfo = new ScoreConsumeInfo(); scoreConSumeInfo.ConsumeDateTime = scoreConSumeInfo.CreateDate = DateTime.Now; scoreConSumeInfo.MpUserId = this.MpUserID; scoreConSumeInfo.ConsumeType = (int)(ScoreConsume.Plugins); scoreConSumeInfo.ConsumePoints = -Convert.ToInt32(Score_Plugin_UsePoint); scoreConSumeInfo.Summary = "抽奖消耗了" + Convert.ToInt32(Score_Plugin_UsePoint) + "积分"; _scoreConsumeInfoService.Insert(scoreConSumeInfo); #endregion result = LotteryUtils.Lottery(prizeItems, prizeGift, prizeItemCount, this.MpUserID, Id); if (result == -1) { return(Json(new { isOK = true, error_code = "ERR_RunOutOfGift" }));//Json(new PrizeGift() { ID = -1, Name = "未中奖", Odds = 0.00d, Pic = "", Quantity = 100000, Angle = 240, Prize_Name = "继续加油" }); } else if (result == -2) { return(Json(new { isOK = true, error_code = "ERR_RunOutOfGift" }));// Json(new PrizeGift() { ID = -2, Name = "未中奖", Odds = 0.00d, Pic = "", Quantity = 100000, Angle = 180, Prize_Name = "继续加油" }); } else if (result == -3) { return(Json(new { isOK = true, error_code = "ERR_RunOutOfGift" }));// Json(new PrizeGift() { ID = -2, Name = "未中奖", Odds = 0.00d, Pic = "", Quantity = 100000, Angle = 180, Prize_Name = "继续加油" }); } else { PrizeGift hasPrizeGift = prizeGift[result]; ScoreStoreItem scoreStoreItem = scoreStoreItems[result]; //ScoreStoreItem scoreStoreItem = _scoreStoreItemServiceService.GetUnique("from ScoreStoreItem where (Id ='" + this.MpUserID.ToString() + "')"); //score hasPrizeGift.Alias_Name = hasPrizeGift.Alias_Name ?? ""; if (scoreStoreItem.LeftCount > 0) { //中奖业务处理 ScorePluginResult pluginSceneResult = new ScorePluginResult(); pluginSceneResult.Address = ""; pluginSceneResult.CreateDate = DateTime.Now; pluginSceneResult.Type = 1; pluginSceneResult.IsUse = 0; pluginSceneResult.MobilePhone = ""; pluginSceneResult.Name = ""; pluginSceneResult.Phone = ""; pluginSceneResult.PluginId = Id; pluginSceneResult.MpUserId = this.MpUserID; pluginSceneResult.SN = ""; pluginSceneResult.UserName = (string.IsNullOrEmpty(this.Name) ? this.NickName : this.Name); if (this.MpUserArr != null) { pluginSceneResult.Summary = "恭喜用户[" + (string.IsNullOrEmpty(this.Name) ? this.NickName : this.Name) + "]获得" + hasPrizeGift.Prize_Name + "[" + hasPrizeGift.Name + "]"; } else { pluginSceneResult.Summary = "恭喜匿名用户获得" + hasPrizeGift.Prize_Name + "[" + hasPrizeGift.Name + "]"; } //pluginSceneResult.Value = "<?xml version=\"1.0\" encoding=\"utf-8\"?><PluginSubmit><Cst_Plugin_ItemIndex>" + result.ToString() + "</Cst_Plugin_ItemIndex><Cst_Plugin_PrizeLevel>" + hasPrizeGift.Prize_Name + "</Cst_Plugin_PrizeLevel><Cst_Plugin_PrizeName>" + hasPrizeGift.Name + "</Cst_Plugin_PrizeName></PluginSubmit>"; pluginSceneResult.Value = hasPrizeGift.Prize_Name + "++" + hasPrizeGift.Name; #region 更新商城数量 scoreStoreItem.LeftCount -= 1; _scoreStoreItemServiceService.Update(scoreStoreItem); #endregion #region 更新中奖纪录 _scorePluginResultService.Insert(pluginSceneResult); #endregion #region 更新虚拟积分纪录 if (scoreStoreItem.VirtualGift > 0) { scoreUser.CurrentScore += scoreStoreItem.VirtualGift; _scoreUserService.Update(scoreUser); ScoreConsumeInfo scoreConSumeInfo2 = new ScoreConsumeInfo(); scoreConSumeInfo2.ConsumeDateTime = scoreConSumeInfo.CreateDate = DateTime.Now; scoreConSumeInfo2.MpUserId = this.MpUserID; scoreConSumeInfo2.ConsumeType = (int)(ScoreConsume.Plugins); scoreConSumeInfo2.ConsumePoints = scoreStoreItem.VirtualGift; scoreConSumeInfo2.Summary = "抽奖中了" + scoreStoreItem.VirtualGift + "积分"; _scoreConsumeInfoService.Insert(scoreConSumeInfo2); } #endregion hasPrizeGift.ResultID = pluginSceneResult.Id; } return(Content(JsonConvert.SerializeObject(hasPrizeGift), "text/javascript")); } } catch (Exception ex) { throw new OceanException(ex.Message, ex); } }
public ActionResult Trans(Guid id, string TransName, string TransPhone, int TransScore) { try { if (MpUserID == Guid.Empty) { string rawUrl = "http://wx.ssrcb.com/ScoreSys/Index"; if (string.IsNullOrEmpty(RQuery["openid"])) { return(Json(new { isOK = false, isLogin = true, error_code = "ERR_NotLogin", message = string.Format("https://open.weixin.qq.com/connect/oauth2/authorize?appid={0}&redirect_uri=http://wx.ssrcb.com/mpuser/autologin?refUrl={1}&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect", MpCenterCache.AppID, rawUrl) })); } } ScoreUser scoreUser = _scoreUserService.GetUnique("from ScoreUser where (MpUserId ='" + this.MpUserID.ToString() + "')"); if (scoreUser == null) { return(Json(new { isOK = false, error_code = "ERR_UserHadBind" })); } ScoreUser scoreTransUser = _scoreUserService.GetUnique("from ScoreUser where (ClientPhone='" + TransPhone.Trim() + "' and ClientName = '" + TransName + "')"); if (scoreTransUser == null) { return(Json(new { isOK = false, error_code = "ERR_UserNotExist" })); } if (scoreUser.ClientPhone == scoreTransUser.ClientPhone) { return(Json(new { isOK = false, error_code = "ERR_TransSamePerson" })); } if (scoreUser.CurrentScore < TransScore) { return(Json(new { isOK = false, error_code = "ERR_ScoreNotEnough" })); } scoreUser.CurrentScore -= TransScore; _scoreUserService.Update(scoreUser); //转出积分记录 ScoreConsumeInfo scoreConsumeDetail = new ScoreConsumeInfo(); scoreConsumeDetail.MpUserId = this.MpUserID; scoreConsumeDetail.ConsumeType = (int)ScoreConsume.Trans; scoreConsumeDetail.ConsumePoints = -TransScore; scoreConsumeDetail.CreateDate = DateTime.Now; scoreConsumeDetail.ConsumeDateTime = DateTime.Now; scoreConsumeDetail.Summary = "转给[" + TransName + TransPhone + "]" + TransScore + "积分"; _scoreConsumeInfoService.Insert(scoreConsumeDetail); scoreTransUser.CurrentScore += TransScore; _scoreUserService.Update(scoreTransUser); //转入积分记录 ScoreConsumeInfo transScoreConsumeDetail = new ScoreConsumeInfo(); transScoreConsumeDetail.MpUserId = scoreTransUser.MpUserId; transScoreConsumeDetail.ConsumeType = (int)ScoreConsume.Trans; transScoreConsumeDetail.ConsumePoints = TransScore; transScoreConsumeDetail.CreateDate = DateTime.Now; transScoreConsumeDetail.ConsumeDateTime = DateTime.Now; transScoreConsumeDetail.Summary = "从[" + scoreUser.ClientName + scoreUser.ClientPhone + "]获得转入" + TransScore + "积分"; _scoreConsumeInfoService.Insert(transScoreConsumeDetail); return(Json(new { isOK = true, error_code = "ERR_OK", currentScore = scoreUser.CurrentScore, scoreDetail = scoreConsumeDetail.ConsumeDateTime + scoreConsumeDetail.Summary })); } catch (System.Exception ex) { Log4NetImpl.Write("ScoreSys_Trans:" + ex.Message); } return(View()); }
public ActionResult Bind(Guid id, string Name, string Phone, string RecomendName, string RecomendPhone) { try { if (MpUserID == Guid.Empty) { string rawUrl = "http://wx.ssrcb.com/ScoreSys/Index"; if (string.IsNullOrEmpty(RQuery["openid"])) { return(Json(new { isOK = false, isLogin = true, error_code = "ERR_NotLogin", message = string.Format("https://open.weixin.qq.com/connect/oauth2/authorize?appid={0}&redirect_uri=http://wx.ssrcb.com/mpuser/autologin?refUrl={1}&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect", MpCenterCache.AppID, rawUrl) })); } } ScoreUser scoreUser = _scoreUserService.GetUnique("from ScoreUser where (ClientPhone='" + Phone.Trim() + "' and ClientName = '" + Name + "') or (MpUserId ='" + this.MpUserID.ToString() + "')"); if (scoreUser != null) { return(Json(new { isOK = false, isVertfy = true, error_code = "ERR_UserHadBind" })); } scoreUser = new ScoreUser(); scoreUser.ClientName = Name.Trim(); scoreUser.ClientPhone = Phone.Trim(); scoreUser.RecommendName = RecomendName.Trim(); scoreUser.RecommendPhone = RecomendPhone.Trim(); scoreUser.MpUserId = MpUserID; scoreUser.RecommendScore = 0; scoreUser.CurrentScore = bindScore; scoreUser.DealScore = 0; _scoreUserService.Insert(scoreUser); //首次绑定获得积分 ScoreConsumeInfo scoreConsumeDetail = new ScoreConsumeInfo(); scoreConsumeDetail.MpUserId = this.MpUserID; scoreConsumeDetail.ConsumeType = (int)ScoreConsume.Bind; scoreConsumeDetail.ConsumePoints = bindScore; scoreConsumeDetail.CreateDate = DateTime.Now; scoreConsumeDetail.ConsumeDateTime = DateTime.Now; scoreConsumeDetail.Summary = "首次绑定获得" + bindScore + "积分"; _scoreConsumeInfoService.Insert(scoreConsumeDetail); ScoreUser recommendScoreUser = _scoreUserService.GetUnique("from ScoreUser where ClientPhone='" + RecomendPhone.Trim() + "'"); if (recommendScoreUser != null) { ScoreConsumeInfo recommendScoreConsumeDetail = new ScoreConsumeInfo(); recommendScoreConsumeDetail.MpUserId = recommendScoreUser.MpUserId; recommendScoreConsumeDetail.ConsumeType = (int)ScoreConsume.Recommend; recommendScoreConsumeDetail.ConsumePoints = recommendScore; recommendScoreConsumeDetail.CreateDate = DateTime.Now; recommendScoreConsumeDetail.ConsumeDateTime = DateTime.Now; recommendScoreConsumeDetail.Summary = "推荐用户[" + Phone + "]获得" + recommendScore + "积分"; _scoreConsumeInfoService.Insert(recommendScoreConsumeDetail); recommendScoreUser.RecommendScore += recommendScore; recommendScoreUser.CurrentScore += recommendScore; _scoreUserService.Update(recommendScoreUser); } return(Json(new { isOK = true, error_code = "ERR_OK", currentScore = scoreUser.CurrentScore, scoreDetail = scoreConsumeDetail.ConsumeDateTime + scoreConsumeDetail.Summary })); } catch (System.Exception ex) { Log4NetImpl.Write("ScoreSys_Bind:" + ex.Message); } return(View()); }