Esempio n. 1
0
        /// <summary>
        /// 推送消息给特定标签用户
        /// </summary>
        /// <param name="request">request.PushUsers 以,分隔的多个标签</param>
        /// <returns></returns>
        public SnsResponse JpushSendToTag(SnsRequest request)
        {
            JpushLog _model = new JpushLog();

            _model.CreateTime = DateTime.Now;
            _model.PushId     = request.UserId;
            _model.IsToAll    = 0;
            _model.BePushId   = request.PushUsers;
            _model.PushMsg    = request.PushMsg;
            if (request.PushExtras != null)
            {
                _model.ParamString = request.PushExtras.ToString();
            }
            _jpushLog.Insert(_model);

            PushPayload pushPayload = GetPushPayload(request);
            var         userlist    = request.PushUsers.Split(',');

            pushPayload.audience = Audience.s_tag(userlist);

            var         result   = JPushClient.SendPush(pushPayload);
            SnsResponse response = new SnsResponse();

            response.JpushMsgId = result.msg_id;
            return(response);
        }
Esempio n. 2
0
        /// <summary>
        /// 推送消息给所有APP端
        /// </summary>
        /// <param name="request">request.PushMsg</param>
        /// <returns></returns>
        public SnsResponse JpushSendToAll(SnsRequest request)
        {
            PushPayload pushPayload = GetPushPayload(request);

            //写记录
            System.Threading.Tasks.Task.Run(() =>
            {
                JpushLog _model   = new JpushLog();
                _model.CreateTime = DateTime.Now;
                _model.PushId     = request.UserId;
                _model.IsToAll    = 1;
                _model.BePushId   = request.PushUsers;
                _model.PushMsg    = request.PushMsg;
                if (request.PushExtras != null)
                {
                    _model.ParamString = request.PushExtras.ToString();
                }
                _jpushLog.Insert(_model);
            });

            var         result   = JPushClient.SendPush(pushPayload);
            SnsResponse response = new SnsResponse();

            response.JpushMsgId = result.msg_id;
            return(response);
        }
Esempio n. 3
0
        /// <summary>
        /// 推送消息给别名用户
        /// </summary>
        /// <param name="request">request.PushUsers 以,分隔的多个别名</param>
        /// <returns></returns>
        public SnsResponse JpushSendToAlias(SnsRequest request)
        {
            PushPayload pushPayload = GetPushPayload(request);
            var         userlist    = request.PushUsers.Split(',');

            //写记录
            System.Threading.Tasks.Task.Run(() =>
            {
                JpushLog _model   = new JpushLog();
                _model.CreateTime = DateTime.Now;
                _model.PushId     = request.UserId;
                _model.IsToAll    = 0;
                _model.BePushId   = request.PushUsers;
                _model.PushMsg    = request.PushMsg;
                if (request.PushExtras != null)
                {
                    _model.ParamString = request.PushExtras.ToString();
                }
                _jpushLog.Insert(_model);
            });

            SnsResponse response = new SnsResponse();


            int splitSize = _defaultPushGroupSize;                             //分割的块大小

            Object[] subAry = StringToolsHelper.splitAry(userlist, splitSize); //分割后的子块数组

            //分批次推送操作
            for (int i = 0; i < subAry.Length; i++)
            {
                string[] aryItem = (string[])subAry[i];
                var      itemStr = string.Join(",", aryItem);
                try
                {
                    pushPayload.audience = Audience.s_alias(aryItem);

                    var result = JPushClient.SendPush(pushPayload);
                    response.JpushMsgId = result.msg_id;

                    #region 推送日志

                    //System.Threading.Tasks.Task.Run(() =>
                    //{
                    //    //写日志
                    //    Logger.Error("SnsService———>JpushSendToAlias:" + string.Format("认证用户发送jpush用户ID列表:{0}", itemStr));
                    //});

                    #endregion
                }
                catch (Exception e)
                {
                    //Logger.Error("SnsService———>JpushSendToAlias:" + string.Format("认证用户发送jpush:{0},提供的错误信息:{1},id列表:{2}", e.Message, ((cn.jpush.api.common.APIRequestException)e).ErrorMessage, itemStr));
                }
                //休息一秒 避免:Request times of the app_key exceed the limit of current time window
                System.Threading.Thread.Sleep(100);
            }

            return(response);
        }
 public JpushLog Insert(JpushLog model)
 {
     return(this._JpushLogBiz.Insert(model));
 }
Esempio n. 5
0
 public JpushLog Insert(JpushLog model)
 {
     throw new NotImplementedException();
 }