public async Task <JsonResult> GetNotices(string name)
        {
            var user = await db.Employeers.Where(u => u.Email == name).FirstOrDefaultAsync();

            var id = user.Id;
            IQueryable <Notice> notices;

            if (!User.IsInRole("Администратор"))
            {
                notices = db.Notices.Where(n => n.EmployeerId == id);
            }
            else
            {
                notices = db.Notices;
            }
            var model = new List <NoticeVM>();

            foreach (var item in notices)
            {
                var notice = new NoticeVM(item);
                model.Add(notice);
            }
            if (model.Count > 25)
            {
                var mod = model.TakeLast(25);
                mod = mod.Reverse();

                return(new JsonResult(mod));
            }
            model.Reverse();
            return(new JsonResult(model));
        }
Exemple #2
0
        public ResponseResult AddNotice(NoticeVM noticeVM)//Add Or Update Notice
        {
            ResponseResult responseResult = new ResponseResult();

            System.Data.Entity.Core.Objects.ObjectParameter MSG_Code =
                new System.Data.Entity.Core.Objects.ObjectParameter("MSG_Code", typeof(string));
            System.Data.Entity.Core.Objects.ObjectParameter MSG =
                new System.Data.Entity.Core.Objects.ObjectParameter("MSG", typeof(string));
            try
            {
                _dbContext.AddNotice_SP(noticeVM.NoticeId, noticeVM.PostedBy, noticeVM.MaskingId, noticeVM.Message,
                                        noticeVM.Title, noticeVM.PostedDate, noticeVM.UpdatedDate,
                                        noticeVM.PostedForTime, MSG_Code, MSG);

                responseResult.MessageCode   = MSG_Code.Value.ToString();
                responseResult.SystemMessage = MSG.Value.ToString();
                responseResult.Content       = null;
            }
            catch (Exception ex)
            {
                responseResult.MessageCode   = MSG_Code.ToString();
                responseResult.SystemMessage = MSG.Value.ToString();
                responseResult.Content       = null;
                //throw ex;
            }
            return(responseResult);
        }
Exemple #3
0
        public IActionResult Index()
        {
            NoticeVM noticeVM = new NoticeVM
            {
                Video  = _db.NoticeVideos.FirstOrDefault(),
                Boards = _db.NoticeBoards.OrderByDescending(p => p.Id)
            };

            return(View(noticeVM));
        }
Exemple #4
0
        public ActionResult SaveNotice(NoticeVM vm)
        {
            ResultEntity <NoticeVM> result = new ResultEntity <NoticeVM>();

            if (vm == null || string.IsNullOrEmpty(vm.Title) || string.IsNullOrEmpty(vm.Content))
            {
                result.Code = -400;
                result.Msg  = "通知标题和通知内容不能为空";
                return(Json(result));
            }

            try
            {
                if (!vm.ID.HasValue)
                {
                    vm.Inputer   = UserData.Name;
                    vm.InputerID = UserData.UserId;
                    vm.InputTime = DateTime.Now;
                }

                vm.UpdateTime = DateTime.Now;

                #region 日志

                var log = new LogVM()
                {
                    Operator    = this.UserData.Name,
                    OperatorID  = this.UserData.UserId,
                    RoleTypes   = this.UserData.RoleTypes,
                    OperateTime = DateTime.Now,
                    OperateType = vm.ID.HasValue ? (int)EnumOperateType.编辑 : (int)EnumOperateType.添加
                };

                log.OperateDescribe = ((EnumOperateType)log.OperateType).ToString() + "通知:Title = " + vm.Title;
                Logger.AddLog(log);

                #endregion

                vm          = new NoticeService().Save(vm);
                result.Data = vm;
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog(ex.Message);
                throw ex;
            }

            result.Msg  = "添加成功";
            result.Code = 200;

            return(Json(result));
        }
        /// <summary>
        /// 获取通知列表
        /// </summary>
        /// <returns></returns>
        public List <NoticeVM> GetNoticeList(NoticeQuery query)
        {
            string sql = "select * from notice n where 1=1 ";

            if (!string.IsNullOrEmpty(query.KeyWord))
            {
                sql += string.Format(" and n.title like '%{0}%' ", query.KeyWord);
            }

            sql += " order by n.InputTime DESC ";

            using (var dbContext = new DbContext().ConnectionStringName(ConnectionUtil.connWXB, DbProviderTypes.MySql))
            {
                List <NoticeVM> list = dbContext.Sql(sql).Query <NoticeVM, List <NoticeVM> >(reader =>
                {
                    var noVM = new NoticeVM()
                    {
                        ID      = reader.AsInt("ID"),
                        Title   = reader.AsString("Title"),
                        Content = reader.AsString("Content"),

                        Inputer   = reader.AsString("Inputer"),
                        InputerID = reader.AsInt("InputerID")
                    };

                    noVM.FeedBack   = string.IsNullOrEmpty(reader["FeedBack"].ToString()) ? "" : reader.AsString("FeedBack");
                    noVM.FeedBacker = string.IsNullOrEmpty(reader["FeedBacker"].ToString()) ? "" : reader.AsString("FeedBacker");

                    if (!string.IsNullOrEmpty(reader["FeedBackerID"].ToString()))
                    {
                        noVM.FeedBackerID = reader.AsInt("FeedBackerID");
                    }

                    if (!string.IsNullOrEmpty(reader["FeedBackTime"].ToString()))
                    {
                        noVM.FeedBackTime = Convert.ToDateTime(reader["FeedBackTime"]);
                    }

                    if (!string.IsNullOrEmpty(reader["InputTime"].ToString()))
                    {
                        noVM.InputTime = Convert.ToDateTime(reader["InputTime"]);
                    }

                    return(noVM);
                });

                return(list);
            }
        }
        public NoticeVM GetNotice(int noticeId, UserItemVM user, int noticeReceiverId = 0)
        {
            try
            {
                using (var dbContext = new DbContext().ConnectionStringName(ConnectionUtil.connWXB, DbProviderTypes.MySql))
                {
                    string   sql    = string.Format("select * from notice n where n.ID = {0} ", noticeId);
                    NoticeVM notice = dbContext.Sql(sql).QuerySingle <NoticeVM>(reader =>
                    {
                        NoticeVM noVM = new NoticeVM()
                        {
                            ID        = reader.AsInt("ID"),
                            Title     = reader.AsString("Title"),
                            Content   = reader.AsString("Content"),
                            Inputer   = reader.AsString("Inputer"),
                            InputerID = reader.AsInt("InputerID")
                        };

                        if (!string.IsNullOrEmpty(reader["AttachmentUrl"].ToString()))
                        {
                            noVM.AttachmentUrl = reader.AsString("AttachmentUrl");
                        }

                        if (!string.IsNullOrEmpty(reader["UpdateTime"].ToString()))
                        {
                            noVM.UpdateTimeStr = Convert.ToDateTime(reader["UpdateTime"]).ToString("yyyy-MM-dd");
                        }

                        return(noVM);
                    });

                    if (noticeReceiverId > 0)
                    {
                        dbContext.Insert("receiverstatus").Column("NoticeReceiverID", noticeReceiverId)
                        .Column("ReceiveTime", DateTime.Now)
                        .Column("Receiver", user.Name)
                        .Column("ReceiverID", user.ID)
                        .ExecuteReturnLastId <int>();
                    }

                    return(notice);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// 保存反馈
        /// </summary>
        /// <param name="vm"></param>
        /// <returns></returns>
        public NoticeVM SaveFeedback(NoticeVM vm)
        {
            if (vm == null || !vm.ID.HasValue)
            {
                return(null);
            }

            using (var dbContext = new DbContext().ConnectionStringName(ConnectionUtil.connWXB, DbProviderTypes.MySql))
            {
                dbContext.Update("notice").Column("FeedBack", vm.FeedBack)
                .Column("FeedBackTime", vm.FeedBackTime)
                .Column("FeedBacker", vm.FeedBacker)
                .Column("FeedBackerID", vm.FeedBackerID)
                .Where("ID", vm.ID)
                .Execute();

                return(vm);
            }
        }
Exemple #8
0
        public ActionResult SaveFeedback(NoticeVM vm)
        {
            if (vm == null || !vm.ID.HasValue)
            {
                return(Json(new
                {
                    Code = -400,
                    Msg = "参数不能为空"
                }));
            }

            try
            {
                vm.FeedBacker   = UserData.Name;
                vm.FeedBackerID = UserData.UserId;
                new NoticeService().SaveFeedback(vm);

                #region 日志
                var log = new LogVM()
                {
                    Operator    = this.UserData.Name,
                    OperatorID  = this.UserData.UserId,
                    RoleTypes   = this.UserData.RoleTypes,
                    OperateTime = DateTime.Now,
                    OperateType = (int)EnumOperateType.编辑反馈
                };

                log.OperateDescribe = ((EnumOperateType)log.OperateType).ToString() + ",通知:Title = " + vm.Title;
                Logger.AddLog(log);
                #endregion

                return(Json(new
                {
                    Code = 200,
                    Msg = "保存成功",
                }));
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog(ex.Message);
                throw ex;
            }
        }
        public PagedListModel <NoticeVM> QueryNotice(NoticeSearch search, Page page)
        {
            var totalCount           = 0;
            var list                 = NoticeRepository.QueryNotice(search, page, out totalCount);
            IList <NoticeVM> listDTO = new List <NoticeVM>();

            foreach (var item in list)
            {
                var ent = new NoticeVM();
                ent.Creator_User   = item.Creator_User;
                ent.Creat_Time     = item.Creat_Time;
                ent.Notice_Content = item.Notice_Content;
                ent.Period         = item.Start_Time.ToLocalTime() + "~" + item.End_Time.ToLocalTime();
                ent.Scope          = item.Scope;
                ent.State          = item.State;
                ent.UID            = item.UID;
                listDTO.Add(ent);
            }
            return(new PagedListModel <NoticeVM>(totalCount, listDTO));
        }
Exemple #10
0
        public ActionResult AddNotice(string Title, string Message, DateTime PostedForTime)
        {
            ResponseResult responseResult = new ResponseResult();
            NoticeVM       noticeVM       = new NoticeVM()
            {
                MaskingId     = 0,//Admin's masking id is 0.
                NoticeId      = 0,
                Title         = Title,
                Message       = Message,
                PostedBy      = (long)Session["LogInUserPhone"],
                PostedDate    = GetLocalTime(),
                PostedForTime = PostedForTime,
                UpdatedDate   = GetLocalTime()
            };

            try
            {
                var    res         = _apiRequest.HttpPostRequest(noticeVM, "api/Notice/AddNotice");
                string apiResponse = res.ToString();
                responseResult = JsonConvert.DeserializeObject <ResponseResult>(apiResponse);

                if (responseResult.MessageCode == "Y")
                {
                    TempData["msgAlert"]        = "Y";
                    TempData["msgAlertDetails"] = responseResult.SystemMessage;
                }
                else
                {
                    TempData["msgAlert"]        = "N";
                    TempData["msgAlertDetails"] = responseResult.SystemMessage;
                }
            }
            catch (Exception ex)
            {
                TempData["msgAlert"]        = "N";
                TempData["msgAlertDetails"] = ex.Message.ToString();
            }
            return(View());
        }
        /// <summary>
        /// 获取通知详细
        /// </summary>
        /// <param name="noticeId"></param>
        /// <returns></returns>
        public NoticeVM GetNoticeById(int noticeId)
        {
            try
            {
                using (var dbContext = new DbContext().ConnectionStringName(ConnectionUtil.connWXB, DbProviderTypes.MySql))
                {
                    string   sql    = string.Format("select * from notice n where n.ID = {0} ", noticeId);
                    NoticeVM notice = dbContext.Sql(sql).QuerySingle <NoticeVM>(reader =>
                    {
                        NoticeVM noVM = new NoticeVM()
                        {
                            ID      = reader.AsInt("ID"),
                            Title   = reader.AsString("Title"),
                            Content = reader.AsString("Content")
                        };

                        noVM.FeedBack   = string.IsNullOrEmpty(reader["FeedBack"].ToString()) ? "" : reader.AsString("FeedBack");
                        noVM.FeedBacker = string.IsNullOrEmpty(reader["FeedBacker"].ToString()) ? "" : reader.AsString("FeedBacker");

                        if (!string.IsNullOrEmpty(reader["FeedBackTime"].ToString()))
                        {
                            noVM.FeedBackTime    = Convert.ToDateTime(reader["FeedBackTime"]);
                            noVM.FeedBackTimeStr = noVM.FeedBackTime.Value.ToString("yyyy-MM-dd");
                        }

                        if (!string.IsNullOrEmpty(reader["ChooseUserWay"].ToString()))
                        {
                            noVM.ChooseUserWay = reader.AsInt("ChooseUserWay");
                        }

                        if (!string.IsNullOrEmpty(reader["AttachmentUrl"].ToString()))
                        {
                            noVM.AttachmentUrl = reader.AsString("AttachmentUrl");
                        }

                        if (!string.IsNullOrEmpty(reader["UpdateTime"].ToString()))
                        {
                            noVM.UpdateTime = Convert.ToDateTime(reader["UpdateTime"]);
                        }

                        return(noVM);
                    });

                    string sqlStr = string.Format(@"select 
	                                                    ReceiverID as ID,
	                                                    Receiver as Name
                                                    from noticereceiver nr  where nr.NoticeID = {0} ", noticeId);

                    if (notice.ChooseUserWay == (int)EnumChooseUserWay.角色)
                    {
                        sqlStr = string.Format(@" select 
	                                                    ID,
	                                                    (   case when ID = 1 then '总编'
				                                                 when ID = 2 then '责编'
				                                                 when ID = 3 then '编辑'
		                                                    else 
			                                                    ''
		                                                    END
	                                                    )as Name
                                                    from 
                                                    (
	                                                    select RoleType as ID from noticereceiver where NoticeID = {0}
	                                                    GROUP BY RoleType 
                                                    )xx ", noticeId);
                    }

                    List <ReceiverVM> receiverList = dbContext.Sql(sqlStr).Query <ReceiverVM, List <ReceiverVM> >(reader =>
                    {
                        var receVM = new ReceiverVM()
                        {
                            ID = reader.AsInt("ID")
                        };

                        if (!string.IsNullOrEmpty(reader["Name"].ToString()))
                        {
                            receVM.Name = reader.AsString("Name");
                        }

                        return(receVM);
                    });

                    notice.NoticeReceiver = receiverList;
                    return(notice);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// 保存通知
        /// </summary>
        /// <param name="noticeVM"></param>
        /// <returns></returns>
        public NoticeVM Save(NoticeVM noticeVM)
        {
            if (noticeVM == null || string.IsNullOrEmpty(noticeVM.Title) || string.IsNullOrEmpty(noticeVM.Content))
            {
                return(null);
            }

            try
            {
                //去cms获取指定角色或指定ID的用户信息
                List <UserItemVM> userList = new List <UserItemVM>();
                if (noticeVM.ChooseUser == null)
                {
                    noticeVM.ChooseUser = new ChooseUserVM();
                }

                #region 获取用户信息
                if (!string.IsNullOrEmpty(noticeVM.UserOrRoleIds))
                {
                    using (var dbContextOne = new DbContext().ConnectionStringName(ConnectionUtil.connCMS, DbProviderTypes.MySql))
                    {
                        #region 获取用户信息
                        string sqlStr = string.Format(@"select 
		                                                        ud.ID,ud.Name,
		                                                        ur.RoleID as RoleType
                                                        from userdata ud left join userrole ur on ud.ID = ur.UserID
                                                        where 1=1 and ur.RoleID in ({0})", noticeVM.UserOrRoleIds);

                        if (noticeVM.ChooseUserWay == (int)EnumChooseUserWay.角色)
                        {
                            //获取指定角色的用户
                            userList = dbContextOne.Sql(sqlStr).Query <UserItemVM, List <UserItemVM> >(reader =>
                            {
                                UserItemVM vm = new UserItemVM()
                                {
                                    ID   = reader.AsInt("ID"),
                                    Name = reader.AsString("Name")
                                };

                                if (!string.IsNullOrEmpty(reader["RoleType"].ToString()))
                                {
                                    vm.RoleType = reader.AsInt("RoleType");
                                }

                                return(vm);
                            });
                        }
                        else if (noticeVM.ChooseUserWay == (int)EnumChooseUserWay.个人)
                        {
                            sqlStr = string.Format(@"select ID,Name from userdata ud where ud.ID in ({0})", noticeVM.UserOrRoleIds);

                            //获取指定ID的用户信息
                            userList = dbContextOne.Sql(sqlStr).Query <UserItemVM, List <UserItemVM> >(reader =>
                            {
                                return(new UserItemVM()
                                {
                                    ID = reader.AsInt("ID"),
                                    Name = reader.AsString("Name")
                                });
                            });
                        }
                        #endregion
                    }
                }
                #endregion

                using (var dbContext = new DbContext().ConnectionStringName(ConnectionUtil.connWXB, DbProviderTypes.MySql).UseTransaction(true))
                {
                    #region 新增和编辑处理
                    if (!noticeVM.ID.HasValue)
                    {
                        noticeVM.ID = dbContext.Insert("notice").Column("Title", noticeVM.Title)
                                      .Column("Content", noticeVM.Content)
                                      .Column("AttachmentUrl", noticeVM.AttachmentUrl)
                                      .Column("ChooseUserWay", noticeVM.ChooseUserWay)
                                      .Column("UpdateTime", noticeVM.UpdateTime)
                                      .Column("Inputer", noticeVM.Inputer)
                                      .Column("InputerID", noticeVM.InputerID)
                                      .Column("InputTime", noticeVM.InputTime)
                                      .ExecuteReturnLastId <int>();
                    }
                    else
                    {
                        dbContext.Update("notice").Column("Title", noticeVM.Title)
                        .Column("Content", noticeVM.Content)
                        .Column("AttachmentUrl", noticeVM.AttachmentUrl)
                        .Column("ChooseUserWay", noticeVM.ChooseUserWay)
                        .Column("UpdateTime", noticeVM.UpdateTime)
                        .Where("ID", noticeVM.ID)
                        .Execute();
                    }
                    #endregion

                    #region 保存通知发送人

                    //先删除之前的数据
                    dbContext.Delete("noticereceiver").Where("NoticeID", noticeVM.ID).Execute();

                    if (noticeVM.ChooseUserWay == (int)EnumChooseUserWay.个人 && !string.IsNullOrEmpty(noticeVM.UserOrRoleIds))
                    {
                        foreach (var item in userList)
                        {
                            dbContext.Insert("noticereceiver").Column("ReceiverID", item.ID)
                            .Column("Receiver", item.Name)
                            .Column("NoticeID", noticeVM.ID)
                            .Column("PublishTime", noticeVM.UpdateTime)
                            .ExecuteReturnLastId <int>();
                        }
                    }
                    else if (noticeVM.ChooseUserWay == (int)EnumChooseUserWay.角色 && !string.IsNullOrEmpty(noticeVM.UserOrRoleIds))
                    {
                        //批量新增
                        foreach (var item in userList)
                        {
                            dbContext.Insert("noticereceiver").Column("ReceiverID", item.ID)
                            .Column("Receiver", item.Name)
                            .Column("RoleType", item.RoleType)
                            .Column("NoticeID", noticeVM.ID)
                            .Column("PublishTime", noticeVM.UpdateTime)
                            .ExecuteReturnLastId <int>();
                        }
                    }
                    #endregion

                    dbContext.Commit();
                }

                return(noticeVM);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// 获取通知列表
        /// </summary>
        /// <returns></returns>
        public PageVM <NoticeVM> GetNoticeListPage(NoticeQuery query)
        {
            if (!query.PageIndex.HasValue)
            {
                query.PageIndex = 1;
            }
            if (!query.PageSize.HasValue)
            {
                query.PageSize = 10;
            }

            string sql = "select * from notice n where 1=1 ";

            if (!string.IsNullOrEmpty(query.KeyWord))
            {
                sql += string.Format(" and n.title like '%{0}%' ", query.KeyWord);
            }

            if (query.StartTime.HasValue)
            {
                sql += string.Format(" and date(n.UpdateTime) >= '{0}' ", query.StartTime);
            }

            if (query.EndTime.HasValue)
            {
                sql += string.Format(" and date(n.UpdateTime) <= '{0}' ", query.EndTime);
            }

            sql += " order by n.UpdateTime DESC ";
            string pageSql = string.Format(" Limit {0},{1}", (query.PageIndex - 1) * query.PageSize, query.PageSize);

            using (var dbContext = new DbContext().ConnectionStringName(ConnectionUtil.connWXB, DbProviderTypes.MySql))
            {
                //获取指定页数据
                List <NoticeVM> list = dbContext.Sql(sql + pageSql).Query <NoticeVM, List <NoticeVM> >(reader =>
                {
                    var noVM = new NoticeVM()
                    {
                        ID        = reader.AsInt("ID"),
                        Title     = reader.AsString("Title"),
                        Content   = reader.AsString("Content"),
                        Inputer   = reader.AsString("Inputer"),
                        InputerID = reader.AsInt("InputerID")
                    };

                    noVM.FeedBack   = string.IsNullOrEmpty(reader["FeedBack"].ToString()) ? "" : reader.AsString("FeedBack");
                    noVM.FeedBacker = string.IsNullOrEmpty(reader["FeedBacker"].ToString()) ? "" : reader.AsString("FeedBacker");

                    if (!string.IsNullOrEmpty(reader["AttachmentUrl"].ToString()))
                    {
                        noVM.AttachmentUrl = reader.AsString("AttachmentUrl");
                    }

                    if (!string.IsNullOrEmpty(reader["FeedBackerID"].ToString()))
                    {
                        noVM.FeedBackerID = reader.AsInt("FeedBackerID");
                    }

                    if (!string.IsNullOrEmpty(reader["FeedBackTime"].ToString()))
                    {
                        noVM.FeedBackTime    = Convert.ToDateTime(reader["FeedBackTime"]);
                        noVM.FeedBackTimeStr = noVM.FeedBackTime.Value.ToString("yyyy-MM-dd");
                    }
                    else
                    {
                        noVM.FeedBackTimeStr = string.Empty;
                    }

                    //if (!string.IsNullOrEmpty(reader["InputTime"].ToString()))
                    //{
                    //    noVM.InputTime = Convert.ToDateTime(reader["InputTime"]);
                    //    noVM.InputTimeStr = noVM.InputTime.Value.ToString("yyyy-MM-dd");
                    //}
                    //else
                    //{
                    //    noVM.InputTimeStr = string.Empty;
                    //}

                    if (!string.IsNullOrEmpty(reader["UpdateTime"].ToString()))
                    {
                        noVM.UpdateTime    = Convert.ToDateTime(reader["UpdateTime"]);
                        noVM.UpdateTimeStr = noVM.UpdateTime.Value.ToString("yyyy-MM-dd");
                    }
                    else
                    {
                        noVM.UpdateTimeStr = string.Empty;
                    }

                    return(noVM);
                });

                list.ForEach(item =>
                {
                    if (!string.IsNullOrEmpty(item.AttachmentUrl))
                    {
                        var arr       = HttpUtility.UrlDecode(item.AttachmentUrl).Split('>');
                        item.FilePath = arr.Length > 0 ? arr[0] : string.Empty;
                        item.FileName = arr.Length > 1 ? arr[1] : string.Empty;
                    }
                    else
                    {
                        item.FilePath = string.Empty;
                        item.FileName = string.Empty;
                    }
                });

                //获取数据总数
                int totalCount = dbContext.Sql(sql).Query().Count;
                //总页数
                double totalPages = ((double)totalCount / query.PageSize.Value);

                PageVM <NoticeVM> pageVM = new PageVM <NoticeVM>();
                pageVM.Data       = list;
                pageVM.TotalCount = totalCount;
                pageVM.TotalPages = (int)Math.Ceiling(totalPages);
                pageVM.PageIndex  = query.PageIndex;

                return(pageVM);
            }
        }
Exemple #14
0
        /// <summary>
        /// 获取通知详细
        /// </summary>
        /// <param name="noticeId"></param>
        /// <returns></returns>
        public NoticeVM GetNoticeById(int noticeId)
        {
            try
            {
                using (var dbContext = new DbContext().ConnectionStringName(ConnectionUtil.connWXB, DbProviderTypes.MySql))
                {
                    string   sql    = string.Format("select * from notice n where n.ID = {0} ", noticeId);
                    NoticeVM notice = dbContext.Sql(sql).QuerySingle <NoticeVM>(reader =>
                    {
                        NoticeVM noVM = new NoticeVM()
                        {
                            ID      = reader.AsInt("ID"),
                            Title   = reader.AsString("Title"),
                            Content = reader.AsString("Content")
                        };

                        noVM.FeedBack   = string.IsNullOrEmpty(reader["FeedBack"].ToString()) ? "" : reader.AsString("FeedBack");
                        noVM.FeedBacker = string.IsNullOrEmpty(reader["FeedBacker"].ToString()) ? "" : reader.AsString("FeedBacker");

                        if (!string.IsNullOrEmpty(reader["FeedBackTime"].ToString()))
                        {
                            noVM.FeedBackTime    = Convert.ToDateTime(reader["FeedBackTime"]);
                            noVM.FeedBackTimeStr = noVM.FeedBackTime.Value.ToString("yyyy-MM-dd");
                        }

                        if (!string.IsNullOrEmpty(reader["ChooseRoles"].ToString()))
                        {
                            noVM.ChooseRoles = reader.AsString("ChooseRoles");
                        }

                        if (!string.IsNullOrEmpty(reader["AttachmentUrl"].ToString()))
                        {
                            noVM.AttachmentUrl = reader.AsString("AttachmentUrl");
                        }

                        if (!string.IsNullOrEmpty(reader["UpdateTime"].ToString()))
                        {
                            noVM.UpdateTime = Convert.ToDateTime(reader["UpdateTime"]);
                        }

                        return(noVM);
                    });

                    string sqlStr = string.Format(@"select 
	                                                    ReceiverID as ID,
	                                                    Receiver as Name
                                                    from noticereceiver nr  where nr.RoleTypes IS NULL and nr.NoticeID = {0} ", noticeId);

                    List <ReceiverVM> receiverList = dbContext.Sql(sqlStr).Query <ReceiverVM, List <ReceiverVM> >(reader =>
                    {
                        var receVM = new ReceiverVM()
                        {
                            ID = reader.AsInt("ID")
                        };

                        if (!string.IsNullOrEmpty(reader["Name"].ToString()))
                        {
                            receVM.Name = reader.AsString("Name");
                        }

                        return(receVM);
                    });

                    notice.NoticeReceiver = receiverList;

                    if (!string.IsNullOrEmpty(notice.ChooseRoles))
                    {
                        List <UserRoleVM> roleList = new List <UserRoleVM>();
                        string[]          roleArr  = notice.ChooseRoles.Split(',');
                        foreach (string item in roleArr)
                        {
                            if (string.IsNullOrEmpty(item))
                            {
                                continue;
                            }
                            roleList.Add(new UserRoleVM()
                            {
                                RoleID   = Convert.ToInt32(item),
                                RoleName = ((EnumRoleType)Convert.ToInt32(item)).ToString()
                            });
                        }

                        notice.NoticeReceiveRoles = roleList;
                    }

                    return(notice);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemple #15
0
        /// <summary>
        /// 保存通知
        /// </summary>
        /// <param name="noticeVM"></param>
        /// <returns></returns>
        public NoticeVM Save(NoticeVM noticeVM)
        {
            if (noticeVM == null || string.IsNullOrEmpty(noticeVM.Title) || string.IsNullOrEmpty(noticeVM.Content))
            {
                return(null);
            }

            try
            {
                List <UserItemVM> userList = new List <UserItemVM>();
                #region 获取用户信息
                if (!string.IsNullOrEmpty(noticeVM.ChooseRoles) || !string.IsNullOrEmpty(noticeVM.ChoosedUserIds))
                {
                    using (var dbContextOne = new DbContext().ConnectionStringName(ConnectionUtil.connWXB, DbProviderTypes.MySql))
                    {
                        #region 获取指定角色的用户信息

                        if (!string.IsNullOrEmpty(noticeVM.ChooseRoles))
                        {
                            string sqlRole = string.Format(@"select 
		                                                        ud.ID,ud.Name,
		                                                        ur.RoleID as RoleType
                                                        from userdata ud left join userrole ur on ud.ID = ur.UserID
                                                        where 1=1 and ur.RoleID in ({0})", noticeVM.ChooseRoles);
                            //获取指定角色的用户
                            List <UserItemVM> tempList = dbContextOne.Sql(sqlRole).Query <UserItemVM, List <UserItemVM> >(reader =>
                            {
                                UserItemVM vm = new UserItemVM()
                                {
                                    ID   = reader.AsInt("ID"),
                                    Name = reader.AsString("Name")
                                };

                                if (!string.IsNullOrEmpty(reader["RoleType"].ToString()))
                                {
                                    vm.RoleTypes = reader.AsString("RoleType");
                                }

                                return(vm);
                            });

                            //用户数据去重
                            UserItemVM tempUserItem = new UserItemVM();
                            tempList.ForEach(t =>
                            {
                                tempUserItem = userList.Find(u => u.ID == t.ID);
                                if (tempUserItem == null)
                                {
                                    userList.Add(t);
                                }
                                else if (tempUserItem != null && t.RoleTypes != tempUserItem.RoleTypes)
                                {
                                    userList.Remove(tempUserItem);
                                    tempUserItem.RoleTypes += "," + t.RoleTypes;
                                    userList.Add(tempUserItem);
                                }
                            });
                        }
                        #endregion

                        #region 获取指定用户信息
                        if (!string.IsNullOrEmpty(noticeVM.ChoosedUserIds))
                        {
                            string sqlUser = string.Format(@"select ID,Name from userdata ud where ud.ID in ({0})", noticeVM.ChoosedUserIds);
                            //获取指定ID的用户信息
                            var tempUesrList = dbContextOne.Sql(sqlUser).Query <UserItemVM, List <UserItemVM> >(reader =>
                            {
                                return(new UserItemVM()
                                {
                                    ID = reader.AsInt("ID"),
                                    Name = reader.AsString("Name")
                                });
                            });

                            if (tempUesrList != null && tempUesrList.Count > 0)
                            {
                                if (userList == null)
                                {
                                    userList = new List <UserItemVM>();
                                }

                                //用户去重
                                userList = userList.Where(u => tempUesrList.Find(a => a.ID == u.ID) == null).ToList();
                                userList.AddRange(tempUesrList);
                            }
                        }
                        #endregion
                    }
                }
                #endregion

                using (var dbContext = new DbContext().ConnectionStringName(ConnectionUtil.connWXB, DbProviderTypes.MySql).UseTransaction(true))
                {
                    #region 新增和编辑处理
                    if (!noticeVM.ID.HasValue)
                    {
                        noticeVM.ID = dbContext.Insert("notice").Column("Title", noticeVM.Title)
                                      .Column("Content", noticeVM.Content)
                                      .Column("AttachmentUrl", noticeVM.AttachmentUrl)
                                      .Column("ChooseRoles", noticeVM.ChooseRoles)
                                      .Column("UpdateTime", noticeVM.UpdateTime)
                                      .Column("Inputer", noticeVM.Inputer)
                                      .Column("InputerID", noticeVM.InputerID)
                                      .Column("InputTime", noticeVM.InputTime)
                                      .ExecuteReturnLastId <int>();
                    }
                    else
                    {
                        dbContext.Update("notice").Column("Title", noticeVM.Title)
                        .Column("Content", noticeVM.Content)
                        .Column("AttachmentUrl", noticeVM.AttachmentUrl)
                        .Column("ChooseRoles", noticeVM.ChooseRoles)
                        .Column("UpdateTime", noticeVM.UpdateTime)
                        .Where("ID", noticeVM.ID)
                        .Execute();
                    }
                    #endregion

                    #region 保存通知发送人

                    //先删除之前的数据
                    dbContext.Delete("noticereceiver").Where("NoticeID", noticeVM.ID).Execute();
                    foreach (var item in userList)
                    {
                        dbContext.Insert("noticereceiver").Column("ReceiverID", item.ID)
                        .Column("Receiver", item.Name)
                        .Column("RoleTypes", item.RoleTypes)
                        .Column("NoticeID", noticeVM.ID)
                        .Column("PublishTime", noticeVM.UpdateTime)
                        .ExecuteReturnLastId <int>();
                    }

                    #endregion

                    dbContext.Commit();
                }

                return(noticeVM);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }