Browse Source

--add queryPage();

zzy.zhiyuan.foxmail 8 years ago
parent
commit
2b867c5e92

+ 112 - 0
src/main/java/com/ekexiu/portal/dao/ProfessorDao.java

@ -493,6 +493,117 @@ public abstract class ProfessorDao {
493 493
        }
494 494
    }
495 495
	
496
	public PageQueryResult<EditProfessor> queryPage(Connection con,String orgId,String orgAuth,int pageSize,int pageNo) throws SQLException{
497
        int total = 0;
498
        PageQueryResult<EditProfessor> queryResult = new PageQueryResult<EditProfessor>();
499
        int index = 1;
500
        boolean hasOrgAuth = null != orgAuth;
501
        String sql = null;
502
        sql = " WHERE ORG_ID = ? ";
503
        if(hasOrgAuth){
504
            sql = sql + " AND ORG_AUTH = ?";
505
        }
506
        String whereSql = sql;
507
        sql = "SELECT COUNT(1) FROM PROFESSOR";
508
        sql = sql + whereSql;
509
        PreparedStatement ps = con.prepareStatement(sql);
510
        try{
511
            ps.setString(index++,orgId);
512
            if(hasOrgAuth){
513
            	ps.setString(index++,orgAuth);
514
            }
515
            queryResult.setPageSize(pageSize);
516
            ResultSet rs = ps.executeQuery();
517
            try{
518
                rs.next();
519
                total = rs.getInt(1);
520
            }finally{
521
                try{rs.close();}catch(Exception e1){}
522
            }
523
        }finally{
524
            try{ps.close();}catch(Exception e2){}
525
        }
526
        queryResult.setTotal(total);
527
        if(0== total){
528
            queryResult.setPageNo(1);
529
            queryResult.setData(Collections.<EditProfessor>emptyList());
530
            return queryResult;
531
        }
532
        index = 1;
533
        boolean firstPage = (1 == pageNo);
534
        if(firstPage){
535
            queryResult.setPageNo(1);
536
            sql = "SELECT OFFICE,DEPARTMENT,TITLE,AUTHENTICATION,AUTH_TYPE,AUTH_STATUS,ID,NAME,ADDRESS,ORG_AUTH FROM PROFESSOR";
537
            sql = sql + whereSql;
538
            sql = sql + " ORDER BY AUTH_TYPE DESC,ID";
539
            sql = sql + " LIMIT " + pageSize;
540
        }else{
541
            int pageNum = total / pageSize;
542
            if(total % pageSize != 0){
543
                ++pageNum;
544
            }
545
            if(pageNo > pageNum){
546
                pageNo = pageNum;
547
            }
548
            queryResult.setPageNo(pageNo);
549
            --pageNo;
550
            int offset = (pageNo * pageSize);
551
            sql = "SELECT OFFICE,DEPARTMENT,TITLE,AUTHENTICATION,AUTH_TYPE,AUTH_STATUS,ID,NAME,ADDRESS,ORG_AUTH FROM PROFESSOR";
552
            sql = sql + whereSql;
553
            sql = sql + " ORDER BY AUTH_TYPE DESC,ID";
554
            sql = sql + " LIMIT " + pageSize+ " OFFSET " + offset;
555
        }
556
        ps = con.prepareStatement(sql);
557
        try{
558
            ps.setString(index++,orgId);
559
            if(hasOrgAuth){
560
            	ps.setString(index++,orgAuth);
561
            }
562
            ResultSet rs = ps.executeQuery();
563
            try{
564
                List<EditProfessor> professors = new ArrayList<EditProfessor>();
565
                queryResult.setData(professors);
566
                int size = 0;
567
                while((size<pageSize) && rs.next()){
568
                    ++size;
569
                    EditProfessor professor =  new EditProfessor();
570
                    String office = rs.getString(1);
571
                	if(rs.wasNull()){
572
                		office = null;
573
                	}
574
                    professor.setOffice(office);
575
                    String depart = rs.getString(2);
576
                    if(rs.wasNull()){
577
                    	depart = null;
578
                	}
579
                    professor.setDepartment(depart);
580
                    String title = rs.getString(3);
581
                    if(rs.wasNull()){
582
                    	title = null;
583
                	}
584
                    professor.setTitle(title);
585
                    professor.setAuthentication(rs.getInt(4));
586
                    professor.setAuthType(rs.getInt(5));
587
                    professor.setAuthStatus(rs.getInt(6));
588
                    professor.setId(rs.getString(7));
589
                    professor.setName(rs.getString(8));
590
                    String address = rs.getString(9);
591
                    if(rs.wasNull()){
592
                    	address = null;
593
                	}
594
                    professor.setAddress(address);
595
                    professor.setOrgAuth(rs.getString(10));
596
                    professors.add(professor);
597
                }
598
                return queryResult;
599
            }finally{
600
                try{rs.close();}catch(Exception e3){}
601
            }
602
        }finally{
603
            try{ps.close();}catch(Exception e4){}
604
        }
605
    }
606
	
496 607
	public List<EditProfessor> queryByOrg(Connection con,String orgId,String orgAuth) throws SQLException{
497 608
        int index = 1;
498 609
        boolean hasOrgAuth = null != orgAuth;
@ -502,6 +613,7 @@ public abstract class ProfessorDao {
502 613
        if(hasOrgAuth){
503 614
            sql.append(" AND ORG_AUTH = ?");
504 615
        }
616
        sql.append(" ORDER BY AUTH_TYPE DESC,ID");
505 617
        PreparedStatement ps = con.prepareStatement(sql.toString());
506 618
        try{
507 619
            ps.setString(index++,orgId);

+ 1 - 1
src/main/java/com/ekexiu/portal/po/Professor.java

@ -267,7 +267,7 @@ public class Professor implements CreateTimeSupported, ModifyTimeSupported{
267 267
		this.authStatusExpert = authStatusExpert;
268 268
	}
269 269
270
	@Column(value=DE.SingleChar,renewable=false)
270
	@Column(handlerClass=FixLenStringHandler.class,dbType="CHAR(1)",renewable=false)
271 271
	public String getOrgAuth() {
272 272
		return orgAuth;
273 273
	}

+ 17 - 0
src/main/java/com/ekexiu/portal/service/ProfessorService.java

@ -317,12 +317,29 @@ public class ProfessorService {
317 317
		return this.professorDao.query(con);
318 318
	}
319 319
	
320
	@Get
321
	@Path("/pqOrgAuth")
322
	public PageQueryResult<EditProfessor> queryPageOrgAuth(@JdbcConn Connection con,String orgId,@Nullable String orgAuth,
323
			@DefaultValue("10") int pageSize,@DefaultValue("1") int pageNo)throws SQLException{
324
		PageQueryResult<EditProfessor> queryResult = this.professorDao.queryPage(con, orgId, orgAuth, pageSize, pageNo);
325
		List<EditProfessor> professors = queryResult.getData();
326
		if(!professors.isEmpty()){
327
			for (EditProfessor professor : professors) {
328
				professor.setHasHeadImage(this.imageService.hasProfessorImage(professor.getId()));
329
				professor.setResearchAreas(this.researchAreaDao.query(con, professor.getId()));
330
			}
331
			queryResult.setData(professors);
332
		}
333
		return queryResult;
334
	}
335
	
320 336
	@Get
321 337
	@Path("/qaOrgAuth")
322 338
	public List<EditProfessor> queryOrgAuth(@JdbcConn Connection con,String orgId,@Nullable String orgAuth)throws SQLException{
323 339
		List<EditProfessor> professors = this.professorDao.queryByOrg(con, orgId, orgAuth);
324 340
		for (EditProfessor professor : professors) {
325 341
			professor.setHasHeadImage(this.imageService.hasProfessorImage(professor.getId()));
342
			professor.setResearchAreas(this.researchAreaDao.query(con, professor.getId()));
326 343
		}
327 344
		return professors;
328 345
	}