Exemplo n.º 1
0
 //public static Hashtable HashtableInstance
 //{
 //    get
 //    {
 //        if (_msgQueue == null)
 //        {
 //            lock (_objectHashtable)
 //            {
 //                if (_msgQueue == null)
 //                {
 //                    _msgQueue = new Hashtable();
 //                }
 //            }
 //        }
 //        return _msgQueue;
 //    }
 //}
 public Result AddMessageQueue(string openID, long taskID, string ad_name)
 {
     Log.Default.Debug("AddMessageQueue:openID=" + openID + ";taskID=" + taskID);
     MessageQueueDAL dal = new MessageQueueDAL();
     MessageQueueModel model = new MessageQueueModel();
     model.PushStatus = (int)PushStatusEnum.等待;
     model.OpenID = openID;
     model.TaskID = taskID;
     model.AddTime = DateTime.Now;
     model.AdName = "wait";
     dal.InsertSQL(model);
     //if (_msgQueue.ContainsKey(openID))
     //    return false.ToResult("消息队列中已存在这条消息");
     //_msgQueue.Add(openID, taskID);
     return true.ToResult();
 }
Exemplo n.º 2
0
 public Result SendMessageQueue()
 {
     MessageQueueDAL dal = new MessageQueueDAL();
     int record = 0;
     IList<MessageQueueModel> _msgQueue = dal.Query(int.MaxValue, 1, out record, " PushStatus!=" + (int)PushStatusEnum.完成, " AddTime DESC");
     Log.Default.Debug("MessageQueue-count:" + _msgQueue.Count);
     if (_msgQueue.Count < 1)
     {
         return false.ToResult();
     }
     Snsapi_UserInfo ui = OAuth.GetAccessToken(MPOAuth.OAuthAppID, MPOAuth.OAuthAppSercet);
     var url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + ui.access_token;
     foreach (MessageQueueModel de in _msgQueue)
     {
         //Mission miss = InterfaceControler.GetMission(de.TaskID);
         //string ad_name = miss.ad_name;
         //string data = "{" +
         //        "\"touser\": \"" + de.OpenID + "\"," +
         //        "\"template_id\": \"" + ConfigurationManager.AppSettings["TemplateID"] + "\"," +
         //        "\"topcolor\": \"#26c303\"," +
         //        "\"url\": \"" + ConfigurationManager.AppSettings["ClientDeployDomain"] + "/MissionList.aspx\"," +
         //        "\"data\": {" +
         //            "\"first\": {\"value\":\"" + "您有新的任务" + "\",\"color\":\"#173177\"}," +
         //            "\"keyword1\": {\"value\":\"" + ad_name + "\",\"color\":\"#173177\"}," +
         //            "\"keyword2\": {\"value\":\"" + "待领" + "\",\"color\":\"#173177\"}," +
         //            "\"remark\": {\"value\":\"" + "请及时领取" + "\",\"color\":\"#173177\"}" +
         //        "}" +
         //    "}";
         //Log.Default.Debug("messageData:" + data);
         ////res = CommonJsonSend.Send(accessToken, url, data, CommonJsonSendType.POST);
         //string backstr = "";
         //HttpWebResponse response = null;
         //StreamReader sr = null;
         //WxJsonResult wjr = new WxJsonResult();
         //try
         //{
         //    HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
         //    byte[] requestBytes = System.Text.Encoding.UTF8.GetBytes(data);
         //    req.Method = "POST";
         //    req.ContentType = "application/x-www-form-urlencoded";
         //    req.ContentLength = requestBytes.Length;
         //    Stream requestStream = req.GetRequestStream();
         //    requestStream.Write(requestBytes, 0, requestBytes.Length);
         //    requestStream.Close();
         //    response = (HttpWebResponse)req.GetResponse();
         //    sr = new StreamReader(response.GetResponseStream(), System.Text.Encoding.Default);
         //    backstr = sr.ReadToEnd();
         //    Log.Default.Debug("backstr:" + backstr);
         //    wjr = JsonConvert.DeserializeObject<WxJsonResult>(backstr);
         //    de.PushStatus = (int)PushStatusEnum.完成;
         //    dal.UpdateSQL(de);
         //}
         //catch (Exception ex)
         //{
         //    Log.Default.Error(ex);
         //    if (sr != null)
         //        sr.Close();
         //    if (response != null)
         //        response.Close();
         //    try
         //    {
         //        de.PushStatus = (int)PushStatusEnum.失败;
         //        dal.UpdateSQL(de);
         //    }
         //    catch (Exception)
         //    {
         //    }
         //}
     }
     return true.ToResult();
 }