Skip to content

Commit

Permalink
fix multi system handling in label page #2541
Browse files Browse the repository at this point in the history
  • Loading branch information
MathisSenicourt committed Oct 24, 2024
1 parent 2b0d622 commit a422e70
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -99,12 +99,12 @@ public interface ILabelDAO {

/**
*
* @param system
* @param systems
* @param searchParameter
* @param individualSearch
* @param columnName
* @return
*/
public AnswerList<String> readDistinctValuesByCriteria(String system, String searchParameter, Map<String, List<String>> individualSearch, String columnName);
public AnswerList<String> readDistinctValuesByCriteria(List<String> systems, String searchParameter, Map<String, List<String>> individualSearch, String columnName);

}
Original file line number Diff line number Diff line change
Expand Up @@ -484,7 +484,7 @@ private Label loadLinkFromResultSet(ResultSet rs) throws SQLException {
}

@Override
public AnswerList<String> readDistinctValuesByCriteria(String system, String searchTerm, Map<String, List<String>> individualSearch, String columnName) {
public AnswerList<String> readDistinctValuesByCriteria(List<String> systems, String searchTerm, Map<String, List<String>> individualSearch, String columnName) {
AnswerList<String> answer = new AnswerList<>();
MessageEvent msg = new MessageEvent(MessageEventEnum.DATA_OPERATION_ERROR_UNEXPECTED);
msg.setDescription(msg.getDescription().replace("%DESCRIPTION%", ""));
Expand All @@ -499,8 +499,9 @@ public AnswerList<String> readDistinctValuesByCriteria(String system, String sea
query.append(" as distinctValues FROM label ");

searchSQL.append("WHERE 1=1");
if (!StringUtil.isEmptyOrNull(system)) {
searchSQL.append(" and (`System` = ? or `System` = '' )");
if (systems != null && !systems.isEmpty()) {
searchSQL.append(" and ");
searchSQL.append(SqlUtil.generateInClause("`System`", systems));
}

if (!StringUtil.isEmptyOrNull(searchTerm)) {
Expand Down Expand Up @@ -542,8 +543,10 @@ public AnswerList<String> readDistinctValuesByCriteria(String system, String sea
Statement stm = connection.createStatement();) {

int i = 1;
if (!StringUtil.isEmptyOrNull(system)) {
preStat.setString(i++, system);
if (systems != null && !systems.isEmpty()) {
for (String sys : systems) {
preStat.setString(i++, sys);
}
}

if (!StringUtil.isEmptyOrNull(searchTerm)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -176,13 +176,13 @@ public interface ILabelService {

/**
*
* @param system
* @param systems
* @param searchParameter
* @param individualSearch
* @param columnName
* @return
*/
public AnswerList<String> readDistinctValuesByCriteria(String system, String searchParameter, Map<String, List<String>> individualSearch, String columnName);
public AnswerList<String> readDistinctValuesByCriteria(List<String> systems, String searchParameter, Map<String, List<String>> individualSearch, String columnName);

/**
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -297,8 +297,8 @@ public void convert(Answer answer) throws CerberusException {
}

@Override
public AnswerList<String> readDistinctValuesByCriteria(String system, String searchParameter, Map<String, List<String>> individualSearch, String columnName) {
return labelDAO.readDistinctValuesByCriteria(system, searchParameter, individualSearch, columnName);
public AnswerList<String> readDistinctValuesByCriteria(List<String> systems, String searchParameter, Map<String, List<String>> individualSearch, String columnName) {
return labelDAO.readDistinctValuesByCriteria(systems, searchParameter, individualSearch, columnName);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,8 @@ protected void processRequest(HttpServletRequest request, HttpServletResponse re
answer = findLabelByKey(id, appContext, userHasPermissions);
jsonResponse = (JSONObject) answer.getItem();
} else if (request.getParameter("system") != null && !StringUtil.isEmptyOrNull(columnName)) {
answer = findDistinctValuesOfColumn(request.getParameter("system"), appContext, request, columnName);
List<String> systems = ParameterParserUtil.parseListParamAndDecodeAndDeleteEmptyValue(request.getParameterValues("system"), Arrays.asList("DEFAULT"), "UTF-8");
answer = findDistinctValuesOfColumn(systems, appContext, request, columnName);
jsonResponse = (JSONObject) answer.getItem();
} else if (request.getParameter("system") != null) {
List<String> system = ParameterParserUtil.parseListParamAndDecodeAndDeleteEmptyValue(request.getParameterValues("system"), Arrays.asList("DEFAULT"), "UTF-8");
Expand Down Expand Up @@ -427,7 +428,7 @@ private JSONObject convertLabelToJSONObject(Label label) throws JSONException {
return result;
}

private AnswerItem<JSONObject> findDistinctValuesOfColumn(String system, ApplicationContext appContext, HttpServletRequest request, String columnName) throws JSONException {
private AnswerItem<JSONObject> findDistinctValuesOfColumn(List<String> systems, ApplicationContext appContext, HttpServletRequest request, String columnName) throws JSONException {
AnswerItem<JSONObject> answer = new AnswerItem<>();
JSONObject object = new JSONObject();

Expand All @@ -451,7 +452,7 @@ private AnswerItem<JSONObject> findDistinctValuesOfColumn(String system, Applica
}
}

AnswerList testCaseList = labelService.readDistinctValuesByCriteria(system, searchParameter, individualSearch, columnName);
AnswerList testCaseList = labelService.readDistinctValuesByCriteria(systems, searchParameter, individualSearch, columnName);

object.put("distinctValues", testCaseList.getDataList());

Expand Down

0 comments on commit a422e70

Please sign in to comment.