Ejemplo n.º 1
0
        /// <summary>
        /// 保存或修改
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public static OpResult NoticeSaveOrUpdate(Notice obj)
        {
            var re = new OpResult();

            try
            {
                if (obj.Id == 0)
                {
                    obj.CreateDT  = DateTime.Now;
                    obj.CreateUID = Sys.CurrentUser.UID;
                    obj.CompanyId = CommonService.CompanyId;
                    re            = Add(obj);
                    #region 写入日志
                    string msg    = "成功新增公告!";
                    var    module = Pharos.Sys.LogModule.通知公告;
                    if (re.Successed)
                    {
                        string TypeName = "", storeTitle = "";
                        TypeName   = (obj.Type == 1 ? "公告" : "活动");
                        storeTitle = obj.StoreId == "0" ? "后台系统" : CommonService.GetStoreTitleList(obj.StoreId);
                        msg       += "<br />Id=" + obj.Id + ",";
                        msg       += "<br />显示范围=" + storeTitle + ",类型=" + TypeName + ",状态=" + Enum.GetName(typeof(NoticeState), obj.State) + ",主题=" + obj.Theme + ",开始日期=" + obj.BeginDate.ToString("yyyy-MM-dd") + ",截止日期=" + obj.ExpirationDate.ToString("yyyy-MM-dd") + "。";
                    }
                    else
                    {
                        msg = "新增公告失败!";
                    }
                    log.WriteInsert(msg, module);
                    #endregion
                }
                else
                {
                    var  notice                 = CurrentRepository.QueryEntity.FirstOrDefault(n => n.Id == obj.Id);
                    var  isUpdateStore          = obj.StoreId != notice.StoreId;
                    var  isUpdateType           = obj.Type != notice.Type;
                    var  isUpdateState          = obj.State != notice.State;
                    var  isUpdateTheme          = obj.Theme != notice.Theme;
                    var  isUpdateBegindate      = obj.BeginDate.ToString("yyyy-MM-dd") != notice.BeginDate.ToString("yyyy-MM-dd");
                    var  isUpdateExpirationdate = obj.ExpirationDate.ToString("yyyy-MM-dd") != notice.ExpirationDate.ToString("yyyy-MM-dd");
                    var  isUpdateContent        = obj.NoticeContent != notice.NoticeContent;
                    bool isUpdate               = isUpdateStore || isUpdateType || isUpdateState || isUpdateTheme || isUpdateBegindate || isUpdateExpirationdate || isUpdateContent;

                    if (notice != null)
                    {
                        notice.Theme          = obj.Theme;
                        notice.NoticeContent  = obj.NoticeContent;
                        notice.StoreId        = obj.StoreId;
                        notice.State          = obj.State;
                        notice.Type           = obj.Type;
                        notice.BeginDate      = obj.BeginDate;
                        notice.ExpirationDate = obj.ExpirationDate;
                        re = Update(notice);
                        #region 写入日志
                        string msg    = "成功修改公告!";
                        var    module = Pharos.Sys.LogModule.通知公告;
                        if (re.Successed)
                        {
                            int n = 0;
                            if (isUpdate)
                            {
                                msg += "<br />Id=" + obj.Id + ",<br />";
                                if (isUpdateStore)
                                {
                                    var storeTitle = obj.StoreId == "0" ? "后台系统" : CommonService.GetStoreTitleList(obj.StoreId);
                                    msg += "显示范围=" + storeTitle;
                                    n    = n + 1;
                                }
                                if (isUpdateType)
                                {
                                    var TypeName = (obj.Type == 1 ? "公告" : "活动");
                                    msg += n > 0 ? ",类型=" + TypeName : "类型=" + TypeName;
                                    n    = n + 1;
                                }
                                if (isUpdateState)
                                {
                                    var StateTitle = Enum.GetName(typeof(NoticeState), obj.State);
                                    msg += n > 0 ? ",状态=" + StateTitle : "状态=" + StateTitle;
                                    n    = n + 1;
                                }
                                if (isUpdateTheme)
                                {
                                    msg += n > 0 ? ",主题=" + obj.Theme : "主题=" + obj.Theme;
                                    n    = n + 1;
                                }
                                if (isUpdateBegindate)
                                {
                                    msg += n > 0 ? ",开始日期=" + obj.BeginDate.ToString("yyyy-MM-dd") : "开始日期=" + obj.BeginDate.ToString("yyyy-MM-dd");
                                    n    = n + 1;
                                }
                                if (isUpdateExpirationdate)
                                {
                                    msg += n > 0 ? ",开始日期=" + obj.ExpirationDate.ToString("yyyy-MM-dd") : "开始日期=" + obj.ExpirationDate.ToString("yyyy-MM-dd");
                                    n    = n + 1;
                                }
                                if (isUpdateContent)
                                {
                                    msg += n > 0 ? ",详细内容=" + obj.NoticeContent : "详细内容=" + obj.NoticeContent;
                                }
                                msg += "。";
                                log.WriteUpdate(msg, module);
                            }
                        }
                        else
                        {
                            msg = "修改公告失败!";
                            log.WriteUpdate(msg, module);
                        }
                        #endregion
                    }
                }
                if (re.Successed)
                {
                    Pharos.Infrastructure.Data.Redis.RedisManager.Publish("SyncDatabase", new Pharos.ObjectModels.DTOs.DatabaseChanged()
                    {
                        CompanyId = obj.CompanyId, StoreId = obj.StoreId, Target = "Notice"
                    });
                }
            }
            catch (Exception ex)
            {
                re.Message = ex.Message;
                Log.WriteError(ex);
            }
            return(re);
        }