/// <summary> /// 通过手机号码领取 /// </summary> /// <param name="phone"></param> /// <param name="activityid"></param> /// <param name="awardid"></param> /// <returns></returns> public PhoneQueryModel SavePhone(string phone, string activityid, string awardid) { PhoneQueryModel model = null; bool success = false; try { DynamicParameters param = new DynamicParameters(); param.Add("ActivityId", activityid); param.Add("AwardDetailId", awardid); string querysql = @"SELECT A.ActivityId,A.AwardDetailId,C.AwardName,C.ReceiveImage, A.ReceiveTime,A.SubmitTime,A.Phone,A.OpenId FROM TRP_AwardReceive A LEFT JOIN TRP_Award B ON A.AwardId=B.Id LEFT JOIN TRP_AwardUrl C ON B.AwardName=C.AwardName WHERE A.ActivityId=@ActivityId and A.Phone=@Phone"; param.Add("Phone", phone); param.Add("SubmitTime", DateTime.Now); string updatesql = @"UPDATE TRP_AwardReceive SET Phone=@Phone,SubmitTime=@SubmitTime WHERE AwardDetailId=@AwardDetailId and ActivityId=@ActivityId"; success = idal.ExcuteNonQuery <TRP_AwardReceive>(updatesql, param, false) > 0; model = idal.FindOne <PhoneQueryModel>(querysql, param, false); } catch (Exception ex) { Logger.Error(string.Format("根据手机号码领取奖品,异常信息:{0},phone:{1},活动id:{2}", ex.ToString(), phone, activityid)); } return(model); }
/// <summary> /// 通过手机号码领取 /// </summary> /// <param name="phone"></param> /// <param name="activityid"></param> /// <param name="awardid"></param> /// <returns></returns> public PhoneQueryModel SavePhone(string phone, string activityid, string awardid, ref string return_code, ref string msg) { PhoneQueryModel model = null; bool success = false; try { DynamicParameters param = new DynamicParameters(); param.Add("ActivityId", activityid); string querysql = @"SELECT A.ActivityId,A.AwardDetailId,C.AwardName,C.ReceiveImage, A.ReceiveTime,A.SubmitTime,A.Phone,A.OpenId FROM TRP_AwardReceive A LEFT JOIN TRP_Award B ON A.AwardId=B.Id LEFT JOIN TRP_AwardUrl C ON B.AwardName=C.AwardName WHERE A.ActivityId=@ActivityId and A.Phone=@Phone"; param.Add("Phone", phone); //根据活动id与手机号码查询 model = idal.FindOne <PhoneQueryModel>(querysql, param, false); param.Add("AwardDetailId", awardid); if (model != null) { if (model.Phone == phone) { return_code = "ATTEND"; } else { return_code = "HAD_RECEIVE"; } } //第一次参加 else { string updatesql = @"UPDATE TRP_AwardReceive SET Phone=@Phone WHERE AwardDetailId=@AwardDetailId and ActivityId=@ActivityId"; success = idal.ExcuteNonQuery <TRP_AwardReceive>(updatesql, param, false) > 0; //根据活动id与手机号码查询 model = idal.FindOne <PhoneQueryModel>(querysql, param, false); return_code = "SUCCESS"; } } catch (Exception ex) { Logger.Error(string.Format("根据手机号码领取奖品,异常信息:{0},phone:{1},活动id:{2}", ex.ToString(), phone, activityid)); } return(model); }
public ResponseResult ReceiveByPhone([FromBody] JObject data) { string msg = ""; //返回实体 ResponseResult result = new ResponseResult(); if (data["phone"] != null && data["activityid"] != null && data["awardid"] != null) { TRP_AwardReceive_BLL bll = TRP_AwardReceive_BLL.getInstance(); string return_code = ""; string phone = data["phone"].ToString(); string activityid = data["activityid"].ToString(); string awardid = data["awardid"].ToString(); PhoneQueryModel model = bll.SavePhone(phone, activityid, awardid, ref return_code, ref msg); if (model != null) { result.return_code = return_code; result.return_msg = ""; result.return_info = model; RecordLog(activityid, string.Format("用户参与游戏:{0},获取奖品:{1},用户扫码领取,输入手机号码:{2},时间:{3}", "【老虎机】", model.AwardName, phone, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")), "用户参与游戏:【老虎机】,获取奖品,扫码进入", HttpContext.Current.Request.UserHostAddress, HttpContext.Current.Request.Url.AbsoluteUri, model.ReceiveImage); } else { result.return_code = return_code; result.return_msg = ""; result.return_info = null; } } else { result.return_code = "ERROR"; result.return_msg = "参数错误"; result.return_info = null; } return(result); }
public ResponseResult GetAward(string activityid, string awardid) { string msg = ""; //返回实体 ResponseResult result = new ResponseResult(); if (!string.IsNullOrWhiteSpace(activityid) && !string.IsNullOrWhiteSpace(awardid)) { TRP_AwardReceive_BLL bll = TRP_AwardReceive_BLL.getInstance(); string return_code = ""; PhoneQueryModel model = bll.GetAward(activityid, awardid, ref return_code, ref msg); if (return_code == "SUCCESS") { result.return_code = return_code; result.return_info = model; RecordLog(activityid, string.Format("用户参与游戏:{0},获取奖品:{1},用户扫码领取,时间:{2}", "【老虎机】", model.AwardName, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")), "用户参与游戏:【老虎机】,获取奖品,扫码进入", HttpContext.Current.Request.UserHostAddress, HttpContext.Current.Request.Url.AbsoluteUri, model.ReceiveImage); } else { result.return_code = return_code; result.return_info = null; } } else { result.return_code = "ERROR"; result.return_msg = "参数错误"; result.return_info = null; } result.return_msg = msg; return(result); }
/// <summary> /// 获取flash前端已经请求过的奖品 /// </summary> /// <param name="activityid"></param> /// <param name="awardid"></param> /// <param name="return_code"></param> /// <param name="msg"></param> /// <returns></returns> public PhoneQueryModel GetAward(string activityid, string awardid, ref string return_code, ref string msg) { PhoneQueryModel model = null; try { DynamicParameters param = new DynamicParameters(); param.Add("ActivityId", activityid); param.Add("AwardDetailId", awardid); string querysql = @"SELECT A.ActivityId,A.AwardDetailId,C.AwardName,C.ReceiveImage, A.ReceiveTime,A.SubmitTime,A.Phone,A.OpenId FROM TRP_AwardReceive A LEFT JOIN TRP_Award B ON A.AwardId=B.Id LEFT JOIN TRP_AwardUrl C ON B.AwardName=C.AwardName WHERE A.ActivityId=@ActivityId and A.AwardDetailId=@AwardDetailId"; model = idal.FindOne <PhoneQueryModel>(querysql, param, false); return_code = "SUCCESS"; //奖品已回收 if (model == null) { return_code = "HAD_RECYCLE"; } //奖品还存在 else { //奖品已输入手机号码 if (model.Phone != null) { //奖品已领取 return_code = "HAD_RECEIVED"; } else { //领取时间不为空 二维码已扫 if (model.SubmitTime != null) { return_code = "HAD_RECEIVED"; } //领取时间为空 二维码置为已扫 else { param.Add("SubmitTime", DateTime.Now); string updatesql = @"UPDATE TRP_AwardReceive SET SubmitTime=@SubmitTime WHERE AwardDetailId=@AwardDetailId and ActivityId=@ActivityId"; idal.ExcuteNonQuery <TRP_AwardReceive>(updatesql, param, false); } } } } catch (Exception ex) { return_code = "FAIL"; msg = "SERVER_ERROR"; Logger.Error(string.Format("通过活动id与奖品id检索异常,异常信息:{0},活动id:{1},奖品id:{2}", ex.ToString(), activityid, awardid)); } return(model); }
/// <summary> /// 通过电话号码和活动id发奖 /// </summary> /// <param name="phone"></param> /// <param name="activityid"></param> /// <param name="return_code"></param> /// <param name="msg"></param> /// <returns></returns> public PhoneQueryModel GetAwards(string phone, string activityid, ref string return_code, ref string msg) { lock (asyncLock) { PhoneQueryModel model = null; try { DynamicParameters param = new DynamicParameters(); param.Add("ActivityId", activityid); param.Add("Phone", phone); string querysql = @"SELECT A.ActivityId,A.AwardDetailId,C.AwardName,C.ReceiveImage, A.ReceiveTime,A.SubmitTime,A.Phone,A.OpenId FROM TRP_AwardReceive A LEFT JOIN TRP_Award B ON A.AwardId=B.Id LEFT JOIN TRP_AwardUrl C ON B.AwardName=C.AwardName WHERE A.ActivityId=@ActivityId and A.Phone=@Phone"; model = idal.FindOne <PhoneQueryModel>(querysql, param, false); //首次参加活动 if (model == null) { return_code = "FIRST_TIME"; //请求奖品 AwardsInfoModel awardsModel = GetAwardsInfo(activityid); if (string.IsNullOrWhiteSpace(awardsModel.Class)) { Initialize(activityid); //奖品初始化 awardsModel = GetAwardsInfo(activityid); } if (awardsModel != null && string.IsNullOrWhiteSpace(awardsModel.Class)) { return_code = "NO_AWARDS"; } else { //解密奖品详情id var detailid = DESEncrypt.Decrypt(awardsModel.id, _key); //领奖 model = SavePhone(phone, activityid, detailid); } } else { //已参加活动,但是还未领取 if (model.ReceiveTime == null) { return_code = "WAIT_RECEIVE"; } //已参加活动,且已领取 else { return_code = "ATTENDED"; } } } catch (Exception ex) { return_code = "FAIL"; msg = "SERVER_ERROR"; Logger.Error(string.Format("通过电话号码和活动id检索异常,异常信息:{0},phone:{1},活动id:{2}", ex.ToString(), phone, activityid)); } return(model); } }
public ResponseResult GetAwardByPhone([FromBody] JObject data) { string msg = ""; //返回实体 ResponseResult result = new ResponseResult(); if (data["phone"] != null && data["activityid"] != null) { TRP_AwardReceive_BLL bll = TRP_AwardReceive_BLL.getInstance(); string phone = data["phone"].ToString(); string activityid = data["activityid"].ToString(); string return_code = ""; //1.根据手机号码和活动id判断是否参与情况 PhoneQueryModel model = bll.GetAwards(phone, activityid, ref return_code, ref msg); if (return_code == "FIRST_TIME") { result.return_code = return_code; result.return_info = model; RecordLog(activityid, string.Format("【首次参与】用户输入手机号码:{0},获取奖品,时间:{1}", phone, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")), "输入手机号码,首次参与", HttpContext.Current.Request.UserHostAddress, HttpContext.Current.Request.Url.AbsoluteUri, model.ReceiveImage); } // 1.1第一次参加,则请求奖品,填充手机号码 // 1.2已经参加,奖品已领取 else if (return_code == "ATTENDED") { result.return_code = return_code; result.return_info = null; RecordLog(activityid, string.Format("【已领取】用户输入相同手机号码:{0},奖品已领取,提示已参加活动,时间:{1}", phone, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")), "输入相同手机号码,再次参与,提示已参加活动", HttpContext.Current.Request.UserHostAddress, HttpContext.Current.Request.Url.AbsoluteUri, model.ReceiveImage); } // 1.3已经参加,奖品还未领取 else if (return_code == "WAIT_RECEIVE") { result.return_code = return_code; result.return_info = model; RecordLog(activityid, string.Format("【再次参与】用户输入相同手机号码:{0},获取未领取奖品,时间:{1}", phone, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")), "输入相同手机号码,再次参与,获取未领取奖品", HttpContext.Current.Request.UserHostAddress, HttpContext.Current.Request.Url.AbsoluteUri, model.ReceiveImage); } else if (return_code == "NO_AWARDS") { result.return_code = return_code; result.return_info = model; RecordLog(activityid, string.Format("【获取奖品】用户输入手机号码:{0},未获取到奖品,时间:{1}", phone, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")), "输入手机号码,未获取到奖品", HttpContext.Current.Request.UserHostAddress, HttpContext.Current.Request.Url.AbsoluteUri); } } else { result.return_code = "ERROR"; result.return_msg = "参数错误"; result.return_info = null; } result.return_msg = msg; return(result); }