/// <summary> /// 查询该月的消费信息 /// </summary> /// <param name="user"></param> /// <param name="month">如果为0,则表示当月的数据,</param> private void bindMonthXFinfo(Model.wx_ucard_users user, int month) { int year = DateTime.Now.Year; int todayMonth = DateTime.Now.Month; if (month == 0) { month = todayMonth; } IList <Model.wx_ucard_users_consumeinfo> clist = cBll.GetModelList("sId=" + sid + " and uid=" + user.id + " and moduleType!='签到' and year(addTime)=" + year + " and month(addTime)=" + month + " order by addTime desc"); StringBuilder xfSb = new StringBuilder(""); decimal ttMoney = 0; int ttScore = 0; if (clist != null && clist.Count > 0) { Model.wx_ucard_users_consumeinfo c = new Model.wx_ucard_users_consumeinfo(); for (int i = 0; i < clist.Count; i++) { c = clist[i]; xfSb.Append("<tr><td>" + c.addTime.Value.ToString("yyyy-MM-dd") + "</td> <td>" + MyCommFun.Obj2Decimal(c.consumeMoney, 0) + "</td> <td>" + MyCommFun.Obj2Int(c.score) + "</td> </tr>"); ttMoney += MyCommFun.Obj2Decimal(c.consumeMoney, 0); ttScore += MyCommFun.Obj2Int(c.score); } BindDaysDetailInfo(clist); } litXFStr.Text = xfSb.ToString(); litttMoney.Text = ttMoney.ToString(); litttScore.Text = ttScore.ToString(); }
/// <summary> /// 查询该月的签到信息 /// </summary> /// <param name="user"></param> /// <param name="month">如果为0,则表示当月的数据,</param> private void bindMonthQD(Model.wx_ucard_users user, int month) { int year = DateTime.Now.Year; int todayMonth = DateTime.Now.Month; if (month == 0) { month = todayMonth; } IList <Model.wx_ucard_users_consumeinfo> qdlist = cBll.GetModelList("sId=" + sid + " and uid=" + user.id + " and moduleType='签到' and year(addTime)=" + year + " and month(addTime)=" + month + " order by addTime desc"); DateTime thisBeginTimes = DateTime.Parse(year + "-" + month + "-1"); DateTime thisEndTimes; if (todayMonth == month) { //当前月 thisEndTimes = DateTime.Now; } else { //非当前月 thisEndTimes = thisBeginTimes.AddMonths(1).AddDays(-1); } int maxDays = thisEndTimes.Day; StringBuilder qdStr = new StringBuilder(""); DateTime tmpTimes = new DateTime(); Model.wx_ucard_users_consumeinfo tmpConsume = new Model.wx_ucard_users_consumeinfo(); int totqdjifen = 0; for (int i = maxDays; i > 0; i--) { //待完成 tmpTimes = DateTime.Parse(year + "-" + month + "-" + i); tmpConsume = getqdInfo(qdlist, tmpTimes); if (tmpConsume != null) { //已经签到 qdStr.Append(getqdStr(tmpTimes, tmpConsume.score.Value, true)); totqdjifen += tmpConsume.score.Value; } else { //未签到 qdStr.Append(getqdStr(tmpTimes, 0, false)); } } litQDStr.Text = qdStr.ToString(); litTTqdScore.Text = totqdjifen.ToString(); }
/// <summary> /// 绑定每天消费的详情 /// </summary> /// <param name="clist"></param> private void BindDaysDetailInfo(IList <Model.wx_ucard_users_consumeinfo> clist) { StringBuilder dStr = new StringBuilder(""); Model.wx_ucard_users_consumeinfo tmpCon = clist[0]; IList <Model.wx_ucard_users_consumeinfo> tmplist = (from c in clist where c.addTime.Value.Year == tmpCon.addTime.Value.Year && c.addTime.Value.Month == tmpCon.addTime.Value.Month && c.addTime.Value.Day == tmpCon.addTime.Value.Day select c).ToArray <Model.wx_ucard_users_consumeinfo>(); if (tmplist != null) { decimal ttMoney = tmplist.Sum(t => t.consumeMoney == null ? 0 : t.consumeMoney.Value); int ttScore = tmplist.Sum(t => t.score == null ? 0 : t.score.Value); //处理逻辑 dStr.Append(" <div id=\"test" + tmpCon.id + "-header\" class=\"accordion_headings\">"); dStr.Append(" <div class=\"tab\"> <span class=\"title\">" + tmpCon.addTime.Value.ToString("yyyy-MM-dd") + "消费详情<p>消费" + ttMoney + "元 获得积分" + ttScore + "分</p>"); dStr.Append(" </span> </div>"); dStr.Append(" <div id=\"test" + tmpCon.id + "-content\" style=\"display: none; overflow: hidden;\">"); dStr.Append(" <div class=\"accordion_child\">"); dStr.Append(" <table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"integral_table\">"); dStr.Append("<thead> <tr> <th>消费详情</th> <th>消费金额</th> <th>积分</th> </tr> </thead> <tbody>"); for (int i = 0; i < tmplist.Count; i++) { dStr.Append(" <tr> <td>" + tmplist[i].moduleActionName + "</td> <td>" + MyCommFun.Obj2Decimal(tmplist[i].consumeMoney, 0) + "</td> <td>" + MyCommFun.Obj2Int(tmplist[i].score) + "</td> </tr>"); clist.Remove(tmplist[i]); } dStr.Append(" </tbody> <tfoot> <tr> <td class=\"right\">合计</td> <td><span class=\"heji\">" + ttMoney + "元 </span></td> <td><span class=\"heji\">" + ttScore + " 积分 </span></td>"); dStr.Append(" </tr> </tfoot> </table> </div> </div> </div>"); detailStr += dStr.ToString(); //最终 if (clist.Count > 0) { BindDaysDetailInfo(clist); } } }
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/json"; string _action = MyCommFun.QueryString("myact"); string openid = MyCommFun.RequestOpenid(); //得到微信用户的openid Dictionary <string, string> jsonDict = new Dictionary <string, string>(); int sid = MyCommFun.RequestInt("sid"); int uid = 0; BLL.wx_ucard_store storeBll = new BLL.wx_ucard_store(); BLL.wx_ucard_users_consumeinfo conBll = new BLL.wx_ucard_users_consumeinfo(); BLL.wx_ucard_score scoreBll = new BLL.wx_ucard_score(); BLL.wx_ucard_users userBll = new BLL.wx_ucard_users(); Model.wx_ucard_users_consumeinfo consume = new Model.wx_ucard_users_consumeinfo(); Model.wx_ucard_score score = new Model.wx_ucard_score(); Model.wx_ucard_store store = storeBll.GetModel(sid); if (store == null) { jsonDict.Add("ret", "err"); jsonDict.Add("msg", "店铺不存在"); context.Response.Write(MyCommFun.getJsonStr(jsonDict)); return; } if (_action == "userreg") { #region //用户第一次领取卡 jsonDict = new Dictionary <string, string>(); if (sid == 0) { jsonDict.Add("ret", "error"); context.Response.Write(MyCommFun.getJsonStr(jsonDict)); return; } string tel = MyCommFun.QueryString("tel"); string realName = MyCommFun.QueryString("truename"); XCWeiXin.Model.wx_ucard_users user = userBll.GetStoreUserInfo(openid, sid); if (user == null) { //第一次添加 user = new Model.wx_ucard_users(); user.mobile = tel; user.realName = realName; user.regTime = DateTime.Now; user.sid = sid; user.openid = openid; user.ttScore = 0; user.consumeScore = 0; user.qdScore = 0; user.consumeMoney = 0; user.regIp = MXRequest.GetIP(); int ret = userBll.Add(user); if (ret > 0) { jsonDict.Add("ret", "succ"); context.Response.Write(MyCommFun.getJsonStr(jsonDict)); } else { jsonDict.Add("ret", "err"); context.Response.Write(MyCommFun.getJsonStr(jsonDict)); } } else { user.mobile = tel; user.realName = realName; user.regTime = DateTime.Now; user.sid = sid; user.openid = openid; user.regIp = MXRequest.GetIP(); bool ret = userBll.Update(user); if (ret) { jsonDict.Add("ret", "succ"); context.Response.Write(MyCommFun.getJsonStr(jsonDict)); } else { jsonDict.Add("ret", "err"); context.Response.Write(MyCommFun.getJsonStr(jsonDict)); } } context.Response.End(); #endregion } else if (_action == "qiandao") { #region 签到 jsonDict = new Dictionary <string, string>(); sid = MyCommFun.RequestInt("sid"); uid = MyCommFun.RequestInt("uid"); if (sid == 0 || uid == 0) { jsonDict.Add("ret", "error"); context.Response.Write(MyCommFun.getJsonStr(jsonDict)); return; } bool hasqd = conBll.hasDayQD(sid, uid, DateTime.Now); int retScore = 0; if (!hasqd) { //新增 //取签到积分策略 score = scoreBll.GetStoreModel(sid); if (score != null) { //判断是否6天连续签到,并且6天内没有给额外的奖励 DateTime day6before = DateTime.Now.AddDays(-6); int record = conBll.GetRecordCount("sId=" + sid + " and uid=" + uid + " and moduleType='签到' and addTime>='" + day6before.ToShortDateString() + "' and addTime<'" + DateTime.Now.ToShortDateString() + "' and moduleActionId=6 "); if (record >= 5) { consume = new Model.wx_ucard_users_consumeinfo(); consume.sId = sid; consume.uid = uid; consume.moduleType = "签到"; consume.moduleActionName = "连续6天签到奖励"; consume.moduleActionId = 6; consume.score = MyCommFun.Obj2Int(score.qiandao6Score) + score.qiandaoScore.Value; conBll.AddJiFen(consume, 0); retScore = MyCommFun.Obj2Int(score.qiandao6Score) + score.qiandaoScore.Value; } else { consume = new Model.wx_ucard_users_consumeinfo(); consume.sId = sid; consume.uid = uid; consume.moduleType = "签到"; consume.score = score.qiandaoScore.Value; conBll.AddJiFen(consume, 0); retScore = score.qiandaoScore.Value; } } } jsonDict.Add("ret", "succ"); jsonDict.Add("msg", "+" + retScore + "分,明天继续"); context.Response.Write(MyCommFun.getJsonStr(jsonDict)); #endregion } else if (_action == "tequan") { #region //消费: 特权 ,注意,只有在新增这个的时候记录user表总积分,修改的时候 对user表的总积分和金额先减后加 jsonDict = new Dictionary <string, string>(); sid = MyCommFun.RequestInt("sid"); //店铺id uid = MyCommFun.RequestInt("uid"); //用户id string sn = MyCommFun.QueryString("sncode"); string pwd = MyCommFun.QueryString("parssword"); float money = MyCommFun.RequestFloat("money", 0); int pid = MyCommFun.RequestInt("pid"); //特权主键id string type = MyCommFun.QueryString("type"); //tequan:特权 if (sid == 0 || uid == 0 || pid == 0) { jsonDict.Add("ret", "error"); jsonDict.Add("msg", "error"); context.Response.Write(MyCommFun.getJsonStr(jsonDict)); return; } if (pwd != store.consumePwd) { jsonDict.Add("ret", "error"); jsonDict.Add("msg", "密码错误"); context.Response.Write(MyCommFun.getJsonStr(jsonDict)); return; } int ssid = userBll.ExistsStoreAndUser(uid); if (ssid == 0 || sid != ssid) { //验证,用户存在,店铺存在,并且用户属于这个店铺 return; } BLL.wx_ucard_privileges privBll = new BLL.wx_ucard_privileges(); Model.wx_ucard_privileges privileges = privBll.GetModel(pid); if (privileges == null) { jsonDict.Add("ret", "error"); jsonDict.Add("msg", "特权不存在"); context.Response.Write(MyCommFun.getJsonStr(jsonDict)); return; } //积分策略 score = scoreBll.GetStoreModel(sid); int avgScore = score.consumeMoneyScore.Value / score.consumeMoney.Value; //1先添加消费明细,和修改用户的总积分和总消费金额 //IList<Model.wx_ucard_users_consumeinfo> conlist = conBll.GetModelList("moduleType='特权' and moduleActionId=" + privileges.id + " and sid=" + sid + " and uid=" + uid); //if (conlist == null || conlist.Count <= 0 || conlist[0] == null) //{ //新增 consume = new Model.wx_ucard_users_consumeinfo(); consume.moduleActionId = 10; consume.moduleType = "特权"; consume.moduleActionId = privileges.id; consume.moduleActionName = privileges.pName; consume.sId = sid; consume.uid = uid; consume.consumeMoney = (decimal)money; consume.addTime = DateTime.Now; consume.sn = sn; consume.pwd = pwd; consume.cMoneyType = 2; consume.score = (int)(avgScore * money); consume.cScoreType = 1; conBll.Add(consume, true); //} //else //{ // //修改 // consume = conlist[0]; // decimal oldMoney = MyCommFun.Obj2Decimal(consume.consumeMoney, 0); // int oldScore = MyCommFun.Obj2Int(consume.score); // consume.moduleActionName = privileges.pName; // consume.consumeMoney = (decimal)money; // consume.sn = sn; // consume.pwd = pwd; // consume.cMoneyType = 2; // consume.score = (int)(avgScore * money); // conBll.UpdateInfoAndUserTT(consume, oldMoney, oldScore); //} jsonDict.Add("ret", "succ"); jsonDict.Add("msg", "获得" + consume.score.Value + "积分 "); context.Response.Write(MyCommFun.getJsonStr(jsonDict)); #endregion } else if (_action == "lq_yhq") { #region 领取优惠券 jsonDict = new Dictionary <string, string>(); sid = MyCommFun.RequestInt("sid"); //店铺id uid = MyCommFun.RequestInt("uid"); //用户id string sn = MyCommFun.QueryString("sncode"); string pwd = MyCommFun.QueryString("parssword"); float money = MyCommFun.RequestFloat("money", 0); int ticketId = MyCommFun.RequestInt("cid");//优惠券主键id if (sid == 0 || uid == 0 || ticketId == 0) { jsonDict.Add("ret", "error"); jsonDict.Add("msg", "error"); context.Response.Write(MyCommFun.getJsonStr(jsonDict)); return; } if (pwd != store.consumePwd) { jsonDict.Add("ret", "error"); jsonDict.Add("msg", "密码错误"); context.Response.Write(MyCommFun.getJsonStr(jsonDict)); return; } int ssid = userBll.ExistsStoreAndUser(uid); if (ssid == 0 || sid != ssid) { //验证,用户存在,店铺存在,并且用户属于这个店铺 return; } BLL.wx_ucard_ticket ticketBll = new BLL.wx_ucard_ticket(); Model.wx_ucard_ticket ticket = ticketBll.GetModel(ticketId); if (ticket == null) { jsonDict.Add("ret", "error"); jsonDict.Add("msg", "优惠券不存在"); context.Response.Write(MyCommFun.getJsonStr(jsonDict)); return; } int syTimes = ticketBll.getsyTimesByTicket(uid, ticketId); if (syTimes <= 0) { jsonDict.Add("ret", "error"); jsonDict.Add("msg", "已没有使用次数"); context.Response.Write(MyCommFun.getJsonStr(jsonDict)); return; } //积分策略 score = scoreBll.GetStoreModel(sid); int avgScore = score.consumeMoneyScore.Value / score.consumeMoney.Value; //1先添加消费明细,和修改用户的总积分和总消费金额 //新增 consume = new Model.wx_ucard_users_consumeinfo(); consume.moduleActionId = 10; consume.moduleType = "优惠券"; consume.moduleActionId = ticket.id; consume.moduleActionName = ticket.tName; consume.sId = sid; consume.uid = uid; consume.consumeMoney = (decimal)money; consume.addTime = DateTime.Now; consume.sn = sn; consume.pwd = pwd; consume.cMoneyType = 2; consume.score = (int)(avgScore * money); consume.cScoreType = 1; conBll.Add(consume, true); syTimes -= 1; jsonDict.Add("ret", "succ"); jsonDict.Add("msg", "获得" + consume.score.Value + "积分 "); jsonDict.Add("sy", syTimes.ToString()); context.Response.Write(MyCommFun.getJsonStr(jsonDict)); #endregion } else if (_action == "gift") { #region 兑换礼品券 jsonDict = new Dictionary <string, string>(); sid = MyCommFun.RequestInt("sid"); //店铺id uid = MyCommFun.RequestInt("uid"); //用户id string sn = MyCommFun.QueryString("sncode"); string pwd = MyCommFun.QueryString("parssword"); float money = MyCommFun.RequestFloat("money", 0); int giftId = MyCommFun.RequestInt("gid");//礼品主键id if (sid == 0 || uid == 0 || giftId == 0) { jsonDict.Add("ret", "error"); jsonDict.Add("msg", "error"); context.Response.Write(MyCommFun.getJsonStr(jsonDict)); return; } if (pwd != store.consumePwd) { jsonDict.Add("ret", "error"); jsonDict.Add("msg", "密码错误"); context.Response.Write(MyCommFun.getJsonStr(jsonDict)); return; } int ssid = userBll.ExistsStoreAndUser(uid); if (ssid == 0 || sid != ssid) { //验证,用户存在,店铺存在,并且用户属于这个店铺 return; } BLL.wx_ucard_gift giftBll = new BLL.wx_ucard_gift(); Model.wx_ucard_gift gift = giftBll.GetModel(giftId); if (gift == null) { jsonDict.Add("ret", "error"); jsonDict.Add("msg", "优惠券不存在"); context.Response.Write(MyCommFun.getJsonStr(jsonDict)); return; } int userTTScore = userBll.GetUserJiFen(uid); if (userTTScore < gift.score.Value) { jsonDict.Add("ret", "error"); jsonDict.Add("msg", "积分不够"); context.Response.Write(MyCommFun.getJsonStr(jsonDict)); return; } //1先添加消费明细,和修改用户的总积分和总消费金额 //新增 consume = new Model.wx_ucard_users_consumeinfo(); consume.moduleActionId = 10; consume.moduleType = "礼品券"; consume.moduleActionId = gift.id; consume.moduleActionName = gift.gName; consume.sId = sid; consume.uid = uid; consume.addTime = DateTime.Now; consume.sn = sn; consume.pwd = pwd; consume.score = -gift.score.Value; consume.cScoreType = 1; conBll.Add(consume, false); jsonDict.Add("ret", "succ"); jsonDict.Add("msg", "成功兑换礼品扣除 " + gift.score.Value + " 积分 "); context.Response.Write(MyCommFun.getJsonStr(jsonDict)); #endregion } }
/// <summary> /// 新增积分记录,比如签到 /// </summary> /// <param name="model"></param> /// <param name="isEW">额外的奖励,1为连续6天签到</param> /// <returns></returns> public int AddJiFen(Model.wx_ucard_users_consumeinfo model, int isEW) { return(dal.AddJiFen(model, isEW)); }
/// <summary> /// 查询该月的消费信息 /// </summary> /// <param name="user"></param> /// <param name="month">如果为0,则表示当月的数据,</param> private void bindMonthXFinfo(Model.wx_ucard_users user, int month) { int year = DateTime.Now.Year; int todayMonth = DateTime.Now.Month; if (month == 0) { month = todayMonth; } IList<Model.wx_ucard_users_consumeinfo> clist = cBll.GetModelList("sId=" + sid + " and uid=" + user.id + " and moduleType!='签到' and year(addTime)=" + year + " and month(addTime)=" + month + " order by addTime desc"); StringBuilder xfSb = new StringBuilder(""); decimal ttMoney = 0; int ttScore = 0; if (clist != null && clist.Count > 0) { Model.wx_ucard_users_consumeinfo c = new Model.wx_ucard_users_consumeinfo(); for (int i = 0; i < clist.Count; i++) { c = clist[i]; xfSb.Append("<tr><td>"+c.addTime.Value.ToString("yyyy-MM-dd")+"</td> <td>"+MyCommFun.Obj2Decimal(c.consumeMoney,0)+"</td> <td>"+MyCommFun.Obj2Int(c.score)+"</td> </tr>"); ttMoney += MyCommFun.Obj2Decimal(c.consumeMoney, 0); ttScore += MyCommFun.Obj2Int(c.score); } BindDaysDetailInfo(clist); } litXFStr.Text = xfSb.ToString(); litttMoney.Text = ttMoney.ToString(); litttScore.Text = ttScore.ToString(); }
/// <summary> /// 新增积分记录,比如签到 /// </summary> /// <param name="model"></param> /// <param name="isEW">额外的奖励,1为连续6天签到</param> /// <returns></returns> public int AddJiFen(Model.wx_ucard_users_consumeinfo model, int isEW) { StringBuilder strSql = new StringBuilder(); strSql.Append("insert into wx_ucard_users_consumeinfo("); strSql.Append("sId,uid,moduleType,moduleTypeId,moduleActionName,moduleActionId,cScoreType,score,cMoneyType,consumeMoney,cContent,remark,addTime,sort_id)"); strSql.Append(" values ("); strSql.Append("@sId,@uid,@moduleType,@moduleTypeId,@moduleActionName,@moduleActionId,@cScoreType,@score,@cMoneyType,@consumeMoney,@cContent,@remark,@addTime,@sort_id)"); strSql.Append(";set @ReturnValue= @@IDENTITY "); SqlParameter[] parameters = { new SqlParameter("@sId", SqlDbType.Int, 4), new SqlParameter("@uid", SqlDbType.Int, 4), new SqlParameter("@moduleType", SqlDbType.VarChar, 80), new SqlParameter("@moduleTypeId", SqlDbType.Int, 4), new SqlParameter("@moduleActionName", SqlDbType.VarChar, 200), new SqlParameter("@moduleActionId", SqlDbType.Int, 4), new SqlParameter("@cScoreType", SqlDbType.Int, 4), new SqlParameter("@score", SqlDbType.Int, 4), new SqlParameter("@cMoneyType", SqlDbType.Int, 4), new SqlParameter("@consumeMoney", SqlDbType.Float, 8), new SqlParameter("@cContent", SqlDbType.VarChar, 800), new SqlParameter("@remark", SqlDbType.VarChar, 300), new SqlParameter("@addTime", SqlDbType.DateTime), new SqlParameter("@sort_id", SqlDbType.Int, 4), new SqlParameter("@ReturnValue", SqlDbType.Int) }; parameters[0].Value = model.sId; parameters[1].Value = model.uid; parameters[2].Value = model.moduleType; parameters[3].Value = 1; if (isEW == 1) { parameters[4].Value = "连续6天签到奖励"; } else { parameters[4].Value = model.moduleActionName; } parameters[5].Value = 0; parameters[6].Value = 1; parameters[7].Value = model.score; parameters[8].Value = model.cMoneyType; parameters[9].Value = model.consumeMoney; parameters[10].Value = ""; parameters[11].Value = ""; parameters[12].Value = DateTime.Now; parameters[13].Value = 0; parameters[14].Direction = ParameterDirection.Output; List <CommandInfo> sqllist = new List <CommandInfo>(); CommandInfo cmd = new CommandInfo(strSql.ToString(), parameters); sqllist.Add(cmd); StringBuilder strSql2 = new StringBuilder(); strSql2.Append("update wx_ucard_users set qdScore=qdScore+@score,ttScore=ttScore+@score where id=@id"); SqlParameter[] parameters2 = { new SqlParameter("@score", SqlDbType.Int, 4), new SqlParameter("@id", SqlDbType.Int, 4), }; parameters2[0].Value = model.score; parameters2[1].Value = model.uid; cmd = new CommandInfo(strSql2.ToString(), parameters2); sqllist.Add(cmd); DbHelperSQL.ExecuteSqlTranWithIndentity(sqllist); return((int)parameters[14].Value); }
/// <summary> /// 查询该月的签到信息 /// </summary> /// <param name="user"></param> /// <param name="month">如果为0,则表示当月的数据,</param> private void bindMonthQD(Model.wx_ucard_users user,int month) { int year = DateTime.Now.Year; int todayMonth = DateTime.Now.Month; if (month == 0) { month = todayMonth; } IList<Model.wx_ucard_users_consumeinfo> qdlist = cBll.GetModelList("sId=" + sid + " and uid=" + user.id + " and moduleType='签到' and year(addTime)=" + year + " and month(addTime)=" + month + " order by addTime desc"); DateTime thisBeginTimes = DateTime.Parse(year + "-" + month + "-1"); DateTime thisEndTimes; if (todayMonth == month) { //当前月 thisEndTimes = DateTime.Now; } else { //非当前月 thisEndTimes = thisBeginTimes.AddMonths(1).AddDays(-1); } int maxDays = thisEndTimes.Day; StringBuilder qdStr = new StringBuilder(""); DateTime tmpTimes = new DateTime(); Model.wx_ucard_users_consumeinfo tmpConsume = new Model.wx_ucard_users_consumeinfo(); int totqdjifen = 0; for (int i = maxDays; i > 0; i--) { //待完成 tmpTimes = DateTime.Parse(year+"-"+month+"-"+i); tmpConsume = getqdInfo(qdlist, tmpTimes); if (tmpConsume != null) { //已经签到 qdStr.Append(getqdStr(tmpTimes,tmpConsume.score.Value,true)); totqdjifen += tmpConsume.score.Value; } else { //未签到 qdStr.Append(getqdStr(tmpTimes,0, false)); } } litQDStr.Text = qdStr.ToString(); litTTqdScore.Text = totqdjifen.ToString(); }
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/json"; string _action = MyCommFun.QueryString("myact"); string openid = MyCommFun.RequestOpenid(); //得到微信用户的openid Dictionary<string, string> jsonDict = new Dictionary<string, string>(); int sid = MyCommFun.RequestInt("sid"); int uid = 0; BLL.wx_ucard_store storeBll = new BLL.wx_ucard_store(); BLL.wx_ucard_users_consumeinfo conBll = new BLL.wx_ucard_users_consumeinfo(); BLL.wx_ucard_score scoreBll = new BLL.wx_ucard_score(); BLL.wx_ucard_users userBll = new BLL.wx_ucard_users(); Model.wx_ucard_users_consumeinfo consume = new Model.wx_ucard_users_consumeinfo(); Model.wx_ucard_score score = new Model.wx_ucard_score(); Model.wx_ucard_store store = storeBll.GetModel(sid); if (store == null) { jsonDict.Add("ret", "err"); jsonDict.Add("msg", "店铺不存在"); context.Response.Write(MyCommFun.getJsonStr(jsonDict)); return; } if (_action == "userreg") { #region //用户第一次领取卡 jsonDict = new Dictionary<string, string>(); if (sid == 0) { jsonDict.Add("ret", "error"); context.Response.Write(MyCommFun.getJsonStr(jsonDict)); return; } string tel = MyCommFun.QueryString("tel"); string realName = MyCommFun.QueryString("truename"); WechatBuilder.Model.wx_ucard_users user = userBll.GetStoreUserInfo(openid, sid); if (user == null) { //第一次添加 user = new Model.wx_ucard_users(); user.mobile = tel; user.realName = realName; user.regTime = DateTime.Now; user.sid = sid; user.openid = openid; user.ttScore = 0; user.consumeScore = 0; user.qdScore = 0; user.consumeMoney = 0; user.regIp = MXRequest.GetIP(); int ret = userBll.Add(user); if (ret > 0) { jsonDict.Add("ret", "succ"); context.Response.Write(MyCommFun.getJsonStr(jsonDict)); } else { jsonDict.Add("ret", "err"); context.Response.Write(MyCommFun.getJsonStr(jsonDict)); } } else { user.mobile = tel; user.realName = realName; user.regTime = DateTime.Now; user.sid = sid; user.openid = openid; user.regIp = MXRequest.GetIP(); bool ret = userBll.Update(user); if (ret) { jsonDict.Add("ret", "succ"); context.Response.Write(MyCommFun.getJsonStr(jsonDict)); } else { jsonDict.Add("ret", "err"); context.Response.Write(MyCommFun.getJsonStr(jsonDict)); } } context.Response.End(); #endregion } else if (_action == "qiandao") { #region 签到 jsonDict = new Dictionary<string, string>(); sid = MyCommFun.RequestInt("sid"); uid = MyCommFun.RequestInt("uid"); if (sid == 0 || uid == 0) { jsonDict.Add("ret", "error"); context.Response.Write(MyCommFun.getJsonStr(jsonDict)); return; } bool hasqd = conBll.hasDayQD(sid, uid, DateTime.Now); int retScore = 0; if (!hasqd) { //新增 //取签到积分策略 score = scoreBll.GetStoreModel(sid); if (score != null) { //判断是否6天连续签到,并且6天内没有给额外的奖励 DateTime day6before = DateTime.Now.AddDays(-6); int record = conBll.GetRecordCount("sId=" + sid + " and uid=" + uid + " and moduleType='签到' and addTime>='" + day6before.ToShortDateString() + "' and addTime<'" + DateTime.Now.ToShortDateString() + "' and moduleActionId=6 "); if (record >= 5) { consume = new Model.wx_ucard_users_consumeinfo(); consume.sId = sid; consume.uid = uid; consume.moduleType = "签到"; consume.moduleActionName = "连续6天签到奖励"; consume.moduleActionId = 6; consume.score = MyCommFun.Obj2Int(score.qiandao6Score) + score.qiandaoScore.Value; conBll.AddJiFen(consume, 0); retScore = MyCommFun.Obj2Int(score.qiandao6Score) + score.qiandaoScore.Value; } else { consume = new Model.wx_ucard_users_consumeinfo(); consume.sId = sid; consume.uid = uid; consume.moduleType = "签到"; consume.score = score.qiandaoScore.Value; conBll.AddJiFen(consume, 0); retScore = score.qiandaoScore.Value; } } } jsonDict.Add("ret", "succ"); jsonDict.Add("msg", "+" + retScore + "分,明天继续"); context.Response.Write(MyCommFun.getJsonStr(jsonDict)); #endregion } else if (_action == "tequan") { #region //消费: 特权 ,注意,只有在新增这个的时候记录user表总积分,修改的时候 对user表的总积分和金额先减后加 jsonDict = new Dictionary<string, string>(); sid = MyCommFun.RequestInt("sid"); //店铺id uid = MyCommFun.RequestInt("uid");//用户id string sn = MyCommFun.QueryString("sncode"); string pwd = MyCommFun.QueryString("parssword"); float money = MyCommFun.RequestFloat("money", 0); int pid = MyCommFun.RequestInt("pid");//特权主键id string type = MyCommFun.QueryString("type");//tequan:特权 if (sid == 0 || uid == 0 || pid == 0) { jsonDict.Add("ret", "error"); jsonDict.Add("msg", "error"); context.Response.Write(MyCommFun.getJsonStr(jsonDict)); return; } if (pwd != store.consumePwd) { jsonDict.Add("ret", "error"); jsonDict.Add("msg", "密码错误"); context.Response.Write(MyCommFun.getJsonStr(jsonDict)); return; } int ssid = userBll.ExistsStoreAndUser(uid); if (ssid == 0 || sid != ssid) { //验证,用户存在,店铺存在,并且用户属于这个店铺 return; } BLL.wx_ucard_privileges privBll = new BLL.wx_ucard_privileges(); Model.wx_ucard_privileges privileges = privBll.GetModel(pid); if (privileges == null) { jsonDict.Add("ret", "error"); jsonDict.Add("msg", "特权不存在"); context.Response.Write(MyCommFun.getJsonStr(jsonDict)); return; } //积分策略 score = scoreBll.GetStoreModel(sid); int avgScore = score.consumeMoneyScore.Value / score.consumeMoney.Value; //1先添加消费明细,和修改用户的总积分和总消费金额 //IList<Model.wx_ucard_users_consumeinfo> conlist = conBll.GetModelList("moduleType='特权' and moduleActionId=" + privileges.id + " and sid=" + sid + " and uid=" + uid); //if (conlist == null || conlist.Count <= 0 || conlist[0] == null) //{ //新增 consume = new Model.wx_ucard_users_consumeinfo(); consume.moduleActionId = 10; consume.moduleType = "特权"; consume.moduleActionId = privileges.id; consume.moduleActionName = privileges.pName; consume.sId = sid; consume.uid = uid; consume.consumeMoney = (decimal)money; consume.addTime = DateTime.Now; consume.sn = sn; consume.pwd = pwd; consume.cMoneyType = 2; consume.score = (int)(avgScore * money); consume.cScoreType = 1; conBll.Add(consume,true); //} //else //{ // //修改 // consume = conlist[0]; // decimal oldMoney = MyCommFun.Obj2Decimal(consume.consumeMoney, 0); // int oldScore = MyCommFun.Obj2Int(consume.score); // consume.moduleActionName = privileges.pName; // consume.consumeMoney = (decimal)money; // consume.sn = sn; // consume.pwd = pwd; // consume.cMoneyType = 2; // consume.score = (int)(avgScore * money); // conBll.UpdateInfoAndUserTT(consume, oldMoney, oldScore); //} jsonDict.Add("ret", "succ"); jsonDict.Add("msg", "获得" + consume.score.Value + "积分 "); context.Response.Write(MyCommFun.getJsonStr(jsonDict)); #endregion } else if (_action == "lq_yhq") { #region 领取优惠券 jsonDict = new Dictionary<string, string>(); sid = MyCommFun.RequestInt("sid"); //店铺id uid = MyCommFun.RequestInt("uid");//用户id string sn = MyCommFun.QueryString("sncode"); string pwd = MyCommFun.QueryString("parssword"); float money = MyCommFun.RequestFloat("money", 0); int ticketId = MyCommFun.RequestInt("cid");//优惠券主键id if (sid == 0 || uid == 0 || ticketId == 0) { jsonDict.Add("ret", "error"); jsonDict.Add("msg", "error"); context.Response.Write(MyCommFun.getJsonStr(jsonDict)); return; } if (pwd != store.consumePwd) { jsonDict.Add("ret", "error"); jsonDict.Add("msg", "密码错误"); context.Response.Write(MyCommFun.getJsonStr(jsonDict)); return; } int ssid = userBll.ExistsStoreAndUser(uid); if (ssid == 0 || sid != ssid) { //验证,用户存在,店铺存在,并且用户属于这个店铺 return; } BLL.wx_ucard_ticket ticketBll = new BLL.wx_ucard_ticket(); Model.wx_ucard_ticket ticket = ticketBll.GetModel(ticketId); if (ticket == null) { jsonDict.Add("ret", "error"); jsonDict.Add("msg", "优惠券不存在"); context.Response.Write(MyCommFun.getJsonStr(jsonDict)); return; } int syTimes = ticketBll.getsyTimesByTicket(uid, ticketId); if (syTimes <= 0) { jsonDict.Add("ret", "error"); jsonDict.Add("msg", "已没有使用次数"); context.Response.Write(MyCommFun.getJsonStr(jsonDict)); return; } //积分策略 score = scoreBll.GetStoreModel(sid); int avgScore = score.consumeMoneyScore.Value / score.consumeMoney.Value; //1先添加消费明细,和修改用户的总积分和总消费金额 //新增 consume = new Model.wx_ucard_users_consumeinfo(); consume.moduleActionId = 10; consume.moduleType = "优惠券"; consume.moduleActionId = ticket.id; consume.moduleActionName = ticket.tName; consume.sId = sid; consume.uid = uid; consume.consumeMoney = (decimal)money; consume.addTime = DateTime.Now; consume.sn = sn; consume.pwd = pwd; consume.cMoneyType = 2; consume.score = (int)(avgScore * money); consume.cScoreType = 1; conBll.Add(consume,true); syTimes -= 1; jsonDict.Add("ret", "succ"); jsonDict.Add("msg", "获得" + consume.score.Value + "积分 "); jsonDict.Add("sy", syTimes.ToString()); context.Response.Write(MyCommFun.getJsonStr(jsonDict)); #endregion } else if (_action == "gift") { #region 兑换礼品券 jsonDict = new Dictionary<string, string>(); sid = MyCommFun.RequestInt("sid"); //店铺id uid = MyCommFun.RequestInt("uid");//用户id string sn = MyCommFun.QueryString("sncode"); string pwd = MyCommFun.QueryString("parssword"); float money = MyCommFun.RequestFloat("money", 0); int giftId = MyCommFun.RequestInt("gid");//礼品主键id if (sid == 0 || uid == 0 || giftId == 0) { jsonDict.Add("ret", "error"); jsonDict.Add("msg", "error"); context.Response.Write(MyCommFun.getJsonStr(jsonDict)); return; } if (pwd != store.consumePwd) { jsonDict.Add("ret", "error"); jsonDict.Add("msg", "密码错误"); context.Response.Write(MyCommFun.getJsonStr(jsonDict)); return; } int ssid = userBll.ExistsStoreAndUser(uid); if (ssid == 0 || sid != ssid) { //验证,用户存在,店铺存在,并且用户属于这个店铺 return; } BLL.wx_ucard_gift giftBll = new BLL.wx_ucard_gift(); Model.wx_ucard_gift gift = giftBll.GetModel(giftId); if (gift == null) { jsonDict.Add("ret", "error"); jsonDict.Add("msg", "优惠券不存在"); context.Response.Write(MyCommFun.getJsonStr(jsonDict)); return; } int userTTScore = userBll.GetUserJiFen(uid); if (userTTScore <gift.score.Value) { jsonDict.Add("ret", "error"); jsonDict.Add("msg", "积分不够"); context.Response.Write(MyCommFun.getJsonStr(jsonDict)); return; } //1先添加消费明细,和修改用户的总积分和总消费金额 //新增 consume = new Model.wx_ucard_users_consumeinfo(); consume.moduleActionId = 10; consume.moduleType = "礼品券"; consume.moduleActionId = gift.id; consume.moduleActionName = gift.gName; consume.sId = sid; consume.uid = uid; consume.addTime = DateTime.Now; consume.sn = sn; consume.pwd = pwd; consume.score = -gift.score.Value; consume.cScoreType = 1; conBll.Add(consume,false); jsonDict.Add("ret", "succ"); jsonDict.Add("msg", "成功兑换礼品扣除 " + gift.score.Value + " 积分 "); context.Response.Write(MyCommFun.getJsonStr(jsonDict)); #endregion } }