您的位置:首页 > 移动开发 > 微信开发

微信里面的签到加积分接口(已经测试过没问题)服务号不能每天发送消息,为了避免这个,每天签到的时候,推送一条最新的消息给客户。

2013-12-27 15:23 811 查看
  public string QianDao(string WeiXinId, string key)//参数是微信号

        {

            strs = WeiXinId.Trim() + "WJXFGCLN+Mihaha";

            strs = DESEncrypt.Encrypt(strs);

            if (strs == key)//验证

            {

                string qdstr = "";

                DTcms.Model.users user = new BLL.users().LoginWeiXin(WeiXinId);//通过微信id来获取当前登录用户的id;

                if (user != null)

                {

                    string spoint = "0";//初始分值

                    string epoint = "0";//每日增长分值

                    string zpoint = "0";//最高分值

                    string day = "0";

                    List<DTcms.Model.dt_qiandaopoint_log> modelpoint = new BLL.dt_qiandaopoint_log().GetModelList(string.Format("parent=0"));//查询出管理员对应的有没有信息

                    if (modelpoint.Count > 0)

                    {

                        for (int i = 0; i < modelpoint.Count; i++)

                        {

                            epoint = modelpoint[i].epoint;//递增分值

                            zpoint = modelpoint[i].zpoint;//最高分值

                            List<DTcms.Model.dt_qiandaopoint_log> listlog = new BLL.dt_qiandaopoint_log().GetModelList(string.Format("user_id='{0}'", user.id));//根据当前的用户id查询当前用户有没有签到过

                            if (listlog.Count > 0)//如果有对应的用户

                            {

                                for (int j = 0; j < listlog.Count; j++)

                                {

                                    DateTime datetime_old = DateTime.Parse(listlog[j].addtime.ToString());

                                    if (DateTime.Now.AddDays(-1).ToString("yyyyMMdd") == datetime_old.ToString("yyyyMMdd"))//连续签到的(当天的日期-1=昨天的日期)

                                    {

                                        #region

                                        if (DateTime.Now.AddDays(0).ToString("yyyyMMdd") != datetime_old.ToString("yyyyMMdd"))//如果不是当天的时间就可以签到

                                        {

                                            day = (Int32.Parse(listlog[j].day) + 1).ToString();//天数

                                            if (listlog[i].spoint == zpoint)//判断增长分值等于最高连续增长的分值

                                            {

                                                spoint = zpoint;

                                            }

                                            else

                                            {

                                                spoint = (Int32.Parse(listlog[i].epoint) * (Int32.Parse(listlog[i].day) + 1)).ToString();//每天的增长值

                                            }

                                            //添加point_log表(积分表)

                                            Model.point_log modelpointlog = new Model.point_log();

                                            modelpointlog.user_id = Convert.ToInt32(user.id.ToString());

                                            modelpointlog.user_name = user.user_name;

                                            modelpointlog.value = Convert.ToInt32(spoint.ToString());

                                            modelpointlog.remark = "签到" + int.Parse(day) + "天,送" + spoint + "积分";

                                            modelpointlog.add_time = DateTime.Now;

                                            new BLL.point_log().Add(modelpointlog);

                                            //修改user表(用户表)

                                            user.point = user.point + Convert.ToInt32(spoint.ToString());

                                            new BLL.users().Update(user);

                                            //存数据(签到表)

                                            Model.dt_qiandaopoint_log model = new Model.dt_qiandaopoint_log();

                                            model.user_id = user.id.ToString();

                                            model.addtime = DateTime.Now;

                                            model.spoint = spoint;

                                            model.epoint = epoint;

                                            model.zpoint = modelpoint[i].zpoint;

                                            model.day = day;//天数

                                            model.parent = 1;

                                            new BLL.dt_qiandaopoint_log().Add(model);

                                            string points = user.point.ToString();

                                            string a = HttpContext.Current.Request.Url.Authority;

                                            //推送一条消息

                                            DataSet ds = new BLL.user_message().GetListName(1, user.user_name);

                                            if (ds.Tables[0].Rows.Count > 0)

                                            {

                                                qdstr = "您好,您今天签到成功!\n今日所获积分为:" + model.spoint + "分,\n" + "您已连续签到:" + model.day + "天,\n" + "目前总积分数为:" + points + "分.\n" + "推送消息:<a href=\'http://" + a + "/user/message/accept.aspx\'>" + ds.Tables[0].Rows[0]["title"].ToString()
+ "</a>";

                                            }

                                            else

                                            {

                                                qdstr = "您好,您今天签到成功!\n今日所获积分为:" + model.spoint + "分,\n" + "您已连续签到:" + model.day + "天,\n" + "目前总积分数为:" + points + "分.";

                                            }

                                        }

                                        else//如果是当天的时间就说明已经签到过

                                        {

                                            qdstr = "您好,您今天已经签到,改天再来吧.";

                                        }

                                        #endregion

                                    }

                                    else //不连续签到的

                                    {

                                        #region

                                        if (DateTime.Now.AddDays(0).ToString("yyyyMMdd") != datetime_old.ToString("yyyyMMdd"))//如果不是当天的时间就签到

                                        {

                                            //添加point_log表

                                            Model.point_log modelpointlog = new Model.point_log();

                                            modelpointlog.user_id = Convert.ToInt32(user.id.ToString());

                                            modelpointlog.user_name = user.user_name;

                                            modelpointlog.value = Convert.ToInt32(epoint.ToString());

                                            modelpointlog.remark = "签到1天,送" + epoint + "积分";

                                            modelpointlog.add_time = DateTime.Now;

                                            int result = new BLL.point_log().Add(modelpointlog);

                                            //修改user表

                                            user.point = user.point + int.Parse(epoint.ToString());

                                            new BLL.users().Update(user);

                                            //存数据

                                            Model.dt_qiandaopoint_log model = new Model.dt_qiandaopoint_log();

                                            model.user_id = user.id.ToString();

                                            model.addtime = DateTime.Now;

                                            model.spoint = epoint;

                                            model.epoint = epoint;

                                            model.zpoint = zpoint;

                                            model.day = "1";//天数

                                            model.parent = 1;

                                            new BLL.dt_qiandaopoint_log().Add(model);

                                            string points = user.point.ToString();

                                            //推送一条消息

                                            string a = HttpContext.Current.Request.Url.Authority;

                                            DataSet ds = new BLL.user_message().GetListName(1,user.user_name);

                                            if (ds.Tables[0].Rows.Count > 0)

                                            {

                                                qdstr = "您好,您今天签到成功!\n今日所获积分为:" + model.spoint + "分,\n" + "您已连续签到:" + model.day + "天,\n" + "目前总积分数为:" + points + "分.\n" + "推送消息:<a href=\'http://" + a + "/user/message/accept.aspx\'>" + ds.Tables[0].Rows[0]["title"].ToString()
+ "</a>";

                                            }

                                            else

                                            {

                                                qdstr = "您好,您今天签到成功!\n今日所获积分为:" + model.spoint + "分,\n" + "您已连续签到:" + model.day + "天,\n" + "目前总积分数为:" + points + "分.";

                                            }

                                        }

                                        else

                                        {

                                            qdstr = "您好,您今天已经签到,改天再来吧.";

                                        }

                                        #endregion

                                    }

                                }

                            }

                            else//如果之前没有签到过的

                            {

                                #region

                                //添加point_log表

                                Model.point_log modelpointlog = new Model.point_log();

                                modelpointlog.user_id = Convert.ToInt32(user.id.ToString());

                                modelpointlog.user_name = user.user_name;

                                modelpointlog.value = Convert.ToInt32(epoint.ToString());

                                modelpointlog.remark = "签到1天,送" + epoint + "积分";

                                modelpointlog.add_time = DateTime.Now;

                                int result = new BLL.point_log().Add(modelpointlog);

                                //修改user表

                                //  string str = spoint;

                                user.point = user.point + int.Parse(epoint.ToString());

                                new BLL.users().Update(user);

                                //存数据

                                Model.dt_qiandaopoint_log model = new Model.dt_qiandaopoint_log();

                                model.user_id = user.id.ToString();

                                model.addtime = DateTime.Now;

                                model.spoint = epoint;

                                model.epoint = epoint;

                                model.zpoint = zpoint;

                                model.day = "1";//天数

                                model.parent = 1;

                                new BLL.dt_qiandaopoint_log().Add(model);

                                string points = user.point.ToString();

                                //推送一条消息

                                DataSet ds = new BLL.user_message().GetListName(1, user.user_name);

                                string a = HttpContext.Current.Request.Url.Authority;

                                if (ds.Tables[0].Rows.Count > 0)

                                {

                                    qdstr = "您好,您今天签到成功!\n今日所获积分为:" + model.spoint + "分,\n" + "您已连续签到:" + model.day + "天,\n" + "目前总积分数为:" + points + "分.\n" + "推送消息:<a href=\'http://" + a + "/user/message/accept.aspx\'>" + ds.Tables[0].Rows[0]["title"].ToString()
+ "</a>";

                                }

                                else

                                {

                                    qdstr = "您好,您今天签到成功!\n今日所获积分为:" + model.spoint + "分,\n" + "您已连续签到:" + model.day + "天,\n" + "目前总积分数为:" + points + "分.";

                                }

                                #endregion

                            }

                        }

                    }

                    else//管理员没有添加签到的积分规则

                    {

                        qdstr = "请联系管理员分配签到功能!!!";

                    }

                    return qdstr;

                }

                else

                {

                    qdstr = "0";//没有绑定

                }

                return qdstr;

            }

            else

            {

                strs = "验证失败";

                return strs;

            }

        }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐