public string AddReceiver(string contactId, string receiverId)
        {
            string returnValue = string.Empty;

            // 需要判断是否存在
            if (this.Exists(new KeyValuePair <string, object>(BaseContactDetailsEntity.FieldContactId, contactId)
                            , new KeyValuePair <string, object>(BaseContactDetailsEntity.FieldReceiverId, receiverId)
                            , new KeyValuePair <string, object>(BaseContactDetailsEntity.FieldCategory, "User")))
            {
                return(string.Empty);
            }
            BaseUserManager          userManager          = new BaseUserManager(DbHelper, UserInfo);
            BaseUserEntity           useEntity            = userManager.GetEntity(int.Parse(receiverId));
            BaseContactDetailsEntity contactDetailsEntity = new BaseContactDetailsEntity();

            // 这里一定要给个不可猜测的主键,为了提高安全性
            contactDetailsEntity.Id               = BaseBusinessLogic.NewGuid();
            contactDetailsEntity.ContactId        = contactId;
            contactDetailsEntity.Category         = "User";
            contactDetailsEntity.ReceiverId       = useEntity.Id.ToString();
            contactDetailsEntity.ReceiverRealName = useEntity.RealName;
            contactDetailsEntity.IsNew            = 0;
            contactDetailsEntity.Enabled          = 1;
            contactDetailsEntity.NewComment       = 0;
            returnValue = this.Add(contactDetailsEntity);
            // 这里需要重新计算发送给了几个人,几个人已经阅读的功能
            this.SetReadState(contactId);
            return(returnValue);
        }
        /// <summary>
        /// 阅读短信
        /// </summary>
        /// <param name="id">短信ID</param>
        /// <returns>数据集</returns>
        public DataTable Read(string id)
        {
            // 阅读处理
            DataTable dataTable = this.GetDataTableById(id);
            BaseContactDetailsEntity contactDetailsEntity = new BaseContactDetailsEntity(dataTable);

            this.OnRead(contactDetailsEntity);
            // 返回结果
            BaseContactManager contactManager = new BaseContactManager(DbHelper, UserInfo);

            return(contactManager.GetDataTableById(contactDetailsEntity.ContactId));
        }
Exemplo n.º 3
0
        /// <summary>
        /// 发送联络单
        /// </summary>
        /// <param name="receiverIds">接收者</param>
        /// <param name="organizeIds">组织机构数组</param>
        /// <param name="roleIds">角色数组</param>
        /// <returns>影响行数</returns>
        public int Send(string contactId, string[] receiverIds, string[] organizeIds, string[] roleIds)
        {
            BaseUserManager userManager = new BaseUserManager(DbHelper, UserInfo);

            receiverIds = userManager.GetUserIds(receiverIds, organizeIds, roleIds);

            // 删除邮件的处理技巧、发送给部门的、发送给角色的。
            // 删除邮件的列表过滤问题解决
            BaseContactDetailsManager contactDetailsManager = new BaseContactDetailsManager(DbHelper, UserInfo);
            BaseContactDetailsEntity  contactDetailsEntity  = null;

            // 组织机构数组
            if (organizeIds != null)
            {
                BaseOrganizeManager organizeManager = new BaseOrganizeManager(DbHelper, UserInfo);
                for (int i = 0; i < organizeIds.Length; i++)
                {
                    contactDetailsEntity = new BaseContactDetailsEntity();
                    // 这里一定要给个不可猜测的主键,为了提高安全性
                    contactDetailsEntity.Id               = BaseBusinessLogic.NewGuid();
                    contactDetailsEntity.ContactId        = contactId;
                    contactDetailsEntity.Category         = "Organize";
                    contactDetailsEntity.ReceiverId       = organizeIds[i];
                    contactDetailsEntity.ReceiverRealName = organizeManager.GetProperty(organizeIds[i], BaseOrganizeEntity.FieldFullName);
                    contactDetailsEntity.IsNew            = 1;
                    contactDetailsEntity.Enabled          = 1;
                    contactDetailsEntity.NewComment       = 0;
                    contactDetailsManager.Add(contactDetailsEntity, false);
                }
            }

            // 角色数组
            if (roleIds != null)
            {
                BaseRoleManager roleManager = new BaseRoleManager(DbHelper, UserInfo);
                for (int i = 0; i < roleIds.Length; i++)
                {
                    contactDetailsEntity = new BaseContactDetailsEntity();
                    // 这里一定要给个不可猜测的主键,为了提高安全性
                    contactDetailsEntity.Id               = BaseBusinessLogic.NewGuid();
                    contactDetailsEntity.ContactId        = contactId;
                    contactDetailsEntity.Category         = "Role";
                    contactDetailsEntity.ReceiverId       = roleIds[i];
                    contactDetailsEntity.ReceiverRealName = roleManager.GetProperty(roleIds[i], BaseRoleEntity.FieldRealName);
                    contactDetailsEntity.IsNew            = 1;
                    contactDetailsEntity.Enabled          = 1;
                    contactDetailsEntity.NewComment       = 0;
                    contactDetailsManager.Add(contactDetailsEntity, false);
                }
            }

            return(this.Send(contactId, receiverIds));
        }
Exemplo n.º 4
0
        /// <summary>
        /// 发送联络单
        /// </summary>
        /// <param name="contactId">联络单主键</param>
        /// <param name="receiverIds">接收者</param>
        /// <returns>影响行数</returns>
        public int Send(string contactId, string[] receiverIds)
        {
            int returnValue = 0;
            // 是否给自己发过这封邮件
            bool findSend = false;
            BaseContactDetailsManager contactDetailsManager = new BaseContactDetailsManager(DbHelper, UserInfo);
            BaseUserManager           userManager           = new BaseUserManager(DbHelper, UserInfo);
            BaseUserEntity            useEntity             = null;
            BaseContactDetailsEntity  contactDetailsEntity  = null;

            for (int i = 0; i < receiverIds.Length; i++)
            {
                useEntity = userManager.GetEntity(int.Parse(receiverIds[i]));
                // 是有效的用户,而且是未必删除的用户才发邮件
                if (useEntity.Enabled == 1 && useEntity.DeletionStateCode == 0)
                {
                    contactDetailsEntity = new BaseContactDetailsEntity();
                    // 这里一定要给个不可猜测的主键,为了提高安全性
                    contactDetailsEntity.Id               = BaseBusinessLogic.NewGuid();
                    contactDetailsEntity.ContactId        = contactId;
                    contactDetailsEntity.Category         = "User";
                    contactDetailsEntity.ReceiverId       = useEntity.Id.ToString();
                    contactDetailsEntity.ReceiverRealName = useEntity.RealName;
                    contactDetailsEntity.IsNew            = 1;
                    contactDetailsEntity.Enabled          = 1;
                    contactDetailsEntity.NewComment       = 0;
                    contactDetailsManager.Add(contactDetailsEntity, false);
                }
                // 若已经有发过,就不用再判断了
                if (!findSend)
                {
                    if (UserInfo.Id.Equals(receiverIds[i]))
                    {
                        findSend = true;
                    }
                }
                returnValue++;
            }
            // 没有给自己发过
            if (!findSend)
            {
                // 发送给自己一份
                this.Send(contactId);
                returnValue++;
            }
            // 设置总共发送了几个人
            this.SetProperty(new KeyValuePair <string, object>(BaseContactEntity.FieldId, contactId), new KeyValuePair <string, object>(BaseContactEntity.FieldSendCount, receiverIds.Length.ToString()));
            return(returnValue);
        }
        private string AddReceiver(BaseUserEntity useEntity, string contactId, string receiverId)
        {
            BaseContactDetailsEntity contactDetailsEntity = new BaseContactDetailsEntity();

            // 这里一定要给个不可猜测的主键,为了提高安全性
            contactDetailsEntity.Id               = BaseBusinessLogic.NewGuid();
            contactDetailsEntity.ContactId        = contactId;
            contactDetailsEntity.Category         = "User";
            contactDetailsEntity.ReceiverId       = useEntity.Id.ToString();
            contactDetailsEntity.ReceiverRealName = useEntity.RealName;
            contactDetailsEntity.IsNew            = 1;
            contactDetailsEntity.Enabled          = 1;
            contactDetailsEntity.NewComment       = 0;
            return(this.Add(contactDetailsEntity, false));
        }
 /// <summary>
 /// 设置实体
 /// </summary>
 /// <param name="baseContactDetailsEntity">实体</param>
 private void SetEntity(SQLBuilder sqlBuilder, BaseContactDetailsEntity baseContactDetailsEntity)
 {
     sqlBuilder.SetValue(BaseContactDetailsEntity.FieldContactId, baseContactDetailsEntity.ContactId);
     sqlBuilder.SetValue(BaseContactDetailsEntity.FieldCategory, baseContactDetailsEntity.Category);
     sqlBuilder.SetValue(BaseContactDetailsEntity.FieldReceiverId, baseContactDetailsEntity.ReceiverId);
     sqlBuilder.SetValue(BaseContactDetailsEntity.FieldReceiverRealName, baseContactDetailsEntity.ReceiverRealName);
     sqlBuilder.SetValue(BaseContactDetailsEntity.FieldIsNew, baseContactDetailsEntity.IsNew);
     sqlBuilder.SetValue(BaseContactDetailsEntity.FieldNewComment, baseContactDetailsEntity.NewComment);
     sqlBuilder.SetValue(BaseContactDetailsEntity.FieldLastViewIP, baseContactDetailsEntity.LastViewIP);
     sqlBuilder.SetValue(BaseContactDetailsEntity.FieldLastViewDate, baseContactDetailsEntity.LastViewDate);
     sqlBuilder.SetValue(BaseContactDetailsEntity.FieldEnabled, baseContactDetailsEntity.Enabled);
     sqlBuilder.SetValue(BaseContactDetailsEntity.FieldDeletionStateCode, baseContactDetailsEntity.DeletionStateCode);
     sqlBuilder.SetValue(BaseContactDetailsEntity.FieldSortCode, baseContactDetailsEntity.SortCode);
     sqlBuilder.SetValue(BaseContactDetailsEntity.FieldDescription, baseContactDetailsEntity.Description);
 }
        /// <summary>
        /// 更新实体
        /// </summary>
        /// <param name="baseContactDetailsEntity">实体</param>
        public int UpdateEntity(BaseContactDetailsEntity baseContactDetailsEntity)
        {
            SQLBuilder sqlBuilder = new SQLBuilder(DbHelper);

            sqlBuilder.BeginUpdate(BaseContactDetailsEntity.TableName);
            this.SetEntity(sqlBuilder, baseContactDetailsEntity);
            if (UserInfo != null)
            {
                sqlBuilder.SetValue(BaseContactDetailsEntity.FieldModifiedUserId, UserInfo.Id);
                sqlBuilder.SetValue(BaseContactDetailsEntity.FieldModifiedBy, UserInfo.RealName);
            }
            sqlBuilder.SetDBNow(BaseContactDetailsEntity.FieldModifiedOn);
            sqlBuilder.SetWhere(BaseContactDetailsEntity.FieldId, baseContactDetailsEntity.Id);
            return(sqlBuilder.EndUpdate());
        }
        /// <summary>
        /// 阅读短信后设置状态值和阅读次数
        /// </summary>
        /// <param name="contactDetailsEntity">实体</param>
        /// <returns>影响的条数</returns>
        private int OnRead(BaseContactDetailsEntity contactDetailsEntity)
        {
            int returnValue = 0;

            // 设置邮件发送记录为已读状态
            // 标记为不是新邮件
            contactDetailsEntity.IsNew = 0;
            // 标记为无新评论
            contactDetailsEntity.NewComment = 0;
            // 最后访问日期
            contactDetailsEntity.LastViewDate = DateTime.Now.ToString();
            // 最后访问地址
            contactDetailsEntity.LastViewIP = UserInfo.IPAddress;
            // 更新实体
            returnValue += this.Update(contactDetailsEntity);
            // 阅读新邮件人数加
            this.SetReadState(contactDetailsEntity.ContactId);
            return(returnValue);
        }
Exemplo n.º 9
0
        /// <summary>
        /// 发送给自己一份
        /// </summary>
        /// <param name="contactId">联络单主键</param>
        public string Send(string contactId)
        {
            BaseUserManager          userManager          = new BaseUserManager(DbHelper, UserInfo);
            BaseUserEntity           useEntity            = useEntity = userManager.GetEntity(int.Parse(UserInfo.Id));
            BaseContactDetailsEntity contactDetailsEntity = new BaseContactDetailsEntity();

            // 这里一定要给个不可猜测的主键,为了提高安全性
            contactDetailsEntity.Id               = BaseBusinessLogic.NewGuid();
            contactDetailsEntity.ContactId        = contactId;
            contactDetailsEntity.Category         = "User";
            contactDetailsEntity.ReceiverId       = useEntity.Id.ToString();
            contactDetailsEntity.ReceiverRealName = useEntity.RealName;
            contactDetailsEntity.IsNew            = 0;
            contactDetailsEntity.Enabled          = 1;
            contactDetailsEntity.NewComment       = 0;
            BaseContactDetailsManager contactDetailsManager = new BaseContactDetailsManager(DbHelper, UserInfo);

            return(contactDetailsManager.Add(contactDetailsEntity, false));
        }
        /// <summary>
        /// 邮件有评论时要进行的操作
        /// </summary>
        /// <param name="detailsID">邮件主键</param>
        /// <returns>影响行数</returns>
        public int OnCommnet(string detailsId)
        {
            int returnValue = 0;
            BaseContactDetailsEntity contactDetailsEntity = this.GetEntity(detailsId);
            // 更新子表的其他人的通知,首先是有效的邮件,其次不是新邮件,其次不是自己的邮件
            string sqlQuery = " UPDATE BaseContactDetails "
                              + "    SET NewComment = 1 "
                              + "  WHERE (Enabled = 1) "
                              + "        AND (IsNew = 0) "
                              + "        AND (ContactId = '" + contactDetailsEntity.ContactId + "') "
                              + "        AND (ID <> '" + detailsId + "')";

            returnValue += DbHelper.ExecuteNonQuery(sqlQuery);
            BaseContactManager contactManager = new BaseContactManager(DbHelper, UserInfo);
            BaseContactEntity  contactEntity  = contactManager.GetEntity(contactDetailsEntity.ContactId);

            // 更新主表状态,评论人、评论时间发布上去
            contactEntity.CommentDate         = DateTime.Now;
            contactEntity.CommentUserId       = UserInfo.Id;
            contactEntity.CommentUserRealName = UserInfo.RealName;
            returnValue += contactManager.Update(contactEntity);
            return(returnValue);
        }
 /// <summary>
 /// 添加
 /// </summary>
 /// <param name="baseContactDetailsEntity">实体</param>
 /// <returns>主键</returns>
 public string Add(BaseContactDetailsEntity baseContactDetailsEntity)
 {
     return(this.AddEntity(baseContactDetailsEntity));
 }
        /// <summary>
        /// 添加实体
        /// </summary>
        /// <param name="baseContactDetailsEntity">实体</param>
        public string AddEntity(BaseContactDetailsEntity baseContactDetailsEntity)
        {
            string sequence = string.Empty;

            sequence = baseContactDetailsEntity.Id;
            if (baseContactDetailsEntity.SortCode == 0)
            {
                BaseSequenceManager sequenceManager = new BaseSequenceManager(DbHelper, this.Identity);
                sequence = sequenceManager.GetSequence(this.CurrentTableName);
                baseContactDetailsEntity.SortCode = int.Parse(sequence);
            }
            SQLBuilder sqlBuilder = new SQLBuilder(DbHelper, this.Identity, this.ReturnId);

            sqlBuilder.BeginInsert(BaseContactDetailsEntity.TableName, BaseContactDetailsEntity.FieldId);
            if (baseContactDetailsEntity.Id is string)
            {
                this.Identity = false;
            }
            if (!this.Identity)
            {
                sqlBuilder.SetValue(BaseContactDetailsEntity.FieldId, baseContactDetailsEntity.Id);
            }
            else
            {
                if (!this.ReturnId && DbHelper.CurrentDbType == DbTypes.Oracle)
                {
                    sqlBuilder.SetFormula(BaseContactDetailsEntity.FieldId, "SEQ_" + this.CurrentTableName.ToUpper() + ".NEXTVAL ");
                }
                else
                {
                    if (this.Identity && DbHelper.CurrentDbType == DbTypes.Oracle)
                    {
                        if (string.IsNullOrEmpty(sequence))
                        {
                            BaseSequenceManager sequenceManager = new BaseSequenceManager(DbHelper, this.Identity);
                            sequence = sequenceManager.GetSequence(this.CurrentTableName);
                        }
                        baseContactDetailsEntity.Id = sequence;
                        sqlBuilder.SetValue(BaseContactDetailsEntity.FieldId, baseContactDetailsEntity.Id);
                    }
                }
            }
            this.SetEntity(sqlBuilder, baseContactDetailsEntity);
            if (UserInfo != null)
            {
                sqlBuilder.SetValue(BaseContactDetailsEntity.FieldCreateUserId, UserInfo.Id);
                sqlBuilder.SetValue(BaseContactDetailsEntity.FieldCreateBy, UserInfo.RealName);
            }
            sqlBuilder.SetDBNow(BaseContactDetailsEntity.FieldCreateOn);
            if (UserInfo != null)
            {
                sqlBuilder.SetValue(BaseContactDetailsEntity.FieldModifiedUserId, UserInfo.Id);
                sqlBuilder.SetValue(BaseContactDetailsEntity.FieldModifiedBy, UserInfo.RealName);
            }
            sqlBuilder.SetDBNow(BaseContactDetailsEntity.FieldModifiedOn);
            if (DbHelper.CurrentDbType == DbTypes.SqlServer && this.Identity)
            {
                sequence = sqlBuilder.EndInsert().ToString();
            }
            else
            {
                sqlBuilder.EndInsert();
            }
            return(sequence);
        }
        /// <summary>
        /// 获取实体
        /// </summary>
        /// <param name="id">主键</param>
        public BaseContactDetailsEntity GetEntity(string id)
        {
            BaseContactDetailsEntity baseContactDetailsEntity = new BaseContactDetailsEntity(this.GetDataTableById(id));

            return(baseContactDetailsEntity);
        }
 /// <summary>
 /// 更新
 /// </summary>
 /// <param name="baseContactDetailsEntity">实体</param>
 public int Update(BaseContactDetailsEntity baseContactDetailsEntity)
 {
     return(this.UpdateEntity(baseContactDetailsEntity));
 }
 /// <summary>
 /// 添加
 /// </summary>
 /// <param name="baseContactDetailsEntity">实体</param>
 /// <param name="identity">自增量方式</param>
 /// <returns>主键</returns>
 public string Add(BaseContactDetailsEntity baseContactDetailsEntity, bool identity)
 {
     this.Identity = identity;
     return(this.AddEntity(baseContactDetailsEntity));
 }