예제 #1
0
        //审批请求
        public static List <MessageManage> Email_Rtn_SP(int gonghao, int userid)
        {
            string               sql   = "select distinct User_JobNumber from ms_user join MS_PositionTable on MS_User.Departmentid=MS_PositionTable.DepartmentID where MS_User.Dutyid in(select distinct PositionId from MS_PositionTable where PositionName like '%经理%' or PositionName like '%人事%')and User_JobNumber=" + gonghao;
            DataTable            table = DBHelper.Select(sql);
            List <MessageManage> list  = new List <MessageManage>();

            if (table.Rows.Count > 0)
            {
                string    sql2   = "select *,MS_User.[User_Name] as name from MS_Message_Manage join MS_User on MS_User.[User_Id]=MS_Message_Manage.SenderID where RecipientID=" + userid;
                DataTable table2 = DBHelper.Select(sql2);
                foreach (DataRow row in table2.Rows)
                {
                    MessageManage mes = new MessageManage();
                    mes.SenderID        = new User();
                    mes.SenderID.UserID = Convert.ToInt32(row["SenderID"]);
                    mes.MessageSendTime = row["Message_SendTime"].ToString();
                    mes.MessageContent  = row["Message_Content"].ToString();
                    mes.MessageTitle    = row["Message_Title"].ToString();
                    mes.name            = row["name"].ToString();
                    list.Add(mes);
                }
                return(list);
            }
            return(null);
        }
예제 #2
0
        private void SendMessage(List <string> userId, string msg)
        {
            XTXX xtxx = new XTXX();

            xtxx.XXBH  = Guid.NewGuid().ToString();
            xtxx.XXBT  = "系统消息";
            xtxx.XXNR  = msg;
            xtxx.FSR   = "0";
            xtxx.FSSJ  = DateTime.Now;
            xtxx.XXLX  = "1";
            xtxx.FSRSC = "1";

            List <XTXXJS> xtxxjss = new List <XTXXJS>();

            foreach (string sjr in userId)
            {
                xtxxjss.Add(new XTXXJS()
                {
                    JSXXBH  = xtxx.XXBH,
                    JSR     = sjr,
                    JSRXZDM = "",
                    YDZT    = "0",
                    JSRSC   = "0"
                });
            }
            MessageManage mess = new MessageManage();

            mess.AddMessage(xtxx, xtxxjss);
        }
예제 #3
0
        public ActionResult GetMessage()
        {
            try
            {
                var msg = new MessageManage();
                if (msg.GetNewMessageCount > 0)
                {
                    //string messagetext = string.Format("Ext.Msg.notify('{0}', '{1}');",
                    //    string.Format("{0}条新消息", msg.GetNewMessageCount),
                    //    string.Format("{0}个任务需要审核!", msg.GetTaskCount));
                    //X.AddScript(messagetext);
                    string title   = string.Format("{0}条新消息", msg.GetNewMessageCount);
                    string content = string.Format("<a target='_blank' href='{1}'>{0}个任务需要审核!</a>", msg.GetTaskCount, Url.Action("TaskCheck", "WorkPlatform", new { area = "user" }));
                    X.MessageBox.Notify(new NotificationConfig {
                        AutoHide = true, HideDelay = 5000, Title = title, Html = content, Closable = true
                    }).Show();

                    msg.GetNewMessage();
                }
                this.GetCmp <Label>("messagenum").Text = msg.GetMessageCount.ToString();
                this.GetCmp <Label>("tasknum").Text    = msg.GetTaskCount.ToString();
                this.GetCmp <Label>("ccnum").Text      = msg.GetCcCount.ToString();
            }
            catch (Exception)
            {
                return(this.Direct(false));
            }

            return(this.Direct(true));
        }
예제 #4
0
 public static MessageManage GetInstance()
 {
     if (Instance == null)
     {
         Instance = new MessageManage();
     }
     return(Instance);
 }
예제 #5
0
        public async Task ListenTunnel()
        {
            try
            {
                Log("BEGIN LISTEN");
                using (var tunnel = _client.EventTunnel())
                {
                    this._tunnel = tunnel;
                    var responseTask = Task.Run(async() => {
                        while (await tunnel.ResponseStream.MoveNext(CancellationToken.None))
                        {
                            var response = tunnel.ResponseStream.Current;

                            if (response.EventType != "PONG")
                            {
                                Log($"GOT MESSAGE {response.EventType} {response.Body}");
                            }

                            if (response.EventType == "LOGIN")
                            {
                                QQLoginInfo qqinfo = JsonConvert.DeserializeObject <QQLoginInfo>(response.Body);
                                var user           = new QQUser(qqinfo.QQNumber, qqinfo.Password);
                                var socketServer   = new GRPCSocketServiceImpl(user, this);
                                var transponder    = new Transponder();
                                var sendService    = new GRPCSendMessageServiceImpl(socketServer, user);

                                var manage = new MessageManage(socketServer, user, transponder);
                                var robot  = new GRPCRobot(sendService, transponder, user, this);

                                manage.Init();
                            }
                        }
                    });

                    EventRequest req = new EventRequest {
                        EventType  = "REGISTER",
                        Body       = "HELLO",
                        ClientId   = this.clientId,
                        ClientType = this.clientType
                    };
                    await tunnel.RequestStream.WriteAsync(req);

                    foreach (EventRequest ping in SendPing(10))
                    {
                        await tunnel.RequestStream.WriteAsync(ping);
                    }
                    await tunnel.RequestStream.CompleteAsync();

                    await responseTask;
                    Log("Tunnel ended");
                }
            }
            catch (RpcException e)
            {
                Log("RPC failed", e);
            }
        }
예제 #6
0
        private static void Main(string[] args)
        {
            var user         = new QQUser(0, "");
            var socketServer = new SocketServiceImpl(user);
            var transponder  = new Transponder();
            var sendService  = new SendMessageServiceImpl(socketServer, user);

            var manage = new MessageManage(socketServer, user, transponder);

            var robot = new TestRoBot(sendService, transponder, user);

            manage.Init();
            Console.ReadKey();
        }
예제 #7
0
        private static void Main(string[] args)
        {
            if (args.Length != 2)
            {
                throw new Exception("参数数量错误:账号 密码。");
            }
            var user         = new QQUser(long.Parse(args[0]), args[1]); // 虽然已经太迟了,但是还是把密码去掉了... 起码总比在这里好啊!(塞口球
            var socketServer = new SocketServiceImpl(user);
            var transponder  = new Transponder();
            var sendService  = new SendMessageServiceImpl(socketServer, user);

            var manage = new MessageManage(socketServer, user, transponder);

            var robot = new TestRobot(sendService, transponder, user);

            manage.Init();
            Console.ReadKey();
        }
예제 #8
0
        private static void Main(string[] args)
        {
            #if NETCOREAPP2_0 || NETCOREAPP2_1
            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
            #endif
            var user         = new QQUser(MyQQ, MyPassWord);
            var socketServer = new SocketServiceImpl(user);
            var transponder  = new Transponder();
            var sendService  = new SendMessageServiceImpl(socketServer, user);

            var manage = new MessageManage(socketServer, user, transponder);

            #if NETCOREAPP2_0 || NETCOREAPP2_1
            #else
            var robot = new TestRoBot(sendService, transponder, user);
            #endif

            manage.Init();
            Console.ReadKey();
        }
예제 #9
0
        public override void Sync()
        {
            MessageManage    messageManage             = new MessageManage();
            Action <DataRow> actionAddLocalMessageFile = new Action <DataRow>((dr) =>
            {
                string xxbh           = dr["xxbh"].ToString();
                string messageFtpPath = CommonManage.GetFtpMessagePath();
                LogOperation.Append(sbLog, "从" + targetCode + "到" + localCode + "同步系统消息(" + xxbh + ")的文件。");
                targetFtp.CopyDirectory(messageFtpPath, xxbh, localFtp, messageFtpPath, xxbh, null);
            });
            Action <DataRow> actionAddTargetMessageFile = new Action <DataRow>((dr) =>
            {
                string xxbh           = dr["xxbh"].ToString();
                string messageFtpPath = CommonManage.GetFtpMessagePath();
                LogOperation.Append(sbLog, "从" + localCode + "到" + targetCode + "同步系统消息(" + xxbh + ")的文件。");
                localFtp.CopyDirectory(messageFtpPath, xxbh, targetFtp, messageFtpPath, xxbh, null);
            });
            Action <DataRow> actionDeleteLocalMessageFile = new Action <DataRow>((dr) =>
            {
                string xxbh = dr["xxbh"].ToString();
                LogOperation.Append(sbLog, "删除" + localCode + "的系统消息(" + xxbh + ")的文件。");
                localFtp.DeleteDirectory(CommonManage.GetFtpMessagePath(xxbh));
            });
            Action <DataRow> actionDeleteTargetMessageFile = new Action <DataRow>((dr) =>
            {
                string xxbh = dr["xxbh"].ToString();
                LogOperation.Append(sbLog, "删除" + targetCode + "的系统消息(" + xxbh + ")的文件。");
                targetFtp.DeleteDirectory(CommonManage.GetFtpMessagePath(xxbh));
            });

            LogOperation.WriteTitle(sbLog, "同步系统消息开始(从" + targetCode + "到" + localCode + ")。");
            SyncXxbh(targetDb, localDb, localCode, actionAddLocalMessageFile,
                     actionDeleteTargetMessageFile, actionDeleteLocalMessageFile);
            LogOperation.WriteTitle(sbLog, "同步系统消息结束(从" + targetCode + "到" + localCode + ")。");

            LogOperation.WriteTitle(sbLog, "同步系统消息开始(从" + localCode + "到" + targetCode + ")。");
            SyncXxbh(localDb, targetDb, targetCode, actionAddTargetMessageFile,
                     actionDeleteLocalMessageFile, actionDeleteTargetMessageFile);
            LogOperation.WriteTitle(sbLog, "同步系统消息结束(从" + localCode + "到" + targetCode + ")。");
        }
예제 #10
0
        /// <summary>
        /// 读取消息(会影响消息的阅读状态)
        /// </summary>
        /// <param name="userId">查看消息的用户ID</param>
        /// <param name="messageId">消息ID</param>
        /// <returns></returns>
        public Data.Entity.Messages ReadMessasge(long userId, long messageId)
        {
            MessageManage manage = new MessageManage(messageId);

            return(manage.Read(userId));
        }
예제 #11
0
        /// <summary>
        /// 获取消息信息
        /// </summary>
        /// <param name="messageId"></param>
        /// <returns></returns>
        public Data.Entity.Messages GetMessageFor(long messageId)
        {
            MessageManage manage = new MessageManage(messageId);

            return(manage.Message);
        }
예제 #12
0
 public QQClient()
 {
     Server        = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
     messageManage = new MessageManage(this);
 }
예제 #13
0
        static void Main(string[] args)
        {
            Database = new MongoClient(Config.DefaultConfig.DatabaseConnectionString).GetDatabase("vtuber-bot-data");
            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
            if (!string.IsNullOrEmpty(Config.DefaultConfig.ProxyUrl))
            {
                WebRequest.DefaultWebProxy = new WebProxy(Config.DefaultConfig.ProxyUrl);
            }
            LogHelper.Info("载入中..");
            if (!Config.DefaultConfig.UseLocalClient)
            {
                LogHelper.Info("使用CoolQ HTTP接口启动机器人");
                Client = new HttpApiClient()
                {
                    ApiAddress  = Config.DefaultConfig.CoolQApi,
                    AccessToken = Config.DefaultConfig.CoolQAccessToken
                };

                Listener = new ApiPostListener()
                {
                    ApiClient   = Client,
                    PostAddress = Config.DefaultConfig.CoolQListenUrl,
                };

                Listener.StartListen();
                var service = new CoolService();
                SendService = service;
                Bot         = new LocalVtuberBot(SendService, service, null);
            }
            else
            {
                LogHelper.Info("使用本地QQ框架启动机器人");
                User = new QQUser(Config.DefaultConfig.Id, Config.DefaultConfig.Password);
                var socketServer = new SocketServiceImpl(User);
                var transponder  = new Transponder();
                SendService = new SendMessageServiceImpl(socketServer, User);
                var manage = new MessageManage(socketServer, User, transponder);
                manage.Init();
                QQGlobal.DebugLog = false;
                while (string.IsNullOrEmpty(User.NickName))
                {
                    Thread.Sleep(100);
                }
                Bot = new LocalVtuberBot(SendService, transponder, User);
            }
            LogHelper.Info("载入完成");
            LogHelper.Info("载入缓存中");
            CacheManager.Manager.Init();
            Thread.Sleep(10000);
            LogHelper.Info("载入完成");
            Bot.Commands.Add(new MenuCommand());
            Bot.Commands.Add(new TimeLineCommand());
            Bot.Commands.Add(new OfficeInfoCommand());
            Bot.Commands.Add(new YoutubeSearchCommand());
            Bot.Commands.Add(new VtuberInfoCommand(SendService));
            Bot.Commands.Add(new SubscribeCommand());
            Bot.Commands.Add(new LiveCommand(SendService));
            Bot.Commands.Add(new PluginManagerCommand(SendService));
            LogHelper.Info("载入插件中...");
            PluginManager.Manager.LoadPlugins();
            LogHelper.Info("载入完成.");
            Console.ReadLine();
        }