Пример #1
0
        /// <summary>
        /// 按组织机构获取用户列表
        /// </summary>
        /// <param name="userInfo">用户</param>
        /// <param name="organizeId">组织机构主键</param>
        /// <returns>数据表</returns>
        public DataTable GetUserDTByOrganize(UserInfo userInfo, string organizeId)
        {
            var dataTable = new DataTable(PiUserTable.TableName);

            var parameter = ParameterUtil.CreateWithMessage(userInfo, MethodBase.GetCurrentMethod(), this.serviceName, RDIFrameworkMessage.MessageService_GetUserDTByOrganize);

            ServiceUtil.ProcessRDIReadDb(userInfo, parameter, dbProvider =>
            {
                var userManager = new PiUserManager(dbProvider, userInfo);

                string sqlQuery = " SELECT " + PiUserTable.TableName + ".* "
                                  + "," + PiUserLogOnTable.TableName + "." + PiUserLogOnTable.FieldUserOnLine
                                  + " FROM PIUSER LEFT OUTER JOIN PIUSERLOGON ON PIUSER.ID = PIUSERLOGON.ID "
                                  + " WHERE (" + PiUserTable.TableName + "." + PiUserTable.FieldDeleteMark + " = 0 "
                                  + " AND " + PiUserTable.TableName + "." + PiUserTable.FieldEnabled + " = 1  "
                                  + " AND " + PiUserTable.TableName + "." + PiUserTable.FieldIsVisible + " = 1 ) ";

                if (!String.IsNullOrEmpty(organizeId))
                {
                    // 绑定在工作组上的
                    sqlQuery += " AND ((" + PiUserTable.TableName + "." + PiUserTable.FieldWorkgroupId + " = '" + organizeId + "') ";
                    // 绑定在部门上的
                    sqlQuery += " OR (" + PiUserTable.TableName + "." + PiUserTable.FieldDepartmentId + " = '" + organizeId + "' AND " + PiUserTable.TableName + "." + PiUserTable.FieldWorkgroupId + " IS NULL) ";
                    // 绑定在公司上的
                    sqlQuery += " OR (" + PiUserTable.TableName + "." + PiUserTable.FieldCompanyId + " = '" + organizeId + "' AND " + PiUserTable.TableName + "." + PiUserTable.FieldDepartmentId + " IS NULL AND " + PiUserTable.TableName + "." + PiUserTable.FieldWorkgroupId + " IS NULL)) ";
                }
                sqlQuery           += " ORDER BY " + PiUserTable.TableName + "." + PiUserTable.FieldSortCode;
                dataTable           = userManager.Fill(sqlQuery);
                dataTable.TableName = PiUserTable.TableName;
            });
            return(dataTable);
        }
Пример #2
0
        /// <summary>
        /// 得到当前用户所在部门的用户列表
        /// </summary>
        /// <param name="userInfo">当前用户</param>
        /// <returns>数据表</returns>
        public DataTable GetDepartmentUser(UserInfo userInfo)
        {
            DataTable result    = null;
            var       parameter = ParameterUtil.CreateWithMessage(userInfo, MethodBase.GetCurrentMethod(), this.serviceName, RDIFrameworkMessage.UserService_GetDepartmentUser);

            ServiceUtil.ProcessRDIReadDb(userInfo, parameter, dbProvider =>
            {
                var manager        = new PiUserManager(dbProvider, userInfo);
                string commandText = "SELECT " + PiUserTable.FieldId + "," + PiUserTable.FieldRealName + "," + PiUserTable.FieldCompanyName + "," + PiUserTable.FieldDepartmentName + "  FROM " + PiUserTable.TableName + " WHERE " + PiUserTable.FieldCompanyName + " = '" + userInfo.CompanyName + "' AND " + PiUserTable.FieldDepartmentName + " = '" + userInfo.DepartmentName + "' AND " + PiUserTable.FieldDeleteMark + " = 0  AND " + PiUserTable.FieldEnabled + " = 1   AND " + PiUserTable.FieldIsVisible + " = 1  ORDER BY " + PiUserTable.FieldSortCode;
                result             = manager.Fill(commandText);
                result.TableName   = PiUserTable.TableName;
            });
            return(result);
        }
Пример #3
0
        /// <summary>
        /// 按角色获取用户列表
        /// </summary>
        /// <param name="userInfo">用户</param>
        /// <param name="roleId">角色主键</param>
        /// <returns>数据表</returns>
        public DataTable GetUserDTByRole(UserInfo userInfo, string roleId)
        {
            var dataTable = new DataTable(PiUserTable.TableName);

            var parameter = ParameterUtil.CreateWithMessage(userInfo, MethodBase.GetCurrentMethod(), this.serviceName, RDIFrameworkMessage.MessageService_GetUserDTByRole);

            ServiceUtil.ProcessRDIReadDb(userInfo, parameter, dbProvider =>
            {
                var userManager = new PiUserManager(dbProvider, userInfo);

                //string sqlQuery = " SELECT *"  + " FROM " + PiUserTable.TableName;

                string sqlQuery = " SELECT " + PiUserTable.TableName + ".* "
                                  + "," + PiUserLogOnTable.TableName + "." + PiUserLogOnTable.FieldUserOnLine
                                  + " FROM PIUSER LEFT OUTER JOIN PIUSERLOGON ON PIUSER.ID = PIUSERLOGON.ID ";

                sqlQuery += " WHERE (" + PiUserTable.TableName + "." + PiUserTable.FieldDeleteMark + " = 0 "
                            + " AND " + PiUserTable.TableName + "." + PiUserTable.FieldEnabled + " = 1  "
                            + " AND " + PiUserTable.TableName + "." + PiUserTable.FieldIsVisible + " = 1 ) ";

                if (!String.IsNullOrEmpty(roleId))
                {
                    // 从用户默认角色
                    sqlQuery += " AND (" + PiUserTable.TableName + "." + PiUserTable.FieldRoleId + " = '" + roleId + "') ";
                    sqlQuery += " OR " + PiUserTable.TableName + "." + PiUserTable.FieldId + " IN ("
                                + " SELECT " + PiUserRoleTable.FieldUserId
                                + "   FROM " + PiUserRoleTable.TableName
                                + "  WHERE " + PiUserRoleTable.TableName + "." + PiUserRoleTable.FieldDeleteMark + " = 0  "
                                + "       AND " + PiUserRoleTable.TableName + "." + PiUserRoleTable.FieldEnabled + " = 1  "
                                + "       AND " + PiUserRoleTable.TableName + "." + PiUserRoleTable.FieldRoleId + " = '" + roleId + "') ";
                }
                sqlQuery += " ORDER BY " + PiUserTable.TableName + "." + PiUserTable.FieldSortCode;

                dataTable           = userManager.Fill(sqlQuery);
                dataTable.TableName = PiUserTable.TableName;
            });
            return(dataTable);
        }