فهرست منبع

[task-5885] 修复获取公告时获取不到公告范围

huangws 2 روز پیش
والد
کامیت
8a7a0f2d82

+ 3 - 0
ibps-common-root/modules/org-biz/src/main/java/com/lc/ibps/common/system/repository/NewsRepository.java

@@ -49,4 +49,7 @@ public interface NewsRepository extends IRepository<String, NewsPo,News>{
 	public List<NewsPo> getScopeNews(List<NewsPo> originalList);
 
 	public boolean isTableExists(String tableName);
+
+	public List<String> getScopeUserIdsByNewsId(String newsId);
+
 }

+ 24 - 1
ibps-common-root/modules/org-biz/src/main/java/com/lc/ibps/common/system/repository/impl/NewsRepositoryImpl.java

@@ -185,5 +185,28 @@ public class NewsRepositoryImpl extends AbstractRepository<String, NewsPo,News>
 			}
 		}
 	}
-	
+
+	public List<String> getScopeUserIdsByNewsId(String newsId) {
+		List<String> userIds = new ArrayList<>();
+		String safeNewsID = "'" + newsId + "'";
+		try {
+			String sql = "SELECT gong_gao_mu_biao_ FROM t_ggfwb WHERE gong_gao_id_ = " + safeNewsID;
+
+			List<Map<String, Object>> resultList = (List<Map<String, Object>>) commonDao.query(sql, new Object[]{newsId});
+
+			if (resultList != null && !resultList.isEmpty()) {
+				for (Map<String, Object> row : resultList) {
+					// 从 Map 中获取 "gong_gao_mu_biao_" 字段的值
+					Object val = row.get("gong_gao_mu_biao_");
+					if (val != null) {
+						userIds.add(String.valueOf(val));
+					}
+				}
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+
+		return userIds;
+	}
 }

+ 7 - 0
ibps-provider-root/modules/provider-platform-default/src/main/java/com/lc/ibps/common/provider/NewsProvider.java

@@ -112,6 +112,13 @@ public class NewsProvider extends GenericProvider implements INewsService, INews
 		APIResult<NewsPo> result = new APIResult<>();
 		try {
 			NewsPo news = newsRepository.get(newsId);
+			if (news != null) {
+				if (newsRepository.isTableExists("t_ggfwb")) {
+					// 根据 newsId 查询范围用户
+					List<String> scopeUserIds = newsRepository.getScopeUserIdsByNewsId(newsId);
+					news.setScopeUserIds(scopeUserIds != null ? scopeUserIds : new ArrayList<>());
+				}
+			}
 			result.setData(news);
 		} catch (Exception e) {
 			setExceptionResult(result, StateEnum.ERROR_NEWS.getCode(), I18nUtil.getMessage(StateEnum.ERROR_NEWS.getCode()+""), e);