From d5dcf2deef1c20ba7581e1ac340805f5d59da3eb Mon Sep 17 00:00:00 2001 From: terra Date: Mon, 8 Jan 2024 20:07:34 +0200 Subject: [PATCH 1/7] method / function for JSONArray --- opinion-infrastructure/pom.xml | 4 ++ .../infrastructure/dao/ResultSets.java | 35 ++++++++++++++++++ opinion-library-core/pom.xml | 5 +-- .../library/dao/AccountsDataAccess.java | 15 ++------ .../dao/AccountsOperationsDataAccess.java | 13 +------ .../library/dao/ChargesDataAccess.java | 37 ++----------------- .../library/dao/InvitesDataAccess.java | 13 +------ .../library/dao/InvoicesDataAccess.java | 27 +++----------- .../library/dao/MessagesDataAccess.java | 13 +------ .../dao/UsersOperationsDataAccess.java | 13 +------ .../dao/AnswerersSessionsDataAccess.java | 13 ++----- .../opinion/dao/OpinionsDataAccess.java | 25 ++----------- .../java/com/inqwise/opinion/dao/Results.java | 27 ++------------ .../inqwise/opinion/dao/ThemesDataAccess.java | 15 ++------ 14 files changed, 73 insertions(+), 182 deletions(-) create mode 100644 opinion-infrastructure/src/main/java/com/inqwise/opinion/infrastructure/dao/ResultSets.java diff --git a/opinion-infrastructure/pom.xml b/opinion-infrastructure/pom.xml index 0bbeafb..da56307 100755 --- a/opinion-infrastructure/pom.xml +++ b/opinion-infrastructure/pom.xml @@ -59,6 +59,10 @@ com.maxmind.db maxmind-db + + org.jooq + jooq + org.junit.jupiter junit-jupiter-api diff --git a/opinion-infrastructure/src/main/java/com/inqwise/opinion/infrastructure/dao/ResultSets.java b/opinion-infrastructure/src/main/java/com/inqwise/opinion/infrastructure/dao/ResultSets.java new file mode 100644 index 0000000..29d884f --- /dev/null +++ b/opinion-infrastructure/src/main/java/com/inqwise/opinion/infrastructure/dao/ResultSets.java @@ -0,0 +1,35 @@ +package com.inqwise.opinion.infrastructure.dao; + +import java.sql.Connection; +import java.sql.ResultSet; +import java.util.List; + +import org.jooq.impl.DSL; +import org.json.JSONArray; +import org.json.JSONObject; + +public class ResultSets { + + public static JSONArray parse(Connection connection, ResultSet resultSet){ + + + List list = DSL.using(connection) + .fetch(resultSet) + .map(r -> { + JSONObject obj = new JSONObject(); + + for(var field : r.fields()) { + obj.put(field.getName(), r.getValue(field)); + } + return obj; + }); + + return new JSONArray(list); + + } + + + //JSONArray result = ResultSets.parse(connection, resultSet); + + +} diff --git a/opinion-library-core/pom.xml b/opinion-library-core/pom.xml index e64015b..5a2d390 100644 --- a/opinion-library-core/pom.xml +++ b/opinion-library-core/pom.xml @@ -59,10 +59,7 @@ opinion-payments ${project.version} - - org.jooq - jooq - + org.junit.jupiter junit-jupiter-api diff --git a/opinion-library-core/src/main/java/com/inqwise/opinion/library/dao/AccountsDataAccess.java b/opinion-library-core/src/main/java/com/inqwise/opinion/library/dao/AccountsDataAccess.java index c636c18..db2aa26 100644 --- a/opinion-library-core/src/main/java/com/inqwise/opinion/library/dao/AccountsDataAccess.java +++ b/opinion-library-core/src/main/java/com/inqwise/opinion/library/dao/AccountsDataAccess.java @@ -8,13 +8,14 @@ import org.apache.commons.lang3.StringUtils; import org.jooq.impl.DSL; -import org.jooq.tools.json.JSONArray; +import org.json.JSONArray; import org.json.JSONObject; import com.inqwise.opinion.infrastructure.dao.DAOException; import com.inqwise.opinion.infrastructure.dao.DAOUtil; import com.inqwise.opinion.infrastructure.dao.Database; import com.inqwise.opinion.infrastructure.dao.IResultSetCallback; +import com.inqwise.opinion.infrastructure.dao.ResultSets; import com.inqwise.opinion.infrastructure.dao.SqlParam; import com.inqwise.opinion.library.common.accounts.IAccountBillingSettingsChangeRequest; import com.inqwise.opinion.library.common.accounts.IAccountBusinessDetailsChangeRequest; @@ -90,17 +91,7 @@ public static JSONArray getAccounts(Long userId, int productId, connection = call.getConnection(); resultSet = call.executeQuery(); - List list = DSL.using(connection).fetch(resultSet) - .map(r -> { - JSONObject obj = new JSONObject(); - - for(var field : r.fields()) { - obj.put(field.getName(), r.getValue(field)); - } - return obj; - }); - - return new JSONArray(list); + return ResultSets.parse(connection, resultSet); } catch (Exception e) { throw null == call ? new DAOException(e) : new DAOException(call, e); diff --git a/opinion-library-core/src/main/java/com/inqwise/opinion/library/dao/AccountsOperationsDataAccess.java b/opinion-library-core/src/main/java/com/inqwise/opinion/library/dao/AccountsOperationsDataAccess.java index 1cb1d1d..4ee00a4 100644 --- a/opinion-library-core/src/main/java/com/inqwise/opinion/library/dao/AccountsOperationsDataAccess.java +++ b/opinion-library-core/src/main/java/com/inqwise/opinion/library/dao/AccountsOperationsDataAccess.java @@ -15,6 +15,7 @@ import com.inqwise.opinion.infrastructure.dao.DAOUtil; import com.inqwise.opinion.infrastructure.dao.Database; import com.inqwise.opinion.infrastructure.dao.IResultSetCallback; +import com.inqwise.opinion.infrastructure.dao.ResultSets; import com.inqwise.opinion.infrastructure.dao.SqlParam; public class AccountsOperationsDataAccess { @@ -50,17 +51,7 @@ public static JSONArray getAccountOperations(int top, long accountId, List list = DSL.using(connection).fetch(resultSet) - .map(r -> { - JSONObject obj = new JSONObject(); - - for(var field : r.fields()) { - obj.put(field.getName(), r.getValue(field)); - } - return obj; - }); - - return new JSONArray(list); + return ResultSets.parse(connection, resultSet); } catch (Exception e) { throw null == call ? new DAOException(e) : new DAOException(call, e); diff --git a/opinion-library-core/src/main/java/com/inqwise/opinion/library/dao/ChargesDataAccess.java b/opinion-library-core/src/main/java/com/inqwise/opinion/library/dao/ChargesDataAccess.java index 36312c1..f9b477f 100644 --- a/opinion-library-core/src/main/java/com/inqwise/opinion/library/dao/ChargesDataAccess.java +++ b/opinion-library-core/src/main/java/com/inqwise/opinion/library/dao/ChargesDataAccess.java @@ -16,6 +16,7 @@ import com.inqwise.opinion.infrastructure.dao.DAOUtil; import com.inqwise.opinion.infrastructure.dao.Database; import com.inqwise.opinion.infrastructure.dao.IResultSetCallback; +import com.inqwise.opinion.infrastructure.dao.ResultSets; import com.inqwise.opinion.infrastructure.dao.SqlParam; import com.inqwise.opinion.infrastructure.systemFramework.ApplicationLog; import com.inqwise.opinion.library.common.errorHandle.BaseOperationResult; @@ -79,17 +80,7 @@ public static JSONArray getCharges(int top, Long billId, Integer billTypeId, Lon connection = call.getConnection(); resultSet = call.executeQuery(); - List list = DSL.using(connection).fetch(resultSet) - .map(r -> { - JSONObject obj = new JSONObject(); - - for(var field : r.fields()) { - obj.put(field.getName(), r.getValue(field)); - } - return obj; - }); - - return new JSONArray(list); + return ResultSets.parse(connection, resultSet); } catch (Exception e) { throw null == call ? new DAOException(e) : new DAOException(call, e); @@ -243,17 +234,7 @@ public static JSONArray getPostPayActions(Long chargeId, Long billId, Integer bi connection = call.getConnection(); resultSet = call.executeQuery(); - List list = DSL.using(connection).fetch(resultSet) - .map(r -> { - JSONObject obj = new JSONObject(); - - for(var field : r.fields()) { - obj.put(field.getName(), r.getValue(field)); - } - return obj; - }); - - return new JSONArray(list); + return ResultSets.parse(connection, resultSet); } catch (Exception e) { throw null == call ? new DAOException(e) : new DAOException(call, e); @@ -332,17 +313,7 @@ public static JSONArray getChargesByReferenceId(Long accountId, connection = call.getConnection(); resultSet = call.executeQuery(); - List list = DSL.using(connection).fetch(resultSet) - .map(r -> { - JSONObject obj = new JSONObject(); - - for(var field : r.fields()) { - obj.put(field.getName(), r.getValue(field)); - } - return obj; - }); - - return new JSONArray(list); + return ResultSets.parse(connection, resultSet); } catch (Exception e) { throw null == call ? new DAOException(e) : new DAOException(call, e); diff --git a/opinion-library-core/src/main/java/com/inqwise/opinion/library/dao/InvitesDataAccess.java b/opinion-library-core/src/main/java/com/inqwise/opinion/library/dao/InvitesDataAccess.java index 334b481..ad9327e 100644 --- a/opinion-library-core/src/main/java/com/inqwise/opinion/library/dao/InvitesDataAccess.java +++ b/opinion-library-core/src/main/java/com/inqwise/opinion/library/dao/InvitesDataAccess.java @@ -13,6 +13,7 @@ import com.inqwise.opinion.infrastructure.dao.DAOUtil; import com.inqwise.opinion.infrastructure.dao.Database; import com.inqwise.opinion.infrastructure.dao.IResultSetCallback; +import com.inqwise.opinion.infrastructure.dao.ResultSets; import com.inqwise.opinion.infrastructure.dao.SqlParam; import com.inqwise.opinion.library.common.invites.IInviteCreateRequest; import com.inqwise.opinion.library.common.invites.IInviteSettingsChangeRequest; @@ -153,17 +154,7 @@ public static JSONArray getInvites(long accountId) throws DAOException { connection = call.getConnection(); resultSet = call.executeQuery(); - List list = DSL.using(connection).fetch(resultSet) - .map(r -> { - JSONObject obj = new JSONObject(); - - for(var field : r.fields()) { - obj.put(field.getName(), r.getValue(field)); - } - return obj; - }); - - return new JSONArray(list); + return ResultSets.parse(connection, resultSet); } catch (Exception e) { throw null == call ? new DAOException(e) : new DAOException(call, e); diff --git a/opinion-library-core/src/main/java/com/inqwise/opinion/library/dao/InvoicesDataAccess.java b/opinion-library-core/src/main/java/com/inqwise/opinion/library/dao/InvoicesDataAccess.java index fb892ad..42d29de 100644 --- a/opinion-library-core/src/main/java/com/inqwise/opinion/library/dao/InvoicesDataAccess.java +++ b/opinion-library-core/src/main/java/com/inqwise/opinion/library/dao/InvoicesDataAccess.java @@ -18,6 +18,7 @@ import com.inqwise.opinion.infrastructure.dao.DAOUtil; import com.inqwise.opinion.infrastructure.dao.Database; import com.inqwise.opinion.infrastructure.dao.IResultSetCallback; +import com.inqwise.opinion.infrastructure.dao.ResultSets; import com.inqwise.opinion.infrastructure.dao.SqlParam; import com.inqwise.opinion.infrastructure.systemFramework.ApplicationLog; import com.inqwise.opinion.library.common.errorHandle.BaseOperationResult; @@ -175,17 +176,7 @@ public static JSONArray getInvoices(int top, Long accountId, connection = call.getConnection(); resultSet = call.executeQuery(); - List list = DSL.using(connection).fetch(resultSet) - .map(r -> { - JSONObject obj = new JSONObject(); - - for(var field : r.fields()) { - obj.put(field.getName(), r.getValue(field)); - } - return obj; - }); - - return new JSONArray(list); + return ResultSets.parse(connection, resultSet); } catch (Exception e) { throw null == call ? new DAOException(e) : new DAOException(call, e); @@ -327,16 +318,8 @@ public static Map getInvoiceItems(long billId, int b } private static JSONArray resultsetToJson(Connection connection, ResultSet resultSet) { - List list = DSL.using(connection).fetch(resultSet) - .map(r -> { - JSONObject obj = new JSONObject(); - - for(var field : r.fields()) { - obj.put(field.getName(), r.getValue(field)); - } - return obj; - }); - - return new JSONArray(list); + + return ResultSets.parse(connection, resultSet); + } } diff --git a/opinion-library-core/src/main/java/com/inqwise/opinion/library/dao/MessagesDataAccess.java b/opinion-library-core/src/main/java/com/inqwise/opinion/library/dao/MessagesDataAccess.java index 8428e06..cf6a09e 100644 --- a/opinion-library-core/src/main/java/com/inqwise/opinion/library/dao/MessagesDataAccess.java +++ b/opinion-library-core/src/main/java/com/inqwise/opinion/library/dao/MessagesDataAccess.java @@ -14,6 +14,7 @@ import com.inqwise.opinion.infrastructure.dao.DAOUtil; import com.inqwise.opinion.infrastructure.dao.Database; import com.inqwise.opinion.infrastructure.dao.IResultSetCallback; +import com.inqwise.opinion.infrastructure.dao.ResultSets; import com.inqwise.opinion.infrastructure.dao.SqlParam; public final class MessagesDataAccess { @@ -190,17 +191,7 @@ public static JSONArray getMessages(Long userId, connection = call.getConnection(); resultSet = call.executeQuery(); - List list = DSL.using(connection).fetch(resultSet) - .map(r -> { - JSONObject obj = new JSONObject(); - - for(var field : r.fields()) { - obj.put(field.getName(), r.getValue(field)); - } - return obj; - }); - - return new JSONArray(list); + return ResultSets.parse(connection, resultSet); } catch (Exception e) { throw null == call ? new DAOException(e) : new DAOException(call, e); diff --git a/opinion-library-core/src/main/java/com/inqwise/opinion/library/dao/UsersOperationsDataAccess.java b/opinion-library-core/src/main/java/com/inqwise/opinion/library/dao/UsersOperationsDataAccess.java index 76e283b..6d4a497 100644 --- a/opinion-library-core/src/main/java/com/inqwise/opinion/library/dao/UsersOperationsDataAccess.java +++ b/opinion-library-core/src/main/java/com/inqwise/opinion/library/dao/UsersOperationsDataAccess.java @@ -14,6 +14,7 @@ import com.inqwise.opinion.infrastructure.dao.DAOException; import com.inqwise.opinion.infrastructure.dao.DAOUtil; import com.inqwise.opinion.infrastructure.dao.Database; +import com.inqwise.opinion.infrastructure.dao.ResultSets; import com.inqwise.opinion.infrastructure.dao.SqlParam; public class UsersOperationsDataAccess { @@ -47,17 +48,7 @@ public static JSONArray getUserOperations(int top, Long userId, Integer[] usersO connection = call.getConnection(); resultSet = call.executeQuery(); - List list = DSL.using(connection).fetch(resultSet) - .map(r -> { - JSONObject obj = new JSONObject(); - - for(var field : r.fields()) { - obj.put(field.getName(), r.getValue(field)); - } - return obj; - }); - - return new JSONArray(list); + return ResultSets.parse(connection, resultSet); } catch (Exception e) { throw null == call ? new DAOException(e) : new DAOException(call, e); diff --git a/opinion-library/src/main/java/com/inqwise/opinion/dao/AnswerersSessionsDataAccess.java b/opinion-library/src/main/java/com/inqwise/opinion/dao/AnswerersSessionsDataAccess.java index 73b06ba..acc2e25 100644 --- a/opinion-library/src/main/java/com/inqwise/opinion/dao/AnswerersSessionsDataAccess.java +++ b/opinion-library/src/main/java/com/inqwise/opinion/dao/AnswerersSessionsDataAccess.java @@ -16,6 +16,7 @@ import com.inqwise.opinion.infrastructure.dao.DAOUtil; import com.inqwise.opinion.infrastructure.dao.Database; import com.inqwise.opinion.infrastructure.dao.IResultSetCallback; +import com.inqwise.opinion.infrastructure.dao.ResultSets; import com.inqwise.opinion.infrastructure.dao.SqlParam; import com.inqwise.opinion.library.common.errorHandle.BaseOperationResult; import com.inqwise.opinion.library.common.errorHandle.ErrorCode; @@ -64,15 +65,7 @@ public static JSONArray getAnswerersSessions(Long opinionId, connection = call.getConnection(); resultSet = call.executeQuery(); - List list = DSL.using(connection).fetch(resultSet) - .map(r -> { - JSONObject obj = new JSONObject(); - - for(var field : r.fields()) { - obj.put(field.getName(), r.getValue(field)); - } - return obj; - }); + JSONArray result = ResultSets.parse(connection, resultSet); if(call.getMoreResults()){ resultSet = call.getResultSet(); @@ -81,7 +74,7 @@ public static JSONArray getAnswerersSessions(Long opinionId, } } - return new JSONArray(list); + return result; } catch (Exception e) { throw null == call ? new DAOException(e) : new DAOException(call, e); diff --git a/opinion-library/src/main/java/com/inqwise/opinion/dao/OpinionsDataAccess.java b/opinion-library/src/main/java/com/inqwise/opinion/dao/OpinionsDataAccess.java index c733c51..5bff011 100644 --- a/opinion-library/src/main/java/com/inqwise/opinion/dao/OpinionsDataAccess.java +++ b/opinion-library/src/main/java/com/inqwise/opinion/dao/OpinionsDataAccess.java @@ -19,6 +19,7 @@ import com.inqwise.opinion.infrastructure.dao.DAOUtil; import com.inqwise.opinion.infrastructure.dao.Database; import com.inqwise.opinion.infrastructure.dao.IResultSetCallback; +import com.inqwise.opinion.infrastructure.dao.ResultSets; import com.inqwise.opinion.infrastructure.dao.SqlParam; import com.inqwise.opinion.library.common.errorHandle.BaseOperationResult; import com.inqwise.opinion.library.common.errorHandle.ErrorCode; @@ -246,17 +247,7 @@ public static JSONArray getOpinions(Long accountId, connection = call.getConnection(); resultSet = call.executeQuery(); - List list = DSL.using(connection).fetch(resultSet) - .map(r -> { - JSONObject obj = new JSONObject(); - - for(var field : r.fields()) { - obj.put(field.getName(), r.getValue(field)); - } - return obj; - }); - - return new JSONArray(list); + return ResultSets.parse(connection, resultSet); } catch (Exception e) { throw null == call ? new DAOException(e) : new DAOException(call, e); @@ -391,17 +382,7 @@ public static JSONArray getTemplatesDataSet() throws DAOException { connection = call.getConnection(); resultSet = call.executeQuery(); - List list = DSL.using(connection).fetch(resultSet) - .map(r -> { - JSONObject obj = new JSONObject(); - - for(var field : r.fields()) { - obj.put(field.getName(), r.getValue(field)); - } - return obj; - }); - - return new JSONArray(list); + return ResultSets.parse(connection, resultSet); } catch (Exception e) { throw null == call ? new DAOException(e) : new DAOException(call, e); diff --git a/opinion-library/src/main/java/com/inqwise/opinion/dao/Results.java b/opinion-library/src/main/java/com/inqwise/opinion/dao/Results.java index 9221cfc..64a375b 100644 --- a/opinion-library/src/main/java/com/inqwise/opinion/dao/Results.java +++ b/opinion-library/src/main/java/com/inqwise/opinion/dao/Results.java @@ -14,7 +14,7 @@ import org.apache.commons.lang3.StringUtils; import org.jooq.impl.DSL; -import org.jooq.tools.json.JSONArray; +import org.json.JSONArray; import org.json.JSONObject; import com.inqwise.opinion.common.ParentType; @@ -26,6 +26,7 @@ import com.inqwise.opinion.infrastructure.dao.DAOUtil; import com.inqwise.opinion.infrastructure.dao.Database; import com.inqwise.opinion.infrastructure.dao.IDataFillable; +import com.inqwise.opinion.infrastructure.dao.ResultSets; import com.inqwise.opinion.infrastructure.dao.SqlParam; import com.inqwise.opinion.infrastructure.systemFramework.ApplicationLog; import com.inqwise.opinion.infrastructure.systemFramework.ResultSetHelper; @@ -115,7 +116,6 @@ public static List getControlsResults( } public static JSONArray getAllResults(long opinionId, Long accountId, Long[] sessionIds, boolean includePartial, TreeMap headerIdsMap) throws DAOException{ - JSONArray result; Connection connection = null; CallableStatement call = null; ResultSet resultSet = null; @@ -133,17 +133,7 @@ public static JSONArray getAllResults(long opinionId, Long accountId, Long[] ses connection = call.getConnection(); resultSet = call.executeQuery(); - List list = DSL.using(connection).fetch(resultSet) - .map(r -> { - JSONObject obj = new JSONObject(); - - for(var field : r.fields()) { - obj.put(field.getName(), r.getValue(field)); - } - return obj; - }); - - result = new JSONArray(list); + JSONArray result = ResultSets.parse(connection, resultSet); if(call.getMoreResults()){ resultSet = call.getResultSet(); @@ -219,17 +209,8 @@ public static JSONArray getCountriesStatistics(long opinionId, Long accountId, D connection = call.getConnection(); resultSet = call.executeQuery(); - List list = DSL.using(connection).fetch(resultSet) - .map(r -> { - JSONObject obj = new JSONObject(); - - for(var field : r.fields()) { - obj.put(field.getName(), r.getValue(field)); - } - return obj; - }); + return ResultSets.parse(connection, resultSet); - return new JSONArray(list); } catch (Exception e) { throw null == call ? new DAOException(e) : new DAOException(call, e); } finally { diff --git a/opinion-library/src/main/java/com/inqwise/opinion/dao/ThemesDataAccess.java b/opinion-library/src/main/java/com/inqwise/opinion/dao/ThemesDataAccess.java index b016bcb..d75363f 100644 --- a/opinion-library/src/main/java/com/inqwise/opinion/dao/ThemesDataAccess.java +++ b/opinion-library/src/main/java/com/inqwise/opinion/dao/ThemesDataAccess.java @@ -6,13 +6,14 @@ import java.util.List; import org.jooq.impl.DSL; -import org.jooq.tools.json.JSONArray; +import org.json.JSONArray; import org.json.JSONObject; import com.inqwise.opinion.infrastructure.dao.DAOException; import com.inqwise.opinion.infrastructure.dao.DAOUtil; import com.inqwise.opinion.infrastructure.dao.Database; import com.inqwise.opinion.infrastructure.dao.IResultSetCallback; +import com.inqwise.opinion.infrastructure.dao.ResultSets; import com.inqwise.opinion.infrastructure.dao.SqlParam; import com.inqwise.opinion.library.dao.DAOBase; import com.inqwise.opinion.library.dao.DAOFactory; @@ -49,17 +50,7 @@ public static JSONArray getThemes(Long accountId, Integer top, int opinionTypeId connection = call.getConnection(); resultSet = call.executeQuery(); - List list = DSL.using(connection).fetch(resultSet) - .map(r -> { - JSONObject obj = new JSONObject(); - - for(var field : r.fields()) { - obj.put(field.getName(), r.getValue(field)); - } - return obj; - }); - - return new JSONArray(list); + return ResultSets.parse(connection, resultSet); } catch (Exception e) { throw null == call ? new DAOException(e) : new DAOException(call, e); From 9ef7753bf67c2e541eaf1c80856ad3cf3c9f7ae7 Mon Sep 17 00:00:00 2001 From: terra Date: Tue, 9 Jan 2024 08:58:05 +0200 Subject: [PATCH 2/7] make method/ function result set --- .../infrastructure/dao/Resultsets.java | 32 ++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/opinion-infrastructure/src/main/java/com/inqwise/opinion/infrastructure/dao/Resultsets.java b/opinion-infrastructure/src/main/java/com/inqwise/opinion/infrastructure/dao/Resultsets.java index b258f11..29d884f 100644 --- a/opinion-infrastructure/src/main/java/com/inqwise/opinion/infrastructure/dao/Resultsets.java +++ b/opinion-infrastructure/src/main/java/com/inqwise/opinion/infrastructure/dao/Resultsets.java @@ -1,5 +1,35 @@ package com.inqwise.opinion.infrastructure.dao; -public class Resultsets { +import java.sql.Connection; +import java.sql.ResultSet; +import java.util.List; + +import org.jooq.impl.DSL; +import org.json.JSONArray; +import org.json.JSONObject; + +public class ResultSets { + + public static JSONArray parse(Connection connection, ResultSet resultSet){ + + + List list = DSL.using(connection) + .fetch(resultSet) + .map(r -> { + JSONObject obj = new JSONObject(); + + for(var field : r.fields()) { + obj.put(field.getName(), r.getValue(field)); + } + return obj; + }); + + return new JSONArray(list); + + } + + //JSONArray result = ResultSets.parse(connection, resultSet); + + } From ff802bea193acc085df41d0c3f49b0dc7cb20072 Mon Sep 17 00:00:00 2001 From: terra Date: Tue, 9 Jan 2024 19:07:46 +0200 Subject: [PATCH 3/7] add class collector model and collector repository parser --- .../common/pay/ChargeRepositoryParser.java | 2 + .../common/collectors/CollectorModel.java | 63 ++++++++++++++++++- .../collectors/CollectorRepositoryParser.java | 12 ++++ .../opinion/managers/CollectorsManager.java | 11 +++- 4 files changed, 86 insertions(+), 2 deletions(-) create mode 100644 opinion-library/src/main/java/com/inqwise/opinion/common/collectors/CollectorRepositoryParser.java diff --git a/opinion-library-core/src/main/java/com/inqwise/opinion/library/common/pay/ChargeRepositoryParser.java b/opinion-library-core/src/main/java/com/inqwise/opinion/library/common/pay/ChargeRepositoryParser.java index 6b3fbe6..e3698f1 100644 --- a/opinion-library-core/src/main/java/com/inqwise/opinion/library/common/pay/ChargeRepositoryParser.java +++ b/opinion-library-core/src/main/java/com/inqwise/opinion/library/common/pay/ChargeRepositoryParser.java @@ -4,6 +4,8 @@ import org.json.JSONObject; +import com.inqwise.opinion.library.common.pay.ChargeModel.Builder; + public class ChargeRepositoryParser { public ChargeModel parse(JSONObject json) { var builder = ChargeModel.builder() diff --git a/opinion-library/src/main/java/com/inqwise/opinion/common/collectors/CollectorModel.java b/opinion-library/src/main/java/com/inqwise/opinion/common/collectors/CollectorModel.java index 23d3dfb..39dabad 100644 --- a/opinion-library/src/main/java/com/inqwise/opinion/common/collectors/CollectorModel.java +++ b/opinion-library/src/main/java/com/inqwise/opinion/common/collectors/CollectorModel.java @@ -1,5 +1,66 @@ package com.inqwise.opinion.common.collectors; +import org.json.JSONObject; + +import com.google.common.base.MoreObjects; + public class CollectorModel { - //TODO:TERRA + + private Long id; + + private CollectorModel(Builder builder) { + this.id = builder.id; + } + + public static final class Keys{ + public static String ID = "id"; + } + + public CollectorModel(JSONObject json) { + id = json.optLongObject(Keys.ID); + } + + public Long getId() { + return id; + } + + public JSONObject toJson() { + var json = new JSONObject(); + json.put(Keys.ID, id); + return json; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builderFrom(CollectorModel collectorModel) { + return new Builder(collectorModel); + } + + public static final class Builder { + private Long id; + + private Builder() { + } + + private Builder(CollectorModel collectorModel) { + this.id = collectorModel.id; + } + + public Builder withId(Long id) { + this.id = id; + return this; + } + + public CollectorModel build() { + return new CollectorModel(this); + } + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this).add("id", id).toString(); + } + } diff --git a/opinion-library/src/main/java/com/inqwise/opinion/common/collectors/CollectorRepositoryParser.java b/opinion-library/src/main/java/com/inqwise/opinion/common/collectors/CollectorRepositoryParser.java new file mode 100644 index 0000000..39bb74c --- /dev/null +++ b/opinion-library/src/main/java/com/inqwise/opinion/common/collectors/CollectorRepositoryParser.java @@ -0,0 +1,12 @@ +package com.inqwise.opinion.common.collectors; + +import org.json.JSONObject; + +public class CollectorRepositoryParser { + public CollectorModel parse(JSONObject json) { + return CollectorModel.builder() + .withId(json.optLongObject(ICollector.ResultSetNames.COLLECTOR_ID)) + .build(); + } + +} diff --git a/opinion-library/src/main/java/com/inqwise/opinion/managers/CollectorsManager.java b/opinion-library/src/main/java/com/inqwise/opinion/managers/CollectorsManager.java index 06ce9b5..cce3265 100644 --- a/opinion-library/src/main/java/com/inqwise/opinion/managers/CollectorsManager.java +++ b/opinion-library/src/main/java/com/inqwise/opinion/managers/CollectorsManager.java @@ -19,6 +19,8 @@ import com.inqwise.opinion.actions.collectors.ICreatePollsCollectorRequest; import com.inqwise.opinion.actions.collectors.ICreateSurveysCollectorRequest; import com.inqwise.opinion.common.ResultsPermissionType; +import com.inqwise.opinion.common.collectors.CollectorModel; +import com.inqwise.opinion.common.collectors.CollectorRepositoryParser; import com.inqwise.opinion.common.collectors.CollectorStatus; import com.inqwise.opinion.common.collectors.ICollector; import com.inqwise.opinion.common.collectors.ICollector.JsonNames; @@ -195,7 +197,14 @@ public static BaseOperationResult setExternalId(long collectorId, public static List getMeny(Long opinionId, Long accountId, boolean includeExpired, int top, Date from, Date to, Integer[] collectorsStatusIds, String orderBy){ try { - return CollectorsDataAccess.getCollectors(opinionId, accountId, includeExpired, top, from, to, collectorsStatusIds, orderBy); + List list = new ArrayList<>(); + JSONArray arr = CollectorsDataAccess.getCollectors(opinionId, accountId, includeExpired, top, from, to, collectorsStatusIds, orderBy); + + arr.forEach(itm -> { + list.add(new CollectorRepositoryParser().parse((JSONObject)itm)); + }); + return list; + } catch (DAOException e) { throw new Error(e); } From ddcc4e5b9532cc754131bcdfecfaa2802f298be5 Mon Sep 17 00:00:00 2001 From: terra Date: Wed, 10 Jan 2024 09:36:38 +0200 Subject: [PATCH 4/7] replace CDataCacheContainer to var list --- .../com/inqwise/opinion/jobs/CollectorsChecker.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/opinion-library/src/main/java/com/inqwise/opinion/jobs/CollectorsChecker.java b/opinion-library/src/main/java/com/inqwise/opinion/jobs/CollectorsChecker.java index 665eb7e..4e9bb53 100644 --- a/opinion-library/src/main/java/com/inqwise/opinion/jobs/CollectorsChecker.java +++ b/opinion-library/src/main/java/com/inqwise/opinion/jobs/CollectorsChecker.java @@ -2,6 +2,8 @@ import java.util.UUID; +import org.json.JSONArray; + import com.inqwise.opinion.automation.common.jobs.IJobExecutorCallback; import com.inqwise.opinion.automation.common.jobs.Job; import com.inqwise.opinion.automation.common.jobs.JobSettings; @@ -39,14 +41,12 @@ protected IOperationResult process() { return result; } - private IOperationResult checkVerifiedCollectors() throws NullPointerException, CDataGridException { + private IOperationResult checkVerifiedCollectors() throws NullPointerException { IOperationResult result = null; - CDataCacheContainer ds = CollectorsManager.getMeny(null, null, false, 100, null, null, new Integer[] { CollectorStatus.Verify.getValue() }, null); + var list = CollectorsManager.getMeny(null, null, false, 100, null, null, new Integer[] { CollectorStatus.Verify.getValue() }, null); - CDataRowSet rows = ds.getAll(); - while(rows.next()){ - - IOperationResult checkResult = checkVerifiedCollector(CollectorsManager.get(rows.getLong(ICollector.ResultSetNames.COLLECTOR_ID), null).getValue()); + for (var collectorModel : list) { + IOperationResult checkResult = checkVerifiedCollector(CollectorsManager.get(collectorModel.getId(), null).getValue()); if(checkResult.hasError()){ result = checkResult; } From 0a948ddf0457a0b6f31ae4dcf3180919946055d9 Mon Sep 17 00:00:00 2001 From: terra Date: Wed, 10 Jan 2024 17:41:05 +0200 Subject: [PATCH 5/7] make new field and put into model --- .../opinion/handlers/CollectorsEntry.java | 80 +++-- .../common/collectors/CollectorModel.java | 279 +++++++++++++++++- .../collectors/CollectorRepositoryParser.java | 17 ++ 3 files changed, 329 insertions(+), 47 deletions(-) diff --git a/opinion-app-admin/src/main/webapp/com/inqwise/opinion/handlers/CollectorsEntry.java b/opinion-app-admin/src/main/webapp/com/inqwise/opinion/handlers/CollectorsEntry.java index c934aea..78c2d3c 100644 --- a/opinion-app-admin/src/main/webapp/com/inqwise/opinion/handlers/CollectorsEntry.java +++ b/opinion-app-admin/src/main/webapp/com/inqwise/opinion/handlers/CollectorsEntry.java @@ -6,42 +6,38 @@ import java.util.Date; import java.util.LinkedHashMap; import java.util.List; -import java.util.Set; import java.util.UUID; -import net.casper.data.model.CDataCacheContainer; -import net.casper.data.model.CDataGridException; -import net.casper.data.model.CDataRowSet; - import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; +import com.inqwise.opinion.common.IPostmasterContext; +import com.inqwise.opinion.common.SurveyStatistics; +import com.inqwise.opinion.common.collectors.CollectorModel; +import com.inqwise.opinion.common.collectors.CollectorSourceType; +import com.inqwise.opinion.common.collectors.CollectorStatus; +import com.inqwise.opinion.common.collectors.ICollector; +import com.inqwise.opinion.common.opinions.IOpinion; +import com.inqwise.opinion.common.opinions.ISurvey; import com.inqwise.opinion.infrastructure.systemFramework.ApplicationLog; import com.inqwise.opinion.infrastructure.systemFramework.JSONHelper; import com.inqwise.opinion.library.common.IProduct; import com.inqwise.opinion.library.common.accounts.IAccount; -import com.inqwise.opinion.library.common.accounts.IAccountView; import com.inqwise.opinion.library.common.errorHandle.BaseOperationResult; import com.inqwise.opinion.library.common.errorHandle.ErrorCode; import com.inqwise.opinion.library.common.errorHandle.OperationResult; import com.inqwise.opinion.library.common.pay.ChargeReferenceType; import com.inqwise.opinion.library.managers.AccountsManager; import com.inqwise.opinion.library.managers.ChargesManager; -import com.inqwise.opinion.library.systemFramework.ApplicationConfiguration; -import com.inqwise.opinion.opinion.common.IPostmasterContext; -import com.inqwise.opinion.opinion.common.SurveyStatistics; -import com.inqwise.opinion.opinion.common.collectors.CollectorSourceType; -import com.inqwise.opinion.opinion.common.collectors.CollectorStatus; -import com.inqwise.opinion.opinion.common.collectors.ICollector; -import com.inqwise.opinion.opinion.common.collectors.ICollector.IMessagesExtension; -import com.inqwise.opinion.opinion.common.collectors.ICollector.JsonNames; -import com.inqwise.opinion.opinion.common.collectors.ICollector.ResultSetNames; -import com.inqwise.opinion.opinion.common.opinions.IOpinion; -import com.inqwise.opinion.opinion.common.opinions.ISurvey; -import com.inqwise.opinion.opinion.managers.CollectorsManager; -import com.inqwise.opinion.opinion.managers.OpinionsManager; import com.inqwise.opinion.library.managers.ProductsManager; +import com.inqwise.opinion.library.systemFramework.ApplicationConfiguration; +import com.inqwise.opinion.managers.CollectorsManager; +import com.inqwise.opinion.managers.OpinionsManager; + +import net.casper.data.model.CDataCacheContainer; +import net.casper.data.model.CDataGridException; +import net.casper.data.model.CDataRowSet; public class CollectorsEntry extends Entry { @@ -64,42 +60,38 @@ public JSONObject getCollectors(JSONObject input) throws CDataGridException, JSO collectorsByAccountId = new LinkedHashMap<>(); } - CDataCacheContainer ds = CollectorsManager.getMeny(opinionId, accountId, includeExpired, top, fromDate, toDate, null, ICollector.ResultSetNames.LAST_START_DATE); + List list = CollectorsManager.getMeny(opinionId, accountId, includeExpired, top, fromDate, toDate, null, ICollector.ResultSetNames.LAST_START_DATE); JSONArray ja = new JSONArray(); - - //int accountsResult = AccountsManager.getAccounts(null, null, null, true, null, null, ) - - CDataRowSet rowSet = ds.getAll(); - + Format formatter = new SimpleDateFormat( "MMM dd, yyyy HH:mm:ss"); - while(rowSet.next()){ + for(var collectorModel : list) { JSONObject jo = new JSONObject(); - jo.put(ICollector.JsonNames.COLLECTOR_ID, rowSet.getLong(ICollector.ResultSetNames.COLLECTOR_ID)); - jo.put(ICollector.JsonNames.OPINION_ID, rowSet.getLong(ICollector.ResultSetNames.OPINION_ID)); - Long actualAccountId = rowSet.getLong(ICollector.ResultSetNames.ACCOUNT_ID); - jo.put(ICollector.JsonNames.ACCOUNT_ID, actualAccountId); - jo.put(ICollector.JsonNames.COLLECTOR_UUID, rowSet.getString(ICollector.ResultSetNames.COLLECTOR_UUID)); - jo.put(ICollector.JsonNames.MODIFY_DATE, mdyhFormatter.format(rowSet.getDate(ICollector.ResultSetNames.MODIFY_DATE))); - jo.put(ICollector.JsonNames.CREATE_DATE, mdyhFormatter.format(rowSet.getDate(ICollector.ResultSetNames.CREATE_DATE))); - if(null != rowSet.getDate(ICollector.ResultSetNames.EXPIRATION_DATE)){ - jo.put(ICollector.JsonNames.EXPIRATION_DATE, mdyhFormatter.format(rowSet.getDate(ICollector.ResultSetNames.EXPIRATION_DATE))); + jo.put(ICollector.JsonNames.COLLECTOR_ID, collectorModel.getId()); + jo.put(ICollector.JsonNames.OPINION_ID, collectorModel.getOpinionId()); + Long actualAccountId = collectorModel.getAccountId(); + jo.put(ICollector.JsonNames.ACCOUNT_ID, collectorModel.getAccountId()); + jo.put(ICollector.JsonNames.COLLECTOR_UUID, collectorModel.getCollectorUuid()); + jo.put(ICollector.JsonNames.MODIFY_DATE, mdyhFormatter.format(collectorModel.getModifyDate())); + jo.put(ICollector.JsonNames.CREATE_DATE, mdyhFormatter.format(collectorModel.getCreateDate())); + if(null != collectorModel.getExpirationDate()){ + jo.put(ICollector.JsonNames.EXPIRATION_DATE, mdyhFormatter.format(collectorModel.getExpirationDate())); } - jo.put(ICollector.JsonNames.NAME, rowSet.getString(ICollector.ResultSetNames.COLLECTOR_NAME)); + jo.put(ICollector.JsonNames.NAME, collectorModel.getCollectorName()); - String opinionName = rowSet.getString(ICollector.ResultSetNames.OPINION_NAME); + String opinionName = collectorModel.getOpinionName(); String opinionShortName = (opinionName.length() > 20 ? opinionName.substring(0, 18) + ".." : opinionName); jo.put(ICollector.JsonNames.OPINION_NAME, opinionName); jo.put("opinionShortName", opinionShortName); - jo.put(ICollector.JsonNames.OPINION_TYPE_NAME, rowSet.getString(ICollector.ResultSetNames.OPINION_TYPE_NAME)); - jo.put(ICollector.JsonNames.STATUS_ID, rowSet.getInt(ICollector.ResultSetNames.COLLECTOR_STATUS_ID)); - jo.put(ICollector.JsonNames.SOURCE_ID, rowSet.getInt(ICollector.ResultSetNames.COLLECTOR_SOURCE_ID)); - jo.put(ICollector.JsonNames.SOURCE_NAME, rowSet.getString(ICollector.ResultSetNames.COLLECTOR_SOURCE_NAME)); - jo.put(ICollector.JsonNames.SOURCE_TYPE_ID, rowSet.getInt(ICollector.ResultSetNames.COLLECTOR_SOURCE_TYPE_ID)); - long cntStarted = rowSet.getLong(ResultSetNames.CNT_STARTED_OPINIONS); - long cntCompleted = rowSet.getLong(ResultSetNames.CNT_FINISHED_OPINIONS); + jo.put(ICollector.JsonNames.OPINION_TYPE_NAME, collectorModel.getOpinionTypeName()); + jo.put(ICollector.JsonNames.STATUS_ID, collectorModel.getCollectorStatusId()); + jo.put(ICollector.JsonNames.SOURCE_ID, collectorModel.getCollectorSourceId()); + jo.put(ICollector.JsonNames.SOURCE_NAME, collectorModel.getCollectorSourceName()); + jo.put(ICollector.JsonNames.SOURCE_TYPE_ID, collectorModel.getCollectorSourceTypeId()); + long cntStarted = collectorModel.getCntStartedOpinions(); + long cntCompleted = collectorModel.getCntFinishedOpinions(); jo.put(JsonNames.STARTED_RESPONSES, cntStarted); jo.put(JsonNames.FINISHED_RESPONSES, cntCompleted); jo.put(JsonNames.PARTIAL_RESPONSES, cntStarted - cntCompleted); diff --git a/opinion-library/src/main/java/com/inqwise/opinion/common/collectors/CollectorModel.java b/opinion-library/src/main/java/com/inqwise/opinion/common/collectors/CollectorModel.java index 39dabad..2f3668f 100644 --- a/opinion-library/src/main/java/com/inqwise/opinion/common/collectors/CollectorModel.java +++ b/opinion-library/src/main/java/com/inqwise/opinion/common/collectors/CollectorModel.java @@ -1,5 +1,8 @@ package com.inqwise.opinion.common.collectors; +import java.util.Collection; +import java.util.Date; + import org.json.JSONObject; import com.google.common.base.MoreObjects; @@ -7,29 +10,187 @@ public class CollectorModel { private Long id; + private Long opinionId; + private Long accountId; + private String collectorUuid; + private Date modifyDate; + private Date createDate; + private Date expirationDate; + private String collectorName; + private String opinionName; + private String opinionTypeName; + private Integer collectorStatusId; + private Integer collectorSourceId; + private String collectorSourceName; + private Integer collectorSourceTypeId; + private Long cntStartedOpinions; + private Long cntFinishedOpinions; private CollectorModel(Builder builder) { this.id = builder.id; + this.opinionId = builder.opinionId; + this.accountId = builder.accountId; + this.collectorUuid = builder.collectorUuid; + this.modifyDate = builder.modifyDate; + this.createDate = builder.createDate; + this.expirationDate = builder.expirationDate; + this.collectorName = builder.collectorName; + this.opinionName = builder.opinionName; + this.opinionTypeName = builder.opinionTypeName; + this.collectorStatusId = builder.collectorStatusId; + this.collectorSourceId = builder.collectorSourceId; + this.collectorSourceName = builder.collectorSourceName; + this.collectorSourceTypeId = builder.collectorSourceTypeId; + this.cntStartedOpinions = builder.cntStartedOpinions; + this.cntFinishedOpinions = builder.cntFinishedOpinions; } public static final class Keys{ - public static String ID = "id"; + public static final String ID = "id"; + public static final String OPINION_ID = "opinion_id"; + public static final String ACCOUNT_ID = "account_id"; + public static final String COLLECTOR_UUID = "collector_uuid"; + public static final String MODIFY_DATE = "modify_date"; + public static final String CREATE_DATE = "create_date"; + public static final String EXPIRATION_DATE = "expiration_date"; + public static final String COLLECTOR_NAME = "collector_name"; + public static final String OPINION_NAME = "opinion_name"; + public static final String OPINION_TYPE_NAME = "opinion_type_name"; + public static final String COLLECTOR_STATUS_ID = "collector_status_id"; + public static final String COLLECTOR_SOURCE_ID = "collector_source_id"; + public static final String COLLECTOR_SOURCE_NAME = "collector_source_id"; + public static final String COLLECTOR_SOURCE_TYPE_ID = "collector_source_type_id"; + public static final String CNT_STARTED_OPINIONS = "cnt_started_opinions"; + public static final String CNT_FINISHED_OPINIONS = "cnt_finished_opinions"; + + private Keys(Builder builder) { + } + public static Builder builder() { + return new Builder(); + } + public static Builder builderFrom(Keys keys) { + return new Builder(keys); + } + public static final class Builder { + private Builder() { + } + + private Builder(Keys keys) { + } + + public Keys build() { + return new Keys(this); + } + } + } public CollectorModel(JSONObject json) { id = json.optLongObject(Keys.ID); + opinionId = json.optLongObject(Keys.OPINION_ID); + accountId = json.optLongObject(Keys.ACCOUNT_ID); + collectorUuid = json.optString(Keys.COLLECTOR_UUID); + modifyDate = (Date) json.opt(Keys.MODIFY_DATE); + createDate = (Date) json.opt(Keys.CREATE_DATE); + expirationDate = (Date) json.opt(Keys.EXPIRATION_DATE); + collectorName = json.optString(Keys.COLLECTOR_NAME); + opinionName = json.optString(Keys.OPINION_NAME); + opinionTypeName = json.getString(Keys.OPINION_TYPE_NAME); + collectorStatusId = json.optIntegerObject(Keys.COLLECTOR_STATUS_ID); + collectorSourceId = json.optIntegerObject(Keys.COLLECTOR_SOURCE_ID); + collectorSourceName = json.optString(Keys.COLLECTOR_SOURCE_NAME); + collectorSourceTypeId = json.optIntegerObject(Keys.COLLECTOR_SOURCE_TYPE_ID); + cntStartedOpinions = json.optLongObject(Keys.CNT_STARTED_OPINIONS); + cntFinishedOpinions = json.optLongObject(Keys.CNT_FINISHED_OPINIONS); } public Long getId() { return id; } + public Long getOpinionId() { + return opinionId; + } + + public Long getAccountId() { + return accountId; + } + + public String getCollectorUuid() { + return collectorUuid; + } + + public Date getModifyDate() { + return modifyDate; + } + + public Date getCreateDate() { + return createDate; + } + + public Date getExpirationDate() { + return expirationDate; + } + + public String getCollectorName() { + return collectorName; + } + + public String getOpinionName() { + return opinionName; + } + + public String getOpinionTypeName() { + return opinionTypeName; + } + + public Integer getCollectorStatusId() { + return collectorStatusId; + } + + public Integer getCollectorSourceId() { + return collectorSourceId; + } + + public String getCollectorSourceName() { + return collectorSourceName; + } + + public Integer getCollectorSourceTypeId() { + return collectorSourceTypeId; + } + + public long getCntStartedOpinions() { + return cntStartedOpinions; + } + + public long getCntFinishedOpinions() { + return cntFinishedOpinions; + } + public JSONObject toJson() { var json = new JSONObject(); json.put(Keys.ID, id); + json.put(Keys.OPINION_ID, opinionId); + json.put(Keys.ACCOUNT_ID, accountId); + json.put(Keys.COLLECTOR_UUID, collectorUuid); + json.put(Keys.MODIFY_DATE, modifyDate.getTime()); + json.put(Keys.CREATE_DATE, createDate.getTime()); + json.put(Keys.EXPIRATION_DATE, expirationDate.getTime()); + json.put(Keys.COLLECTOR_NAME, collectorName); + json.put(Keys.OPINION_NAME, opinionName); + json.put(Keys.OPINION_TYPE_NAME, opinionTypeName); + json.put(Keys.COLLECTOR_STATUS_ID, collectorStatusId); + json.put(Keys.COLLECTOR_SOURCE_ID, collectorSourceId); + json.put(Keys.COLLECTOR_SOURCE_NAME, collectorSourceName); + json.put(Keys.COLLECTOR_SOURCE_TYPE_ID, collectorSourceTypeId); + json.put(Keys.CNT_STARTED_OPINIONS, cntStartedOpinions); + json.put(Keys.CNT_FINISHED_OPINIONS, cntFinishedOpinions); return json; - } + + } + public static Builder builder() { return new Builder(); } @@ -40,12 +201,42 @@ public static Builder builderFrom(CollectorModel collectorModel) { public static final class Builder { private Long id; + private Long opinionId; + private Long accountId; + private String collectorUuid; + private Date modifyDate; + private Date createDate; + private Date expirationDate; + private String collectorName; + private String opinionName; + private String opinionTypeName; + private Integer collectorStatusId; + private Integer collectorSourceId; + private String collectorSourceName; + private Integer collectorSourceTypeId; + private Long cntStartedOpinions; + private Long cntFinishedOpinions; private Builder() { } private Builder(CollectorModel collectorModel) { this.id = collectorModel.id; + this.opinionId = collectorModel.opinionId; + this.accountId = collectorModel.accountId; + this.collectorUuid = collectorModel.collectorUuid; + this.modifyDate = collectorModel.modifyDate; + this.createDate = collectorModel.createDate; + this.expirationDate = collectorModel.expirationDate; + this.collectorName = collectorModel.collectorName; + this.opinionName = collectorModel.opinionName; + this.opinionTypeName = collectorModel.opinionTypeName; + this.collectorStatusId = collectorModel.collectorStatusId; + this.collectorSourceId = collectorModel.collectorSourceId; + this.collectorSourceName = collectorModel.collectorSourceName; + this.collectorSourceTypeId = collectorModel.collectorSourceTypeId; + this.cntStartedOpinions = collectorModel.cntStartedOpinions; + this.cntFinishedOpinions = collectorModel.cntFinishedOpinions; } public Builder withId(Long id) { @@ -53,6 +244,81 @@ public Builder withId(Long id) { return this; } + public Builder withOpinionId(Long opinionId) { + this.opinionId = opinionId; + return this; + } + + public Builder withAccountId(Long accountId) { + this.accountId = accountId; + return this; + } + + public Builder withCollectorUuid(String collectorUuid) { + this.collectorUuid = collectorUuid; + return this; + } + + public Builder withModifyDate(Date modifyDate) { + this.modifyDate = modifyDate; + return this; + } + + public Builder withCreateDate(Date createDate) { + this.createDate = createDate; + return this; + } + + public Builder withExpirationDate(Date expirationDate) { + this.expirationDate = expirationDate; + return this; + } + + public Builder withCollectorName(String collectorName) { + this.collectorName = collectorName; + return this; + } + + public Builder withOpinionName(String opinionName) { + this.opinionName = opinionName; + return this; + } + + public Builder withOpinionTypeName(String opinionTypeName) { + this.opinionTypeName = opinionTypeName; + return this; + } + + public Builder withCollectorStatusId(Integer collectorStatusId) { + this.collectorStatusId = collectorStatusId; + return this; + } + + public Builder withCollectorSourceId(Integer collectorSourceId) { + this.collectorSourceId = collectorSourceId; + return this; + } + + public Builder withCollectorSourceName(String collectorSourceName) { + this.collectorSourceName = collectorSourceName; + return this; + } + + public Builder withCollectorSourceTypeId(Integer collectorSourceTypeId) { + this.collectorSourceTypeId = collectorSourceTypeId; + return this; + } + + public Builder withCntStartedOpinions(Long cntStartedOpinions) { + this.cntStartedOpinions = cntStartedOpinions; + return this; + } + + public Builder withCntFinishedOpinions(Long cntFinishedOpinions) { + this.cntFinishedOpinions = cntFinishedOpinions; + return this; + } + public CollectorModel build() { return new CollectorModel(this); } @@ -60,7 +326,14 @@ public CollectorModel build() { @Override public String toString() { - return MoreObjects.toStringHelper(this).add("id", id).toString(); + return MoreObjects.toStringHelper(this).add("id", id).add("opinionId", opinionId).add("accountId", accountId) + .add("collectorUuid", collectorUuid).add("modifyDate", modifyDate).add("createDate", createDate) + .add("expirationDate", expirationDate).add("collectorName", collectorName) + .add("opinionName", opinionName).add("opinionTypeName", opinionTypeName) + .add("collectorStatusId", collectorStatusId).add("collectorSourceId", collectorSourceId) + .add("collectorSourceName", collectorSourceName).add("collectorSourceTypeId", collectorSourceTypeId) + .add("cntStartedOpinions", cntStartedOpinions).add("cntFinishedOpinions", cntFinishedOpinions) + .toString(); } } diff --git a/opinion-library/src/main/java/com/inqwise/opinion/common/collectors/CollectorRepositoryParser.java b/opinion-library/src/main/java/com/inqwise/opinion/common/collectors/CollectorRepositoryParser.java index 39bb74c..e395c8a 100644 --- a/opinion-library/src/main/java/com/inqwise/opinion/common/collectors/CollectorRepositoryParser.java +++ b/opinion-library/src/main/java/com/inqwise/opinion/common/collectors/CollectorRepositoryParser.java @@ -1,11 +1,28 @@ package com.inqwise.opinion.common.collectors; +import java.util.Date; + import org.json.JSONObject; public class CollectorRepositoryParser { public CollectorModel parse(JSONObject json) { return CollectorModel.builder() .withId(json.optLongObject(ICollector.ResultSetNames.COLLECTOR_ID)) + .withOpinionId(json.optLongObject(ICollector.ResultSetNames.OPINION_ID)) + .withAccountId(json.optLongObject(ICollector.ResultSetNames.ACCOUNT_ID)) + .withCollectorUuid(json.optString(ICollector.ResultSetNames.COLLECTOR_UUID)) + .withModifyDate((Date)json.opt(ICollector.ResultSetNames.MODIFY_DATE)) + .withCreateDate((Date) json.opt(ICollector.ResultSetNames.CREATE_DATE)) + .withExpirationDate((Date) json.opt(ICollector.ResultSetNames.EXPIRATION_DATE)) + .withCollectorName(json.optString(ICollector.ResultSetNames.COLLECTOR_NAME)) + .withOpinionName(json.optString(ICollector.ResultSetNames.OPINION_NAME)) + .withOpinionTypeName(json.optString(ICollector.ResultSetNames.OPINION_TYPE_NAME)) + .withCollectorStatusId(json.optIntegerObject(ICollector.ResultSetNames.COLLECTOR_STATUS_ID)) + .withCollectorSourceId(json.optIntegerObject(ICollector.ResultSetNames.COLLECTOR_SOURCE_ID)) + .withCollectorSourceName(json.optString(ICollector.ResultSetNames.COLLECTOR_SOURCE_NAME)) + .withCollectorSourceTypeId(json.optIntegerObject(ICollector.ResultSetNames.COLLECTOR_SOURCE_TYPE_ID)) + .withCntStartedOpinions(json.optLongObject(ICollector.ResultSetNames.CNT_STARTED_OPINIONS)) + .withCntFinishedOpinions(json.optLongObject(ICollector.ResultSetNames.CNT_FINISHED_OPINIONS)) .build(); } From 734338418e37ba507bdb103de991896e8e3e3911 Mon Sep 17 00:00:00 2001 From: terra Date: Thu, 11 Jan 2024 14:47:16 +0200 Subject: [PATCH 6/7] make account model and account repository parser. --- .../opinion/handlers/AccountsEntry.java | 22 +-- .../opinion/handlers/CollectorsEntry.java | 16 +- .../library/common/accounts/AccountModel.java | 152 ++++++++++++++++++ .../accounts/AccountRepositoryParser.java | 20 +++ .../library/managers/AccountsManager.java | 22 ++- .../common/collectors/CollectorModel.java | 38 ++++- .../collectors/CollectorRepositoryParser.java | 2 + .../opinion/managers/CollectorsManager.java | 2 +- 8 files changed, 249 insertions(+), 25 deletions(-) create mode 100644 opinion-library-core/src/main/java/com/inqwise/opinion/library/common/accounts/AccountModel.java create mode 100644 opinion-library-core/src/main/java/com/inqwise/opinion/library/common/accounts/AccountRepositoryParser.java diff --git a/opinion-app-admin/src/main/webapp/com/inqwise/opinion/handlers/AccountsEntry.java b/opinion-app-admin/src/main/webapp/com/inqwise/opinion/handlers/AccountsEntry.java index e7b610c..dbf3e19 100644 --- a/opinion-app-admin/src/main/webapp/com/inqwise/opinion/handlers/AccountsEntry.java +++ b/opinion-app-admin/src/main/webapp/com/inqwise/opinion/handlers/AccountsEntry.java @@ -26,6 +26,7 @@ import com.inqwise.opinion.infrastructure.systemFramework.DateConverter; import com.inqwise.opinion.infrastructure.systemFramework.JSONHelper; import com.inqwise.opinion.library.common.IProduct; +import com.inqwise.opinion.library.common.accounts.AccountModel; import com.inqwise.opinion.library.common.accounts.AccountOperationsReferenceType; import com.inqwise.opinion.library.common.accounts.AccountsOperationsType; import com.inqwise.opinion.library.common.accounts.IAccount; @@ -76,19 +77,20 @@ public JSONObject getAccounts(JSONObject input) throws JSONException, CDataGridE Date fromDate = JSONHelper.optDate(input, "fromDate"); Date toDate = JSONHelper.optDate(input, "toDate"); - CDataCacheContainer dsAccounts = AccountsManager.getAccounts(userId, productId, top, includeNonActive, fromDate, toDate, null); - CDataRowSet rowSet = dsAccounts.getAll(); - if(rowSet.size() > 0){ + List accountList = AccountsManager.getAccounts(userId, productId, top, includeNonActive, fromDate, toDate, null); + JSONArray ja = new JSONArray(); + + if(accountList.size() > 0){ output = new JSONObject(); JSONArray list = new JSONArray(); - while(rowSet.next()){ + for(var accountModel : accountList){ JSONObject item = new JSONObject(); - item.put(IAccount.JsonNames.ACCOUNT_ID, rowSet.getLong(IAccount.ResultSetNames.ACCOUNT_ID)); - item.put(IAccount.JsonNames.SERVICE_PACKAGE_NAME, rowSet.getString(IAccount.ResultSetNames.SERVICE_PACKAGE_NAME)); - item.put(IAccount.JsonNames.ACCOUNT_NAME, rowSet.getString(IAccount.ResultSetNames.ACCOUNT_NAME)); - item.put(IAccount.JsonNames.OWNER_ID, rowSet.getLong(IAccount.ResultSetNames.OWNER_ID)); - item.put(IAccount.JsonNames.INSERT_DATE, mdyhmsFormatter.format(rowSet.getDate(IAccount.ResultSetNames.INSERT_DATE))); - item.put(IAccount.JsonNames.IS_ACTIVE, rowSet.getBoolean(IAccount.ResultSetNames.IS_ACTIVE)); + item.put(IAccount.JsonNames.ACCOUNT_ID, accountModel.getAccountId()); + item.put(IAccount.JsonNames.SERVICE_PACKAGE_NAME, accountModel.getServicePackageName()); + item.put(IAccount.JsonNames.ACCOUNT_NAME, accountModel.getAccountName()); + item.put(IAccount.JsonNames.OWNER_ID, accountModel.getOwnerId()); + item.put(IAccount.JsonNames.INSERT_DATE, mdyhmsFormatter.format(accountModel.getInsertDate())); + item.put(IAccount.JsonNames.IS_ACTIVE, accountModel.getIsActive()); list.put(item); } diff --git a/opinion-app-admin/src/main/webapp/com/inqwise/opinion/handlers/CollectorsEntry.java b/opinion-app-admin/src/main/webapp/com/inqwise/opinion/handlers/CollectorsEntry.java index 78c2d3c..baebab9 100644 --- a/opinion-app-admin/src/main/webapp/com/inqwise/opinion/handlers/CollectorsEntry.java +++ b/opinion-app-admin/src/main/webapp/com/inqwise/opinion/handlers/CollectorsEntry.java @@ -92,15 +92,15 @@ public JSONObject getCollectors(JSONObject input) throws CDataGridException, JSO jo.put(ICollector.JsonNames.SOURCE_TYPE_ID, collectorModel.getCollectorSourceTypeId()); long cntStarted = collectorModel.getCntStartedOpinions(); long cntCompleted = collectorModel.getCntFinishedOpinions(); - jo.put(JsonNames.STARTED_RESPONSES, cntStarted); - jo.put(JsonNames.FINISHED_RESPONSES, cntCompleted); - jo.put(JsonNames.PARTIAL_RESPONSES, cntStarted - cntCompleted); - jo.put(JsonNames.COMPLETION_RATE, (cntStarted > 0 ? Math.round((cntCompleted * 1d / cntStarted * 1d) * 100.0) : 0)); - if(null != rowSet.getDate(ICollector.ResultSetNames.LAST_START_DATE)){ - jo.put(ICollector.JsonNames.LAST_RESPONSE_DATE, formatter.format(rowSet.getDate(ICollector.ResultSetNames.LAST_START_DATE))); + jo.put(ICollector.JsonNames.STARTED_RESPONSES, cntStarted); + jo.put(ICollector.JsonNames.FINISHED_RESPONSES, cntCompleted); + jo.put(ICollector.JsonNames.PARTIAL_RESPONSES, cntStarted - cntCompleted); + jo.put(ICollector.JsonNames.COMPLETION_RATE, (cntStarted > 0 ? Math.round((cntCompleted * 1d / cntStarted * 1d) * 100.0) : 0)); + if(null != collectorModel.getLastStartDate()){ + jo.put(ICollector.JsonNames.LAST_RESPONSE_DATE, formatter.format(collectorModel.getLastStartDate())); } - if(null != rowSet.getDouble(ICollector.ResultSetNames.AVG_TIME_TAKEN_SEC)){ - jo.put(ICollector.JsonNames.TIME_TAKEN, JSONHelper.getTimeSpanSec(Math.round(rowSet.getDouble(ICollector.ResultSetNames.AVG_TIME_TAKEN_SEC)))); + if(null != collectorModel.getAvgTimeTakenSec()){ + jo.put(ICollector.JsonNames.TIME_TAKEN, JSONHelper.getTimeSpanSec(Math.round(collectorModel.getAvgTimeTakenSec()))); } ja.put(jo); diff --git a/opinion-library-core/src/main/java/com/inqwise/opinion/library/common/accounts/AccountModel.java b/opinion-library-core/src/main/java/com/inqwise/opinion/library/common/accounts/AccountModel.java new file mode 100644 index 0000000..a26350d --- /dev/null +++ b/opinion-library-core/src/main/java/com/inqwise/opinion/library/common/accounts/AccountModel.java @@ -0,0 +1,152 @@ +package com.inqwise.opinion.library.common.accounts; + +import java.util.Collection; +import java.util.Date; + +import org.json.JSONObject; +import com.google.common.base.MoreObjects; + +public class AccountModel { + + private Long accountId; + private String servicePackageName; + private String accountName; + private Long ownerId; + private Date insertDate; + private Boolean isActive; + + private AccountModel(Builder builder) { + this.accountId = builder.accountId; + this.servicePackageName = builder.servicePackageName; + this.accountName = builder.accountName; + this.ownerId = builder.ownerId; + this.insertDate = builder.insertDate; + this.isActive = builder.isActive; + } + + public static final class Keys{ + + public static final String ACCOUNT_ID = "account_id"; + public static final String SERVICE_PACKAGE_NAME = "service_package_name"; + public static final String ACCOUNT_NAME = "account_name"; + public static final String OWNER_ID = "owner_id"; + public static final String INSERT_DATE = "insert_date"; + public static final String IS_ACTIVE = "is_active"; + + } + + public AccountModel(JSONObject json) { + accountId = json.optLongObject(Keys.ACCOUNT_ID); + servicePackageName = json.optString(Keys.SERVICE_PACKAGE_NAME); + accountName = json.optString(Keys.ACCOUNT_NAME); + ownerId = json.optLongObject(Keys.OWNER_ID); + insertDate = (Date) json.opt(Keys.INSERT_DATE); + isActive = json.optBooleanObject(Keys.IS_ACTIVE); + } + + public Long getAccountId() { + return accountId; + } + + public String getServicePackageName() { + return servicePackageName; + } + + public String getAccountName() { + return accountName; + } + + public Long getOwnerId() { + return ownerId; + } + + public Date getInsertDate() { + return insertDate; + } + + public Boolean getIsActive() { + return isActive; + } + + public JSONObject toJson() { + var json = new JSONObject(); + json.put(Keys.ACCOUNT_ID, accountId); + json.put(Keys.SERVICE_PACKAGE_NAME, servicePackageName); + json.put(Keys.ACCOUNT_NAME, accountName); + json.put(Keys.OWNER_ID, ownerId); + json.put(Keys.INSERT_DATE, insertDate); + json.put(Keys.IS_ACTIVE, isActive); + return json; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builderFrom(AccountModel accountModel) { + return new Builder(accountModel); + } + + public static final class Builder { + private Long accountId; + private String servicePackageName; + private String accountName; + private Long ownerId; + private Date insertDate; + private Boolean isActive; + + private Builder() { + } + + private Builder(AccountModel accountModel) { + this.accountId = accountModel.accountId; + this.servicePackageName = accountModel.servicePackageName; + this.accountName = accountModel.accountName; + this.ownerId = accountModel.ownerId; + this.insertDate = accountModel.insertDate; + this.isActive = accountModel.isActive; + } + + public Builder withAccountId(Long accountId) { + this.accountId = accountId; + return this; + } + + public Builder withServicePackageName(String servicePackageName) { + this.servicePackageName = servicePackageName; + return this; + } + + public Builder withAccountName(String accountName) { + this.accountName = accountName; + return this; + } + + public Builder withOwnerId(Long ownerId) { + this.ownerId = ownerId; + return this; + } + + public Builder withInsertDate(Date insertDate) { + this.insertDate = insertDate; + return this; + } + + public Builder withIsActive(Boolean isActive) { + this.isActive = isActive; + return this; + } + + public AccountModel build() { + return new AccountModel(this); + } + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this).add("accountId", accountId) + .add("servicePackageName", servicePackageName).add("accountName", accountName).add("ownerId", ownerId) + .add("insertDate", insertDate).add("isActive", isActive).toString(); + } + +} diff --git a/opinion-library-core/src/main/java/com/inqwise/opinion/library/common/accounts/AccountRepositoryParser.java b/opinion-library-core/src/main/java/com/inqwise/opinion/library/common/accounts/AccountRepositoryParser.java new file mode 100644 index 0000000..48684b5 --- /dev/null +++ b/opinion-library-core/src/main/java/com/inqwise/opinion/library/common/accounts/AccountRepositoryParser.java @@ -0,0 +1,20 @@ +package com.inqwise.opinion.library.common.accounts; + +import java.util.Date; + +import org.json.JSONObject; + +public class AccountRepositoryParser { + public AccountRepositoryParser() {} + public AccountModel parse(JSONObject json) { + return AccountModel.builder() + .withAccountId(json.optLongObject(IAccount.ResultSetNames.ACCOUNT_ID)) + .withServicePackageName(json.optString(IAccount.ResultSetNames.SERVICE_PACKAGE_NAME)) + .withAccountName(json.optString(IAccount.ResultSetNames.ACCOUNT_NAME)) + .withOwnerId(json.optLongObject(IAccount.ResultSetNames.OWNER_ID)) + .withInsertDate((Date) json.opt(IAccount.ResultSetNames.INSERT_DATE)) + .withIsActive(json.optBooleanObject(IAccount.ResultSetNames.IS_ACTIVE)) + .build(); + } + +} diff --git a/opinion-library-core/src/main/java/com/inqwise/opinion/library/managers/AccountsManager.java b/opinion-library-core/src/main/java/com/inqwise/opinion/library/managers/AccountsManager.java index d5a1760..0b7c39c 100644 --- a/opinion-library-core/src/main/java/com/inqwise/opinion/library/managers/AccountsManager.java +++ b/opinion-library-core/src/main/java/com/inqwise/opinion/library/managers/AccountsManager.java @@ -2,10 +2,15 @@ import java.sql.ResultSet; import java.util.Date; +import java.util.List; import java.util.UUID; import java.util.concurrent.TimeUnit; +import java.util.function.Consumer; +import java.util.function.Function; +import org.apache.logging.log4j.core.util.JsonUtils; import org.json.JSONArray; +import org.json.JSONObject; import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; @@ -14,6 +19,9 @@ import com.inqwise.opinion.infrastructure.dao.DAOException; import com.inqwise.opinion.infrastructure.dao.IResultSetCallback; import com.inqwise.opinion.infrastructure.systemFramework.ApplicationLog; +import com.inqwise.opinion.infrastructure.systemFramework.JSONHelper; +import com.inqwise.opinion.library.common.accounts.AccountModel; +import com.inqwise.opinion.library.common.accounts.AccountRepositoryParser; import com.inqwise.opinion.library.common.accounts.IAccountBillingSettingsChangeRequest; import com.inqwise.opinion.library.common.accounts.IAccountBusinessDetails; import com.inqwise.opinion.library.common.accounts.IAccountBusinessDetailsChangeRequest; @@ -32,11 +40,19 @@ public class AccountsManager { static ApplicationLog logger = ApplicationLog.getLogger(AccountsManager.class); - public static JSONArray getAccounts(Long userId, int productId, + public static List getAccounts(Long userId, int productId, Integer top, boolean includeNonActive, Date fromDate, Date toDate, Long[] accountIds) { try { - return AccountsDataAccess.getAccounts(userId, productId, includeNonActive, top, fromDate, toDate, accountIds); - + return JSONHelper.toListOfModel(AccountsDataAccess + .getAccounts(userId, productId, + includeNonActive, top, + fromDate, toDate, accountIds), + new Function() { + @Override + public AccountModel apply(JSONObject json) { + return new AccountRepositoryParser().parse(json); + } + }); } catch (DAOException e) { throw new Error(e); } diff --git a/opinion-library/src/main/java/com/inqwise/opinion/common/collectors/CollectorModel.java b/opinion-library/src/main/java/com/inqwise/opinion/common/collectors/CollectorModel.java index 2f3668f..45c5162 100644 --- a/opinion-library/src/main/java/com/inqwise/opinion/common/collectors/CollectorModel.java +++ b/opinion-library/src/main/java/com/inqwise/opinion/common/collectors/CollectorModel.java @@ -25,6 +25,8 @@ public class CollectorModel { private Integer collectorSourceTypeId; private Long cntStartedOpinions; private Long cntFinishedOpinions; + private Date lastStartDate; + private Double avgTimeTakenSec; private CollectorModel(Builder builder) { this.id = builder.id; @@ -43,6 +45,8 @@ private CollectorModel(Builder builder) { this.collectorSourceTypeId = builder.collectorSourceTypeId; this.cntStartedOpinions = builder.cntStartedOpinions; this.cntFinishedOpinions = builder.cntFinishedOpinions; + this.lastStartDate = builder.lastStartDate; + this.avgTimeTakenSec = builder.avgTimeTakenSec; } public static final class Keys{ @@ -62,6 +66,8 @@ public static final class Keys{ public static final String COLLECTOR_SOURCE_TYPE_ID = "collector_source_type_id"; public static final String CNT_STARTED_OPINIONS = "cnt_started_opinions"; public static final String CNT_FINISHED_OPINIONS = "cnt_finished_opinions"; + public static final String LAST_START_DATE = "last_start_date"; + public static final String AVG_TIME_TAKEN_SEC = "avg_time_taken_sec"; private Keys(Builder builder) { } @@ -102,6 +108,8 @@ public CollectorModel(JSONObject json) { collectorSourceTypeId = json.optIntegerObject(Keys.COLLECTOR_SOURCE_TYPE_ID); cntStartedOpinions = json.optLongObject(Keys.CNT_STARTED_OPINIONS); cntFinishedOpinions = json.optLongObject(Keys.CNT_FINISHED_OPINIONS); + lastStartDate = (Date) json.opt(Keys.LAST_START_DATE); + avgTimeTakenSec = json.optDouble(Keys.AVG_TIME_TAKEN_SEC); } public Long getId() { @@ -160,14 +168,22 @@ public Integer getCollectorSourceTypeId() { return collectorSourceTypeId; } - public long getCntStartedOpinions() { + public Long getCntStartedOpinions() { return cntStartedOpinions; } - public long getCntFinishedOpinions() { + public Long getCntFinishedOpinions() { return cntFinishedOpinions; } + public Date getLastStartDate() { + return lastStartDate; + } + + public Double getAvgTimeTakenSec() { + return avgTimeTakenSec; + } + public JSONObject toJson() { var json = new JSONObject(); json.put(Keys.ID, id); @@ -186,6 +202,8 @@ public JSONObject toJson() { json.put(Keys.COLLECTOR_SOURCE_TYPE_ID, collectorSourceTypeId); json.put(Keys.CNT_STARTED_OPINIONS, cntStartedOpinions); json.put(Keys.CNT_FINISHED_OPINIONS, cntFinishedOpinions); + json.put(Keys.LAST_START_DATE, lastStartDate.getTime()); + json.put(Keys.AVG_TIME_TAKEN_SEC, avgTimeTakenSec); return json; @@ -216,6 +234,8 @@ public static final class Builder { private Integer collectorSourceTypeId; private Long cntStartedOpinions; private Long cntFinishedOpinions; + private Date lastStartDate; + private Double avgTimeTakenSec; private Builder() { } @@ -237,6 +257,8 @@ private Builder(CollectorModel collectorModel) { this.collectorSourceTypeId = collectorModel.collectorSourceTypeId; this.cntStartedOpinions = collectorModel.cntStartedOpinions; this.cntFinishedOpinions = collectorModel.cntFinishedOpinions; + this.lastStartDate = collectorModel.lastStartDate; + this.avgTimeTakenSec = collectorModel.avgTimeTakenSec; } public Builder withId(Long id) { @@ -319,6 +341,16 @@ public Builder withCntFinishedOpinions(Long cntFinishedOpinions) { return this; } + public Builder withLastStartDate(Date lastStartDate) { + this.lastStartDate = lastStartDate; + return this; + } + + public Builder withAvgTimeTakenSec(Double avgTimeTakenSec) { + this.avgTimeTakenSec = avgTimeTakenSec; + return this; + } + public CollectorModel build() { return new CollectorModel(this); } @@ -333,7 +365,7 @@ public String toString() { .add("collectorStatusId", collectorStatusId).add("collectorSourceId", collectorSourceId) .add("collectorSourceName", collectorSourceName).add("collectorSourceTypeId", collectorSourceTypeId) .add("cntStartedOpinions", cntStartedOpinions).add("cntFinishedOpinions", cntFinishedOpinions) - .toString(); + .add("lastStartDate", lastStartDate).add("avgTimeTakenSec", avgTimeTakenSec).toString(); } } diff --git a/opinion-library/src/main/java/com/inqwise/opinion/common/collectors/CollectorRepositoryParser.java b/opinion-library/src/main/java/com/inqwise/opinion/common/collectors/CollectorRepositoryParser.java index e395c8a..fb0f001 100644 --- a/opinion-library/src/main/java/com/inqwise/opinion/common/collectors/CollectorRepositoryParser.java +++ b/opinion-library/src/main/java/com/inqwise/opinion/common/collectors/CollectorRepositoryParser.java @@ -23,6 +23,8 @@ public CollectorModel parse(JSONObject json) { .withCollectorSourceTypeId(json.optIntegerObject(ICollector.ResultSetNames.COLLECTOR_SOURCE_TYPE_ID)) .withCntStartedOpinions(json.optLongObject(ICollector.ResultSetNames.CNT_STARTED_OPINIONS)) .withCntFinishedOpinions(json.optLongObject(ICollector.ResultSetNames.CNT_FINISHED_OPINIONS)) + .withLastStartDate((Date) json.opt(ICollector.ResultSetNames.LAST_START_DATE)) + .withAvgTimeTakenSec(json.optDoubleObject(ICollector.ResultSetNames.AVG_TIME_TAKEN_SEC)) .build(); } diff --git a/opinion-library/src/main/java/com/inqwise/opinion/managers/CollectorsManager.java b/opinion-library/src/main/java/com/inqwise/opinion/managers/CollectorsManager.java index cce3265..5cc705c 100644 --- a/opinion-library/src/main/java/com/inqwise/opinion/managers/CollectorsManager.java +++ b/opinion-library/src/main/java/com/inqwise/opinion/managers/CollectorsManager.java @@ -201,7 +201,7 @@ public static List getMeny(Long opinionId, Long accountId, boole JSONArray arr = CollectorsDataAccess.getCollectors(opinionId, accountId, includeExpired, top, from, to, collectorsStatusIds, orderBy); arr.forEach(itm -> { - list.add(new CollectorRepositoryParser().parse((JSONObject)itm)); + list.add(new CollectorRepositoryParser().parse((JSONObject)itm)); }); return list; From df2d82c4eaaaefde0d6c00f9109ee0e8b6e063a3 Mon Sep 17 00:00:00 2001 From: terra Date: Fri, 12 Jan 2024 13:45:39 +0200 Subject: [PATCH 7/7] AccountModel support --- .../opinion/handlers/CollectorsEntry.java | 18 +++++++++--------- .../opinion/handlers/OpinionsEntry.java | 18 +++++++++--------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/opinion-app-admin/src/main/webapp/com/inqwise/opinion/handlers/CollectorsEntry.java b/opinion-app-admin/src/main/webapp/com/inqwise/opinion/handlers/CollectorsEntry.java index baebab9..a05f50a 100644 --- a/opinion-app-admin/src/main/webapp/com/inqwise/opinion/handlers/CollectorsEntry.java +++ b/opinion-app-admin/src/main/webapp/com/inqwise/opinion/handlers/CollectorsEntry.java @@ -23,6 +23,7 @@ import com.inqwise.opinion.infrastructure.systemFramework.ApplicationLog; import com.inqwise.opinion.infrastructure.systemFramework.JSONHelper; import com.inqwise.opinion.library.common.IProduct; +import com.inqwise.opinion.library.common.accounts.AccountModel; import com.inqwise.opinion.library.common.accounts.IAccount; import com.inqwise.opinion.library.common.errorHandle.BaseOperationResult; import com.inqwise.opinion.library.common.errorHandle.ErrorCode; @@ -121,9 +122,9 @@ public JSONObject getCollectors(JSONObject input) throws CDataGridException, JSO if(null == accountId){ accountIds = getArrayFromKeys(collectorsByAccountId); IProduct product = ProductsManager.getProductByGuid(ApplicationConfiguration.Opinion.getProductGuid()).getValue(); - CDataCacheContainer dsAccounts = AccountsManager.getAccounts(null, product.getId(), top, true, null, null, accountIds); - if(dsAccounts.size() > 0){ - fillAccountDetails(dsAccounts, collectorsByAccountId); + List accountList = AccountsManager.getAccounts(null, product.getId(), top, true, null, null, accountIds); + if(accountList.size() > 0){ + fillAccountDetails(accountList, collectorsByAccountId); } } @@ -133,13 +134,12 @@ public JSONObject getCollectors(JSONObject input) throws CDataGridException, JSO return output; } - private void fillAccountDetails(CDataCacheContainer dsAccounts, - LinkedHashMap> collectorsByAccountId) throws JSONException, CDataGridException { - CDataRowSet rowSet = dsAccounts.getAll(); - while(rowSet.next()){ - List joList = collectorsByAccountId.get(rowSet.getLong(IAccount.ResultSetNames.ACCOUNT_ID)); + private void fillAccountDetails(List list, + LinkedHashMap> collectorsByAccountId) throws JSONException { + for(var accountModel : list){ + List joList = collectorsByAccountId.get(accountModel.getAccountId()); for (JSONObject jo : joList) { - jo.put(ICollector.JsonNames.ACCOUNT_NAME, rowSet.getString(IAccount.ResultSetNames.ACCOUNT_NAME)); + jo.put(ICollector.JsonNames.ACCOUNT_NAME, accountModel.getAccountName()); } } } diff --git a/opinion-app-admin/src/main/webapp/com/inqwise/opinion/handlers/OpinionsEntry.java b/opinion-app-admin/src/main/webapp/com/inqwise/opinion/handlers/OpinionsEntry.java index ae31ac0..246664e 100644 --- a/opinion-app-admin/src/main/webapp/com/inqwise/opinion/handlers/OpinionsEntry.java +++ b/opinion-app-admin/src/main/webapp/com/inqwise/opinion/handlers/OpinionsEntry.java @@ -24,6 +24,7 @@ import com.inqwise.opinion.infrastructure.systemFramework.ApplicationLog; import com.inqwise.opinion.infrastructure.systemFramework.JSONHelper; import com.inqwise.opinion.library.common.IProduct; +import com.inqwise.opinion.library.common.accounts.AccountModel; import com.inqwise.opinion.library.common.accounts.IAccount; import com.inqwise.opinion.library.common.accounts.IAccountView; import com.inqwise.opinion.library.common.errorHandle.BaseOperationResult; @@ -108,9 +109,9 @@ public JSONObject getList(JSONObject input) throws JSONException, CDataGridExcep if(null == accountId){ accountIds = getArrayFromKeys(surveysByAccountId); IProduct product = ProductsManager.getProductByGuid(ApplicationConfiguration.Opinion.getProductGuid()).getValue(); - CDataCacheContainer dsAccounts = AccountsManager.getAccounts(null, product.getId(), top, true, null, null, accountIds); - if(dsAccounts.size() > 0){ - fillAccountDetails(dsAccounts, surveysByAccountId); + List accountList = AccountsManager.getAccounts(null, product.getId(), top, true, null, null, accountIds); + if(accountList.size() > 0){ + fillAccountDetails(accountList, surveysByAccountId); } } @@ -119,13 +120,12 @@ public JSONObject getList(JSONObject input) throws JSONException, CDataGridExcep return output; } - private void fillAccountDetails(CDataCacheContainer dsAccounts, - LinkedHashMap> collectorsByAccountId) throws JSONException, CDataGridException { - CDataRowSet rowSet = dsAccounts.getAll(); - while(rowSet.next()){ - List joList = collectorsByAccountId.get(rowSet.getLong(IAccount.ResultSetNames.ACCOUNT_ID)); + private void fillAccountDetails(List accountList, + LinkedHashMap> collectorsByAccountId) throws JSONException { + for(AccountModel model : accountList){ + List joList = collectorsByAccountId.get(model.getAccountId()); for (JSONObject jo : joList) { - jo.put(IOpinion.JsonNames.ACCOUNT_NAME, rowSet.getString(IAccount.ResultSetNames.ACCOUNT_NAME)); + jo.put(IOpinion.JsonNames.ACCOUNT_NAME, model.getAccountName()); } } }