C# 登陆用户信息

using CommonLib.DBUtils.SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WCSPro.Model;

namespace WCSPro.IDAL
{
    /// <summary>
    /// 登陆用户数据库访问接口
    /// </summary>
    public interface IUserDAL : IBaseDAL<UserInfo>
    {
        /// <summary>
        /// 获取用户(登陆关键字)
        /// </summary>
        /// <param name="loginKey">登陆关键字(账号、邮箱、手机)</param>
        /// <returns></returns>
        UserInfo GetUserByLoginKey(string loginKey);

        /// <summary>
        /// 检查用户主键是否存在
        /// </summary>
        /// <param name="gid">用户主键</param>
        /// <returns></returns>
        bool Exists(string gid);

        /// <summary>
        /// 检查账号是否存在
        /// </summary>
        /// <param name="userCode">用户账号</param>
        /// <returns></returns>
        bool ExistsUserCode(string userCode);

        /// <summary>
        /// 添加登陆用户信息到数据库
        /// </summary>
        /// <param name="user">用户信息对象</param>
        /// <returns></returns>
        bool AddUser(UserInfo user);

        /// <summary>
        /// 更新登陆用户信息
        /// </summary>
        /// <param name="user">用户信息对象</param>
        /// <returns></returns>
        bool UpdateUser(UserInfo user);

        /// <summary>
        /// 获取用户信息
        /// </summary>
        /// <param name="gid">数据库主键</param>
        /// <returns></returns>
        UserInfo GetUserById(string gid);

        /// <summary>
        /// 过滤查询用户集合
        /// </summary>
        /// <param name="filterKey">查询关键字(账号/名称/电话/Email)</param>
        /// <returns></returns>
        List<UserInfo> Filter(string filterKey);

        /// <summary>
        /// 删除登陆用户信息(根据库主键)
        /// </summary>
        /// <param name="gid">数据库主键</param>
        /// <returns></returns>
        bool Remove(string gid);
    }
}

using CommonLib.DBUtils.SqlSugar;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WCSPro.IDAL;
using WCSPro.Model;

namespace WCSPro.DAL
{
    public class UserDAL : BaseDAL<UserInfo>, IUserDAL
    {
        public UserDAL(ISqlSugarClient db) : base(db)
        {
            Context.DbMaintenance.CreateDatabase();
            Context.CodeFirst.SetStringDefaultLength(200).InitTables<UserInfo>();
            if (!IsAny(t => t.GID == "Admin"))
            {
                Insert(new UserInfo()
                {
                    GID = "Admin",
                    Code = "Admin",
                    PetName = "Administrator",
                    RealName = "Administrator",
                    CreateTime = Context.GetDate(),
                });
            }
        }

        public bool AddUser(UserInfo user)
        {
            return base.AddObj(user);
        }

        public bool Exists(string gid)
        {
            return Context.Queryable<UserInfo>().Any(t => t.GID == gid);
        }

        public bool ExistsUserCode(string userCode)
        {
            return Context.Queryable<UserInfo>().Any(t => t.Code.ToUpper() == userCode.ToUpper());
        }

        public List<UserInfo> Filter(string filterKey)
        {
           return Context.Queryable<UserInfo>()
                .WhereIF
                (
                    !string.IsNullOrWhiteSpace(filterKey),
                    t => t.Code.ToUpper().Contains(filterKey) ||
                        t.Email.ToUpper().Contains(filterKey) ||
                        t.PetName.ToUpper().Contains(filterKey) ||
                        t.RealName.ToUpper().Contains(filterKey) ||
                        t.Phone.ToUpper().Contains(filterKey)
                 ).ToList();
        }

        public UserInfo GetUserById(string gid)
        {
            return Context.Queryable<UserInfo>().Single(t => t.GID == gid);
        }

        public UserInfo GetUserByLoginKey(string loginKey)
        {
            string key = loginKey.ToUpper();
            return Context.Queryable<UserInfo>().Single(t => t.Code.ToUpper() == key ||
                (!SqlFunc.IsNullOrEmpty(t.Email) && t.Email.ToUpper() == key) ||
                (!string.IsNullOrWhiteSpace(t.Email) && t.Phone.ToUpper() == key));

        }

        public bool Remove(string gid)
        {
            return Context.Deleteable<UserInfo>(gid).ExecuteCommand() == 1;
        }

        public bool UpdateUser(UserInfo user)
        {
            return Context.Updateable(user).ExecuteCommand() == 1;
        }
    }
}

using PropertyChanged;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Data.SqlTypes;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;

namespace WCSPro.Model
{
    /// <summary>
    /// 用户信息实体类
    /// </summary>
    [AddINotifyPropertyChangedInterface]
    public class UserInfo
    {
        /// <summary>
        /// 数据库主键
        /// </summary>
        [Display(Name = "GID", AutoGenerateField = false)]
        [SugarColumn(IsPrimaryKey = true, ColumnDataType = "varchar(36)")]
        public string GID { get; set; } = Guid.NewGuid().ToString();

        /// <summary>
        /// 所属角色
        /// </summary>
        [SugarColumn(IsNullable = true, IsJson = true)]
        public Role Role { get; set; }

        /// <summary>
        /// 编号
        /// </summary>
        [Display(Name = "账号")]
        [SugarColumn(ColumnDataType = "nvarchar(32)")]
        public string Code { get; set; } = string.Empty;

        /// <summary>
        /// 邮箱
        /// </summary>
        [Display(Name = "邮箱")]
        [SugarColumn(ColumnDataType = "nvarchar(64)")]
        public string Email { get; set; } = string.Empty;

        /// <summary>
        /// 电话
        /// </summary>
        [Display(Name = "电话")]
        [SugarColumn(ColumnDataType = "nvarchar(64)")]
        public string Phone { get; set; } = string.Empty;

        /// <summary>
        /// 昵称
        /// </summary>
        [Display(Name = "昵称")]
        [SugarColumn(ColumnDataType = "nvarchar(16)")]
        public string PetName { get; set; } = string.Empty;

        /// <summary>
        /// 密码
        /// </summary>
        [Display(Name = "密码")]
        [SugarColumn(ColumnDataType = "nvarchar(64)")]
        public string Password { get; set; } = string.Empty;

        /// <summary>
        /// 真实姓名
        /// </summary>
        [Display(Name = "真实姓名")]
        [SugarColumn(ColumnDataType = "nvarchar(16)")]
        public string RealName { get; set; } = string.Empty;

        /// <summary>
        /// 年龄
        /// </summary>
        [Display(Name = "年龄")]
        [SugarColumn(ColumnDataType = "int")]
        public int Age { get; set; }

        /// <summary>
        /// 性别
        /// </summary>
        [Display(Name = "性别")]
        [SugarColumn(ColumnDataType = "nvarchar(8)")]
        public string Sex { get; set; } = "女";

        /// <summary>
        /// 生日
        /// </summary>
        [Display(Name = "生日")]
        [SugarColumn(ColumnDataType = "datetime", IsNullable = true)]
        public DateTime? Birthday { get; set; }

        /// <summary>
        /// 用户状态。
        /// 0-禁用。
        /// 1-启用。
        /// </summary>
        [Display(Name = "用户状态")]
        [SugarColumn(ColumnDataType = "int")]
        public int StateId { get; set; } = 1;

        /// <summary>
        /// 备注
        /// </summary>
        [Display(Name = "备注")]
        [SugarColumn(ColumnDataType = "nvarchar(512)")]
        public string Note { get; set; } = string.Empty;

        /// <summary>
        /// 创建时间
        /// </summary>
        [Display(Name = "创建时间")]
        [SugarColumn(ColumnDataType = "datetime", IsNullable = true)]
        public DateTime? CreateTime { get; set; }
    }
}

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值