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