using Infrastructure.Attribute; using Infrastructure.Extensions; using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using ZR.Model; using ZR.Model.System; namespace ZR.Repository.System { /// /// 用户管理 /// [AppService(ServiceLifetime = LifeTime.Transient)] public class SysUserRepository : BaseRepository { /// /// 根据条件分页查询用户列表 /// /// /// /// public PagedInfo SelectUserList(SysUser user, PagerInfo pager) { var exp = Expressionable.Create(); exp.AndIF(!string.IsNullOrEmpty(user.UserName), u => u.UserName.Contains(user.UserName)); exp.AndIF(!string.IsNullOrEmpty(user.Status), u => u.Status == user.Status); exp.AndIF(user.BeginTime != DateTime.MinValue && user.BeginTime != null, u => u.Create_time >= user.BeginTime); exp.AndIF(user.EndTime != DateTime.MinValue && user.EndTime != null, u => u.Create_time <= user.EndTime); exp.AndIF(!user.Phonenumber.IsEmpty(), u => u.Phonenumber == user.Phonenumber); exp.And(u => u.DelFlag == "0"); if (user.DeptId != 0) { SysDept dept = Context.Queryable().First(f => f.DeptId == user.DeptId); string[] deptArr = dept?.Ancestors.Split(",").ToArray(); exp.AndIF(user.DeptId != 0, u => u.DeptId == user.DeptId);// || deptArr.Contains(u.DeptId.ToString())); } var query = Context.Queryable() .LeftJoin((u, dept) => u.DeptId == dept.DeptId) .Where(exp.ToExpression()) .Select((u, dept) => new SysUser { UserId = u.UserId.SelectAll(), DeptName = dept.DeptName, }); return query.ToPage(pager); } /// /// 通过用户ID查询用户 /// /// /// public SysUser SelectUserById(long userId) { return Context.Queryable().Where(f => f.UserId == userId).First(); } /// /// 校验用户名是否存在 /// /// /// public int CheckUserNameUnique(string userName) { return Context.Queryable().Where(it => it.UserName == userName).Count(); } /// /// 添加用户 /// /// /// public int AddUser(SysUser sysUser) { sysUser.Create_time = DateTime.Now; return Context.Insertable(sysUser).ExecuteReturnIdentity(); } /// /// 重置密码 /// /// /// /// public int ResetPwd(long userid, string password) { return Context.Updateable(new SysUser() { UserId = userid, Password = password }) .UpdateColumns(it => new { it.Password }).ExecuteCommand(); } /// /// 改变用户状态 /// /// /// public int ChangeUserStatus(SysUser user) { return Context.Updateable(user).UpdateColumns(t => new { t.Status }) .ExecuteCommand(); } /// /// 删除用户 /// /// 用户id /// public int DeleteUser(long userid) { return Context.Updateable(new SysUser() { UserId = userid, DelFlag = "2" }) .UpdateColumns(t => t.DelFlag) .ExecuteCommand(); } /// /// 修改用户信息 /// /// /// public int UpdateUser(SysUser user) { return Context.Updateable(user) //.SetColumns(t => new SysUser() //{ // UserName = user.UserName, // Status = user.Status, // NickName = user.NickName, // Remark = user.Remark, // Email = user.Email, // Update_by = user.Update_by, // Phonenumber = user.Phonenumber, // Update_time = DateTime.Now, // Sex = user.Sex, // DeptId = user.DeptId //}) .IgnoreColumns(ignoreAllNullColumns: true)//忽略所有为null .IgnoreColumns(it => new { it.Password, it.Avatar }) .Where(f => f.UserId == user.UserId).ExecuteCommand(); } /// /// 修改用户头像 /// /// /// public int UpdatePhoto(SysUser user) { return Context.Updateable() .SetColumns(t => new SysUser() { Avatar = user.Avatar }) .Where(f => f.UserId == user.UserId).ExecuteCommand(); } } }