Security/Yuebon.Security.Repositories/TenantRepository.cs

(开头部分) 2KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using Yuebon.Commons.Encrypt;
using Yuebon.Commons.Helpers;
using Yuebon.Commons.Log;

namespace Yuebon.Security.Repositories
{
    /// <summary>
    /// 租户仓储接口的实现
    /// </summary>
    public class TenantRepository : BaseRepository<Tenant>, ITenantRepository
    {
        private IUnitOfWork _unitOfWork;
        /// <summary>
        /// 注入EF上下文
        /// </summary>
        /// <param name="context"></param>
        public TenantRepository(IUnitOfWork unitOfWork) : base(unitOfWork)
        {
            _unitOfWork= unitOfWork;
        }

        /// <summary>
        /// 根据租户账号查询租户信息
        /// </summary>
        /// <param name="userName"></param>
        /// <returns></returns>
        public async Task<Tenant> GetByUserName(string userName)
        {
            string sql = $"SELECT * FROM {this.tableName} t WHERE t.TenantName = @TenantName";
            return await Db.Ado.SqlQuerySingleAsync<Tenant>(sql, new { @TenantName = userName });
        }



        /// <summary>
        /// 注册租户
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="tenantLogOnEntity"></param>
        public async Task<bool> InsertAsync(Tenant entity, TenantLogon tenantLogOnEntity)
        {
            tenantLogOnEntity.Id = IdGeneratorHelper.IdSnowflake();
            tenantLogOnEntity.TenantId = entity.Id;
            tenantLogOnEntity.TenantSecretkey = MD5Util.GetMD5_16(GuidUtils.NewGuidFormatN()).ToLower();
            tenantLogOnEntity.TenantPassword = MD5Util.GetMD5_32(DEncrypt.Encrypt(MD5Util.GetMD5_32(tenantLogOnEntity.TenantPassword).ToLower(), tenantLogOnEntity.TenantSecretkey).ToLower()).ToLower();
            _unitOfWork.BeginTran();
            int row = 0;
            try
            {
                row = await Db.Insertable<Tenant>(entity).ExecuteCommandAsync();
                row = await Db.Insertable<TenantLogon>(tenantLogOnEntity).ExecuteCommandAsync();
                _unitOfWork.CommitTran();
            }
            catch (Exception ex)
            {
                Log4NetHelper.Error("注册租户异常", ex);
                _unitOfWork.RollbackTran();
            }
            return row > 0;
        }
后面还有 2 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。