示例#1
0
        /// <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();
        }
示例#2
0
        /// <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();
        }
示例#3
0
        /// <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);
                }
            }
        }
示例#4
0
        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
            }
        }
示例#5
0
 /// <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();
        }
示例#7
0
        /// <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);
        }
示例#8
0
        /// <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
            }

        }