Backup/Discuz.Data/DataProvider/Users.cs

(开头部分) 54KB

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

using System;
using System.Text;
using System.Data;

using Discuz.Entity;
using Discuz.Config;
using Discuz.Common.Generic;
using Discuz.Common;
using Discuz.Cache.Data;

namespace Discuz.Data
{
    public class Users
    {
        /// <summary>
        /// 是否启用TokyoTyrantCache缓存用户表
        /// </summary>
        public static bool appDBCache = (EntLibConfigs.GetConfig() != null && EntLibConfigs.GetConfig().Cacheusers.Enable);

        public static ICacheUsers IUserService = appDBCache ? DBCacheService.GetUsersService() : null;

        /// <summary>
        /// 返回指定用户的完整信息
        /// </summary>
        /// <param name="uid">用户id</param>
        /// <returns>用户信息</returns>
        public static UserInfo GetUserInfo(int uid)
        {
            if (uid < 0)
                return null;

            IDataReader reader;
            UserInfo userInfo = null;        

            if (appDBCache)
            {
                userInfo = IUserService.GetUserInfo(uid);
                if (userInfo == null)
                {
                    reader = DatabaseProvider.GetInstance().GetUserInfoToReader(uid);
                    if (reader.Read())
                    {
                        userInfo = LoadSingleUserInfo(reader);
                        reader.Close();
                    }
                    if (userInfo != null)//如数据库中有数据而cache中没有则强制添加
                        IUserService.CreateUser(userInfo);
                }
            }
            else
            {
                reader = DatabaseProvider.GetInstance().GetUserInfoToReader(uid);
                if (reader.Read())
                {
                    userInfo = LoadSingleUserInfo(reader);
                    reader.Close();
                }
            }
            return userInfo;
        }
后面还有 1271 行代码,解锁后查看完整代码

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

AI 解读 AI

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

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