Quellcode durchsuchen

修改文章数据结构

XMTT vor 7 Jahren
Ursprung
Commit
5cfae7f036

+ 57 - 79
src/main/java/com/ekexiu/portal/dao/ArticleDao.java

97

97

98
	@DeleteWith
98
	@DeleteWith
99
	@From(Article.class)
99
	@From(Article.class)
100
	public abstract int deletePro(Connection con, String professorId) throws SQLException;
100
	public abstract int deletePro(Connection con, String ownerId) throws SQLException;
101

101

102
	@Exclude("articleContent")
102
	@Exclude("articleContent")
103
	@SelectList
103
	@SelectList
107
	@Exclude("articleContent")
107
	@Exclude("articleContent")
108
	@SelectList
108
	@SelectList
109
	@OrderBy(" ORDER BY MODIFY_TIME DESC ")
109
	@OrderBy(" ORDER BY MODIFY_TIME DESC ")
110
	public abstract List<Article> queryPro(Connection con, String professorId) throws SQLException;
110
	@Where("ARTICLE_TYPE = '1'")
111
	public abstract List<Article> queryPro(Connection con, String ownerId) throws SQLException;
111

112

112
	@Exclude("articleContent")
113
	@Exclude("articleContent")
113
	@SelectList
114
	@SelectList
114
	@OrderBy(" ORDER BY MODIFY_TIME DESC ")
115
	@OrderBy(" ORDER BY MODIFY_TIME DESC ")
115
	@Where("STATUS = '1'")
116
	public abstract List<Article> queryProPublish(Connection con, String professorId) throws SQLException;
116
	@Where("STATUS = '1' AND ARTICLE_TYPE = '1'")
117
	public abstract List<Article> queryProPublish(Connection con, String ownerId) throws SQLException;
117

118

118
	@Exclude("articleContent")
119
	@Exclude("articleContent")
119
	@PageSelect
120
	@PageSelect
120
	@OrderBy(" ORDER BY PUBLISH_TIME DESC,SHARE_ID ASC")
121
	@OrderBy(" ORDER BY PUBLISH_TIME DESC,SHARE_ID ASC")
121
	@Where("STATUS = '1'")
122
	public abstract PageQueryResult<Article> pageQueryProPublish(Connection con, String professorId, int pageSize, int pageNo) throws SQLException;
122
	@Where("STATUS = '1' AND ARTICLE_TYPE = '1'")
123
	public abstract PageQueryResult<Article> pageQueryProPublish(Connection con, String ownerId, int pageSize, int pageNo) throws SQLException;
123

124

124
	//@LimitSelect
125
	//@LimitSelect
125
	//@Exclude("articleContent")
126
	//@Exclude("articleContent")
137
	@Exclude("articleContent")
138
	@Exclude("articleContent")
138
	@OrderBy(cols = {@LimitColumn(value = "publishTime", asc = false), @LimitColumn(value = "shareId",asc = false, handlerClass = LongHandler.class)}, value = "")
139
	@OrderBy(cols = {@LimitColumn(value = "publishTime", asc = false), @LimitColumn(value = "shareId",asc = false, handlerClass = LongHandler.class)}, value = "")
139
	@Where("STATUS = '1'")
140
	@Where("STATUS = '1'")
140
	public abstract List<Article> publish(Connection con,String articleType,@GroupSqlColumn(handlerClass = StringHandler.class,value ={"PROFESSOR_ID = ?","ORG_ID = ?"},isAnd = false) String owner, String publishTime, long shareId, int rows)throws SQLException;
141
	public abstract List<Article> publish(Connection con,String articleType, String ownerId, String publishTime, long shareId, int rows)throws SQLException;
141

142

142
	@Exclude("articleContent")
143
	@Exclude("articleContent")
143
	@SelectList
144
	@SelectList
144
	@OrderBy(" ORDER BY MODIFY_TIME DESC ")
145
	@OrderBy(" ORDER BY MODIFY_TIME DESC ")
145
	@Where("STATUS IN ('0','1','2')")
146
	public abstract List<Article> queryForDesk(Connection con, String professorId) throws SQLException;
146
	@Where("STATUS IN ('0','1','2') AND ARTICLE_TYPE = '1'")
147
	public abstract List<Article> queryForDesk(Connection con, String ownerId) throws SQLException;
147

148

148
	@Exclude("articleContent")
149
	@Exclude("articleContent")
149
	@SelectList
150
	@SelectList
150
	@OrderBy(" ORDER BY MODIFY_TIME DESC ")
151
	@OrderBy(" ORDER BY MODIFY_TIME DESC ")
151
	public abstract List<Article> queryOrg(Connection con, String orgId) throws SQLException;
152
	@Where("ARTICLE_TYPE = '2'")
153
	public abstract List<Article> queryOrg(Connection con, String ownerId) throws SQLException;
152

154

153
	@Exclude("articleContent")
155
	@Exclude("articleContent")
154
	@SelectList
156
	@SelectList
155
	@OrderBy(" ORDER BY MODIFY_TIME DESC ")
157
	@OrderBy(" ORDER BY MODIFY_TIME DESC ")
156
	@Where("STATUS = '1'")
157
	public abstract List<Article> queryOrgPublish(Connection con, String onergId) throws SQLException;
158
	@Where("STATUS = '1' AND ARTICLE_TYPE = '2'")
159
	public abstract List<Article> queryOrgPublish(Connection con, String ownenerId) throws SQLException;
158

160

159
	@Exclude("articleContent")
161
	@Exclude("articleContent")
160
	@PageSelect
162
	@PageSelect
161
	@OrderBy(" ORDER BY PUBLISH_TIME DESC,SHARE_ID ASC")
163
	@OrderBy(" ORDER BY PUBLISH_TIME DESC,SHARE_ID ASC")
162
	@Where("STATUS = '1'")
163
	public abstract PageQueryResult<Article> pageQueryOrgPublish(Connection con, String onergId, int pageSize, int pageNo) throws SQLException;
164
	@Where("STATUS = '1' AND ARTICLE_TYPE = '2'")
165
	public abstract PageQueryResult<Article> pageQueryOrgPublish(Connection con, String ownenerId, int pageSize, int pageNo) throws SQLException;
164

166

165
	@Exclude("articleContent")
167
	@Exclude("articleContent")
166
	@LimitSelect
168
	@LimitSelect
167
	@OrderBy(" ORDER BY MODIFY_TIME DESC ")
169
	@OrderBy(" ORDER BY MODIFY_TIME DESC ")
168
	public abstract List<Article> queryLimit(Connection con, String orgId, @LessThan String modifyTime, int rows) throws SQLException;
170
	@Where("ARTICLE_TYPE = '2'")
171
	public abstract List<Article> queryLimit(Connection con, String ownerId, @LessThan String modifyTime, int rows) throws SQLException;
169

172

170
	@SelectOne
173
	@SelectOne
171
	@Nullable
174
	@Nullable
179
		boolean hasArticleId = null != articleId;
182
		boolean hasArticleId = null != articleId;
180
		StringBuilder sql = new StringBuilder();
183
		StringBuilder sql = new StringBuilder();
181
		sql.append(
184
		sql.append(
182
				"SELECT ARTICLE_ID,PROFESSOR_ID,ARTICLE_TITLE,'',SUBJECT,PUBLISH_TIME,ARTICLE_IMG,ORG_ID,ARTICLE_TYPE,ARTICLE_AGREE,PAGE_VIEWS,STATUS,CREATE_TIME,MODIFY_TIME,SHARE_ID,COL_NUM FROM ARTICLE");
185
				"SELECT ARTICLE_ID,OWNER_ID,ARTICLE_TITLE,'',SUBJECT,PUBLISH_TIME,ARTICLE_IMG,ARTICLE_TYPE,ARTICLE_AGREE,PAGE_VIEWS,STATUS,CREATE_TIME,MODIFY_TIME,SHARE_ID,COL_NUM FROM ARTICLE");
183
		sql.append(" WHERE STATUS = '1'");
186
		sql.append(" WHERE STATUS = '1'");
184
		if (hasArticleId) {
187
		if (hasArticleId) {
185
			sql.append(" AND ARTICLE_ID != ?");
188
			sql.append(" AND ARTICLE_ID != ?");
201
					if (rs.wasNull()) {
204
					if (rs.wasNull()) {
202
						proId = null;
205
						proId = null;
203
					}
206
					}
204
					article.setProfessorId(proId);
207
					article.setOwnerId(proId);
205
					article.setArticleTitle(rs.getString(3));
208
					article.setArticleTitle(rs.getString(3));
206
					String articleContent = rs.getString(4);
209
					String articleContent = rs.getString(4);
207
					if (rs.wasNull()) {
210
					if (rs.wasNull()) {
223
						articleImg = null;
226
						articleImg = null;
224
					}
227
					}
225
					article.setArticleImg(articleImg);
228
					article.setArticleImg(articleImg);
226
					String org = rs.getString(8);
227
					if (rs.wasNull()) {
228
						org = null;
229
					}
230
					article.setOrgId(org);
231
					String articleType = rs.getString(9);
229
					String articleType = rs.getString(8);
232
					if (rs.wasNull()) {
230
					if (rs.wasNull()) {
233
						articleType = null;
231
						articleType = null;
234
					}
232
					}
235
					article.setArticleType(articleType);
233
					article.setArticleType(articleType);
236
					article.setArticleAgree(rs.getInt(10));
237
					article.setPageViews(rs.getInt(11));
238
					String status = rs.getString(12);
234
					article.setArticleAgree(rs.getInt(9));
235
					article.setPageViews(rs.getInt(10));
236
					String status = rs.getString(11);
239
					if (rs.wasNull()) {
237
					if (rs.wasNull()) {
240
						status = null;
238
						status = null;
241
					}
239
					}
242
					article.setStatus(status);
240
					article.setStatus(status);
243
					article.setCreateTime(rs.getString(13));
244
					article.setModifyTime(rs.getString(14));
245
					article.setShareId(rs.getLong(15));
246
					article.setColNum(rs.getInt(16));
241
					article.setCreateTime(rs.getString(12));
242
					article.setModifyTime(rs.getString(13));
243
					article.setShareId(rs.getLong(14));
244
					article.setColNum(rs.getInt(15));
247
					articles.add(article);
245
					articles.add(article);
248
				}
246
				}
249
				return articles;
247
				return articles;
261
		}
259
		}
262
	}
260
	}
263

261

264
	public List<Article> queryByAuthor(Connection con, String professorId, String orgId, String articleId, int rows) throws SQLException {
262
	public List<Article> queryByAuthor(Connection con, String ownerId, String articleId, int rows) throws SQLException {
265
		int index = 1;
263
		int index = 1;
266
		boolean hasProId = null != professorId;
267
		boolean hasOrgId = null != orgId;
264
		boolean hasOwnerId = null != ownerId;
268
		boolean hasArticleId = null != articleId;
265
		boolean hasArticleId = null != articleId;
269
		StringBuilder sql = new StringBuilder();
266
		StringBuilder sql = new StringBuilder();
270
		sql.append(
267
		sql.append(
271
				"SELECT ARTICLE_ID,PROFESSOR_ID,ARTICLE_TITLE,'',SUBJECT,PUBLISH_TIME,ARTICLE_IMG,ORG_ID,ARTICLE_TYPE,ARTICLE_AGREE,PAGE_VIEWS,STATUS,CREATE_TIME,MODIFY_TIME,SHARE_ID,COL_NUM FROM ARTICLE");
268
				"SELECT ARTICLE_ID,OWNER_ID,ARTICLE_TITLE,'',SUBJECT,PUBLISH_TIME,ARTICLE_IMG,ARTICLE_TYPE,ARTICLE_AGREE,PAGE_VIEWS,STATUS,CREATE_TIME,MODIFY_TIME,SHARE_ID,COL_NUM FROM ARTICLE");
272
		sql.append(" WHERE STATUS = '1'");
269
		sql.append(" WHERE STATUS = '1'");
273
		if (hasProId) {
274
			sql.append(" AND PROFESSOR_ID = ?");
275
		}
276
		if (hasOrgId) {
277
			sql.append(" AND ORG_ID = ?");
270
		if (hasOwnerId) {
271
			sql.append(" AND OWNER_ID = ?");
278
		}
272
		}
279
		if (hasArticleId) {
273
		if (hasArticleId) {
280
			sql.append(" AND ARTICLE_ID != ?");
274
			sql.append(" AND ARTICLE_ID != ?");
283
		sql.append(" LIMIT ").append(rows);
277
		sql.append(" LIMIT ").append(rows);
284
		PreparedStatement ps = con.prepareStatement(sql.toString());
278
		PreparedStatement ps = con.prepareStatement(sql.toString());
285
		try {
279
		try {
286
			if (hasProId) {
287
				ps.setString(index++, professorId);
288
			}
289
			if (hasOrgId) {
290
				ps.setString(index++, orgId);
280
			if (hasOwnerId) {
281
				ps.setString(index++, ownerId);
291
			}
282
			}
292
			if (hasArticleId) {
283
			if (hasArticleId) {
293
				ps.setString(index++, articleId);
284
				ps.setString(index++, articleId);
302
					if (rs.wasNull()) {
293
					if (rs.wasNull()) {
303
						proId = null;
294
						proId = null;
304
					}
295
					}
305
					article.setProfessorId(proId);
296
					article.setOwnerId(proId);
306
					article.setArticleTitle(rs.getString(3));
297
					article.setArticleTitle(rs.getString(3));
307
					String articleContent = rs.getString(4);
298
					String articleContent = rs.getString(4);
308
					if (rs.wasNull()) {
299
					if (rs.wasNull()) {
324
						articleImg = null;
315
						articleImg = null;
325
					}
316
					}
326
					article.setArticleImg(articleImg);
317
					article.setArticleImg(articleImg);
327
					String org = rs.getString(8);
328
					if (rs.wasNull()) {
329
						org = null;
330
					}
331
					article.setOrgId(org);
332
					String articleType = rs.getString(9);
318
					String articleType = rs.getString(8);
333
					if (rs.wasNull()) {
319
					if (rs.wasNull()) {
334
						articleType = null;
320
						articleType = null;
335
					}
321
					}
336
					article.setArticleType(articleType);
322
					article.setArticleType(articleType);
337
					article.setArticleAgree(rs.getInt(10));
338
					article.setPageViews(rs.getInt(11));
339
					String status = rs.getString(12);
323
					article.setArticleAgree(rs.getInt(9));
324
					article.setPageViews(rs.getInt(10));
325
					String status = rs.getString(11);
340
					if (rs.wasNull()) {
326
					if (rs.wasNull()) {
341
						status = null;
327
						status = null;
342
					}
328
					}
343
					article.setStatus(status);
329
					article.setStatus(status);
344
					article.setCreateTime(rs.getString(13));
345
					article.setModifyTime(rs.getString(14));
346
					article.setShareId(rs.getLong(15));
347
					article.setColNum(rs.getInt(16));
330
					article.setCreateTime(rs.getString(12));
331
					article.setModifyTime(rs.getString(13));
332
					article.setShareId(rs.getLong(14));
333
					article.setColNum(rs.getInt(15));
348
					articles.add(article);
334
					articles.add(article);
349
				}
335
				}
350
				return articles;
336
				return articles;
511
	@OrderBy(" ORDER BY SORT_NUM DESC, PUBLISH_TIME DESC")
497
	@OrderBy(" ORDER BY SORT_NUM DESC, PUBLISH_TIME DESC")
512
	@Where("STATUS = '1'")
498
	@Where("STATUS = '1'")
513
	public abstract PageQueryResult<Article> firstPageQuery(Connection con,
499
	public abstract PageQueryResult<Article> firstPageQuery(Connection con,
514
			@GroupSqlColumn(isAnd = false, handlerClass = StringHandler.class, value = { "PROFESSOR_ID IN (SELECT ID FROM PROFESSOR WHERE NAME LIKE ?)",
515
					"ONERG_ID IN (SELECT ID FROM ORGANIZATION WHERE NAME LIKE ? OR FOR_SHORT LIKE ?) ", "ARTICLE_TITLE LIKE ?",
500
			@GroupSqlColumn(isAnd = false, handlerClass = StringHandler.class, value = { "OWNER_ID IN (SELECT ID FROM PROFESSOR WHERE NAME LIKE ?)",
501
					"OWNENER_ID IN (SELECT ID FROM ORGANIZATION WHERE NAME LIKE ? OR FOR_SHORT LIKE ?) ", "ARTICLE_TITLE LIKE ?",
516
					"SUBJECT LIKE ?" }, additional = 1) @Nullable String key,
502
					"SUBJECT LIKE ?" }, additional = 1) @Nullable String key,
517
			int pageSize, int pageNo) throws SQLException;
503
			int pageSize, int pageNo) throws SQLException;
518

504

520
	@Exclude("articleContent")
506
	@Exclude("articleContent")
521
	@Where("STATUS = '1'")
507
	@Where("STATUS = '1'")
522
	@OrderBy(cols = {@LimitColumn(value = "sortNum", asc = false, handlerClass = LongHandler.class), @LimitColumn(value = "publishTime", asc = false), @LimitColumn(value = "articleId", asc = false)}, value = "")
508
	@OrderBy(cols = {@LimitColumn(value = "sortNum", asc = false, handlerClass = LongHandler.class), @LimitColumn(value = "publishTime", asc = false), @LimitColumn(value = "articleId", asc = false)}, value = "")
523
	public abstract List<Article> indexSearch(Connection con,@Nullable @GroupSqlColumn(handlerClass = StringHandler.class, value = {"PROFESSOR_ID IN (SELECT ID FROM PROFESSOR WHERE NAME LIKE ?)", "ONERG_ID IN (SELECT ID FROM ORGANIZATION WHERE NAME LIKE ? OR FOR_SHORT LIKE ?)", "ARTICLE_TITLE LIKE ?", "SUBJECT LIKE ?"}, additional = 1, isAnd = false) String key, long sortNum, String publishTime, String articleId, int rows) throws SQLException;
509
	public abstract List<Article> indexSearch(Connection con,@Nullable @GroupSqlColumn(handlerClass = StringHandler.class, value = {"OWNER_ID IN (SELECT ID FROM PROFESSOR WHERE NAME LIKE ?)", "OWNENER_ID IN (SELECT ID FROM ORGANIZATION WHERE NAME LIKE ? OR FOR_SHORT LIKE ?)", "ARTICLE_TITLE LIKE ?", "SUBJECT LIKE ?"}, additional = 1, isAnd = false) String key, long sortNum, String publishTime, String articleId, int rows) throws SQLException;
524

510

525
	// public PageQueryResult<Article> firstPageQuery(Connection con, String
511
	// public PageQueryResult<Article> firstPageQuery(Connection con, String
526
	// key, int pageSize, int pageNo) throws SQLException {
512
	// key, int pageSize, int pageNo) throws SQLException {
696
	@Exclude("articleContent")
682
	@Exclude("articleContent")
697
	@OrderBy(" ORDER BY selfOrderField DESC,SHARE_ID ASC ")
683
	@OrderBy(" ORDER BY selfOrderField DESC,SHARE_ID ASC ")
698
	@Where("STATUS IN ('1','0','2')")
684
	@Where("STATUS IN ('1','0','2')")
699
	public abstract PageQueryResult<SelfArticle> queryPageForSelf(Connection con, @Nullable String professorId, @Nullable String orgId,
685
	public abstract PageQueryResult<SelfArticle> queryPageForSelf(Connection con, @Nullable String ownerId,
700
			@Like @Nullable String articleTitle, int pageSize, int pageNo) throws SQLException;
686
			@Like @Nullable String articleTitle, int pageSize, int pageNo) throws SQLException;
701

687

702
	public PageQueryResult<FindInfo> queryPage(Connection con, int pageSize, int pageNo) throws SQLException {
688
	public PageQueryResult<FindInfo> queryPage(Connection con, int pageSize, int pageNo) throws SQLException {
732
		boolean firstPage = (1 == pageNo);
718
		boolean firstPage = (1 == pageNo);
733
		if (firstPage) {
719
		if (firstPage) {
734
			queryResult.setPageNo(1);
720
			queryResult.setPageNo(1);
735
			sql = "SELECT ARTICLE_ID,ARTICLE_TITLE,ARTICLE_IMG,ARTICLE_TYPE,CREATE_TIME,ORG_ID,PROFESSOR_ID FROM ARTICLE"
721
			sql = "SELECT ARTICLE_ID,ARTICLE_TITLE,ARTICLE_IMG,ARTICLE_TYPE,CREATE_TIME,OWNER_ID FROM ARTICLE"
736
					+ " UNION ALL SELECT RESOURCE_ID,RESOURCE_NAME,NULL,'3',CREATE_TIME,NULL,PROFESSOR_ID FROM RESOURCE";
722
					+ " UNION ALL SELECT RESOURCE_ID,RESOURCE_NAME,NULL,'3',CREATE_TIME,NULL,PROFESSOR_ID FROM RESOURCE";
737
			sql = sql + " ORDER BY CREATE_TIME DESC ";
723
			sql = sql + " ORDER BY CREATE_TIME DESC ";
738
			sql = sql + " LIMIT " + pageSize;
724
			sql = sql + " LIMIT " + pageSize;
747
			queryResult.setPageNo(pageNo);
733
			queryResult.setPageNo(pageNo);
748
			--pageNo;
734
			--pageNo;
749
			int offset = (pageNo * pageSize);
735
			int offset = (pageNo * pageSize);
750
			sql = "SELECT ARTICLE_ID,ARTICLE_TITLE,ARTICLE_IMG,ARTICLE_TYPE,CREATE_TIME,ORG_ID,PROFESSOR_ID FROM ARTICLE"
736
			sql = "SELECT ARTICLE_ID,ARTICLE_TITLE,ARTICLE_IMG,ARTICLE_TYPE,CREATE_TIME,OWNER_ID FROM ARTICLE"
751
					+ " UNION ALL SELECT RESOURCE_ID,RESOURCE_NAME,NULL,'3',CREATE_TIME,NULL,PROFESSOR_ID FROM RESOURCE";
737
					+ " UNION ALL SELECT RESOURCE_ID,RESOURCE_NAME,NULL,'3',CREATE_TIME,NULL,PROFESSOR_ID FROM RESOURCE";
752
			sql = sql + " ORDER BY CREATE_TIME DESC ";
738
			sql = sql + " ORDER BY CREATE_TIME DESC ";
753
			sql = sql + " LIMIT " + pageSize + " OFFSET " + offset;
739
			sql = sql + " LIMIT " + pageSize + " OFFSET " + offset;
771
					findInfo.setImage(image);
757
					findInfo.setImage(image);
772
					findInfo.setType(rs.getString(4));
758
					findInfo.setType(rs.getString(4));
773
					findInfo.setCreateTime(rs.getString(5));
759
					findInfo.setCreateTime(rs.getString(5));
774
					String onergId = rs.getString(6);
775
					if (rs.wasNull()) {
776
						findInfo.setOwner(rs.getString(7));
777
					} else {
778
						findInfo.setOwner(orgId);
779
					}
760
					String ownenerId = rs.getString(6);
761
					findInfo.setOwner(ownerId);
780
					findInfos.add(findInfo);
762
					findInfos.add(findInfo);
781
				}
763
				}
782
				return queryResult;
764
				return queryResult;
827
		boolean firstPage = (1 == pageNo);
809
		boolean firstPage = (1 == pageNo);
828
		if (firstPage) {
810
		if (firstPage) {
829
			queryResult.setPageNo(1);
811
			queryResult.setPageNo(1);
830
			sql = "(SELECT ARTICLE_ID,ARTICLE_TITLE,ARTICLE_IMG,ARTICLE_TYPE,PUBLISH_TIME,ORG_ID,PROFESSOR_ID FROM ARTICLE WHERE STATUS = '1')"
812
			sql = "(SELECT ARTICLE_ID,ARTICLE_TITLE,ARTICLE_IMG,ARTICLE_TYPE,PUBLISH_TIME,OWNER_ID FROM ARTICLE WHERE STATUS = '1')"
831
					+ " UNION ALL (SELECT RESOURCE_ID,RESOURCE_NAME,NULL,CASE WHEN RESOURCE_TYPE = '1' THEN '3' WHEN RESOURCE_TYPE = '2' THEN '4' ELSE NULL END,"
813
					+ " UNION ALL (SELECT RESOURCE_ID,RESOURCE_NAME,NULL,CASE WHEN RESOURCE_TYPE = '1' THEN '3' WHEN RESOURCE_TYPE = '2' THEN '4' ELSE NULL END,"
832
					+ " PUBLISH_TIME,ORG_ID,PROFESSOR_ID FROM RESOURCE WHERE STATUS = '1')";
814
					+ " PUBLISH_TIME,ORG_ID,PROFESSOR_ID FROM RESOURCE WHERE STATUS = '1')";
833
			sql = sql + " ORDER BY PUBLISH_TIME DESC ";
815
			sql = sql + " ORDER BY PUBLISH_TIME DESC ";
843
			queryResult.setPageNo(pageNo);
825
			queryResult.setPageNo(pageNo);
844
			--pageNo;
826
			--pageNo;
845
			int offset = (pageNo * pageSize);
827
			int offset = (pageNo * pageSize);
846
			sql = "(SELECT ARTICLE_ID,ARTICLE_TITLE,ARTICLE_IMG,ARTICLE_TYPE,PUBLISH_TIME,ORG_ID,PROFESSOR_ID FROM ARTICLE WHERE STATUS = '1')"
828
			sql = "(SELECT ARTICLE_ID,ARTICLE_TITLE,ARTICLE_IMG,ARTICLE_TYPE,PUBLISH_TIME,OWNER_ID FROM ARTICLE WHERE STATUS = '1')"
847
					+ " UNION ALL (SELECT RESOURCE_ID,RESOURCE_NAME,NULL,CASE WHEN RESOURCE_TYPE = '1' THEN '3' WHEN RESOURCE_TYPE = '2' THEN '4' ELSE NULL END,"
829
					+ " UNION ALL (SELECT RESOURCE_ID,RESOURCE_NAME,NULL,CASE WHEN RESOURCE_TYPE = '1' THEN '3' WHEN RESOURCE_TYPE = '2' THEN '4' ELSE NULL END,"
848
					+ " PUBLISH_TIME,ORG_ID,PROFESSOR_ID FROM RESOURCE WHERE STATUS = '1')";
830
					+ " PUBLISH_TIME,ORG_ID,PROFESSOR_ID FROM RESOURCE WHERE STATUS = '1')";
849
			sql = sql + " ORDER BY PUBLISH_TIME DESC ";
831
			sql = sql + " ORDER BY PUBLISH_TIME DESC ";
872
						createTime = null;
854
						createTime = null;
873
					}
855
					}
874
					findInfo.setCreateTime(createTime);
856
					findInfo.setCreateTime(createTime);
875
					String onergId = rs.getString(6);
876
					if (rs.wasNull()) {
877
						findInfo.setOwner(rs.getString(7));
878
					} else {
879
						findInfo.setOwner(orgId);
880
					}
857
					String ownenerId = rs.getString(6);
858
					findInfo.setOwner(ownerId);
881
					findInfos.add(findInfo);
859
					findInfos.add(findInfo);
882
				}
860
				}
883
				return queryResult;
861
				return queryResult;
921
	@Where("STATUS = '1'")
899
	@Where("STATUS = '1'")
922
	@Column(value = "COUNT(1)", handlerClass = LongHandler.class)
900
	@Column(value = "COUNT(1)", handlerClass = LongHandler.class)
923
	@From(Article.class)
901
	@From(Article.class)
924
	public abstract long countPublish(Connection con, String articleType,@GroupSqlColumn(handlerClass = StringHandler.class,value = {"PROFESSOR_ID = ?","ORG_ID = ?"},isAnd = false) String owner) throws SQLException;
902
	public abstract long countPublish(Connection con, String articleType, String ownerId) throws SQLException;
925

903

926
}
904
}

+ 3 - 3
src/main/java/com/ekexiu/portal/dao/OrgDao.java

217
			@SqlColumn(handlerClass = StringHandler.class, value = { "(NAME LIKE ? AND IS_JOIN ='1')", "(FOR_SHORT LIKE ? AND IS_JOIN ='1')",
217
			@SqlColumn(handlerClass = StringHandler.class, value = { "(NAME LIKE ? AND IS_JOIN ='1')", "(FOR_SHORT LIKE ? AND IS_JOIN ='1')",
218
					"(DESCP LIKE ?  AND IS_JOIN ='1')", "(SUBJECT LIKE ? AND IS_JOIN ='1') ", "(industry LIKE ?  AND IS_JOIN ='1')",
218
					"(DESCP LIKE ?  AND IS_JOIN ='1')", "(SUBJECT LIKE ? AND IS_JOIN ='1') ", "(industry LIKE ?  AND IS_JOIN ='1')",
219
					"(ID IN (SELECT ORG_ID FROM RESOURCE WHERE RESOURCE_TYPE='2' AND RESOURCE_NAME LIKE ?) AND IS_JOIN ='1')",
219
					"(ID IN (SELECT ORG_ID FROM RESOURCE WHERE RESOURCE_TYPE='2' AND RESOURCE_NAME LIKE ?) AND IS_JOIN ='1')",
220
					"(ID IN (SELECT ONERG_ID FROM ARTICLE WHERE ARTICLE_TYPE='2' AND ARTICLE_TITLE LIKE ?) AND IS_JOIN ='1')" }) String kw,
220
					"(ID IN (SELECT OWNENER_ID FROM ARTICLE WHERE ARTICLE_TYPE='2' AND ARTICLE_TITLE LIKE ?) AND IS_JOIN ='1')" }) String kw,
221
			int pageSize, int pageNo) throws SQLException;
221
			int pageSize, int pageNo) throws SQLException;
222
222
223
	@LimitQuery
223
	@LimitQuery
226
	@OrderBy(cols = {@LimitColumn(value = "sortNum", asc = false, handlerClass = LongHandler.class), @LimitColumn(value = "modifyTime", asc = false), @LimitColumn(value = "id", asc = false)}, value = "")
226
	@OrderBy(cols = {@LimitColumn(value = "sortNum", asc = false, handlerClass = LongHandler.class), @LimitColumn(value = "modifyTime", asc = false), @LimitColumn(value = "id", asc = false)}, value = "")
227
	public abstract List<EditOrganization> indexSearch(Connection con, @Nullable @GroupSqlColumn(handlerClass = StringHandler.class, value = {"NAME LIKE ? AND IS_JOIN ='1'", "FOR_SHORT LIKE ? AND IS_JOIN ='1'", "DESCP LIKE ?  AND IS_JOIN ='1'", "SUBJECT LIKE ? AND IS_JOIN ='1' ", "industry LIKE ?  AND IS_JOIN ='1'",
227
	public abstract List<EditOrganization> indexSearch(Connection con, @Nullable @GroupSqlColumn(handlerClass = StringHandler.class, value = {"NAME LIKE ? AND IS_JOIN ='1'", "FOR_SHORT LIKE ? AND IS_JOIN ='1'", "DESCP LIKE ?  AND IS_JOIN ='1'", "SUBJECT LIKE ? AND IS_JOIN ='1' ", "industry LIKE ?  AND IS_JOIN ='1'",
228
			"ID IN (SELECT ORG_ID FROM RESOURCE WHERE RESOURCE_TYPE='2' AND RESOURCE_NAME LIKE ?) AND IS_JOIN ='1'",
228
			"ID IN (SELECT ORG_ID FROM RESOURCE WHERE RESOURCE_TYPE='2' AND RESOURCE_NAME LIKE ?) AND IS_JOIN ='1'",
229
			"ID IN (SELECT ONERG_ID FROM ARTICLE WHERE ARTICLE_TYPE='2' AND ARTICLE_TITLE LIKE ?) AND IS_JOIN ='1'"},isAnd = false) String kw, long sortNum, String modifyTime, String id, int rows) throws SQLException;
229
			"ID IN (SELECT OWNENER_ID FROM ARTICLE WHERE ARTICLE_TYPE='2' AND ARTICLE_TITLE LIKE ?) AND IS_JOIN ='1'"},isAnd = false) String kw, long sortNum, String modifyTime, String id, int rows) throws SQLException;
230
230
231
	@PageQuery
231
	@PageQuery
232
	@Select(Organization.class)
232
	@Select(Organization.class)
236
			@GroupSqlColumn(isAnd=false, handlerClass = StringHandler.class, value = { "NAME LIKE ? AND IS_JOIN ='1'", "FOR_SHORT LIKE ? AND IS_JOIN ='1'",
236
			@GroupSqlColumn(isAnd=false, handlerClass = StringHandler.class, value = { "NAME LIKE ? AND IS_JOIN ='1'", "FOR_SHORT LIKE ? AND IS_JOIN ='1'",
237
					"DESCP LIKE ?  AND IS_JOIN ='1'", "SUBJECT LIKE ? AND IS_JOIN ='1' ", "industry LIKE ?  AND IS_JOIN ='1'",
237
					"DESCP LIKE ?  AND IS_JOIN ='1'", "SUBJECT LIKE ? AND IS_JOIN ='1' ", "industry LIKE ?  AND IS_JOIN ='1'",
238
					"ID IN (SELECT ORG_ID FROM RESOURCE WHERE RESOURCE_TYPE='2' AND RESOURCE_NAME LIKE ?) AND IS_JOIN ='1'",
238
					"ID IN (SELECT ORG_ID FROM RESOURCE WHERE RESOURCE_TYPE='2' AND RESOURCE_NAME LIKE ?) AND IS_JOIN ='1'",
239
					"ID IN (SELECT ONERG_ID FROM ARTICLE WHERE ARTICLE_TYPE='2' AND ARTICLE_TITLE LIKE ?) AND IS_JOIN ='1'" })
239
					"ID IN (SELECT OWNENER_ID FROM ARTICLE WHERE ARTICLE_TYPE='2' AND ARTICLE_TITLE LIKE ?) AND IS_JOIN ='1'" })
240
		@Nullable	String kw, @Nullable String industry,@Nullable String addr, int pageSize,
240
		@Nullable	String kw, @Nullable String industry,@Nullable String addr, int pageSize,
241
			int pageNo) throws SQLException;
241
			int pageNo) throws SQLException;
242
242

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

1193
					+ " OR (ORG_ID IN(SELECT ORGANIZATION.ID FROM ORGANIZATION WHERE ORGANIZATION.NAME LIKE ?)) "
1193
					+ " OR (ORG_ID IN(SELECT ORGANIZATION.ID FROM ORGANIZATION WHERE ORGANIZATION.NAME LIKE ?)) "
1194
					+ " OR ( P.NAME LIKE ?) OR (P.SUBJECT LIKE ?) OR (P.INDUSTRY LIKE ?) OR (P.PROVINCE LIKE ?) OR (P.ADDRESS LIKE ?) "
1194
					+ " OR ( P.NAME LIKE ?) OR (P.SUBJECT LIKE ?) OR (P.INDUSTRY LIKE ?) OR (P.PROVINCE LIKE ?) OR (P.ADDRESS LIKE ?) "
1195
					+ " OR P.ID IN (SELECT PROFESSOR_ID FROM RESOURCE WHERE RESOURCE_NAME LIKE ?) "
1195
					+ " OR P.ID IN (SELECT PROFESSOR_ID FROM RESOURCE WHERE RESOURCE_NAME LIKE ?) "
1196
					+ " OR P.ID IN (SELECT PROFESSOR_ID FROM ARTICLE WHERE ARTICLE_TITLE LIKE ?) "
1196
					+ " OR P.ID IN (SELECT OWNER_ID FROM ARTICLE WHERE ARTICLE_TYPE='1' AND ARTICLE_TITLE LIKE ?) "
1197
					+ " OR (P.ID IN (SELECT PROFESSOR_ID FROM PATENT WHERE NAME LIKE ?)) OR (P.DEPARTMENT LIKE ?))");
1197
					+ " OR (P.ID IN (SELECT PROFESSOR_ID FROM PATENT WHERE NAME LIKE ?)) OR (P.DEPARTMENT LIKE ?))");
1198
		}
1198
		}
1199
		boolean hasSubject = null != subject;
1199
		boolean hasSubject = null != subject;
1397
	@OrderBy("ORDER BY sort_desc DESC ")
1397
	@OrderBy("ORDER BY sort_desc DESC ")
1398
	public abstract List<SortedPro> indexSearch(Connection con,
1398
	public abstract List<SortedPro> indexSearch(Connection con,
1399
											  @SqlColumn(handlerClass = StringHandler.class, value = {"(case when sort_first=0 then '00000' else TO_CHAR(sort_first,'00009') end || TO_CHAR(CEIL(star_level * 100),'0009') || p.id )< ? "}) String sortDesc, @Nullable @GroupSqlColumn(value = {
1399
											  @SqlColumn(handlerClass = StringHandler.class, value = {"(case when sort_first=0 then '00000' else TO_CHAR(sort_first,'00009') end || TO_CHAR(CEIL(star_level * 100),'0009') || p.id )< ? "}) String sortDesc, @Nullable @GroupSqlColumn(value = {
1400
			"P.NAME LIKE ?", "O.NAME LIKE ?", "P.DEPARTMENT LIKE ?", "P.DESCP LIKE ?", "P.SUBJECT LIKE ?", "P.INDUSTRY LIKE ?", "P.ID IN (SELECT DISTINCT PROFESSOR_ID FROM RESEARCH_AREA WHERE CAPTION LIKE ?)", "P.ID IN (SELECT DISTINCT PROFESSOR_ID FROM RESOURCE WHERE RESOURCE_NAME LIKE ?)", "P.ID IN (SELECT DISTINCT PROFESSOR_ID FROM ARTICLE WHERE ARTICLE_TITLE LIKE ?)", "P.ID IN (SELECT DISTINCT PROFESSOR_ID FROM PAPER_AUTHOR WHERE PAPER_ID IN (SELECT ID FROM PPAPER WHERE NAME LIKE ?))", "P.ID IN (SELECT DISTINCT PROFESSOR_ID FROM PATENT_AUTHOR WHERE PATENT_ID IN (SELECT ID FROM PPATENT WHERE NAME LIKE ?))"
1400
			"P.NAME LIKE ?", "O.NAME LIKE ?", "P.DEPARTMENT LIKE ?", "P.DESCP LIKE ?", "P.SUBJECT LIKE ?", "P.INDUSTRY LIKE ?", "P.ID IN (SELECT DISTINCT PROFESSOR_ID FROM RESEARCH_AREA WHERE CAPTION LIKE ?)", "P.ID IN (SELECT DISTINCT PROFESSOR_ID FROM RESOURCE WHERE RESOURCE_NAME LIKE ?)", "P.ID IN (SELECT DISTINCT OWNER_ID FROM ARTICLE WHERE ARTICLE_TYPE='1' AND ARTICLE_TITLE LIKE ?)", "P.ID IN (SELECT DISTINCT PROFESSOR_ID FROM PAPER_AUTHOR WHERE PAPER_ID IN (SELECT ID FROM PPAPER WHERE NAME LIKE ?))", "P.ID IN (SELECT DISTINCT PROFESSOR_ID FROM PATENT_AUTHOR WHERE PATENT_ID IN (SELECT ID FROM PPATENT WHERE NAME LIKE ?))"
1401
	}, handlerClass = StringHandler.class, isAnd = false) String key, @Nullable @Like String subject, @Nullable @Like String industry, @Nullable @Like String address, @Nullable Integer authType, int rows) throws SQLException;
1401
	}, handlerClass = StringHandler.class, isAnd = false) String key, @Nullable @Like String subject, @Nullable @Like String industry, @Nullable @Like String address, @Nullable Integer authType, int rows) throws SQLException;
1402

1402

1403
	/**
1403
	/**
1435
					.append("( P.INDUSTRY LIKE ? ) OR")
1435
					.append("( P.INDUSTRY LIKE ? ) OR")
1436
					.append("(P.ID IN (SELECT DISTINCT PROFESSOR_ID FROM RESEARCH_AREA WHERE CAPTION LIKE ?)) OR")
1436
					.append("(P.ID IN (SELECT DISTINCT PROFESSOR_ID FROM RESEARCH_AREA WHERE CAPTION LIKE ?)) OR")
1437
					.append("(P.ID IN (SELECT DISTINCT PROFESSOR_ID FROM RESOURCE WHERE RESOURCE_NAME LIKE ?)) OR")
1437
					.append("(P.ID IN (SELECT DISTINCT PROFESSOR_ID FROM RESOURCE WHERE RESOURCE_NAME LIKE ?)) OR")
1438
					.append("(P.ID IN (SELECT DISTINCT PROFESSOR_ID FROM ARTICLE WHERE ARTICLE_TITLE LIKE ?)) OR")
1438
					.append("(P.ID IN (SELECT DISTINCT OWNER_ID FROM ARTICLE WHERE ARTICLE_TYPE='1' AND ARTICLE_TITLE LIKE ?)) OR")
1439
					.append("(P.ID IN (SELECT DISTINCT PROFESSOR_ID FROM PAPER_AUTHOR WHERE PAPER_ID IN (SELECT ID FROM PPAPER WHERE NAME LIKE ?))) OR ")
1439
					.append("(P.ID IN (SELECT DISTINCT PROFESSOR_ID FROM PAPER_AUTHOR WHERE PAPER_ID IN (SELECT ID FROM PPAPER WHERE NAME LIKE ?))) OR ")
1440
					.append("(P.ID IN (SELECT DISTINCT PROFESSOR_ID FROM PATENT_AUTHOR WHERE PATENT_ID IN (SELECT ID FROM PPATENT WHERE NAME LIKE ?)))")
1440
					.append("(P.ID IN (SELECT DISTINCT PROFESSOR_ID FROM PATENT_AUTHOR WHERE PATENT_ID IN (SELECT ID FROM PPATENT WHERE NAME LIKE ?)))")
1441
					.append(") ");
1441
					.append(") ");

+ 8 - 8
src/main/java/com/ekexiu/portal/found/Service.java

1
package com.ekexiu.portal.found;
1
package com.ekexiu.portal.found;
2

2

3
import java.sql.Connection;
4
import java.sql.PreparedStatement;
5
import java.sql.SQLException;
6
import java.util.List;
7
import java.util.Map;
8

9
import org.jfw.apt.annotation.DefaultValue;
3
import org.jfw.apt.annotation.DefaultValue;
10
import org.jfw.apt.web.annotation.Path;
4
import org.jfw.apt.web.annotation.Path;
11
import org.jfw.apt.web.annotation.operate.Get;
5
import org.jfw.apt.web.annotation.operate.Get;
13
import org.jfw.util.jdbc.JdbcUtil;
7
import org.jfw.util.jdbc.JdbcUtil;
14
import org.jfw.util.jdbc.PreparedStatementConfig;
8
import org.jfw.util.jdbc.PreparedStatementConfig;
15

9

10
import java.sql.Connection;
11
import java.sql.PreparedStatement;
12
import java.sql.SQLException;
13
import java.util.List;
14
import java.util.Map;
15

16
@Path("/found")
16
@Path("/found")
17
public class Service {
17
public class Service {
18
/**
18
/**
37
	public List<Map<String,Object>> query(@JdbcConn Connection con,@DefaultValue("\"9\"") final String time,@DefaultValue("\"0\"") final String id,@DefaultValue("20") final int rows,final String ex)throws SQLException{
37
	public List<Map<String,Object>> query(@JdbcConn Connection con,@DefaultValue("\"9\"") final String time,@DefaultValue("\"0\"") final String id,@DefaultValue("20") final int rows,final String ex)throws SQLException{
38
		return JdbcUtil.queryMaps(con, "SELECT * FROM 	( "+
38
		return JdbcUtil.queryMaps(con, "SELECT * FROM 	( "+
39
		"SELECT ID id,'3' ctype,uid uid,title title,	last_reply_time tm,reply_count num,img img,null col	FROM question where state='1' UNION ALL "+
39
		"SELECT ID id,'3' ctype,uid uid,title title,	last_reply_time tm,reply_count num,img img,null col	FROM question where state='1' UNION ALL "+
40
		"SELECT ARTICLE_ID id,	'1' ctype,professor_id uid,article_title title,publish_time tm,	0 num,article_img img,col_num col FROM article WHERE status = '1' AND article_type = '1' AND article_id <>? UNION ALL "+
41
		"SELECT ARTICLE_ID id,	'2' ctype,onerg_id uid,article_title title,publish_time tm,0 num,article_img img,col_num col FROM article WHERE status = '1' AND article_type = '2' AND article_id <>? 	) T "+
40
		"SELECT ARTICLE_ID id,	'1' ctype,owner_id uid,article_title title,publish_time tm,	0 num,article_img img,col_num col FROM article WHERE status = '1' AND article_type = '1' AND article_id <>? UNION ALL "+
41
		"SELECT ARTICLE_ID id,	'2' ctype,ownener_id uid,article_title title,publish_time tm,0 num,article_img img,col_num col FROM article WHERE status = '1' AND article_type = '2' AND article_id <>? 	) T "+
42
        "WHERE T.tm<? OR (T.tm = ? AND T.id > ?) ORDER BY tm DESC LIMIT ?", new PreparedStatementConfig() {
42
        "WHERE T.tm<? OR (T.tm = ? AND T.id > ?) ORDER BY tm DESC LIMIT ?", new PreparedStatementConfig() {
43
			@Override
43
			@Override
44
			public void config(PreparedStatement ps) throws SQLException {
44
			public void config(PreparedStatement ps) throws SQLException {

+ 2 - 2
src/main/java/com/ekexiu/portal/leavemsg/Service.java

147
			}
147
			}
148

148

149
			if (reciver == null) {
149
			if (reciver == null) {
150
				if (article.getArticleType().equals("1") && (!uid.equals(article.getProfessorId()))) {
151
					this.notifyService.notify(con, article.getProfessorId(), uid, uname, lid, article.getArticleTitle(), NotifyType.LEAVE_MSG_AT_ARTICLE, runs);
150
				if (article.getArticleType().equals("1") && (!uid.equals(article.getOwnerId()))) {
151
					this.notifyService.notify(con, article.getOwnerId(), uid, uname, lid, article.getArticleTitle(), NotifyType.LEAVE_MSG_AT_ARTICLE, runs);
152
				}
152
				}
153
			} else {
153
			} else {
154
				if (!uid.equals(reciver)) {
154
				if (!uid.equals(reciver)) {

+ 11 - 16
src/main/java/com/ekexiu/portal/po/Article.java

17
@PrimaryKey("articleId")
17
@PrimaryKey("articleId")
18
public class Article implements CreateTimeSupported, ModifyTimeSupported {
18
public class Article implements CreateTimeSupported, ModifyTimeSupported {
19
	private String articleId;
19
	private String articleId;
20
	private String professorId;
21
	private String articleTitle;
20
	private String articleTitle;
22
	private String articleContent;
21
	private String articleContent;
23
	private String subject;
22
	private String subject;
26
	private String modifyTime;
25
	private String modifyTime;
27
	private String publishTime;
26
	private String publishTime;
28
	private String articleImg;
27
	private String articleImg;
29
	private String orgId;
30
	private String articleType;
28
	private String articleType;
31
	private int articleAgree;
29
	private int articleAgree;
32
	private int pageViews;
30
	private int pageViews;
40
	 * 排序字段
38
	 * 排序字段
41
	 */
39
	 */
42
	private long sortNum;
40
	private long sortNum;
41

42
	private String ownerId;
43
	
43
	
44
	public EditProfessor getProfessor() {
44
	public EditProfessor getProfessor() {
45
		return professor;
45
		return professor;
66
	public void setArticleId(String articleId) {
66
	public void setArticleId(String articleId) {
67
		this.articleId = articleId;
67
		this.articleId = articleId;
68
	}
68
	}
69
	@Column(handlerClass=FixLenStringHandler.class,dbType="CHAR(32)",nullable=true,renewable=false)
70
	public String getProfessorId() {
71
		return professorId;
72
	}
73
	public void setProfessorId(String professorId) {
74
		this.professorId = professorId;
75
	}
76
	@Column(value=DE.string_de,dbType="TEXT")
69
	@Column(value=DE.string_de,dbType="TEXT")
77
	public String getArticleTitle() {
70
	public String getArticleTitle() {
78
		return articleTitle;
71
		return articleTitle;
127
	public void setArticleImg(String articleImg) {
120
	public void setArticleImg(String articleImg) {
128
		this.articleImg = articleImg;
121
		this.articleImg = articleImg;
129
	}
122
	}
130
	@Column(handlerClass=FixLenStringHandler.class,dbType="CHAR(32)",nullable=true,renewable=false)
131
	public String getOrgId() {
132
		return orgId;
133
	}
134
	public void setOrgId(String orgId) {
135
		this.orgId = orgId;
136
	}
137
	@Column(handlerClass=FixLenStringHandler.class,dbType="CHAR(1)",nullable=true,renewable=false)
123
	@Column(handlerClass=FixLenStringHandler.class,dbType="CHAR(1)",nullable=true,renewable=false)
138
	public String getArticleType() {
124
	public String getArticleType() {
139
		return articleType;
125
		return articleType;
183
	public void setSortNum(long sortNum) {
169
	public void setSortNum(long sortNum) {
184
		this.sortNum = sortNum;
170
		this.sortNum = sortNum;
185
	}
171
	}
172

173
	@Column(handlerClass=FixLenStringHandler.class,dbType="CHAR(32)",nullable=true,renewable=false)
174
	public String getOwnerId() {
175
		return ownerId;
176
	}
177

178
	public void setOwnerId(String ownerId) {
179
		this.ownerId = ownerId;
180
	}
186
}
181
}

+ 24 - 28
src/main/java/com/ekexiu/portal/service/ArticleService.java

342
			article.setPageViews(0);
342
			article.setPageViews(0);
343
			article.setStatus("1");
343
			article.setStatus("1");
344
			article.setPublishTime(this.publishTime());
344
			article.setPublishTime(this.publishTime());
345
			if (article.getProfessorId() != null && article.getOrgId() == null) {
346
				article.setArticleType("1");
347
			} else if (article.getProfessorId() == null && article.getOrgId() != null) {
348
				article.setArticleType("2");
349
			} else {
345
			if (article.getOwnerId() == null) {
350
				throw new JfwBaseException(-1, "错误参数:文章发布者ID");
346
				throw new JfwBaseException(-1, "错误参数:文章发布者ID");
351
			}
347
			}
348
			if (article.getArticleType() == null) {
349
				throw new JfwBaseException(-2, "错误参数:文章类型");
350
			}
352
			this.articleDao.insert(con, article);
351
			this.articleDao.insert(con, article);
353
			con.commit();
352
			con.commit();
354
			this.templateService.push(ContentType.Article, article.getArticleId());
353
			this.templateService.push(ContentType.Article, article.getArticleId());
381
				article.setPageViews(0);
380
				article.setPageViews(0);
382
				article.setStatus("1");
381
				article.setStatus("1");
383
				article.setPublishTime(this.publishTime());
382
				article.setPublishTime(this.publishTime());
384
				if (article.getProfessorId() != null && article.getOrgId() == null) {
385
					article.setArticleType("1");
386
				} else if (article.getProfessorId() == null && article.getOrgId() != null) {
387
					article.setArticleType("2");
388
				} else {
383
				if (article.getOwnerId() == null) {
389
					throw new JfwBaseException(-1, "错误参数:文章发布者ID");
384
					throw new JfwBaseException(-1, "错误参数:文章发布者ID");
390
				}
385
				}
386
				if (article.getArticleType() == null) {
387
					throw new JfwBaseException(-2, "错误参数:文章类型");
388
				}
391
				this.articleDao.insert(con, article);
389
				this.articleDao.insert(con, article);
392
				this.keyWordService.refreshArticle(con, articleId, KeyWordService.splitKeyWord(article.getSubject()));
390
				this.keyWordService.refreshArticle(con, articleId, KeyWordService.splitKeyWord(article.getSubject()));
393
				if (professors != null) {
391
				if (professors != null) {
500
				article.setArticleAgree(0);
498
				article.setArticleAgree(0);
501
				article.setPageViews(0);
499
				article.setPageViews(0);
502
				article.setStatus("0");
500
				article.setStatus("0");
503
				if (article.getProfessorId() != null && article.getOrgId() == null) {
504
					article.setArticleType("1");
505
				} else if (article.getProfessorId() == null && article.getOrgId() != null) {
506
					article.setArticleType("2");
507
				} else {
501
				if (article.getOwnerId() == null) {
508
					throw new JfwBaseException(-1, "错误参数:文章发布者ID");
502
					throw new JfwBaseException(-1, "错误参数:文章发布者ID");
509
				}
503
				}
504
				if (article.getArticleType() == null) {
505
					throw new JfwBaseException(-2, "错误参数:文章类型");
506
				}
510
				this.articleDao.insert(con, article);
507
				this.articleDao.insert(con, article);
511
				this.keyWordService.refreshArticle(con, articleId, null);
508
				this.keyWordService.refreshArticle(con, articleId, null);
512
				if (professors != null) {
509
				if (professors != null) {
621
				article.setArticleAgree(0);
618
				article.setArticleAgree(0);
622
				article.setPageViews(0);
619
				article.setPageViews(0);
623
				article.setStatus("2");
620
				article.setStatus("2");
624
				if (article.getProfessorId() != null && article.getOrgId() == null) {
625
					article.setArticleType("1");
626
				} else if (article.getProfessorId() == null && article.getOrgId() != null) {
627
					article.setArticleType("2");
628
				} else {
621
				if (article.getOwnerId() == null) {
629
					throw new JfwBaseException(-1, "错误参数:文章发布者ID");
622
					throw new JfwBaseException(-1, "错误参数:文章发布者ID");
630
				}
623
				}
624
				if (article.getArticleType() == null) {
625
					throw new JfwBaseException(-2, "错误参数:文章类型");
626
				}
631
				this.articleDao.insert(con, article);
627
				this.articleDao.insert(con, article);
632
				if (professors != null) {
628
				if (professors != null) {
633
					for (String professor : professors) {
629
					for (String professor : professors) {
838
			this.articleAgreeDao.insert(con, articleAgree);
834
			this.articleAgreeDao.insert(con, articleAgree);
839
			this.growthLogService.agree(con, operateId);
835
			this.growthLogService.agree(con, operateId);
840
			if (uname != null) {
836
			if (uname != null) {
841
				if (article.getArticleType().equals("1") && (!operateId.equals(article.getProfessorId()))) {
842
					this.notifyService.notify(con, article.getProfessorId(), operateId, uname, articleId, article.getArticleTitle(), NotifyType.AGREE_ARTICLE,
837
				if (article.getArticleType().equals("1") && (!operateId.equals(article.getOwnerId()))) {
838
					this.notifyService.notify(con, article.getOwnerId(), operateId, uname, articleId, article.getArticleTitle(), NotifyType.AGREE_ARTICLE,
843
							runs);
839
							runs);
844
				}
840
				}
845
			}
841
			}
951
		if (!articles.isEmpty()) {
947
		if (!articles.isEmpty()) {
952
			for (Article article : articles) {
948
			for (Article article : articles) {
953
				if ("1".equals(article.getArticleType())) {
949
				if ("1".equals(article.getArticleType())) {
954
					EditProfessor professor = this.professorDao.queryBaseInfo(con, article.getProfessorId());
950
					EditProfessor professor = this.professorDao.queryBaseInfo(con, article.getOwnerId());
955
					if (professor != null) {
951
					if (professor != null) {
956
						professor.setHasHeadImage(this.imageService.hasProfessorImage(professor.getId()));
952
						professor.setHasHeadImage(this.imageService.hasProfessorImage(professor.getId()));
957
					}
953
					}
958
					article.setProfessor(professor);
954
					article.setProfessor(professor);
959
				} else if ("2".equals(article.getArticleType())) {
955
				} else if ("2".equals(article.getArticleType())) {
960
					EditOrganization organization = this.orgDao.queryEditOrg(con, article.getOnergId());
956
					EditOrganization organization = this.orgDao.queryEditOrg(con, article.getOwnenerId());
961
					if (organization != null) {
957
					if (organization != null) {
962
						organization.setHasOrgLogo(this.imageService.hasOrgLogo(organization.getId()));
958
						organization.setHasOrgLogo(this.imageService.hasOrgLogo(organization.getId()));
963
					}
959
					}
978
		if (!articles.isEmpty()) {
974
		if (!articles.isEmpty()) {
979
			for (Article article : articles) {
975
			for (Article article : articles) {
980
				if ("1".equals(article.getArticleType())) {
976
				if ("1".equals(article.getArticleType())) {
981
					EditProfessor professor = this.professorDao.queryBaseInfo(con, article.getProfessorId());
977
					EditProfessor professor = this.professorDao.queryBaseInfo(con, article.getOwnerId());
982
					if (professor != null) {
978
					if (professor != null) {
983
						professor.setHasHeadImage(this.imageService.hasProfessorImage(professor.getId()));
979
						professor.setHasHeadImage(this.imageService.hasProfessorImage(professor.getId()));
984
					}
980
					}
985
					article.setProfessor(professor);
981
					article.setProfessor(professor);
986
				} else if ("2".equals(article.getArticleType())) {
982
				} else if ("2".equals(article.getArticleType())) {
987
					EditOrganization organization = this.orgDao.queryEditOrg(con, article.getOnergId());
983
					EditOrganization organization = this.orgDao.queryEditOrg(con, article.getOwnenerId());
988
					if (organization != null) {
984
					if (organization != null) {
989
						organization.setHasOrgLogo(this.imageService.hasOrgLogo(organization.getId()));
985
						organization.setHasOrgLogo(this.imageService.hasOrgLogo(organization.getId()));
990
					}
986
					}
997

993

998
	@Get
994
	@Get
999
	@Path("/pqself")
995
	@Path("/pqself")
1000
	public PageQueryResult<SelfArticle> queryPageSelf(@JdbcConn Connection con, @Nullable String professorId, @Nullable String orgId,
996
	public PageQueryResult<SelfArticle> queryPageSelf(@JdbcConn Connection con, @Nullable String ownerId,
1001
			@Nullable String articleTitle, @DefaultValue("10") int pageSize, @DefaultValue("1") int pageNo) throws SQLException {
997
			@Nullable String articleTitle, @DefaultValue("10") int pageSize, @DefaultValue("1") int pageNo) throws SQLException {
1002
		if (articleTitle != null) {
998
		if (articleTitle != null) {
1003
			articleTitle = "%" + articleTitle + "%";
999
			articleTitle = "%" + articleTitle + "%";
1004
		}
1000
		}
1005
		return this.articleDao.queryPageForSelf(con, professorId, orgId, articleTitle, pageSize, pageNo);
1001
		return this.articleDao.queryPageForSelf(con, ownerId, articleTitle, pageSize, pageNo);
1006
	}
1002
	}
1007

1003

1008
	@Get
1004
	@Get

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

837
	@Path("/agree/sum")
837
	@Path("/agree/sum")
838
	public long agreeSum(@JdbcConn Connection con, final String id) throws SQLException {
838
	public long agreeSum(@JdbcConn Connection con, final String id) throws SQLException {
839
		return JdbcUtil.queryLong(con,
839
		return JdbcUtil.queryLong(con,
840
				" select SUM(agree) from (SELECT article_agree agree FROM ARTICLE WHERE STATUS ='1' AND professor_id =? UNION ALL SELECT AGREE FROM ANSWER WHERE STATE='1' AND UID =? ) t",
840
				" select SUM(agree) from (SELECT article_agree agree FROM ARTICLE WHERE STATUS ='1' AND owner_id =? AND ARTICLE_TYPE = '1' UNION ALL SELECT AGREE FROM ANSWER WHERE STATE='1' AND UID =? ) t",
841
				new PreparedStatementConfig() {
841
				new PreparedStatementConfig() {
842
					@Override
842
					@Override
843
					public void config(PreparedStatement ps) throws SQLException {
843
					public void config(PreparedStatement ps) throws SQLException {

+ 2 - 2
src/main/java/com/ekexiu/portal/service/WatchService.java

182
				Article article = this.articleDao.queryOne(con, watch.getWatchObject());
182
				Article article = this.articleDao.queryOne(con, watch.getWatchObject());
183
				if (article != null) {
183
				if (article != null) {
184
					if ("1".equals(article.getArticleType())) {
184
					if ("1".equals(article.getArticleType())) {
185
						article.setProfessor(this.professorDao.queryBaseInfo(con, article.getProfessorId()));
185
						article.setProfessor(this.professorDao.queryBaseInfo(con, article.getOwnerId()));
186
					} else if ("2".equals(article.getArticleType())) {
186
					} else if ("2".equals(article.getArticleType())) {
187
						article.setOrganization(this.orgDao.query(con, article.getOnergId()));
187
						article.setOrganization(this.orgDao.query(con, article.getOwnenerId()));
188
					}
188
					}
189
				}
189
				}
190
				watch.setArticle(article);
190
				watch.setArticle(article);