/// <summary> /// 奖品还未领取 /// ReceiveTime=null,openId=value,activityId=value /// </summary> /// <param name="openId"></param> /// <param name="activityId"></param> /// <returns>奖品未领 返回model 否则返回null</returns> public TRP_AwardReceive hadTakeAward(string openId, string activityId) { TRP_AwardReceive model = null; try { Expression <Func <TRP_AwardReceive, bool> > exp = a => 1 == 1; Expression <Func <TRP_AwardReceive, bool> > tempexp = a => 1 == 1; tempexp = a => a.ReceiveTime.Equals(null); exp = CompileLinqSearch.AndAlso <TRP_AwardReceive>(tempexp, exp); if (!string.IsNullOrWhiteSpace(openId)) { tempexp = a => a.OpenId == openId.Trim(); //多条件拼装 exp = CompileLinqSearch.AndAlso <TRP_AwardReceive>(tempexp, exp); } if (!string.IsNullOrWhiteSpace(activityId)) { int efId = Convert.ToInt32(activityId); tempexp = a => a.ActivityId == efId; exp = CompileLinqSearch.AndAlso <TRP_AwardReceive>(tempexp, exp); } var list = idal.FindBy(exp).ToList(); if (list.Count > 0) { model = list.FirstOrDefault(); } } catch (Exception ex) { Logger.Error(string.Format("判断奖品是否已领取异常,异常信息{0}", ex.ToString())); } return(model); }
/// <summary> /// 获取实体 /// </summary> /// <param name="id"></param> /// <returns></returns> public TRP_AwardReceive GetByAwardDetailId(string id) { TRP_AwardReceive model = null; try { var efid = 0; Expression <Func <TRP_AwardReceive, bool> > exp = a => 1 == 1; if (!string.IsNullOrWhiteSpace(id)) { efid = Convert.ToInt32(id); exp = a => a.AwardDetailId == efid; } model = idal.FindBy(exp).ToList()[0]; } catch (Exception ex) { Logger.Error(string.Format("异常信息:{0},id:{1}", ex.ToString(), id)); } return(model); }
/// <summary> /// 发现金 /// </summary> /// <returns></returns> public ActionResult GiveMoney(RequestModel request) { ActionResult empty = new EmptyResult(); try { //扫码计数-所有 scanCountDi.getBll().CountByNameAndId(request.activityId, request.activityName); #region 数据库日志记录 公共部分 TRP_ClientLog entity = new TRP_ClientLog(); entity.CreateTime = DateTime.Now; entity.DeleteMark = false; entity.Enable = true; entity.PageUrl = HttpContext.Request.Url.AbsoluteUri ?? "http://www.chinazhihuiping.com/wxredpackets/ReGaoPark/GiveMoney"; entity.IPAddress = HttpContext.Request.UserHostAddress ?? "127.0.0.1"; entity.ActivityId = Convert.ToInt32(request.activityId); #endregion //获取微信用户信息 wxUserInfoModel wxUser = GetWxUserInfo(request.code); if (wxUser == null) { Response.Redirect(request.url + "&flag=1"); return(empty); } //微信用户openid string openid = wxUser.Openid; //保存微信信息 if (!isExistOpenId(wxUser.Openid)) { //保存用户微信信息 saveUserInfo(wxUser); } TRP_AwardReceive receivedModel = null; #region 今天已参加活动 if (isAttendToday(request.activityId, wxUser.Openid)) { //判断奖品是否已领 receivedModel = awardDi.getBll().hadTakeAward(wxUser.Openid, request.activityId); #region 奖品已核销 //奖品已领 if (receivedModel == null) { Response.Redirect(request.url + "&flag=1"); return(empty); } #endregion #region 奖品还未核销 //奖品还未领取 else { //获取奖品ID int string awardId = receivedModel.AwardDetailId.ToString(); //获取奖品详情 TRP_AwardDetail detailModel = detailDi.getBll().GetEntityById(awardId); //奖品名称 string awardsName = ""; //加密奖品id string ecodeAwardId = DESEncrypt.Encrypt(awardId, _key); if (detailModel != null) { //奖品名称 awardsName = detailModel.AwardName; } else { Response.Redirect(request.url + "&flag=1"); return(empty); } //奖品类型 if (!string.IsNullOrWhiteSpace(awardsName)) { GiveCash(awardsName, wxUser.Openid, request); } else { Response.Redirect(request.url + "&flag=1"); return(empty); } entity.Description = string.Format("用户在{0}点击红包,现金红包(为重复扫码,上次未核销奖品)", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); entity.PageDesc = "实物扫码,上次未核销奖品"; entity.ActivityId = Convert.ToInt32(request.activityId); logDi.getBll().SaveLog(entity); return(View("GiveMoney")); } #endregion } #endregion #region 今天还未参加活动 则请求奖品 AwardsInfoModel awardsModel = new AwardsInfoModel(); //请求奖品 awardsModel = GetAwardsInfo(request.activityId); //奖品实体为null if (awardsModel == null) { Response.Redirect(request.url + "&flag=1"); return(empty); } //奖品实体的类型为null if (awardsModel.Class != null) { //奖品实体的类型为"" if (awardsModel.Class == "") { Response.Redirect(request.url + "&flag=1"); return(empty); } } #endregion //发钱 if (GiveCash(awardsModel.Class, openid, request)) { //保存领奖信息-测试 saveScanInfo(wxUser.Openid, awardsModel.id); saveUserAwardReceiveInfo(wxUser.Openid, awardsModel.id); return(View("GiveMoney")); } else { Response.Redirect(request.url + "&flag=1"); return(empty); } } catch (Exception ex) { Response.Redirect(request.url); Common.Helper.Logger.Info(string.Format("获取用户微信Openid,发现金异常,异常信息:{0}", ex.ToString())); return(empty); } }