Pārlūkot izejas kodu

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

huangws 1 dienu atpakaļ
vecāks
revīzija
466d9e6a6a

+ 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;
+	}
 }

+ 14 - 6
ibps-common-root/modules/org-biz/src/main/java/com/lc/ibps/common/system/service/impl/NewsService.java

@@ -106,13 +106,21 @@ public class NewsService implements INewsService {
 				// --- 情况 B:前端传了具体的用户ID列表 ---
 				// 遍历列表,为每个用户插入一条记录
 				for (String targetUserId : scopeUserIds) {
-					String insertSql = "INSERT INTO t_ggfwb (id_, create_by_, create_time_, gong_gao_id_, gong_gao_lei_xing, gong_gao_mu_biao_) " +
-							"VALUES ('%s', '%s', NOW(), '%s', '%s', '%s')";
+					String insertSql= "";
+					if(targetUserId.length()>0){
+						 insertSql = "INSERT INTO t_ggfwb (id_, create_by_, create_time_, gong_gao_id_, gong_gao_lei_xing, gong_gao_mu_biao_) " +
+								"VALUES ('%s', '%s', NOW(), '%s', '%s', '%s')";
+					} else {
+						insertSql = "INSERT INTO t_ggfwb (id_, create_by_, create_time_, gong_gao_id_, gong_gao_lei_xing, gong_gao_mu_biao_) " +
+								"VALUES ('%s', '%s', NOW(), '%s', 'ALL', 'ALL')";
+					}
+					if(!insertSql.equals("")){
+						// 生成ID并格式化SQL
+						String id = UniqueIdUtil.getId();
+						insertSql = String.format(insertSql, id, currentUserId, newsId, newsType, targetUserId);
+						commonDao.execute(insertSql);
+					}
 
-					// 生成ID并格式化SQL
-					String id = UniqueIdUtil.getId();
-					insertSql = String.format(insertSql, id, currentUserId, newsId, newsType, targetUserId);
-					commonDao.execute(insertSql);
 				}
 			}
 		} catch (Exception e){

+ 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);