From 76c5dcd1841e59b08b3f784031d8b97e1af729cf Mon Sep 17 00:00:00 2001 From: terra Date: Sun, 14 Jan 2024 16:21:49 +0200 Subject: [PATCH 1/2] countries statistics sup --- .../opinion/handlers/AccountsEntry.java | 6 +- .../opinion/handlers/CollectorsEntry.java | 8 +- .../com/inqwise/opinion/handlers/Entry.java | 4 +- .../opinion/facade/front/ResponsesEntry.java | 19 ++- .../library/common/accounts/AccountModel.java | 2 +- .../common/CountriesStatisticsModel.java | 149 ++++++++++++++++++ .../CountriesStatisticsRepositoryParser.java | 17 ++ .../opinion/managers/ResultsManager.java | 10 +- 8 files changed, 191 insertions(+), 24 deletions(-) create mode 100644 opinion-library/src/main/java/com/inqwise/opinion/common/CountriesStatisticsModel.java create mode 100644 opinion-library/src/main/java/com/inqwise/opinion/common/CountriesStatisticsRepositoryParser.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 8c297a6..6cbc81c 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 @@ -20,10 +20,13 @@ import org.json.JSONException; import org.json.JSONObject; +import com.inqwise.opinion.common.IOpinionAccount; +import com.inqwise.opinion.common.IPostmasterContext; import com.inqwise.opinion.infrastructure.common.BulkOperationResults; import com.inqwise.opinion.infrastructure.common.IOperationResult; import com.inqwise.opinion.infrastructure.systemFramework.ApplicationLog; import com.inqwise.opinion.infrastructure.systemFramework.DateConverter; +import com.inqwise.opinion.infrastructure.systemFramework.GeoIpManager; import com.inqwise.opinion.infrastructure.systemFramework.JSONHelper; import com.inqwise.opinion.library.common.IProduct; import com.inqwise.opinion.library.common.accounts.AccountModel; @@ -50,9 +53,6 @@ import com.inqwise.opinion.library.managers.ParametersManager; import com.inqwise.opinion.library.managers.ProductsManager; import com.inqwise.opinion.library.managers.ServicePackagesManager; -import com.inqwise.opinion.library.systemFramework.GeoIpManager; -import com.inqwise.opinion.common.IOpinionAccount; -import com.inqwise.opinion.common.IPostmasterContext; import net.casper.data.model.CDataCacheContainer; import net.casper.data.model.CDataGridException; 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 a05f50a..fab92d6 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 @@ -36,10 +36,6 @@ 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 { static ApplicationLog logger = ApplicationLog.getLogger(CollectorsEntry.class); @@ -48,7 +44,7 @@ protected CollectorsEntry(IPostmasterContext context) { super(context); } - public JSONObject getCollectors(JSONObject input) throws CDataGridException, JSONException{ + public JSONObject getCollectors(JSONObject input) throws JSONException{ JSONObject output; int top = JSONHelper.optInt(input, "top", 100); Long opinionId = JSONHelper.optLong(input, "opinionId"); @@ -282,7 +278,7 @@ public JSONObject deleteCollector(JSONObject input) { if(null == result){ Long collectorId = JSONHelper.optLong(input, - JsonNames.COLLECTOR_ID); + ICollector.JsonNames.COLLECTOR_ID); BaseOperationResult deleteResult = CollectorsManager .delete(collectorId, null, userId); if (deleteResult.hasError()) { diff --git a/opinion-app-admin/src/main/webapp/com/inqwise/opinion/handlers/Entry.java b/opinion-app-admin/src/main/webapp/com/inqwise/opinion/handlers/Entry.java index 154576f..414329a 100644 --- a/opinion-app-admin/src/main/webapp/com/inqwise/opinion/handlers/Entry.java +++ b/opinion-app-admin/src/main/webapp/com/inqwise/opinion/handlers/Entry.java @@ -1,7 +1,7 @@ package com.inqwise.opinion.handlers; -import com.inqwise.opinion.opinion.common.IPostmasterContext; -import com.inqwise.opinion.opinion.common.IPostmasterObject; +import com.inqwise.opinion.common.IPostmasterContext; +import com.inqwise.opinion.common.IPostmasterObject; public abstract class Entry implements IPostmasterObject { //static ApplicationLog logger = ApplicationLog.getLogger(Entry.class); diff --git a/opinion-facade/src/main/java/com/inqwise/opinion/facade/front/ResponsesEntry.java b/opinion-facade/src/main/java/com/inqwise/opinion/facade/front/ResponsesEntry.java index 2957951..f12ab17 100644 --- a/opinion-facade/src/main/java/com/inqwise/opinion/facade/front/ResponsesEntry.java +++ b/opinion-facade/src/main/java/com/inqwise/opinion/facade/front/ResponsesEntry.java @@ -15,6 +15,7 @@ import org.json.JSONObject; import com.inqwise.opinion.common.AnswererSessionModel; +import com.inqwise.opinion.common.CountriesStatisticsModel; import com.inqwise.opinion.common.IAnswererSession; import com.inqwise.opinion.common.IPostmasterContext; import com.inqwise.opinion.common.IPostmasterObject; @@ -196,7 +197,6 @@ public JSONObject getAnswererResults(JSONObject input) throws IOException, JSONE boolean includePartialAnswers = includePartial; boolean includePartialStatistics = includePartial; - Long sheetId = JSONHelper.optLong(input, "sheetId"); OperationResult> controlsResult = ResultsManager .getAnalizeControls(opinionId, account.getId(), answererSessionId, collectorId, includePartialAnswers, includePartialStatistics, true); @@ -347,25 +347,24 @@ public JSONObject getCountriesStatistics(JSONObject input) throws NullPointerExc } if(null == result){ - CDataCacheContainer opinionsDataSet = ResultsManager.getCountriesStatistics(opinionId, account.getId(), account.removeDateOffset(from), account.removeDateOffset(to), collectorId, includePartial); - CDataRowSet rowSet = opinionsDataSet.getAll(); + List countriesStatisticsList = ResultsManager.getCountriesStatistics(opinionId, account.getId(), account.removeDateOffset(from), account.removeDateOffset(to), collectorId, includePartial); JSONArray ja = new JSONArray(); - while(rowSet.next()){ + for(var countriesStatisticsModel : countriesStatisticsList){ JSONObject item = new JSONObject(); - Integer countryId = (rowSet.getInt("country_id")); + Integer countryId = (countriesStatisticsModel.getCountryId()); if(null == countryId){ item.put("countryName", "Other"); item.put("iso2", "oo"); } else { item.put("countryId", countryId); - item.put("countryName", rowSet.getString("country_name")); - item.put("iso2", rowSet.getString("iso2").toLowerCase()); + item.put("countryName", countriesStatisticsModel.getCountryName()); + item.put("iso2", countriesStatisticsModel.getIso2()); } - Long timeTakenSec = rowSet.getLong("time_taken_sec"); - Long cntStarted = rowSet.getLong("started"); - Long cntCompleted = rowSet.getLong("completed"); + Long timeTakenSec = countriesStatisticsModel.getTimeTakenSec(); + Long cntStarted = countriesStatisticsModel.getCntStarted(); + Long cntCompleted = countriesStatisticsModel.getCntCompleted(); Long cntPartial = cntStarted - cntCompleted; item.put("started", cntStarted); item.put("completed", cntCompleted); 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 index a26350d..41dc444 100644 --- 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 @@ -1,9 +1,9 @@ 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 { diff --git a/opinion-library/src/main/java/com/inqwise/opinion/common/CountriesStatisticsModel.java b/opinion-library/src/main/java/com/inqwise/opinion/common/CountriesStatisticsModel.java new file mode 100644 index 0000000..0da35ad --- /dev/null +++ b/opinion-library/src/main/java/com/inqwise/opinion/common/CountriesStatisticsModel.java @@ -0,0 +1,149 @@ +package com.inqwise.opinion.common; + +import org.json.JSONObject; + +import com.google.common.base.MoreObjects; + +public class CountriesStatisticsModel { + + private Integer countryId; + private String countryName; + private String iso2; + private Long timeTakenSec; + private Long cntStarted; + private Long cntCompleted; + + private CountriesStatisticsModel(Builder builder) { + this.countryId = builder.countryId; + this.countryName = builder.countryName; + this.iso2 = builder.iso2; + this.timeTakenSec = builder.timeTakenSec; + this.cntStarted = builder.cntStarted; + this.cntCompleted = builder.cntCompleted; + } + + public static final class Keys{ + public static final String COUNTRY_ID = "country_id"; + public static final String COUNTRY_NAME = "country_name"; + public static final String ISO2 = "iso2"; + public static final String TIME_TAKEN_SEC = "time_taken_sec"; + public static final String CNT_STARTED = "cnt_started"; + public static final String CNT_COMPLETED = "cnt_completed"; + } + + public CountriesStatisticsModel(JSONObject json) { + countryId = json.optIntegerObject(Keys.COUNTRY_ID); + countryName = json.optString(Keys.COUNTRY_NAME); + iso2 = json.optString(Keys.ISO2); + timeTakenSec = json.optLongObject(Keys.TIME_TAKEN_SEC); + cntStarted = json.optLongObject(Keys.CNT_STARTED); + cntCompleted = json.optLongObject(Keys.CNT_COMPLETED); + + } + + public Integer getCountryId() { + return countryId; + } + + public String getCountryName() { + return countryName; + } + + public String getIso2() { + return iso2; + } + + public Long getTimeTakenSec() { + return timeTakenSec; + } + + public Long getCntStarted() { + return cntStarted; + } + + public Long getCntCompleted() { + return cntCompleted; + } + + public JSONObject toJson() { + var json = new JSONObject(); + json.put(Keys.COUNTRY_ID, countryId); + json.put(Keys.COUNTRY_NAME, countryName); + json.put(Keys.ISO2, iso2); + json.put(Keys.TIME_TAKEN_SEC, timeTakenSec); + json.put(Keys.CNT_STARTED, cntStarted); + json.put(Keys.CNT_COMPLETED, cntCompleted); + return json; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builderFrom(CountriesStatisticsModel countriesStatisticsModel) { + return new Builder(countriesStatisticsModel); + } + + public static final class Builder { + private Integer countryId; + private String countryName; + private String iso2; + private Long timeTakenSec; + private Long cntStarted; + private Long cntCompleted; + + private Builder() { + } + + private Builder(CountriesStatisticsModel countriesStatisticsModel) { + this.countryId = countriesStatisticsModel.countryId; + this.countryName = countriesStatisticsModel.countryName; + this.iso2 = countriesStatisticsModel.iso2; + this.timeTakenSec = countriesStatisticsModel.timeTakenSec; + this.cntStarted = countriesStatisticsModel.cntStarted; + this.cntCompleted = countriesStatisticsModel.cntCompleted; + } + + public Builder withCountryId(Integer countryId) { + this.countryId = countryId; + return this; + } + + public Builder withCountryName(String countryName) { + this.countryName = countryName; + return this; + } + + public Builder withIso2(String iso2) { + this.iso2 = iso2; + return this; + } + + public Builder withTimeTakenSec(Long timeTakenSec) { + this.timeTakenSec = timeTakenSec; + return this; + } + + public Builder withCntStarted(Long cntStarted) { + this.cntStarted = cntStarted; + return this; + } + + public Builder withCntCompleted(Long cntCompleted) { + this.cntCompleted = cntCompleted; + return this; + } + + public CountriesStatisticsModel build() { + return new CountriesStatisticsModel(this); + } + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this).add("countryId", countryId).add("countryName", countryName) + .add("iso2", iso2).add("timeTakenSec", timeTakenSec).add("cntStarted", cntStarted) + .add("cntCompleted", cntCompleted).toString(); + } + +} diff --git a/opinion-library/src/main/java/com/inqwise/opinion/common/CountriesStatisticsRepositoryParser.java b/opinion-library/src/main/java/com/inqwise/opinion/common/CountriesStatisticsRepositoryParser.java new file mode 100644 index 0000000..1ff0a4e --- /dev/null +++ b/opinion-library/src/main/java/com/inqwise/opinion/common/CountriesStatisticsRepositoryParser.java @@ -0,0 +1,17 @@ +package com.inqwise.opinion.common; + +import org.json.JSONObject; + +public class CountriesStatisticsRepositoryParser { + public CountriesStatisticsRepositoryParser() {} + public CountriesStatisticsModel parse(JSONObject json) { + return CountriesStatisticsModel.builder() + .withCountryId(json.optIntegerObject("country_id")) + .withCountryName(json.optString("country_name")) + .withIso2(json.optString("iso2")) + .withTimeTakenSec(json.optLongObject("time_taken_sec")) + .withCntStarted(json.optLongObject("started")) + .withCntCompleted(json.optLongObject("completed")) + .build(); + } +} \ No newline at end of file diff --git a/opinion-library/src/main/java/com/inqwise/opinion/managers/ResultsManager.java b/opinion-library/src/main/java/com/inqwise/opinion/managers/ResultsManager.java index 3ecf864..f44cd56 100644 --- a/opinion-library/src/main/java/com/inqwise/opinion/managers/ResultsManager.java +++ b/opinion-library/src/main/java/com/inqwise/opinion/managers/ResultsManager.java @@ -8,11 +8,14 @@ import org.json.JSONArray; +import com.inqwise.opinion.common.CountriesStatisticsModel; +import com.inqwise.opinion.common.CountriesStatisticsRepositoryParser; import com.inqwise.opinion.common.analizeResults.IAnalizeControl; import com.inqwise.opinion.dao.Results; import com.inqwise.opinion.entities.analizeResults.AnalizeControlEntity; import com.inqwise.opinion.infrastructure.dao.DAOException; import com.inqwise.opinion.infrastructure.systemFramework.ApplicationLog; +import com.inqwise.opinion.infrastructure.systemFramework.JSONHelper; import com.inqwise.opinion.library.common.errorHandle.ErrorCode; import com.inqwise.opinion.library.common.errorHandle.OperationResult; @@ -85,9 +88,12 @@ public static OperationResult> getResultsFreeText(long opini return result; } - public static JSONArray getCountriesStatistics(long opinionId, Long accountId, Date from, Date to, Long collectorId, boolean includePartial){ + public static List getCountriesStatistics(long opinionId, Long accountId, Date from, Date to, Long collectorId, boolean includePartial){ try{ - return Results.getCountriesStatistics(opinionId, accountId, from, to, collectorId, includePartial); + var arr = Results.getCountriesStatistics(opinionId, accountId, from, to, collectorId, includePartial); + var toList = JSONHelper.toListOfModel(arr, new CountriesStatisticsRepositoryParser()::parse); + return toList; + } catch (DAOException ex){ throw new Error(ex); } From 3e7f5f8febd5d0f1e3ede818b7f3bd1b99f13568 Mon Sep 17 00:00:00 2001 From: terra Date: Sun, 14 Jan 2024 18:04:25 +0200 Subject: [PATCH 2/2] collector model sup --- .../opinion/handlers/CollectorsEntry.java | 14 +++-- .../opinion/facade/front/CollectorsEntry.java | 58 +++++++++---------- .../infrastructure/dao/Resultsets.java | 35 ----------- .../common/collectors/CollectorModel.java | 20 ++++++- .../collectors/CollectorRepositoryParser.java | 1 + .../opinion/jobs/CollectorsChecker.java | 2 - 6 files changed, 56 insertions(+), 74 deletions(-) delete mode 100644 opinion-infrastructure/src/main/java/com/inqwise/opinion/infrastructure/dao/Resultsets.java 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 fab92d6..15963a6 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 @@ -18,16 +18,17 @@ 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.collectors.ICollector.IMessagesExtension; 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.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; import com.inqwise.opinion.library.common.errorHandle.OperationResult; +import com.inqwise.opinion.library.common.pay.ChargeModel; import com.inqwise.opinion.library.common.pay.ChargeReferenceType; import com.inqwise.opinion.library.managers.AccountsManager; import com.inqwise.opinion.library.managers.ChargesManager; @@ -201,13 +202,14 @@ public JSONObject getCollectorDetails(JSONObject input) { } if (null == result && collector.getCollectorSourceType() == CollectorSourceType.BuyRespondents) { - CDataCacheContainer dataSet = ChargesManager.getChargesByReferenceId(null, collectorId, ChargeReferenceType.Collector.getValue()); - CDataRowSet rowSet = dataSet.getAll(); - if(rowSet.next()){ + List list = ChargesManager.getChargesByReferenceId(null, collectorId, ChargeReferenceType.Collector.getValue()); + if(list.size() > 0){ + var firstModel = list.get(0); JSONObject chargeJO = new JSONObject(); - chargeJO.put("chargeId",rowSet.getLong("charge_id")); + chargeJO.put("chargeId",firstModel.getId()); + if(collector.getCollectorStatus() == CollectorStatus.PendingPayment){ - chargeJO.put("amountDue", rowSet.getDouble("amount")); + chargeJO.put("amountDue", firstModel.getAmount()); } output.put("charge", chargeJO); } diff --git a/opinion-facade/src/main/java/com/inqwise/opinion/facade/front/CollectorsEntry.java b/opinion-facade/src/main/java/com/inqwise/opinion/facade/front/CollectorsEntry.java index e4d6a14..6c699a5 100644 --- a/opinion-facade/src/main/java/com/inqwise/opinion/facade/front/CollectorsEntry.java +++ b/opinion-facade/src/main/java/com/inqwise/opinion/facade/front/CollectorsEntry.java @@ -13,6 +13,18 @@ import org.json.JSONException; import org.json.JSONObject; +import com.inqwise.opinion.common.IPostmasterContext; +import com.inqwise.opinion.common.IPostmasterObject; +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.collectors.ICollector.IMessagesExtension; +import com.inqwise.opinion.common.collectors.ICollector.JsonNames; +import com.inqwise.opinion.common.emails.ICollectLinkEmailData; +import com.inqwise.opinion.common.opinions.IOpinion; +import com.inqwise.opinion.common.opinions.ISurvey; import com.inqwise.opinion.infrastructure.common.IOperationResult; import com.inqwise.opinion.infrastructure.systemFramework.ApplicationLog; import com.inqwise.opinion.infrastructure.systemFramework.JSONHelper; @@ -27,19 +39,6 @@ import com.inqwise.opinion.library.managers.ChargesManager; import com.inqwise.opinion.library.managers.ProductsManager; import com.inqwise.opinion.library.systemFramework.ApplicationConfiguration; -import com.inqwise.opinion.common.IPostmasterContext; -import com.inqwise.opinion.common.IPostmasterObject; -import com.inqwise.opinion.common.SurveyStatistics; -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.collectors.ICollector.IMessagesExtension; -import com.inqwise.opinion.common.collectors.ICollector.JsonNames; -import com.inqwise.opinion.common.collectors.ICollector.ResultSetNames; -import com.inqwise.opinion.common.emails.ICollectLinkEmailData; -import com.inqwise.opinion.common.opinions.IOpinion; -import com.inqwise.opinion.common.opinions.ISurvey; -import com.inqwise.opinion.http.HttpClientSession; import com.inqwise.opinion.managers.CollectorsManager; import com.inqwise.opinion.managers.OpinionEmailsManager; import com.inqwise.opinion.managers.OpinionsManager; @@ -406,37 +405,36 @@ public JSONObject getCollectors(JSONObject input) throws JSONException, IOExcept Date fromDate = JSONHelper.optDate(input, "fromDate"); Date toDate = JSONHelper.optDate(input, "toDate"); - CDataCacheContainer ds = CollectorsManager.getMeny(opinionId, account.getId(), false, top, fromDate, toDate, null, null); + List cList = CollectorsManager.getMeny(opinionId, account.getId(), false, top, fromDate, toDate, null, null); JSONArray ja = new JSONArray(); - CDataRowSet rowSet = ds.getAll(); Format formatter = new SimpleDateFormat( "MMM dd, yyyy HH:mm:ss"); - while(rowSet.next()){ + for (var collectorModel : cList){ JSONObject jo = new JSONObject(); - Long collectorId = rowSet.getLong(ResultSetNames.COLLECTOR_ID); + Long collectorId = collectorModel.getId(); jo.put(JsonNames.COLLECTOR_ID, collectorId); - jo.put(JsonNames.OPINION_ID, rowSet.getLong(ResultSetNames.OPINION_ID)); - long actualAccountId = rowSet.getLong(ResultSetNames.ACCOUNT_ID); - jo.put(JsonNames.COLLECTOR_UUID, rowSet.getString(ResultSetNames.COLLECTOR_UUID)); - jo.put(JsonNames.NAME, rowSet.getString(ResultSetNames.COLLECTOR_NAME)); - Integer statusId = rowSet.getInt(ResultSetNames.COLLECTOR_STATUS_ID); + jo.put(JsonNames.OPINION_ID, collectorModel.getOpinionId()); + long actualAccountId = collectorModel.getAccountId(); + jo.put(JsonNames.COLLECTOR_UUID, collectorModel.getCollectorUuid()); + jo.put(JsonNames.NAME, collectorModel.getCollectorName()); + Integer statusId = collectorModel.getCollectorStatusId(); jo.put(JsonNames.STATUS_ID, statusId); - jo.put(JsonNames.SOURCE_TYPE_ID, rowSet.getInt(ResultSetNames.COLLECTOR_SOURCE_TYPE_ID)); + jo.put(JsonNames.SOURCE_TYPE_ID, collectorModel.getCollectorSourceTypeId()); - long cntStarted = rowSet.getLong(ResultSetNames.CNT_STARTED_OPINIONS); - long cntCompleted = rowSet.getLong(ResultSetNames.CNT_FINISHED_OPINIONS); + 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(ResultSetNames.LAST_START_DATE)){ - jo.put(JsonNames.LAST_RESPONSE_DATE, formatter.format(rowSet.getDate(ResultSetNames.LAST_START_DATE))); + if(null != collectorModel.getLastStartDate()){ + jo.put(JsonNames.LAST_RESPONSE_DATE, formatter.format(collectorModel.getLastStartDate())); } - jo.put(JsonNames.CLOSE_MESSAGE, rowSet.getString(ResultSetNames.CLOSE_MESSAGE)); + jo.put(JsonNames.CLOSE_MESSAGE, collectorModel.getCloseMessage()); - 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()))); } if (statusId == CollectorStatus.PendingPayment.getValue()) { 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 deleted file mode 100644 index 29d884f..0000000 --- a/opinion-infrastructure/src/main/java/com/inqwise/opinion/infrastructure/dao/Resultsets.java +++ /dev/null @@ -1,35 +0,0 @@ -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/src/main/java/com/inqwise/opinion/common/collectors/CollectorModel.java b/opinion-library/src/main/java/com/inqwise/opinion/common/collectors/CollectorModel.java index 96ded78..972600a 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,6 @@ package com.inqwise.opinion.common.collectors; +import java.util.Collection; import java.util.Date; import org.json.JSONObject; @@ -26,6 +27,7 @@ public class CollectorModel { private Long cntFinishedOpinions; private Date lastStartDate; private Double avgTimeTakenSec; + private String closeMessage; private CollectorModel(Builder builder) { this.id = builder.id; @@ -46,6 +48,7 @@ private CollectorModel(Builder builder) { this.cntFinishedOpinions = builder.cntFinishedOpinions; this.lastStartDate = builder.lastStartDate; this.avgTimeTakenSec = builder.avgTimeTakenSec; + this.closeMessage = builder.closeMessage; } public static final class Keys{ @@ -67,6 +70,7 @@ public static final class Keys{ 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"; + public static final String CLOSE_MESSAGE = "close_message"; private Keys(Builder builder) { } @@ -109,6 +113,7 @@ public CollectorModel(JSONObject json) { cntFinishedOpinions = json.optLongObject(Keys.CNT_FINISHED_OPINIONS); lastStartDate = (Date) json.opt(Keys.LAST_START_DATE); avgTimeTakenSec = json.optDouble(Keys.AVG_TIME_TAKEN_SEC); + closeMessage = json.optString(Keys.CLOSE_MESSAGE); } public Long getId() { @@ -183,6 +188,10 @@ public Double getAvgTimeTakenSec() { return avgTimeTakenSec; } + public String getCloseMessage() { + return closeMessage; + } + public JSONObject toJson() { var json = new JSONObject(); json.put(Keys.ID, id); @@ -203,6 +212,7 @@ public JSONObject toJson() { json.put(Keys.CNT_FINISHED_OPINIONS, cntFinishedOpinions); json.put(Keys.LAST_START_DATE, lastStartDate.getTime()); json.put(Keys.AVG_TIME_TAKEN_SEC, avgTimeTakenSec); + json.put(Keys.CLOSE_MESSAGE, closeMessage); return json; @@ -235,6 +245,7 @@ public static final class Builder { private Long cntFinishedOpinions; private Date lastStartDate; private Double avgTimeTakenSec; + private String closeMessage; private Builder() { } @@ -258,6 +269,7 @@ private Builder(CollectorModel collectorModel) { this.cntFinishedOpinions = collectorModel.cntFinishedOpinions; this.lastStartDate = collectorModel.lastStartDate; this.avgTimeTakenSec = collectorModel.avgTimeTakenSec; + this.closeMessage = collectorModel.closeMessage; } public Builder withId(Long id) { @@ -350,6 +362,11 @@ public Builder withAvgTimeTakenSec(Double avgTimeTakenSec) { return this; } + public Builder withCloseMessage(String closeMessage) { + this.closeMessage = closeMessage; + return this; + } + public CollectorModel build() { return new CollectorModel(this); } @@ -364,7 +381,8 @@ public String toString() { .add("collectorStatusId", collectorStatusId).add("collectorSourceId", collectorSourceId) .add("collectorSourceName", collectorSourceName).add("collectorSourceTypeId", collectorSourceTypeId) .add("cntStartedOpinions", cntStartedOpinions).add("cntFinishedOpinions", cntFinishedOpinions) - .add("lastStartDate", lastStartDate).add("avgTimeTakenSec", avgTimeTakenSec).toString(); + .add("lastStartDate", lastStartDate).add("avgTimeTakenSec", avgTimeTakenSec) + .add("closeMessage", closeMessage).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 fb0f001..a50c58d 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 @@ -25,6 +25,7 @@ public CollectorModel parse(JSONObject json) { .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)) + .withCloseMessage(json.optString(ICollector.ResultSetNames.CLOSE_MESSAGE)) .build(); } 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 4e9bb53..c2fb805 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,8 +2,6 @@ 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;