yanjinhui
2025-06-02 4b4cc0dd66d0bfb8220709f6a5edd5fc3b8a65c2
project/ºǫ́¹ÜÀí/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/Sys_UserService.cs
@@ -15,6 +15,7 @@
using Newtonsoft.Json;
using WIDESEAWCS_Common;
using FaceAI;
using WIDESEAWCS_DTO.Telescopic;
namespace WIDESEAWCS_SystemServices
{
@@ -26,7 +27,9 @@
        private readonly IRepository<Dt_FaceRecognition> _faceServer;
        private readonly IRepository<Dt_Loginhsy> _LoginhsyServer;
        private readonly IRepository<Dt_Maintenance> _MainServer;
        public Sys_UserService(IRepository<Dt_Loginhsy> LoginhsyServer,IRepository<Dt_FaceRecognition> faceServer, IRepository<Sys_User> repository, IUnitOfWorkManage unitOfWorkManage, ICacheService cacheService, ISys_MenuService menuService, IRepository<Dt_Maintenance> MainServer) : base(repository)
        private readonly IRepository<Sys_Role> _RoleServer;
        private readonly IRepository<Dt_AuthorizationRecord> _AuthorizatRecServer;
        public Sys_UserService(IRepository<Dt_AuthorizationRecord> AuthorizatRecServer ,IRepository<Sys_Role> RoleServer,IRepository<Dt_Loginhsy> LoginhsyServer,IRepository<Dt_FaceRecognition> faceServer, IRepository<Sys_User> repository, IUnitOfWorkManage unitOfWorkManage, ICacheService cacheService, ISys_MenuService menuService, IRepository<Dt_Maintenance> MainServer) : base(repository)
        {
            _faceServer = faceServer;
            _LoginhsyServer = LoginhsyServer;
@@ -34,6 +37,8 @@
            _cacheService = cacheService;
            _menuService = menuService;
            _MainServer = MainServer;
            _RoleServer = RoleServer;
            _AuthorizatRecServer=AuthorizatRecServer;
        }
@@ -554,8 +559,9 @@
                    IsLeader = addUserDTO.IsLeader,
                    RoleName = addUserDTO.rolename,
                    Enable = addUserDTO.enable,
                    Unit = addUserDTO.userunit,
                    UserPwd = "j79rYYvCz4vdhcboB1Ausg==",
                    //Userteam = addUserDTO.userteam,
                    Userteam = addUserDTO.userteam,
                    Dept_Id = addUserDTO.dept_Id,
                    //CardNumber=addUserDTO.carnuber,
                    CreateDate = DateTime.Now
@@ -619,9 +625,10 @@
                sys.Role_Id = addUserDTO.roleid;
                sys.RoleName = addUserDTO.rolename;
                //sys.CardNumber = addUserDTO.carnuber;
                //sys.Userteam = addUserDTO.userteam;
                sys.Userteam = addUserDTO.userteam;
                sys.Unit = addUserDTO.userunit;
                sys.Dept_Id = addUserDTO.dept_Id;
                sys.Enable = addUserDTO.enable;
                //sys.Enable = addUserDTO.enable;
                sys.IsLeader = addUserDTO.IsLeader;//更新用户表的是否是组长
                //如果人脸识别添加了这里就注释掉
                sys.HeadImageUrl = addUserDTO.path;
@@ -652,11 +659,37 @@
                //}
                // 8. æ›´æ–°æ•°æ®åº“
                BaseDal.UpdateData(sys);
                //更新Dt_Maintenance表中的数据和user表中修改的一样
                team.UserAccount = addUserDTO.username;//账号
                team.Roleid = addUserDTO.roleid;//更新权限
                team.IsLeader = addUserDTO.IsLeader;
                var existAuthority = userList.FirstOrDefault(a => a.UserName == addUserDTO.username);
                // å…ˆç¼“存旧的 enable å€¼
                var oldEnable = sys.Enable;
                // ä¿®æ”¹ enable
                sys.Enable = addUserDTO.enable;
                // ç„¶åŽæ¯”较旧值和新值
                if (oldEnable != addUserDTO.enable)
                {
                    var authority = new Dt_AuthorizationRecord
                    {
                        Account = addUserDTO.username,
                        UserName = addUserDTO.usertruename,
                        UerUnit = addUserDTO.userunit,
                        UserTeam = addUserDTO.userteam,
                        EnableTime = addUserDTO.enable == 1 ? DateTime.Now : (DateTime?)null, //启用
                        DisableTime = addUserDTO.enable == 0 ? DateTime.Now : (DateTime?)null,//不启用
                    };
                    _AuthorizatRecServer.AddData(authority);
                }
                BaseDal.UpdateData(sys);
                _MainServer.UpdateData(team);
                return new WebResponseContent { Status = true, Data = sys };
@@ -880,5 +913,100 @@
                return new WebResponseContent { Status = false, Message="失败"};
            }
        }
        /// <summary>
        /// è¡¨è¿žæŽ¥è§’色表,展示数据
        /// </summary>
        /// <returns></returns>
        public WebResponseContent YShowUserList(PaginationDTO pagination)
        {
            try
            {
                int totalCount = 0;
                var Role = _RoleServer.Db.Queryable<Sys_Role>();
                var query = Role.InnerJoin<Sys_User>((a, b) => a.RoleId == b.Role_Id);
                //搜索关键字
                if (!string.IsNullOrEmpty(pagination.searchKeyword))
                {
                    query = query.Where((a, b) =>
                    b.UserName.Contains(pagination.searchKeyword) ||
                    b.UserTrueName.Contains(pagination.searchKeyword) ||
                    b.PhoneNo.Contains(pagination.searchKeyword) ||
                    a.RoleName.Contains(pagination.searchKeyword));
                }
                //时间查询
                if (pagination.startDate.HasValue && pagination.endDate.HasValue)
                {
                    query = query.Where((a, b) => b.CreateDate >= pagination.startDate.Value && b.CreateDate <= pagination.endDate.Value);
                }
                //排序
                if (!string.IsNullOrEmpty(pagination.sortField))
                {
                    var isAcs = pagination.sortOrder?.ToLower() == "asc";
                    query = pagination.sortField.ToLower() switch
                    {
                        "CreateDate" => isAcs ? query.OrderBy((a, b) => b.CreateDate) : query.OrderByDescending((a, b) => b.CreateDate),
                        _ => query.OrderByDescending((a, b) => b.Creater) // é»˜è®¤æŒ‰åˆ›å»ºæ—¶é—´é™åº
                    };
                }
                else
                {
                    query = query.OrderByDescending((a, b) => b.Creater);
                }
                var reslut = query.Select((a, b) => new
                {
                    b.User_Id,
                    b.UserName,
                    b.UserTrueName,
                    b.Unit,
                    b.Userteam,
                    b.Role_Id,
                    b.IsLeader,
                    //b.RoleName,
                    b.CardNumber,
                    b.PhoneNo,
                    b.UserPwd,
                    b.DeptName,
                    b.Dept_Id,
                    b.Email,
                    b.Enable,
                    b.Gender,
                    b.HeadImageUrl,
                    b.Address,
                    b.CreateDate,
                    b.Creater,
                    a.RoleName,
                }).ToPageList(pagination.pageIndex, pagination.pageSize, ref totalCount);
                return new WebResponseContent
                {
                    Status = true,
                    Data = new
                    {
                        totalCount = totalCount,
                        PageIndex = pagination.pageIndex,
                        PageSize = pagination.pageSize,
                        Items = reslut
                    }
                };
            }
            catch (Exception ex)
            {
                return new WebResponseContent { Status = false, Message = ex.Message };
            }
        }
    }
}