Exemple #1
0
        public async Task <bool> InsertAsync(MessageShowDTO model)
        {
            using (var tran = _databaseFixture.Db.BeginTransaction())
            {
                try
                {
                    OaMessage addMsg = new OaMessage
                    {
                        Id           = model.Id,
                        MsgType      = model.MsgType,
                        FaceUserType = model.FaceUserType,
                        Title        = model.Title,
                        IsLocal      = model.IsLocal,
                        TargetType   = model.TargetType,
                        Link         = model.Link,
                        Content      = model.Content,
                        StartTime    = model.StartTime == null ? 0 : model.StartTime.Value.ToTimeStamp(),
                        EndTime      = model.EndTime == null ? 0 : model.EndTime.Value.ToTimeStamp(),
                        IsExecuted   = 0,
                        IsEnable     = 0,
                        IsDel        = 0,
                        MakerUserId  = model.MakerUserId,
                        CreateUserId = model.CreateUserId,
                        CreateTime   = DateTime.Now.ToTimeStamp()
                    };
                    int id = await _databaseFixture.Db.OaMessage.InsertReturnIdAsync(addMsg, tran);

                    if (model.UserIds.HasItems())
                    {
                        List <OaMessageUser> msgUsers = new List <OaMessageUser>();
                        foreach (var item in model.UserIds)
                        {
                            msgUsers.Add(new OaMessageUser
                            {
                                MessageId = id,
                                UserId    = item
                            });
                        }
                        await _databaseFixture.Db.OaMessageUser.BulkInsertAsync(msgUsers, tran);
                    }

                    tran.Commit();
                    return(true);
                }
                catch (Exception ex)
                {
                    tran.Rollback();
                    return(false);
                }
            }
        }
Exemple #2
0
        /// <summary>
        /// 对 某些人进行消息推送并入库
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task <int> PushSomeBodyAndInsertDbAsync(MessagePushSomBodyDTO model)
        {
            using (var tran = _databaseFixture.Db.BeginTransaction())
            {
                try
                {
                    OaMessage message = new OaMessage
                    {
                        Content      = model.MsgJson,
                        CreateTime   = DateTime.Now.ToTimeStamp(),
                        IsDel        = 0,
                        IsEnable     = 1,
                        IsExecuted   = 0,
                        IsLocal      = 1,
                        IsSystem     = 1,
                        Link         = model.Link,
                        CreateUserId = model.Sender,
                        MakerUserId  = model.Sender,
                        EndTime      = 0,
                        StartTime    = 0,
                        FaceUserType = (byte)OaMessageFaceUserType.Users,
                        MsgType      = (int)OaMessageType.Push,
                        TargetType   = "tab",
                        Title        = model.Title
                    };
                    int id = await _databaseFixture.Db.OaMessage.InsertReturnIdAsync(message, tran);

                    foreach (var item in model.UserIds)
                    {
                        OaMessageUser messageUser = new OaMessageUser
                        {
                            MessageId = id,
                            UserId    = item,
                            IsRead    = 0
                        };
                        await _databaseFixture.Db.OaMessageUser.InsertAsync(messageUser, tran);
                    }
                    tran.Commit();
                    return(id);
                }
                catch (Exception ex)
                {
                    tran.Rollback();
                    return(0);
                }
            }
        }
Exemple #3
0
        private async Task InsertAllMessageUser(OaMessage message, IDbTransaction transaction)
        {
            var userids = await _databaseFixture.Db.Connection.QueryAsync <long>("SELECT u.UserId FROM sys_user u WHERE u.IsDel=0");

            List <OaMessageUser> list = new List <OaMessageUser>();

            foreach (var item in userids)
            {
                OaMessageUser messageUser = new OaMessageUser
                {
                    MessageId = message.Id,
                    UserId    = item
                };
                list.Add(messageUser);
            }
            await _databaseFixture.Db.OaMessageUser.BulkInsertAsync(list, transaction);
        }