`

查询共享专业

阅读更多

 查询共享专业以及对比两个list的内容确定是否授权查看:

public PageList<TeachResource> findProfList(int page, int pageSize, Long profid,String tag) {
		User user1 = (User) ServletActionContext.getRequest().getSession().getAttribute("users");
		PageList<TeachResource> p=new PageList<TeachResource>();
		p.setObjectsPerPage(pageSize);
		p.setPageNumber(page);
		StringBuilder sb = new StringBuilder();
		sb.append("select t from TeachResource t where t.status = 1 and t.rtype = 1 and t.profession.id ="+profid);
		sb.append(" order by t.createTime desc");
		//查询列表
		Query query=em.createQuery(sb.toString());
		query.setFirstResult((page-1)*pageSize);
		query.setMaxResults(pageSize);
		List<TeachResource> list = query.getResultList();  //查询所有的数据
		
		if(tag.equals("login")){  //用户登录以后才处理是否授权查看该资源
			sb.setLength(0);
			sb.append("select t from TeachResource t where t.status = 1 and t.rtype = 1 and t.profession.id ="+profid);
			if(user1.getUserType() == UserType.TEACHER){  //用户类型:教师   则匹配用户专业id 或者该资源是自己上传的
				sb.append(" and (");
				sb.append("t.sharepro like '%,"+user1.getProfession().getId()+",%' or t.user.id ="+user1.getId()+" ");
				sb.append(")");
			}else if(user1.getUserType() == UserType.DEPARTADMIN){  //用户类型:系管理员   则匹配该系的所有专业id 或者该资源是自己上传的
				String proIDs = findDeparrProID(user1.getDepart().getId()); //该系对应的专业ids
				String[] proids = proIDs.split(",");
				sb.append(" and (");
				for (int i = 0; i < proids.length; i++) {
					if(i < proids.length-1){
						sb.append(" find_in_set("+proids[i]+",t.sharepro)>0 or");
					}else{
						sb.append(" find_in_set("+proids[i]+",t.sharepro)>0 or t.user.id ="+user1.getId()+" ");
					}
					
				}
				sb.append(")");
			}
			sb.append(" order by t.createTime desc");
			query=em.createQuery(sb.toString());
			//query.setFirstResult((page-1)*pageSize);
			//query.setMaxResults(pageSize);
			List<TeachResource> olist = query.getResultList();  //查询自己有权限查看的数据
			
			Set<TeachResource> olistSet = new HashSet<TeachResource>();
		    for (TeachResource t1 : olist) {
		    	olistSet.add(t1);
			}
		    for (TeachResource t2 : list) {
		    	if (olistSet.contains(t2)) {
	               t2.setCanSee("true");  //标识  有权限查看的资源
	            }
			}
		}
		
		p.setList(list);
		//查询总数
		sb.setLength(0);
		sb.append("select count(*) from TeachResource t where t.status = 1 and t.rtype = 1 and t.profession.id ="+profid);
		query=em.createQuery(sb.toString());
		p.setFullListSize(((Long)query.getSingleResult()).intValue());
		return p;
	}

 

  • 大小: 52.4 KB
0
0
分享到:
评论

相关推荐

    数据处理中的查询及共享.pdf

    在进行数据处理时,查询功能是必不可少的工具之一,它能够帮助用户快速定位到所需信息,同时数据的导入导出功能实现了数据的迁移和共享。本文将详细介绍Excel、VFP和Access这三个软件中的数据查询处理以及数据的导入...

    局域网共享文件查询工具

    在IT领域,局域网(LAN)共享文件查询工具是一种非常实用的应用,它使得网络内的用户可以方便地搜索和访问共享资源,如文档、图片、视频等。标题提到的"局域网共享文件查询工具"是指能够帮助用户快速定位并访问...

    大势至局域网文件服务器共享设置软件 v6.8.rar

    大势至局域网文件服务器共享设置软件是一款专业好用的服务器共享文件监控软件。软件只需要在文件服务器上安装,局域网其他电脑不需要安装客户端软件,就可以有效监控服务器共享文件的打开、读取、修改、剪切、删除和...

    易语言API专业查询工具

    《易语言API专业查询工具详解》 在编程领域,API(Application Programming Interface)扮演着至关重要的角色,它是一组预定义的函数、类、对象、常量和协议,供开发者在编写应用程序时调用,以实现与操作系统、...

    基于共享经济理念的图书共享APP的设计与实现.pdf

    2. 提供便捷的图书信息查询与借阅服务,打破时间和空间限制,增强图书流通效率。 3. 接入图书馆资源,扩大可共享的图书范围,提升服务覆盖度。 4. 优化用户体验,通过智能移动设备实现快速借阅和归还,促进用户间的...

    基于数据共享机制的大数据平台研究和应用.pdf

    标签中提及的“大数据、数据分析、数据应用、数据时代、专业指导”表明该文档可能涉及大数据的广泛应用及其在数据处理、分析、应用等方面的专业知识。 在文章的内容部分,我们能够提取出以下知识点: 1. 智慧交通...

    网站资源共享专业课程设计方案报告.doc

    - 使用SQL语句进行数据的插入、查询、更新和删除操作,实现后台管理功能。 5. **测试与优化**: - 测试所有功能的正确性和稳定性,确保用户界面友好,无明显错误。 - 根据反馈进行调整和优化,提高系统性能和...

    大学生财务共享实训课总结报告.docx

    财务共享实训课程是当今高等教育中培养财经专业学生实践能力的重要环节。在当今的企业环境中,财务共享服务中心已经成为优化企业财务管理、提升效率的关键机构。本报告将围绕实训课程中遇到的问题、改进建议以及未来...

    高职通信技术专业教育资源信息化共建共享模式研究.docx

    ### 高职通信技术专业教育资源信息化共建共享模式研究 #### 一、背景及现状 随着信息技术的迅猛发展,“互联网+”已经成为推动教育现代化的重要手段之一。对于高职通信技术专业而言,教育资源信息化共建共享不仅是...

    大势至服务器共享文件访问记录软件 v3.1.zip

    “大势至共享文件审计系统”是大势至(北京)软件工程有限公司推出的一款专门监控服务器共享文件、记录局域网用户对共享文件的各种操作的专业安全防护软件。通过大势至共享文件审计系统你可以详细审计局域网电脑访问...

    共享单车公司网站模板

    总的来说,"共享单车公司网站模板"结合了Bootstrap的强大功能和现代设计趋势,为共享单车企业提供了一个快速搭建专业网站的解决方案,节省了时间和资源,同时也保证了网站的视觉吸引力和功能性。

    基于区块链的物流应用系统数据共享技术.pdf

    模型测试的结果显示,所提出的基于区块链的物流数据共享技术不仅能够准确、快速地实现物流数据的发布与查询,还能满足物流数据共享的需求。这表明该技术在物流领域的实际应用中具有潜在的价值。 文章中提到的关键...

    基于云计算的区域医疗数据共享平台建设思考.pdf

    4. 医学信息专业人才的培养:为支持区域医疗数据共享平台的建立与维护,需要大量医学及计算机专业人才。目前大部分医疗机构的信息化在职人员数量和专业素养未能满足发展要求。因此,必须增加医学统计学、信息管理与...

    数据库翻译作业——大型共享数据库数据的关系模型

    总的来说,理解和掌握关系模型对于任何IT专业人员,特别是从事数据库设计和管理的人员来说都是至关重要的。通过深入学习和实践,我们可以更好地利用这种强大的数据组织方式,为大型共享数据库提供高效、可靠的服务。

    Python语言的分布式共享系统的设计分析.pdf

    1. 实现对共享文件夹中目录结构的快速查询。 2. 提供自动扫描共享文件夹的功能,并将扫描结果实时反馈给用户计算机,确保共享文件夹的内容是实时更新的。 综上所述,一个基于Python语言的分布式文件共享系统能有效...

    基于云服务的信息共享平台研究.pdf

    此外,还有支持查询语言的数据仓库Hive以及可以与分布式数据库进行互操作的HBase。 5. 云计算平台的应用与推广:商业性云计算平台如IBM的蓝云、微软的Azure和亚马逊的AWS等,尽管具有一定的优势,但其商业性质限制...

    大数据下基于云计算的共享资源平台应用研究.pdf

    云计算的高效性和可靠性使得平台能够对数据信息资源进行快速的查询和计算处理,从而促进了共享资源平台的发展和优化。 4. 共享资源平台的结构设计 共享资源平台的设计包括网络门户功能和后台运营管理功能。网络门户...

    GBS专业服装分床裁剪计划软件共享使用

    GBS专业服装分床裁剪计划软件是一款专为服装制造业设计的高效生产管理工具,它集成了多种功能,旨在优化裁剪过程,提高生产效率。软件的核心在于“分床”和“裁剪计划”,这两个概念在服装制造中至关重要。 1. **分...

Global site tag (gtag.js) - Google Analytics