Browse Source

资源搜索页面返回字段增加专家基础信息。

zzy.zhiyuan.foxmail 8 years ago
parent
commit
8122c80cc5

+ 212 - 2
src/main/java/com/ekexiu/portal/dao/ResourceDao.java

@ -27,6 +27,8 @@ import com.ekexiu.portal.pojo.EditProfessor;
27 27
public abstract class ResourceDao {
28 28
	@Autowrie
29 29
	private ImageDao imageDao;
30
	@Autowrie
31
	private ProfessorDao professorDao;
30 32
	
31 33
	public ImageDao getImageDao() {
32 34
		return imageDao;
@ -36,6 +38,14 @@ public abstract class ResourceDao {
36 38
		this.imageDao = imageDao;
37 39
	}
38 40

41
	public ProfessorDao getProfessorDao() {
42
		return professorDao;
43
	}
44

45
	public void setProfessorDao(ProfessorDao professorDao) {
46
		this.professorDao = professorDao;
47
	}
48

39 49
	@Insert
40 50
	public abstract int insert(Connection con,Resource resource) throws SQLException;
41 51
	
@ -286,6 +296,13 @@ public abstract class ResourceDao {
286 296
//        }
287 297
//    }
288 298
	
299
	/**
300
	 * 查询当前登录专家发布的所有资源
301
	 * @param con
302
	 * @param professorId 专家ID
303
	 * @return 返回当前专家发布的所有资源集合
304
	 * @throws SQLException
305
	 */
289 306
	public List<Resource> queryPro(Connection con,String professorId) throws SQLException{
290 307
        int _m_1 = 1;
291 308
        String sql = "SELECT RESOURCE_ID,RESOURCE_NAME,SUBJECT,INDUSTRY,SUPPORTED_SERVICES,DESCP,"
@ -352,6 +369,199 @@ public abstract class ResourceDao {
352 369
	@From(Resource.class)
353 370
	public abstract int delete(Connection con, String resourceId) throws SQLException;
354 371
	
372
	/**
373
	 * 分页查找所有资源(附带资源所有者基本信息),按资源名称排序
374
	 * @param key 查询内容(搜索框搜索内容-模糊查询)
375
	 * @param subject 学术领域
376
	 * @param industry 研究方向
377
	 * @param address 专家所在地
378
	 * @param pageSize 
379
	 * @param pageNo
380
	 * @return 返回要查找的所有资源(附带资源所有者基本信息)
381
	 * @throws SQLException
382
	 */
383
	public PageQueryResult<Resource> queryPageRes(Connection con,String key,String subject,String industry,String address,int pageSize,int pageNo) throws SQLException{
384
        int _m_1 = 0;
385
        PageQueryResult<Resource> _result = new PageQueryResult<Resource>();
386
        int _m_3 = 1;
387
        boolean _m_2 = null == key;
388
        boolean _m_4 = null == subject;
389
        boolean _m_5 = null == industry;
390
        boolean _m6 = null == address;
391
        StringBuilder sql = new StringBuilder();
392
        boolean _m_7 = true;
393
        if(!_m_2){
394
            _m_7 =  false;
395
            sql.append(" WHERE ((RESOURCE_NAME LIKE ?) OR (SUPPORTED_SERVICES LIKE ?) "
396
            		+ " OR (RESOURCE.SUBJECT LIKE ?) OR (RESOURCE.INDUSTRY LIKE ?) "
397
            		+ " OR (RESOURCE.PROFESSOR_ID IN (SELECT PROFESSOR.ID FROM PROFESSOR WHERE PROFESSOR.ADDRESS LIKE ?))) ");
398
        }
399
        if(!_m_4){
400
            if(_m_7){
401
                _m_7 =  false;
402
                sql.append(" WHERE (RESOURCE.SUBJECT LIKE ?) ");
403
            }else{
404
                sql.append(" AND (RESOURCE.SUBJECT LIKE ?) ");
405
            }
406
        }
407
        if(!_m_5){
408
            if(_m_7){
409
                _m_7 =  false;
410
                sql.append(" WHERE (RESOURCE.INDUSTRY LIKE ?) ");
411
            }else{
412
                sql.append(" AND (RESOURCE.INDUSTRY LIKE ?) ");
413
            }
414
        }
415
        if(!_m6){
416
        	if(_m_7){
417
        		_m_7 =  false;
418
        		sql.append(" WHERE (RESOURCE.PROFESSOR_ID IN (SELECT PROFESSOR.ID FROM PROFESSOR WHERE PROFESSOR.ADDRESS LIKE ?)) ");
419
        	}else{
420
        		sql.append(" AND (RESOURCE.PROFESSOR_ID IN (SELECT PROFESSOR.ID FROM PROFESSOR WHERE PROFESSOR.ADDRESS LIKE ?)) ");
421
        	}
422
        }
423
        StringBuilder _m_6 = sql;
424
        sql = new StringBuilder();
425
        sql.append(" SELECT COUNT(1) FROM RESOURCE ");
426
        if(_m_6.length()>0){
427
            sql.append(_m_6);
428
        }
429
        PreparedStatement ps = con.prepareStatement(sql.toString());
430
        try{
431
            if(!_m_2){
432
                ps.setString(_m_3++,key);
433
                ps.setString(_m_3++,key);
434
                ps.setString(_m_3++,key);
435
                ps.setString(_m_3++,key);
436
                ps.setString(_m_3++,key);
437
            }
438
            if(!_m_4){
439
                ps.setString(_m_3++,subject);
440
            }
441
            if(!_m_5){
442
                ps.setString(_m_3++,industry);
443
            }
444
            if(!_m6){
445
            	ps.setString(_m_3++,address);
446
            }
447
            _result.setPageSize(pageSize);
448
            ResultSet _pageRs = ps.executeQuery();
449
            try{
450
                _pageRs.next();
451
                _m_1 = _pageRs.getInt(1);
452
            }finally{
453
                try{_pageRs.close();}catch(Exception _m_8){}
454
            }
455
        }finally{
456
            try{ps.close();}catch(Exception _m_9){}
457
        }
458
        _result.setTotal(_m_1);
459
        if(0== _m_1){
460
            _result.setPageNo(1);
461
            _result.setData(Collections.<Resource>emptyList());
462
            return _result;
463
        }
464
        _m_3 = 1;
465
        boolean _m_10 = (1 == pageNo);
466
        if(_m_10){
467
            _result.setPageNo(1);
468
            sql = new StringBuilder();
469
            sql.append("SELECT RESOURCE_ID,RESOURCE_NAME,SUBJECT,INDUSTRY,SUPPORTED_SERVICES,DESCP,PROFESSOR_ID,"
470
            		+ " ASCRIPTION,HOPE_PAY_METHOD,COOPERATION_NOTES,CREATE_TIME,MODIFY_TIME FROM RESOURCE ");
471
            if(_m_6.length()>0){
472
                sql.append(_m_6);
473
            }
474
            sql.append(" ORDER BY RESOURCE_NAME");
475
            sql.append(" LIMIT ").append(pageSize);
476
        }else{
477
            int _m_11 = _m_1 / pageSize;
478
            if(_m_1 % pageSize != 0){
479
                ++_m_11;
480
            }
481
            if(pageNo > _m_11){
482
                pageNo = _m_11;
483
            }
484
            _result.setPageNo(pageNo);
485
            --pageNo;
486
            int _m_12 = (pageNo * pageSize);
487
            sql = new StringBuilder();
488
            sql.append("SELECT RESOURCE_ID,RESOURCE_NAME,SUBJECT,INDUSTRY,SUPPORTED_SERVICES,DESCP,PROFESSOR_ID,"
489
            		+ " ASCRIPTION,HOPE_PAY_METHOD,COOPERATION_NOTES,CREATE_TIME,MODIFY_TIME FROM RESOURCE ");
490
            if(_m_6.length()>0){
491
                sql.append(_m_6);
492
            }
493
            sql.append(" ORDER BY RESOURCE_NAME");
494
            sql.append(" LIMIT ").append(pageSize).append(" OFFSET ").append(_m_12);
495
        }
496
        ps = con.prepareStatement(sql.toString());
497
        try{
498
            if(!_m_2){
499
                ps.setString(_m_3++,key);
500
                ps.setString(_m_3++,key);
501
                ps.setString(_m_3++,key);
502
                ps.setString(_m_3++,key);
503
                ps.setString(_m_3++,key);
504
            }
505
            if(!_m_4){
506
                ps.setString(_m_3++,subject);
507
            }
508
            if(!_m_5){
509
                ps.setString(_m_3++,industry);
510
            }
511
            if(!_m6){
512
            	ps.setString(_m_3++,address);
513
            }
514
            ResultSet rs = ps.executeQuery();
515
            try{
516
                List<Resource> _m_13 = new ArrayList<Resource>();
517
                _result.setData(_m_13);
518
                int _m_14 = 0;
519
                while((_m_14<pageSize) && rs.next()){
520
                    ++_m_14;
521
                    Resource _obj =  new Resource();
522
                    _obj.setResourceId(rs.getString(1));
523
                    _obj.setResourceName(rs.getString(2));
524
                    String _m_15 = rs.getString(3);
525
                    if(rs.wasNull()){
526
                        _m_15 = null;
527
                    }
528
                    _obj.setSubject(_m_15);
529
                    String _m_16 = rs.getString(4);
530
                    if(rs.wasNull()){
531
                        _m_16 = null;
532
                    }
533
                    _obj.setIndustry(_m_16);
534
                    _obj.setSupportedServices(rs.getString(5));
535
                    String _m_17 = rs.getString(6);
536
                    if(rs.wasNull()){
537
                        _m_17 = null;
538
                    }
539
                    _obj.setDescp(_m_17);
540
                    _obj.setProfessorId(rs.getString(7));
541
                    _obj.setAscription(rs.getString(8));
542
                    _obj.setHopePayMethod(rs.getString(9));
543
                    String _m_18 = rs.getString(10);
544
                    if(rs.wasNull()){
545
                        _m_18 = null;
546
                    }
547
                    _obj.setCooperationNotes(_m_18);
548
                    _obj.setCreateTime(rs.getString(11));
549
                    _obj.setModifyTime(rs.getString(12));
550
                    List<Image> images = this.imageDao.queryRes(con, _obj.getResourceId());
551
                    _obj.setImages(images);
552
                    EditProfessor professor = this.professorDao.queryBaseInfo(con, _obj.getProfessorId());
553
                    _obj.setProfessor(professor);
554
                    _m_13.add(_obj);
555
                }
556
                return _result;
557
            }finally{
558
                try{rs.close();}catch(Exception _m_19){}
559
            }
560
        }finally{
561
            try{ps.close();}catch(Exception _m_20){}
562
        }
563
    }
564
	
355 565
	/**
356 566
	 * 分页查找所有资源,按资源名称排序
357 567
	 * @param key 查询内容(搜索框搜索内容-模糊查询)
@ -363,9 +573,9 @@ public abstract class ResourceDao {
363 573
	 * @return
364 574
	 * @throws SQLException
365 575
	 */
366
	public org.jfw.util.PageQueryResult<Resource> queryPage(Connection con,String key,String subject,String industry,String address,int pageSize,int pageNo) throws SQLException{
576
	public PageQueryResult<Resource> queryPage(Connection con,String key,String subject,String industry,String address,int pageSize,int pageNo) throws SQLException{
367 577
        int _m_1 = 0;
368
        org.jfw.util.PageQueryResult<Resource> _result = new org.jfw.util.PageQueryResult<Resource>();
578
        PageQueryResult<Resource> _result = new PageQueryResult<Resource>();
369 579
        int _m_3 = 1;
370 580
        boolean _m_2 = null == key;
371 581
        boolean _m_4 = null == subject;

+ 9 - 0
src/main/java/com/ekexiu/portal/service/ResourceService.java

@ -157,6 +157,15 @@ public class ResourceService {
157 157
		}
158 158
	}
159 159
	
160
	@Get
161
	@Path("/pqRes")
162
	public PageQueryResult<Resource> queryPageRes(@JdbcConn(false) Connection con, @Nullable String key, @Nullable String subject, @Nullable String industry, @Nullable String address, @DefaultValue("10") int pageSize, @DefaultValue("1") int pageNo) throws SQLException {
163
		if(key!=null) key="%"+key+"%";
164
		if(subject!=null) subject ="%"+subject+"%";
165
		if(industry!=null)industry="%"+industry+"%";
166
		return this.resourceDao.queryPageRes(con, key, subject, industry, address, pageSize, pageNo);
167
	}
168
	
160 169
	@Get
161 170
	@Path("/pq")
162 171
	public PageQueryResult<Resource> queryPage(@JdbcConn(false) Connection con, @Nullable String key, @Nullable String subject, @Nullable String industry, @Nullable String address, @DefaultValue("10") int pageSize, @DefaultValue("1") int pageNo) throws SQLException {