微信營銷是一種新型的營銷模式,因爲微信更重視用戶之間的互動,故而這種營銷推廣不不能盲目地套用微博營銷的單純大量廣告推送方式。這種方式在微信營銷中的效果很是差,會令用戶反感,繼而取消去企業或商家的微信公衆帳號關注。對於企業來講,作微信推廣重要的一個方面就是提升用戶和公衆帳號之間的黏度,而微信大轉盤就是其中最爲常見的活動。javascript
下面詳細介紹:css
<% if (ErrLevel < 100) { Response.Write(ErrorInfo); } else if (ErrLevel == 101) { //活動已結束,跳轉到結束頁面 %> <script type="text/javascript"> window.location.href = "end.aspx?wid="+<%=wid%>+"&aid="+<%=aid%>+"&openid="+<%=openid%>+";"; </script> <% } else { %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head id="Head1" runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="viewport" content="width=device-width,height=device-height,inital-scale=1.0,maximum-scale=1.0,user-scalable=no;"> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="black"> <meta name="format-detection" content="telephone=no"> <meta name="description" content="微信"> <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-Control" content="no-cache"> <meta http-equiv="Expires" content="0"> <title>幸運大轉盤抽獎</title> <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js" type="text/javascript"></script> <script type="text/javascript" src="../../scripts/jquery/jquery.query.js"></script> <script src="../../scripts/jquery/alert.js" type="text/javascript"></script> <link href="css/activity-style2.css" rel="stylesheet" type="text/css"> <style> .activity-lottery-winning { background: url(images/beijing.gif) repeat scroll 0 0 #7E65AB; background-size: 120px auto; overflow: hidden; } </style> </head> <body class="activity-lottery-winning"> <form id="form1" runat="server"> <div class="main"> <asp:HiddenField ID="hidStatus" runat="server" Value="" EnableViewState="false" /> <asp:HiddenField ID="hidErrInfo" runat="server" EnableViewState="false" /> <asp:HiddenField ID="hidAwardId" runat="server" EnableViewState="false" Value="0" /> <div id="outercont"> <div id="outer-cont"> <div id="outer"> <img src="images/zp<%=picIndex %>-.png"> </div> </div> <div id="inner-cont"> <div id="inner"> <img src="images/activity-lottery-2.png"> </div> </div> </div> <div class="content"> <div class="boxcontent boxwhite" id="zjl" style="display: none"> <div class="box"> <div class="title-orange"><span>恭喜你中獎了</span></div> <div class="Detail"> <p>你中了:<span class="red" id="prizetype"><asp:Literal ID="litzjlJP" runat="server" EnableViewState="false" Text=""></asp:Literal></span></p> <p>兌獎SN碼:<span class="red" id="sncode"><asp:Literal ID="litzjlSN" runat="server" EnableViewState="false" Text=""></asp:Literal></span></p> <p class="red"> <asp:Literal ID="litContentInfo" runat="server" EnableViewState="false"></asp:Literal> </p> <p> <input name="" class="px" id="tel" value="" type="text" placeholder="用戶請輸入您的手機號"> </p> <asp:Literal ID="litPwd" runat="server" EnableViewState="false" Text=""></asp:Literal> <p> <input class="pxbtn" name="提 交" id="save-btn" type="button" value="用戶提交"> </p> </div> </div> </div> <div class="boxcontent boxwhite" id="result" style="display: none;"> <div class="box"> <div class="title-orange"><span>恭喜你中獎了</span></div> <div class="Detail"> <p>你中了:<span class="red" id="jiangping"><asp:Literal ID="litJp" runat="server" EnableViewState="false" Text=""></asp:Literal></span></p> <p>兌獎sn碼爲:<span class="red" id="jpsn"><asp:Literal ID="litSNM" runat="server" EnableViewState="false"></asp:Literal></span></p> <p class="red">你已經兌獎成功,本SN碼自定做廢!</p> </div> </div> </div> <div class="boxcontent boxwhite"> <div class="box"> <div class="title-red"><span>獎項設置:</span></div> <div class="Detail"> <asp:Literal ID="litOtherTip" runat="server" EnableViewState="false"></asp:Literal> <asp:Literal ID="litJiangXing" runat="server" EnableViewState="false"></asp:Literal> </div> </div> </div> <div class="boxcontent boxwhite"> <div class="box"> <div class="title-red">活動說明:</div> <div class="Detail"> <p class="red"> 本次活動天天能夠轉 <asp:Literal ID="litdaysTimes" runat="server" EnableViewState="false"></asp:Literal> 次,總共能夠轉 <asp:Literal ID="littotTimes" runat="server" EnableViewState="false"></asp:Literal> 次 你已經轉了 <span id="zhuantimes"> <asp:Literal ID="litHasUsedTimes" runat="server" EnableViewState="false"></asp:Literal></span> 次 </p> <p> <asp:Literal ID="litRemark" runat="server" EnableViewState="false"></asp:Literal> </p> </div> </div> </div> </div> </div> <script type="text/javascript"> var thisurl= document.URL; var wid = <%=wid%>; var aid =<%=aid%>; var status = $("#hidStatus").val(); var showInfo = $("#hidErrInfo").val(); var openid ="<%=openid%>"; var jxname=""; var jpname=""; var cjtip=""; var zhuantimes=parseInt( $("#zhuantimes").text()); var zjl = false;//沒中獎爲false中獎爲true <% if (isZhJing) { %> $("#outercont").hide(); $("#result").show(); <%} %> if (status == "2") { $("#outercont").hide(); } else if(status=="100") { $("#outercont").hide(); $("#result").hide(); $("#zjl").show(); } $(function () { window.requestAnimFrame = (function () { return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function (callback) { window.setTimeout(callback, 1000 / 60) } })(); var totalDeg = 360 * 3 + 0; var steps = []; var lostDeg = [360]; var prizeDeg = <%=shuzu%>; var prize, sncode; var count = 0; var now = 0; var a = 0.01; var outter, inner, timer, running = false; function countSteps() { var t = Math.sqrt(2 * totalDeg / a); var v = a * t; for (var i = 0; i < t; i++) { steps.push((2 * v * i - a * i * i) / 2) } steps.push(totalDeg) } function step() { // alert('rotate(' + steps[now++] + 'deg)'); outter.style.webkitTransform = 'rotate(' + steps[now++] + 'deg)'; outter.style.MozTransform = 'rotate(' + steps[now++] + 'deg)'; if (now < steps.length) { running = true; requestAnimFrame(step) } else { running = false; setTimeout(function () { $("#zhuantimes").text(++zhuantimes); if (zjl) { $("#sncode").text(sncode); $("#jpsn").text(sncode); $("#jiangping").text(jxname+" "+jpname); $("#prizetype").text(jxname+" "+jpname); $("#zjl").slideToggle(500); $("#outercont").slideUp(500) } else { alert(cjtip); } }, 200) } } function start(deg) { deg = deg || lostDeg[parseInt(lostDeg.length * Math.random())]; running = true; clearInterval(timer); totalDeg = 360 * 5 + deg; steps = []; now = 0; countSteps(); requestAnimFrame(step) } window.start = start; outter = document.getElementById('outer'); inner = document.getElementById('inner'); i = 10; $("#inner").click(function () { if (status == "2") { alert(showInfo); } if (running) return; $.ajax({ url: "dzpAct.ashx", dataType: "json", data: { openid: openid, myact: "choujiang", aid: aid, wid:wid, rad: Math.random() }, beforeSend: function () { running = true; timer = setInterval(function () { i += 5; outter.style.webkitTransform = 'rotate(' + i + 'deg)'; outter.style.MozTransform = 'rotate(' + i + 'deg)' }, 1) }, success: function (data) { if (data.error == "sys" ||data.error == "nostart" ) { cjtip=data.content; count = 100; clearInterval(timer); return } else if(data.error=="notimes") { cjtip=data.content; start(); } else if (data.error=="succ") { zjl=true; cjtip=data.content; prize = data.sortid; sncode = data.sn; jpname=data.jpname; jxname=data.jxname; $("#hidAwardId").val(data.uid); start(prizeDeg[data.sortid - 1]) } else { cjtip=data.content; start() } running = false; count++ }, error: function () { prize = null; start(); running = false; count++ }, timeout: 1000 }) }) }); $("#save-btn").bind("click", function () { var btn = $(this); var tel = $("#tel").val(); var pwd = ""; var hidAwardId = $("#hidAwardId").val(); if ($("#parssword").length>0 && $.trim($("#parssword").val()) == "") { alert("請輸入兌獎密碼!"); return } if ($.trim(tel) == "") { alert("請輸入手機號!"); return } if($("#parssword").length>0){ pwd= $("#parssword").val(); } var rad = Math.random(); var submitData = { id: hidAwardId, aid: aid, pwd: pwd, snumber:$("#sncode").text(), tel: tel, rad: rad, openid:openid }; $.post('dzpAct.ashx?myact=update', submitData, function (data) { if (data.success == "1") { alert("提交成功!"); $("#result").slideToggle(500); $("#zjl").slideToggle(500); $("#outercont").slideUp(500); } else { alert(data.msg); } }, "json") }); </script> <script type="text/javascript"> document.addEventListener('WeixinJSBridgeReady', function onBridgeReady() { window.shareData = { "imgUrl": "", "timeLineLink": thisurl + "&is_share=1", "sendFriendLink": thisurl + "&is_share=1", "weiboLink": thisurl + "&is_share=1", "tTitle": "<%=dzpAction.actName%>", "tContent": "請關注後,再來抽獎。<%=dzpAction.brief%>", "fTitle": "請關注後,再來抽獎。<%=dzpAction.actName%>", "fContent": "請關注後,再來抽獎。<%=dzpAction.brief%>", "wContent": "請關注後,再來抽獎。<%=dzpAction.brief%>" }; // 發送給好友 WeixinJSBridge.on('menu:share:appmessage', function (argv) { WeixinJSBridge.invoke('sendAppMessage', { "img_url": window.shareData.imgUrl, "img_width": "640", "img_height": "640", "link": window.shareData.sendFriendLink, "desc": window.shareData.fContent, "title": window.shareData.fTitle }, function (res) { _report('send_msg', res.err_msg); }) }); // 分享到朋友圈 WeixinJSBridge.on('menu:share:timeline', function (argv) { WeixinJSBridge.invoke('shareTimeline', { "img_url": window.shareData.imgUrl, "img_width": "640", "img_height": "640", "link": window.shareData.timeLineLink, "desc": window.shareData.tContent, "title": window.shareData.tTitle }, function (res) { _report('timeline', res.err_msg); }); }); // 分享到微博 WeixinJSBridge.on('menu:share:weibo', function (argv) { WeixinJSBridge.invoke('shareWeibo', { "content": window.shareData.wContent, "url": window.shareData.weiboLink, }, function (res) { _report('weibo', res.err_msg); }); }); }, false) </script> </form> <div style="display: none">©微布斯科技提供 qq 121285904 www.webus.cn</div> </body> </html> <% }%>
/// <summary>
/// ErrLevel:100表示正確無誤,1表示嚴重錯誤,2表示業務方面有問題;3直接跳轉到結束頁面
/// </summary>
public int ErrLevel = 100;
public string ErrorInfo = "";
public Model.wx_dzpActionInfo dzpAction;
public int picIndex = 0;
public int aid = 0;
public int wid = 0;
public bool isZhJing = false;
public string openid = "";
public string shuzu = "";
BLL.wx_dzpAwardUser ubll = new BLL.wx_dzpAwardUser();
BLL.wx_dzpUsersTemp utbll = new BLL.wx_dzpUsersTemp();
BLL.wx_dzpActionInfo actBll = new BLL.wx_dzpActionInfo();
BLL.wx_dzpAwardItem itemBll = new BLL.wx_dzpAwardItem();
protected void Page_Load(object sender, EventArgs e)
{
OnlyWeiXinLook();
aid = MyCommFun.RequestInt("aid", 0);
wid = MyCommFun.RequestInt("wid", 0);
openid = MyCommFun.RequestOpenid();
if (aid == 0 || wid == 0 || openid.Trim() == "")
{
ErrLevel = 1;
ErrorInfo = "訪問參數錯誤!";
return;
}
BindData();
}
private void BindData()
{
dzpAction = actBll.GetModel(aid);
IList<Model.wx_dzpAwardItem> itemlist = itemBll.GetModelList("actId=" + aid);
if (dzpAction == null || itemlist == null || itemlist.Count <= 0)
{
ErrLevel = 1;
ErrorInfo = "未得到到數據";
return;
}
this.Title = dzpAction.actName;
if (dzpAction.endDate <= DateTime.Now)
{ //說明活動已經結束
ErrLevel = 101;
ErrorInfo = "活動已結束";
return;
}
StringBuilder sb = new StringBuilder("");
Model.wx_dzpAwardItem item = new Model.wx_dzpAwardItem();
int ttJpNum = 0;
shuzu = "[";
for (int i = 0; i < itemlist.Count; i++)
{
item = itemlist[i];
sb.Append("<p>" + item.jxName + ":" + item.jpName + " 數量:" + item.jpNum + "</p>");
ttJpNum += item.jpRealNum.Value;
picIndex++;
if (i < (itemlist.Count - 1))
{
shuzu += item.jiaodu_min + ",";
}
else
{
shuzu += item.jiaodu_min;
}
}
shuzu += "]";
litJiangXing.Text = sb.ToString();
litRemark.Text = dzpAction.brief;
litContentInfo.Text = dzpAction.contractInfo;
littotTimes.Text = dzpAction.personMaxTimes == null ? "0" : dzpAction.personMaxTimes.Value.ToString();
litdaysTimes.Text = dzpAction.dayMaxTimes == null ? "0" : dzpAction.dayMaxTimes.Value.ToString();
if (dzpAction.djPwd.Trim().Length > 0)
{
litPwd.Text = " <p> <input name=\"\" class=\"px\" id=\"parssword\" type=\"password\" value=\"\" placeholder=\"商家輸入兌獎密碼\"></p>";
}
if (dzpAction.beginDate > DateTime.Now)
{
hidStatus.Value = "-2";
ErrorInfo = hidErrInfo.Value = "活動還沒有開始";
}
int hasCjTimes = utbll.getCJCiShu(aid, openid);//返回該用戶的抽獎次數
this.litHasUsedTimes.Text = hasCjTimes.ToString();
int dayMaxTimes = dzpAction.dayMaxTimes == null ? 0 : dzpAction.dayMaxTimes.Value;
int perMaxTimes = dzpAction.personMaxTimes == null ? 0 : dzpAction.personMaxTimes.Value;
//判斷是否中獎了
Model.wx_dzpAwardUser award = ubll.getZJinfoByOpenid(aid, openid);
if (award != null && award.id>0)
{ //您中獎了
if (award.uTel != null && award.uTel.ToString().Trim() != "")
{//已經中獎,而且提交了
litJp.Text = "[" + award.jxName + "] " + award.jpName;
litSNM.Text = award.sn;
isZhJing = true;
}
else
{ //已經中獎,可是未提交
hidStatus.Value = "100";
litzjlJP.Text = "[" + award.jxName + "] " + award.jpName;
litzjlSN.Text = award.sn;
hidAwardId.Value = award.id.ToString();
litJp.Text = "[" + award.jxName + "] " + award.jpName;
litSNM.Text = award.sn;
}
}
else
{
//判斷每人最大抽獎次數,是否超過了
if (hasCjTimes >= dzpAction.personMaxTimes)
{
hidStatus.Value = "2";
//litOtherTip.Text = "<p class='red'>您已經抽了" + hasCjTimes + "次了。</p>";
}
if (isTodayOverSum(dayMaxTimes))
{
hidStatus.Value = "2";
// litOtherTip.Text = "<p class='red'>每人天天只有" + dayMaxTimes.ToString() + "次抽獎機會,您已經使用完了。</p>";
}
}
}
#region 方法
/// <summary>
/// 判斷今天是否已經超出抽獎次數
/// todayTTTimes:能抽獎的總次數
/// </summary>
/// <param name="openid"></param>
/// <param name="todayTTTimes">天天的抽獎總次數</param>
/// <returns></returns>
private bool isTodayOverSum( int todayTTTimes)
{
if (todayTTTimes <= 0)
{
return true;
}
DateTime todaybegin = DateTime.Parse(DateTime.Now.ToShortDateString());
DateTime mingtianBegin = todaybegin.AddDays(1);
if (!utbll.ExistsOpenid(" actId=" + aid + " and openid='" + openid + "' and createDate>='" + todaybegin + "' and createDate<'" + mingtianBegin + "'"))
{
return false;
}
Model.wx_dzpUsersTemp model = utbll.getModelByAidOpenid(aid, openid);
if (model.times >= todayTTTimes)
{
return true;
}
else
{
return false;
}
}
#endregion
public class dzpAct : IHttpHandler
{
BLL.wx_dzpActionInfo actbll = new BLL.wx_dzpActionInfo();
BLL.wx_dzpAwardUser ubll = new BLL.wx_dzpAwardUser();
BLL.wx_dzpUsersTemp utbll = new BLL.wx_dzpUsersTemp();
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/json";
string _action = MyCommFun.QueryString("myact");
int aid = MyCommFun.RequestInt("aid");
string openid = MyCommFun.RequestOpenid(); //獲得微信用戶的openid
if (_action == "choujiang")
{
Dictionary<string, string> jsonDict = new Dictionary<string, string>();
try
{
//抽獎
Model.wx_dzpActionInfo dzpAction = new Model.wx_dzpActionInfo();
BLL.wx_dzpAwardItem itemBll = new BLL.wx_dzpAwardItem();
#region 判斷
int wid = MyCommFun.RequestInt("wid");
if (aid == 0 || wid == 0 || openid.Trim() == "")
{
jsonDict.Add("error", "sys");
jsonDict.Add("content", "參數錯誤!");
context.Response.Write(MyCommFun.getJsonStr(jsonDict));
return;
}
dzpAction = actbll.GetModel(aid);
if (dzpAction == null)
{
jsonDict.Add("error", "sys");
jsonDict.Add("content", "參數錯誤!");
context.Response.Write(MyCommFun.getJsonStr(jsonDict));
return;
}
if (dzpAction.endDate <= DateTime.Now)
{ //說明活動已經結束
//非活動期間
jsonDict.Add("error", "end");
jsonDict.Add("content", "活動已結束");
context.Response.Write(MyCommFun.getJsonStr(jsonDict));
return;
}
else if (dzpAction.beginDate > DateTime.Now)
{
//活動未開始
//非活動期間
jsonDict.Add("error", "nostart");
jsonDict.Add("content", "活動未開始");
context.Response.Write(MyCommFun.getJsonStr(jsonDict));
return;
}
int dayMaxTimes = dzpAction.dayMaxTimes == null ? 0 : dzpAction.dayMaxTimes.Value;
int perMaxTimes = dzpAction.personMaxTimes == null ? 0 : dzpAction.personMaxTimes.Value;
//判斷每人最大抽獎次數,是否超過了
if (personCJTimes(openid, aid) >= dzpAction.personMaxTimes)
{
jsonDict.Add("error", "notimes");
jsonDict.Add("content", "您已抽過獎了,歡迎下次再來!");
context.Response.Write(MyCommFun.getJsonStr(jsonDict));
return;
}
if (isTodayOverSum(aid, openid, dayMaxTimes))
{
jsonDict.Add("error", "notimes");
jsonDict.Add("content", "每人天天只有" + dayMaxTimes.ToString() + "次抽獎機會。");
context.Response.Write(MyCommFun.getJsonStr(jsonDict));
return;
}
Model.wx_dzpAwardUser award = ubll.getZJinfoByOpenid(aid, openid);
if (award != null)
{
//您中獎了
jsonDict.Add("error", "notimes");
jsonDict.Add("content", "您中獎了,歡迎下次再來!");
context.Response.Write(MyCommFun.getJsonStr(jsonDict));
return;
}
#endregion
#region 計算中獎信息
/// 處理是否中獎
/// hidStatus 狀態爲-1:不能抽獎,直接跳轉到end.aspx頁面;
/// 0:抽獎次數超過設置的最高次數;
/// 1:還能夠繼續抽獎;
/// 2:中獎了;
List<Model.wx_dzpAwardItem> itemlist = itemBll.GetModelList("actId=" + aid);//該活動的全部獎項信息
int ttJpNum = 0;
for (int i = 0; i < itemlist.Count; i++)
{
ttJpNum += itemlist[i].jpRealNum.Value;
}
IList<Model.wx_dzpAwardUser> auserlist = ubll.getHasZJList(aid);//已經中獎的人列表
int ZhongJiangNum = 0;
if (auserlist != null)
{
ZhongJiangNum = auserlist.Count; //已經中獎的人數
}
int syZjNum = ttJpNum - ZhongJiangNum; //剩餘的獎品數量
if (syZjNum <= 0)
{ //說明已經沒有獎品了
jsonDict.Add("error", "-1");
jsonDict.Add("content", dzpAction.cfcjhf);
context.Response.Write(MyCommFun.getJsonStr(jsonDict));
return;
}
dzpAction.personNum = MyCommFun.Obj2Int(dzpAction.personNum, 1);
dzpAction.personMaxTimes = MyCommFun.Obj2Int(dzpAction.personMaxTimes, 1);
int fenmo = dzpAction.personNum.Value * dzpAction.personMaxTimes.Value;
Random rd = new Random((int)DateTime.Now.Ticks);
int radNum = rd.Next(0, fenmo);//從0到fenmo裏隨機出一個值
if (radNum < syZjNum)
{
//中獎了,再從剩餘獎品裏抽取一個獎品
Model.wx_dzpAwardItem dajiang = getZJItem(itemlist, auserlist);
if (dajiang != null)
{
//這是中的中獎了
string snumber = Get_snumber(aid);
int uId = ubll.Add(aid, "", "", openid, dajiang.jxName, dajiang.jpName, snumber);
jsonDict.Add("error", "succ");
jsonDict.Add("content", "恭喜你中獎了!");
jsonDict.Add("sortid", dajiang.sort_id.Value.ToString());
jsonDict.Add("jxname", dajiang.jxName);
jsonDict.Add("jpname", dajiang.jpName);
jsonDict.Add("uid", uId.ToString());
jsonDict.Add("sn", snumber);
context.Response.Write(MyCommFun.getJsonStr(jsonDict));
return;
}
else
{
//獎品已經所有中完了
jsonDict.Add("error", "-1");
jsonDict.Add("content", dzpAction.cfcjhf);
context.Response.Write(MyCommFun.getJsonStr(jsonDict));
return;
}
}
else
{
//這個條件說明:未中獎
//拋出未中獎的數據
jsonDict.Add("error", "-1");
jsonDict.Add("content", dzpAction.cfcjhf);
context.Response.Write(MyCommFun.getJsonStr(jsonDict));
return;
}
#endregion
}
catch (Exception ex)
{
jsonDict.Add("error", "sys");
jsonDict.Add("content", "計算抽獎出現未知錯誤,請聯繫管理員!");
context.Response.Write(MyCommFun.getJsonStr(jsonDict));
return;
}
}
else if (_action == "update")
{
try
{
#region 提交手機
/// 提交手機號碼
string tel = MyCommFun.QueryString("tel");
string pwd = MyCommFun.QueryString("pwd");
string snumber = MyCommFun.QueryString("snumber");
int id = MyCommFun.RequestInt("id");
if (aid == 0 || id == 0 || snumber == "" || tel == "")
{
context.Response.Write("{\"msg\":\"提交出現異常!!\",\"success\":\"0\"}");
return;
}
if ((pwd.Length>0) &&( !actbll.ExistsPwd(aid, pwd)))
{
context.Response.Write("{\"msg\":\"商家兌換密碼錯誤!!\",\"success\":\"0\"}");
return;
}
BLL.wx_dzpAwardUser ubll = new BLL.wx_dzpAwardUser();
Model.wx_dzpAwardUser model = ubll.GetModel(id);
if (model == null)
{
context.Response.Write("{\"msg\":\"提交出現異常2!!\",\"success\":\"0\"}");
return;
}
model.uTel = tel;
if (pwd.Length > 0)
{
model.hasLingQu = true;
}
else
{
model.hasLingQu = false;
}
ubll.Update(model);
context.Response.Write("{\"msg\":\"提交成功!\",\"success\":\"1\"}");
return;
#endregion
}
catch
{
context.Response.Write("{\"msg\":\"提交出現異常!!\",\"success\":\"0\"}");
return;
}
}
}
#region 方法
/// <summary>
/// 取中獎的項目
/// </summary>
/// <param name="itemlist">全部的獎品信息</param>
/// <param name="haszjlist">已經中獎的列表</param>
/// <returns></returns>
private Model.wx_dzpAwardItem getZJItem(IList<Model.wx_dzpAwardItem> itemlist, IList<Model.wx_dzpAwardUser> haszjlist)
{
IList<Model.wx_dzpAwardItem> zjItemlist = new List<Model.wx_dzpAwardItem>();//剩餘獎品列表
Model.wx_dzpAwardItem tmpItem = new Model.wx_dzpAwardItem();
Model.wx_dzpAwardItem stmpItem = new Model.wx_dzpAwardItem();
IList<Model.wx_dzpAwardUser> thiszjRs;
for (int i = 0; i < itemlist.Count; i++)
{
tmpItem = itemlist[i];
thiszjRs = (from user in haszjlist where user.jpName == tmpItem.jpName && user.jxName == tmpItem.jxName select user).ToArray<Model.wx_dzpAwardUser>();
int tmpSYNum = 0;
if (thiszjRs != null)
{
tmpSYNum = MyCommFun.Obj2Int(tmpItem.jpRealNum) - thiszjRs.Count;
}
if (tmpSYNum <= 0)
{
continue;
}
for (int j = 0; j < tmpSYNum; j++)
{
stmpItem = new Model.wx_dzpAwardItem();
stmpItem.jpName = tmpItem.jpName;
stmpItem.jxName = tmpItem.jxName;
stmpItem.sort_id = tmpItem.sort_id;
zjItemlist.Add(stmpItem);
}
}
Random rd = new Random((int)DateTime.Now.Ticks);
int jpIndex = rd.Next(0, zjItemlist.Count);//從0到zjItemlist.Count裏隨機出一個值
return zjItemlist[jpIndex];
}
/// <summary>
/// 判斷該用戶的抽獎次數
/// </summary>
/// <param name="openid"></param>
/// <returns></returns>
private int personCJTimes(string openid, int aid)
{
int times = 0;
times = utbll.GetRecordCount("actId=" + aid + " and openid='" + openid + "'");
return times;
}
/// <summary>
/// 判斷今天是否已經超出抽獎次數
/// todayTTTimes:能抽獎的總次數
/// </summary>
/// <param name="openid"></param>
/// <param name="todayTTTimes">天天的抽獎總次數</param>
/// <returns></returns>
private bool isTodayOverSum(int aid, string openid, int todayTTTimes)
{
if (todayTTTimes <= 0)
{
return true;
}
Model.wx_dzpUsersTemp model = new Model.wx_dzpUsersTemp();
model.openid = openid;
DateTime todaybegin = DateTime.Parse(DateTime.Now.ToShortDateString());
DateTime mingtianBegin = todaybegin.AddDays(1);
if (!utbll.ExistsOpenid(" actId=" + aid + " and openid='" + openid + "' and createDate>='" + todaybegin + "' and createDate<'" + mingtianBegin + "'"))
{ //第一次,插入
model.times = 1;
model.createDate = DateTime.Now;
model.openid = openid;
model.actId = aid;
utbll.Add(model);
return false;
}
model = utbll.getModelByAidOpenid(aid, openid);
if (model.times >= todayTTTimes)
{
return true;
}
else
{
model.times += 1;
utbll.Update(model);
return false;
}
}
/// <summary>
/// 返回中獎序列號
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public string Get_snumber(int aid)
{
Random rd = new Random((int)DateTime.Now.Ticks);
int radNum = rd.Next(0, 9);//從0到9裏隨機出一個值
return "SNdzp" + aid + "_" + MyCommFun.ConvertDateTimeInt(DateTime.Now) + radNum;
}
#endregion
public bool IsReusable
{
get
{
return false;
}
}
}
用c#開發微信 系列彙總html