Browse Source

首页热门专家,默认按咨询星级排序返回已认证专家。

zzy.zhiyuan.foxmail 8 years ago
parent
commit
a012b362c0

+ 110 - 1
src/main/java/com/ekexiu/portal/dao/ProfessorDao.java

@ -413,6 +413,115 @@ public abstract class ProfessorDao {
413 413
					"" + "ORG_ID IN(SELECT ID FROM ORGANIZATION WHERE NAME LIKE ?)", "NAME LIKE ?" }, handlerClass = StringHandler.class) String key,
414 414
			int pageSize, int pageNo) throws SQLException;
415 415

416
	/**
417
	 * 首页搜索热门专家
418
	 * @param con
419
	 * @return 返回8个热门专家,按咨询星级排序
420
	 * @throws SQLException
421
	 */
422
	public PageQueryResult<EditProfessor> queryHot(Connection con, int pageSize, int pageNo) throws SQLException {
423
		PageQueryResult<EditProfessor> _result = new PageQueryResult<EditProfessor>();
424
		StringBuilder sql = new StringBuilder();
425
		sql.append(" WHERE AUTHENTICATION = '1' ");
426
		StringBuilder whereSql = sql;
427
		sql = new StringBuilder();
428
		sql.append("SELECT COUNT(1) FROM PROFESSOR");
429
		if (whereSql.length() > 0) {
430
			sql.append(whereSql);
431
		}
432
		PreparedStatement ps = con.prepareStatement(sql.toString());
433
		int totalSize = 0;
434
		try {
435
			_result.setPageSize(pageSize);
436
			ResultSet _pageRs = ps.executeQuery();
437
			try {
438
				_pageRs.next();
439
				totalSize = _pageRs.getInt(1);
440
			} finally {
441
				try {
442
					_pageRs.close();
443
				} catch (Exception _m_6) {
444
				}
445
			}
446
		} finally {
447
			try {
448
				ps.close();
449
			} catch (Exception _m_7) {
450
			}
451
		}
452
		_result.setTotal(totalSize);
453
		if (0 == totalSize) {
454
			_result.setPageNo(1);
455
			_result.setData(Collections.<EditProfessor> emptyList());
456
			return _result;
457
		}
458
		if (1 == pageNo) {
459
			_result.setPageNo(1);
460
			sql = new StringBuilder();
461
			sql.append("SELECT OFFICE,ADDRESS,TITLE,AUTHENTICATION,PROFESSOR.ID,PROFESSOR.NAME,ORG_ID,ORGANIZATION.NAME"
462
	        		+ " FROM PROFESSOR LEFT JOIN ORGANIZATION ON PROFESSOR.ORG_ID=ORGANIZATION.ID ");
463
			if (whereSql.length() > 0) {
464
				sql.append(whereSql);
465
			}
466
			sql.append(" ORDER BY STAR_LEVEL DESC ");
467
			sql.append(" LIMIT ").append(pageSize);
468
		} else {
469
			int _pageSize = totalSize / pageSize;
470
			if (totalSize % pageSize != 0) {
471
				++_pageSize;
472
			}
473
			if (pageNo > _pageSize) {
474
				pageNo = _pageSize;
475
			}
476
			_result.setPageNo(pageNo);
477
			--pageNo;
478
			int _m_10 = (pageNo * pageSize);
479
			sql = new StringBuilder();
480
			sql.append("SELECT OFFICE,ADDRESS,TITLE,AUTHENTICATION,PROFESSOR.ID,PROFESSOR.NAME,ORG_ID,ORGANIZATION.NAME"
481
	        		+ " FROM PROFESSOR LEFT JOIN ORGANIZATION ON PROFESSOR.ORG_ID=ORGANIZATION.ID ");
482
			if (whereSql.length() > 0) {
483
				sql.append(whereSql);
484
			}
485
			sql.append(" ORDER BY STAR_LEVEL DESC ");
486
			sql.append(" LIMIT ").append(pageSize).append(" OFFSET ").append(_m_10);
487
		}
488
		ps = con.prepareStatement(sql.toString());
489
		try {
490
			java.sql.ResultSet rs = ps.executeQuery();
491
			try {
492
				List<EditProfessor> _m_11 = new ArrayList<EditProfessor>();
493
				_result.setData(_m_11);
494
				while (rs.next()) {
495
					EditProfessor professor =  new EditProfessor();
496
                    String _m_1 = rs.getString(1);
497
                    if(rs.wasNull()){
498
                        _m_1 = null;
499
                    }
500
                    professor.setOffice(_m_1);
501
                    professor.setAddress(rs.getString(2));
502
                    professor.setTitle(rs.getString(3));
503
                    professor.setAuthentication("1".equals(rs.getString(4)));
504
                    professor.setId(rs.getString(5));
505
                    professor.setName(rs.getString(6));
506
                    professor.setOrgId(rs.getString(7));
507
                    professor.setOrgName(rs.getString(8));
508
					_m_11.add(professor);
509
				}
510
				return _result;
511
			} finally {
512
				try {
513
					rs.close();
514
				} catch (Exception e1) {
515
				}
516
			}
517
		} finally {
518
			try {
519
				ps.close();
520
			} catch (Exception e2) {
521
			}
522
		}
523
	}
524
	
416 525
	/**
417 526
	 * APP专家搜索列表分页多条件查询
418 527
	 * @param con
@ -424,7 +533,7 @@ public abstract class ProfessorDao {
424 533
	 * @param authentication 是否认证
425 534
	 * @param pageSize 
426 535
	 * @param pageNo
427
	 * @return 按搜索条件返回专家列表
536
	 * @return 按搜索条件返回专家列表  按咨询星级排序
428 537
	 * @throws SQLException
429 538
	 */
430 539
	public PageQueryResult<EditProfessor> queryAPP(Connection con, @Nullable String key, String subject, String industry, 

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

@ -264,6 +264,21 @@ public class ProfessorService {
264 264
		return true;
265 265
	}
266 266
	
267
	@Get
268
	@Path("/pqHot")
269
	public PageQueryResult<EditProfessor> queryHot(@JdbcConn Connection con,@DefaultValue("10") int pageSize,@DefaultValue("1") int pageNo) throws SQLException {
270
		PageQueryResult<EditProfessor> queryResult = this.professorDao.queryHot(con, pageSize, pageNo);
271
		List<EditProfessor> professors = queryResult.getData();
272
		if(professors != null){
273
			for (EditProfessor editProfessor : professors) {
274
				editProfessor.setHasHeadImage(this.imageService.hasProfessorImage(editProfessor.getId()));
275
				editProfessor.setResearchAreas(this.researchAreaDao.query(con, editProfessor.getId()));
276
				editProfessor.setResources(this.resourceDao.queryList(con, editProfessor.getId()));
277
			}
278
		}
279
		return queryResult;
280
	}
281
	
267 282
	@Get
268 283
	@Path("/pqAPP")
269 284
	public PageQueryResult<EditProfessor> queryAPP(@JdbcConn Connection con, @Nullable String key,