Browse Source

修改我的工作台最新咨询和最新回复两个接口,返回值增加是否存在专家头像的字段。

zzy.zhiyuan.foxmail 8 years ago
parent
commit
63dc8cf333

+ 6 - 18
src/main/java/com/ekexiu/portal/dao/ConsultDao.java

@ -16,7 +16,6 @@ import org.jfw.apt.orm.annotation.dao.method.operator.SelectOne;
16 16
import org.jfw.util.PageQueryResult;
17 17

18 18
import com.ekexiu.portal.po.Consult;
19
import com.ekexiu.portal.po.Professor;
20 19
import com.ekexiu.portal.pojo.EditProfessor;
21 20

22 21
@DAO
@ -205,12 +204,9 @@ public abstract class ConsultDao {
205 204
	 */
206 205
	public Consult queryNewConsult(Connection con, String professorId) throws SQLException {
207 206
		int m1 = 1;
208
		String sql = " SELECT CONSULT_ID,CONSULT_TYPE,CONSULT_TITLE,CONSULT_CONTANT,CONSULT.CREATE_TIME,"
209
				+ " CONSULT.PROFESSOR_ID,CONSULTANT_ID,READ_STATUS,PROFESSOR.NAME,PROFESSOR.OFFICE,"
210
				+ " PROFESSOR.DEPARTMENT,PROFESSOR.TITLE,PROFESSOR.ADDRESS,ORGANIZATION.NAME "
211
				+ " FROM CONSULT LEFT JOIN PROFESSOR ON CONSULTANT_ID = PROFESSOR.ID "
212
				+ " LEFT JOIN ORGANIZATION ON PROFESSOR.ORG_ID = ORGANIZATION.ID "
213
				+ " WHERE CONSULT.CREATE_TIME "
207
		String sql = " SELECT CONSULT_ID,CONSULT_TYPE,CONSULT_TITLE,CONSULT_CONTANT,"
208
				+ "CONSULT.CREATE_TIME,CONSULT.PROFESSOR_ID,CONSULTANT_ID,READ_STATUS"
209
				+ " FROM CONSULT WHERE CONSULT.CREATE_TIME "
214 210
				+ " IN (SELECT MAX(CREATE_TIME) FROM CONSULT WHERE READ_STATUS = 0 AND PROFESSOR_ID = ?) ";
215 211
		PreparedStatement ps = con.prepareStatement(sql);
216 212
		try{
@ -225,16 +221,8 @@ public abstract class ConsultDao {
225 221
					consult.setConsultContant(rs.getString(4));
226 222
					consult.setCreateTime(rs.getString(5));
227 223
					consult.setProfessorId(rs.getString(6));
228
					EditProfessor professor = new EditProfessor();
229
					professor.setId(rs.getString(7));
224
					consult.setConsultantId(rs.getString(7));
230 225
					consult.setReadStatus(rs.getInt(8));
231
					professor.setName(rs.getString(9));
232
					professor.setOffice(rs.getString(10));
233
					professor.setDepartment(rs.getString(11));
234
					professor.setTitle(rs.getString(12));
235
					professor.setAddress(rs.getString(13));
236
					professor.setOrgName(rs.getString(14));
237
					consult.setProfessor(professor);
238 226
					return consult;
239 227
				}else{
240 228
					return null;
@ -265,7 +253,7 @@ public abstract class ConsultDao {
265 253
                    _result.setConsultTitle(rs.getString(3));
266 254
                    _result.setConsultContant(rs.getString(4));
267 255
                    _result.setProfessorId(rs.getString(5));
268
                    Professor professor = new Professor();
256
                    EditProfessor professor = new EditProfessor();
269 257
                    professor.setId(rs.getString(6));
270 258
                    _result.setConsultStatus(rs.getInt(7));
271 259
                    String _m_2 = rs.getString(8);
@ -330,7 +318,7 @@ public abstract class ConsultDao {
330 318
                    _result.setConsultType(rs.getString(2));
331 319
                    _result.setConsultTitle(rs.getString(3));
332 320
                    _result.setConsultContant(rs.getString(4));
333
                    Professor professor = new Professor();
321
                    EditProfessor professor = new EditProfessor();
334 322
                    professor.setId(rs.getString(5));
335 323
                    _result.setConsultantId(rs.getString(6));
336 324
                    _result.setConsultStatus(rs.getInt(7));

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

@ -6,6 +6,7 @@ import java.sql.PreparedStatement;
6 6
import java.sql.ResultSet;
7 7
import java.sql.SQLException;
8 8
import java.util.ArrayList;
9
import java.util.Collections;
9 10
import java.util.List;
10 11

11 12
import org.jfw.apt.annotation.Nullable;
@ -288,6 +289,179 @@ public abstract class ProfessorDao {
288 289
					"" + "ORG_ID IN(SELECT ID FROM ORGANIZATION WHERE NAME LIKE ?)", "NAME LIKE ?" }, handlerClass = StringHandler.class) String key,
289 290
			int pageSize, int pageNo) throws SQLException;
290 291

292
	/**
293
	 * 分页查询专家基础信息,多条件查询专家列表。
294
	 * @param con
295
	 * @param key 搜索信息
296
	 * @param subject 学术领域
297
	 * @param industry 应用行业
298
	 * @param address 所在城市
299
	 * @param pageSize 
300
	 * @param pageNo
301
	 * @return 返回专家信息列表
302
	 * @throws SQLException
303
	 */
304
	public PageQueryResult<EditProfessor> queryEditBaseInfo(Connection con, @Nullable String key, String subject, 
305
			String industry, String address, int pageSize, int pageNo) throws SQLException {
306
		PageQueryResult<EditProfessor> _result = new PageQueryResult<EditProfessor>();
307
		StringBuilder sql = new StringBuilder();
308
		boolean hasKey = null != key;
309
		if (hasKey) {
310
			sql.append(" WHERE (( professor.ID IN (SELECT PROFESSOR_ID FROM RESEARCH_AREA WHERE CAPTION LIKE ?)) "
311
					+ " OR (ORG_ID IN(SELECT organization.ID FROM ORGANIZATION WHERE organization.NAME LIKE ?)) "
312
					+ " OR ( professor.NAME LIKE ?) OR (professor.SUBJECT LIKE ?) "
313
					+ " OR (professor.INDUSTRY LIKE ?) OR (professor.ADDRESS LIKE ?))");
314
		}
315
		boolean hasSubject = null != subject;
316
		boolean hasIndustry = null != industry;
317
		boolean hasAddress = null != address;
318
		if (hasSubject) {
319
			sql.append(sql.length() > 0 ? " AND " : " WHERE ").append("(SUBJECT LIKE ?)");
320
		}
321
		if (hasIndustry) {
322
			sql.append(sql.length() > 0 ? " AND " : " WHERE ").append("(INDUSTRY LIKE ?)");
323
		}
324
		if (hasAddress) {
325
			sql.append(sql.length() > 0 ? " AND " : " WHERE ").append("(ADDRESS LIKE ?)");
326
		}
327

328
		StringBuilder whereSql = sql;
329
		sql = new StringBuilder();
330
		sql.append("SELECT COUNT(1) FROM PROFESSOR");
331
		if (whereSql.length() > 0) {
332
			sql.append(whereSql);
333
		}
334
		PreparedStatement ps = con.prepareStatement(sql.toString());
335
		int paramIndex = 1;
336
		int totalSize = 0;
337
		try {
338
			if (hasKey) {
339
				ps.setString(paramIndex++, key);
340
				ps.setString(paramIndex++, key);
341
				ps.setString(paramIndex++, key);
342
				ps.setString(paramIndex++, key);
343
				ps.setString(paramIndex++, key);
344
				ps.setString(paramIndex++, key);
345
			}
346
			if (hasSubject) {
347
				ps.setString(paramIndex++, subject);
348
			}
349
			if (hasIndustry) {
350
				ps.setString(paramIndex++, industry);
351
			}
352
			if (hasAddress) {
353
				ps.setString(paramIndex++, address);
354
			}
355
			_result.setPageSize(pageSize);
356
			ResultSet _pageRs = ps.executeQuery();
357
			try {
358
				_pageRs.next();
359
				totalSize = _pageRs.getInt(1);
360
			} finally {
361
				try {
362
					_pageRs.close();
363
				} catch (Exception _m_6) {
364
				}
365
			}
366
		} finally {
367
			try {
368
				ps.close();
369
			} catch (Exception _m_7) {
370
			}
371
		}
372
		_result.setTotal(totalSize);
373
		if (0 == totalSize) {
374
			_result.setPageNo(1);
375
			_result.setData(Collections.<EditProfessor> emptyList());
376
			return _result;
377
		}
378
		paramIndex = 1;
379
		if (1 == pageNo) {
380
			_result.setPageNo(1);
381
			sql = new StringBuilder();
382
			sql.append("SELECT OFFICE,SUBJECT,INDUSTRY,ADDRESS,DEPARTMENT,organization.NAME AS ONAME,TITLE,"
383
					+ " AUTHENTICATION,professor.ID,professor.NAME AS PNAME,STAR_LEVEL,CONSULT_COUNT "
384
					+ " FROM PROFESSOR LEFT JOIN ORGANIZATION ON ORG_ID=organization.ID ");
385
			if (whereSql.length() > 0) {
386
				sql.append(whereSql);
387
			}
388
			sql.append(" ORDER BY ONAME ");
389
			sql.append(" LIMIT ").append(pageSize);
390
		} else {
391
			int _pageSize = totalSize / pageSize;
392
			if (totalSize % pageSize != 0) {
393
				++_pageSize;
394
			}
395
			if (pageNo > _pageSize) {
396
				pageNo = _pageSize;
397
			}
398
			_result.setPageNo(pageNo);
399
			--pageNo;
400
			int _m_10 = (pageNo * pageSize);
401
			sql = new StringBuilder();
402
			sql.append("SELECT OFFICE,SUBJECT,INDUSTRY,ADDRESS,DEPARTMENT,organization.NAME AS ONAME,TITLE,"
403
					+ " AUTHENTICATION,professor.ID,professor.NAME AS PNAME,STAR_LEVEL,CONSULT_COUNT "
404
					+ " FROM PROFESSOR LEFT JOIN ORGANIZATION ON ORG_ID=organization.ID ");
405
			if (whereSql.length() > 0) {
406
				sql.append(whereSql);
407
			}
408
			sql.append(" ORDER BY ONAME ");
409
			sql.append(" LIMIT ").append(pageSize).append(" OFFSET ").append(_m_10);
410
		}
411
		ps = con.prepareStatement(sql.toString());
412
		try {
413
			if (hasKey) {
414
				ps.setString(paramIndex++, key);
415
				ps.setString(paramIndex++, key);
416
				ps.setString(paramIndex++, key);
417
				ps.setString(paramIndex++, key);
418
				ps.setString(paramIndex++, key);
419
				ps.setString(paramIndex++, key);
420
			}
421
			if (hasSubject) {
422
				ps.setString(paramIndex++, subject);
423
			}
424
			if (hasIndustry) {
425
				ps.setString(paramIndex++, industry);
426
			}
427
			if (hasAddress) {
428
				ps.setString(paramIndex++, address);
429
			}
430
			java.sql.ResultSet rs = ps.executeQuery();
431
			try {
432
				List<EditProfessor> _m_11 = new ArrayList<EditProfessor>();
433
				_result.setData(_m_11);
434
				while (rs.next()) {
435
					EditProfessor professor = new EditProfessor();
436
					professor.setOffice(rs.getString(1));
437
					professor.setSubject(rs.getString(2));
438
					professor.setIndustry(rs.getString(3));
439
					professor.setAddress(rs.getString(4));
440
					professor.setDepartment(rs.getString(5));
441
					professor.setOrgName(rs.getString(6));
442
					professor.setTitle(rs.getString(7));
443
					professor.setAuthentication("1".equals(rs.getString(8)));
444
					professor.setId(rs.getString(9));
445
					professor.setName(rs.getString(10));
446
					professor.setStarLevel(rs.getBigDecimal(11));
447
					professor.setConsultCount(rs.getInt(12));
448
					_m_11.add(professor);
449
				}
450
				return _result;
451
			} finally {
452
				try {
453
					rs.close();
454
				} catch (Exception _m_17) {
455
				}
456
			}
457
		} finally {
458
			try {
459
				ps.close();
460
			} catch (Exception _m_18) {
461
			}
462
		}
463
	}
464
	
291 465
	public PageQueryResult<Professor> query(Connection con, @Nullable String key, String subject, String industry, String address, int pageSize, int pageNo)
292 466
			throws SQLException {
293 467


+ 4 - 16
src/main/java/com/ekexiu/portal/dao/TidingsDao.java

@ -11,7 +11,6 @@ import org.jfw.apt.orm.annotation.dao.method.operator.Insert;
11 11
import com.ekexiu.portal.po.Consult;
12 12
import com.ekexiu.portal.po.Professor;
13 13
import com.ekexiu.portal.po.Tidings;
14
import com.ekexiu.portal.pojo.EditProfessor;
15 14

16 15
@DAO
17 16
public abstract class TidingsDao {
@ -59,12 +58,9 @@ public abstract class TidingsDao {
59 58
	 */
60 59
	public Tidings queryNewReply(Connection con, String consultantId) throws SQLException{
61 60
		int _m_1 = 1;
62
        String sql = "SELECT TIDINGS_ID,TIDINGS_CONTANT,SENDER_ID,TIDINGS.CONSULT_ID,TIDINGS.CREATE_TIME,"
63
        		+ " TIDINGS.READ_STATUS,CONSULT.CONSULT_TITLE,PROFESSOR.NAME,PROFESSOR.OFFICE,"
64
        		+ " PROFESSOR.DEPARTMENT,PROFESSOR.TITLE,PROFESSOR.ADDRESS,ORGANIZATION.NAME "
61
        String sql = "SELECT TIDINGS_ID,TIDINGS_CONTANT,SENDER_ID,TIDINGS.CONSULT_ID,"
62
        		+ " TIDINGS.CREATE_TIME,TIDINGS.READ_STATUS,CONSULT.CONSULT_TITLE"
65 63
        		+ " FROM TIDINGS LEFT JOIN CONSULT ON TIDINGS.CONSULT_ID = CONSULT.CONSULT_ID "
66
        		+ " LEFT JOIN PROFESSOR ON CONSULT.PROFESSOR_ID = PROFESSOR.ID "
67
        		+ " LEFT JOIN ORGANIZATION ON PROFESSOR.ORG_ID = ORGANIZATION.ID "
68 64
        		+ " WHERE TIDINGS.CREATE_TIME IN "
69 65
        		+ " (SELECT MAX(TIDINGS.CREATE_TIME) FROM TIDINGS "
70 66
        		+ " INNER JOIN CONSULT ON TIDINGS.CONSULT_ID = CONSULT.CONSULT_ID AND (TIDINGS.READ_STATUS = 0) "
@ -80,20 +76,12 @@ public abstract class TidingsDao {
80 76
                	Tidings tidings = new Tidings();
81 77
                	tidings.setTidingsId(rs.getString(1));
82 78
                	tidings.setTidingsContant(rs.getString(2));
83
                	EditProfessor professor = new EditProfessor();
84
                	professor.setId(rs.getString(3));
79
                	tidings.setSenderId(rs.getString(3));
85 80
                	Consult consult = new Consult();
86 81
                	consult.setConsultId(rs.getString(4));
87 82
                	tidings.setCreateTime(rs.getString(5));
88
                	tidings.setReadStatus(rs.getShort(6));
83
                	tidings.setReadStatus(rs.getInt(6));
89 84
                	consult.setConsultTitle(rs.getString(7));
90
                	professor.setName(rs.getString(8));
91
                	professor.setOffice(rs.getString(9));
92
                	professor.setDepartment(rs.getString(10));
93
                	professor.setTitle(rs.getString(11));
94
                	professor.setAddress(rs.getString(12));
95
                	professor.setOrgName(rs.getString(13));
96
                	tidings.setProfessor(professor);
97 85
                	tidings.setConsult(consult);
98 86
                	return tidings;
99 87
                }else{

+ 4 - 3
src/main/java/com/ekexiu/portal/po/Consult.java

@ -11,6 +11,7 @@ import org.jfw.apt.orm.core.defaultImpl.StringHandler;
11 11
import org.jfw.apt.orm.core.enums.DE;
12 12

13 13
import com.ekexiu.portal.basepo.CreateTimeSupported;
14
import com.ekexiu.portal.pojo.EditProfessor;
14 15

15 16
@PrimaryKey("consultId")
16 17
@Table
@ -33,12 +34,12 @@ public class Consult implements CreateTimeSupported {
33 34
	private String thanksTime;
34 35
	private String revoveryTime;
35 36
	private int readStatus;
36
	private Professor professor;
37
	private EditProfessor professor;
37 38
	
38
	public Professor getProfessor() {
39
	public EditProfessor getProfessor() {
39 40
		return professor;
40 41
	}
41
	public void setProfessor(Professor professor) {
42
	public void setProfessor(EditProfessor professor) {
42 43
		this.professor = professor;
43 44
	}
44 45
	

+ 16 - 1
src/main/java/com/ekexiu/portal/service/ConsultService.java

@ -16,6 +16,7 @@ import org.jfw.util.StringUtil;
16 16
import com.ekexiu.portal.dao.ConsultDao;
17 17
import com.ekexiu.portal.dao.ProfessorDao;
18 18
import com.ekexiu.portal.po.Consult;
19
import com.ekexiu.portal.pojo.EditProfessor;
19 20

20 21
@Path("/consult")
21 22
public class ConsultService {
@ -23,6 +24,8 @@ public class ConsultService {
23 24
	private ConsultDao consultDao;
24 25
	@Autowrie
25 26
	private ProfessorDao professorDao;
27
	@Autowrie
28
	private ImageService imageService;
26 29
	
27 30
	public ConsultDao getConsultDao() {
28 31
		return consultDao;
@ -36,6 +39,12 @@ public class ConsultService {
36 39
	public void setProfessorDao(ProfessorDao professorDao) {
37 40
		this.professorDao = professorDao;
38 41
	}
42
	public ImageService getImageService() {
43
		return imageService;
44
	}
45
	public void setImageService(ImageService imageService) {
46
		this.imageService = imageService;
47
	}
39 48
	
40 49
	@Post
41 50
	@Path
@ -106,7 +115,13 @@ public class ConsultService {
106 115
	@Get
107 116
	@Path("/qaNewConsult")
108 117
	public Consult queryNewConsult(@JdbcConn Connection con, String professorId) throws SQLException {
109
		return this.consultDao.queryNewConsult(con, professorId);
118
		Consult consult = this.consultDao.queryNewConsult(con, professorId);
119
		if(consult != null){
120
			EditProfessor professor = this.professorDao.queryBaseInfo(con, consult.getConsultantId());
121
			professor.setHasHeadImage(this.imageService.hasProfessorImage(consult.getConsultantId()));
122
			consult.setProfessor(professor);
123
		}
124
		return consult;
110 125
	}
111 126
	
112 127
	@Get

+ 30 - 3
src/main/java/com/ekexiu/portal/service/ProfessorService.java

@ -200,7 +200,9 @@ public class ProfessorService {
200 200
	@Path("/baseInfo/{id}")
201 201
	public EditProfessor queryBaseInfo(@JdbcConn Connection con, @PathVar String id) throws SQLException {
202 202
		EditProfessor professor = this.professorDao.queryBaseInfo(con, id);
203
		professor.setHasHeadImage(this.imageService.hasProfessorImage(id));
203
		if(null != professor){
204
			professor.setHasHeadImage(this.imageService.hasProfessorImage(id));
205
		}
204 206
		return professor;
205 207
	}
206 208
	
@ -208,7 +210,9 @@ public class ProfessorService {
208 210
	@Path("/editBaseInfo/{id}")
209 211
	public EditProfessor queryEditBaseInfo(@JdbcConn Connection con, @PathVar String id) throws SQLException {
210 212
		EditProfessor professor = this.professorDao.queryEditBaseInfo(con, id);
211
		professor.setHasHeadImage(this.imageService.hasProfessorImage(id));
213
		if(null != professor){
214
			professor.setHasHeadImage(this.imageService.hasProfessorImage(id));
215
		}
212 216
		return professor;
213 217
	}
214 218
	
@ -265,9 +269,32 @@ public class ProfessorService {
265 269
		this.honorDao.delete(con, id);
266 270
		this.projectDao.delete(con, id);
267 271
	}
272
	
273
	@Get
274
	@Path("/pqBaseInfo")
275
	PageQueryResult<EditProfessor> queryEditBaseInfo(@JdbcConn(false) Connection con,@Nullable String key,
276
			@Nullable String subject,@Nullable String industry,@Nullable String address, 
277
			@DefaultValue("10") int pageSize,@DefaultValue("1") int pageNo)throws SQLException{
278
		if(key!=null) key="%"+key+"%";
279
		if(subject!=null) subject ="%"+subject+"%";
280
		if(null!=industry) industry="%"+industry+"%";
281
		if(null!=address) address="%"+address+"%";
282
		PageQueryResult<EditProfessor> queryResult = this.professorDao.queryEditBaseInfo(con, key, subject, industry, address, pageSize, pageNo);
283
		List<EditProfessor> editProfessors = queryResult.getData();
284
		if(editProfessors != null){
285
			for (EditProfessor editProfessor : editProfessors) {
286
				editProfessor.setHasHeadImage(this.imageService.hasProfessorImage(editProfessor.getId()));
287
				editProfessor.setResearchAreas(this.researchAreaDao.query(con, editProfessor.getId()));
288
			}
289
		}
290
		return queryResult;
291
	}
292
	
268 293
	@Get
269 294
	@Path("/pq")
270
	PageQueryResult<Professor> query(@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{
295
	PageQueryResult<Professor> query(@JdbcConn(false) Connection con,@Nullable String key,
296
			@Nullable String subject,@Nullable String industry,@Nullable String address, 
297
			@DefaultValue("10") int pageSize,@DefaultValue("1") int pageNo)throws SQLException{
271 298
	//	System.out.println("key==["+(key==null?"":key)+"]");
272 299
	//	System.out.println("subject==["+(subject==null?"":subject)+"]");
273 300
	//	System.out.println("industry==["+(industry==null?"":industry)+"]");

+ 25 - 1
src/main/java/com/ekexiu/portal/service/TidingsService.java

@ -13,8 +13,10 @@ import org.jfw.apt.web.annotation.param.PathVar;
13 13
import org.jfw.util.StringUtil;
14 14

15 15
import com.ekexiu.portal.dao.ConsultDao;
16
import com.ekexiu.portal.dao.ProfessorDao;
16 17
import com.ekexiu.portal.dao.TidingsDao;
17 18
import com.ekexiu.portal.po.Tidings;
19
import com.ekexiu.portal.pojo.EditProfessor;
18 20

19 21
@Path("/tidings")
20 22
public class TidingsService {
@ -22,6 +24,10 @@ public class TidingsService {
22 24
	private TidingsDao tidingsDao;
23 25
	@Autowrie
24 26
	private ConsultDao consultDao;
27
	@Autowrie
28
	private ProfessorDao professorDao;
29
	@Autowrie
30
	private ImageService imageService;
25 31
	
26 32
	public TidingsDao getTidingsDao() {
27 33
		return tidingsDao;
@ -35,6 +41,18 @@ public class TidingsService {
35 41
	public void setConsultDao(ConsultDao consultDao) {
36 42
		this.consultDao = consultDao;
37 43
	}
44
	public ProfessorDao getProfessorDao() {
45
		return professorDao;
46
	}
47
	public void setProfessorDao(ProfessorDao professorDao) {
48
		this.professorDao = professorDao;
49
	}
50
	public ImageService getImageService() {
51
		return imageService;
52
	}
53
	public void setImageService(ImageService imageService) {
54
		this.imageService = imageService;
55
	}
38 56
	
39 57
	@Post
40 58
	@Path
@ -58,7 +76,13 @@ public class TidingsService {
58 76
	@Get
59 77
	@Path("/qaNewReply")
60 78
	public Tidings queryNewReply(@JdbcConn Connection con, String consultantId) throws SQLException {
61
		return this.tidingsDao.queryNewReply(con, consultantId);
79
		Tidings tidings = this.tidingsDao.queryNewReply(con, consultantId);
80
		if(tidings != null){
81
			EditProfessor professor = this.professorDao.queryBaseInfo(con, tidings.getSenderId());
82
			professor.setHasHeadImage(this.imageService.hasProfessorImage(tidings.getSenderId()));
83
			tidings.setProfessor(professor);
84
		}
85
		return tidings;
62 86
	}
63 87
	
64 88
	@Get