Commit 3caba0b7 by Jeong Gilmo

#33721 絞り検索のAPIとの連携

- 絞り検索のマスタデータを受信処理の修正
parent 791c65e7
...@@ -27,12 +27,12 @@ public class ApertureMasterDataJSON extends AcmsCommonJSON { ...@@ -27,12 +27,12 @@ public class ApertureMasterDataJSON extends AcmsCommonJSON {
protected void parse(JSONObject json) throws JSONValidationException { protected void parse(JSONObject json) throws JSONValidationException {
// 絞り検索の日付を取得 // 絞り検索の日付を取得
if(json.has(apertureLastEditDate)) { if(json.has(apertureLastEditDate)) {
lastEditDate = json.getString(apertureLastEditDate); this.lastEditDate = json.getString(apertureLastEditDate);
} }
// 絞り検索のデータを取得 // 絞り検索のデータを取得
if (json.has(ApertureData)) { if (json.has(ApertureData)) {
apertureData = JsonUtil.getJSONObject(json, ApertureData); this.apertureData = JsonUtil.getJSONObject(json, ApertureData);
} }
} }
} }
...@@ -5,8 +5,12 @@ package jp.agentec.abook.abv.bl.acms.client.parameters; ...@@ -5,8 +5,12 @@ package jp.agentec.abook.abv.bl.acms.client.parameters;
*/ */
public class GetApertureMasterDataParameters extends AcmsParameters { public class GetApertureMasterDataParameters extends AcmsParameters {
private String lastEdit;
public GetApertureMasterDataParameters(String sid) { public GetApertureMasterDataParameters(String sid, String lastFetchDate) {
super(sid); super(sid);
this.lastEdit = lastFetchDate;
} }
public String getLastEdit() { return this.lastEdit; }
} }
\ No newline at end of file
...@@ -164,11 +164,8 @@ public class ContentRefresher { ...@@ -164,11 +164,8 @@ public class ContentRefresher {
categoryLogic.initializeCategories(); // カテゴリ設定 categoryLogic.initializeCategories(); // カテゴリ設定
// 絞り検索マスタデータの最新更新された時のFetchDateを一時に保存する。 // 絞り検索マスタデータの最新更新された時のFetchDateを一時に保存する。
Logger.d(TAG, "before fetchDate : " + ABVDataCache.getInstance().getTempApertureMasterDataFetchDate());
// CMSでメンテナンスされる絞り検索マスタデータをアプリから取得できるようにJSONファイルを生成する。 // CMSでメンテナンスされる絞り検索マスタデータをアプリから取得できるようにJSONファイルを生成する。
apertureMasterDataLogic.initializeApertureMasterData(ABVDataCache.getInstance().getTempApertureMasterDataFetchDate()); apertureMasterDataLogic.initializeApertureMasterData();
Logger.d(TAG, "after fetchDate : " + ABVDataCache.getInstance().getTempApertureMasterDataFetchDate());
if (interrupt) { // この時点で停止要求が来た場合先には進まない。(ServiceOption/Group/Categoryの更新は1セットで行う(トランザクションはそれぞれ別)) if (interrupt) { // この時点で停止要求が来た場合先には進まない。(ServiceOption/Group/Categoryの更新は1セットで行う(トランザクションはそれぞれ別))
Logger.d(TAG, "stop refresh worker before content update."); Logger.d(TAG, "stop refresh worker before content update.");
...@@ -344,7 +341,6 @@ public class ContentRefresher { ...@@ -344,7 +341,6 @@ public class ContentRefresher {
try { try {
// サーバー通信でプロジェクト取得 // サーバー通信でプロジェクト取得
operationLogic.initializeOperations(); operationLogic.initializeOperations();
} catch (Exception e1) { } catch (Exception e1) {
Logger.e(TAG, e1); Logger.e(TAG, e1);
e = e1; e = e1;
......
package jp.agentec.abook.abv.bl.logic; package jp.agentec.abook.abv.bl.logic;
import org.json.adf.JSONException;
import org.json.adf.JSONObject; import org.json.adf.JSONObject;
import java.io.BufferedReader;
import java.io.File; import java.io.File;
import java.io.FileInputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Date; import java.util.Date;
import java.util.Iterator;
import jp.agentec.abook.abv.bl.acms.client.AcmsClient; import jp.agentec.abook.abv.bl.acms.client.AcmsClient;
import jp.agentec.abook.abv.bl.acms.client.json.ApertureMasterDataJSON; import jp.agentec.abook.abv.bl.acms.client.json.ApertureMasterDataJSON;
import jp.agentec.abook.abv.bl.acms.client.parameters.GetApertureMasterDataParameters; import jp.agentec.abook.abv.bl.acms.client.parameters.GetApertureMasterDataParameters;
import jp.agentec.abook.abv.bl.common.ABVEnvironment; import jp.agentec.abook.abv.bl.common.ABVEnvironment;
import jp.agentec.abook.abv.bl.common.log.Logger; import jp.agentec.abook.abv.bl.common.log.Logger;
import jp.agentec.abook.abv.bl.common.util.JsonUtil;
import jp.agentec.adf.util.DateTimeFormat; import jp.agentec.adf.util.DateTimeFormat;
import jp.agentec.adf.util.DateTimeUtil; import jp.agentec.adf.util.DateTimeUtil;
import jp.agentec.adf.util.FileUtil; import jp.agentec.adf.util.FileUtil;
public class ApertureMasterDataLogic extends AbstractLogic { public class ApertureMasterDataLogic extends AbstractLogic {
private static final java.lang.String TAG = "RefineMasterDataLogic"; private static final java.lang.String TAG = "RefineMasterDataLogic";
private static final String ApertureData = "apertureData";
/** /**
* グループ情報をサーバから受信し、ローカルに保存します。既存のデータは上書きされます。また、サーバにないグループがローカルにある場合、そのグループは削除されます。 * グループ情報をサーバから受信し、ローカルに保存します。既存のデータは上書きされます。
* また、サーバにないグループがローカルにある場合、そのグループは削除されます。
* 絞り検索マスタデータ情報をサーバから受信し、ローカルにJSONで保存する。 * 絞り検索マスタデータ情報をサーバから受信し、ローカルにJSONで保存する。
* 日付を比べてサーバーからローカルのデータより最新のデータを受信した場合、受信した情報を保存する。 * 日付を比べてサーバーからローカルのデータより最新のデータを受信した場合、受信した情報を保存する。
* ローカルの日付はない場合、受信した情報を保存する。 * ローカルの日付はない場合、受信した情報を保存する。
* @param lastFetchDateString
*/ */
public void initializeApertureMasterData(String lastFetchDateString) { public void initializeApertureMasterData() {
try { try {
GetApertureMasterDataParameters param = new GetApertureMasterDataParameters(cache.getMemberInfo().sid); //端末機の日付
String lastFetchDateString = cache.getTempApertureMasterDataFetchDate();
GetApertureMasterDataParameters param = new GetApertureMasterDataParameters(cache.getMemberInfo().sid, lastFetchDateString);
//サーバーから絞り検索マスタデータを取得 //サーバーから絞り検索マスタデータを取得
ApertureMasterDataJSON masterDataJson = AcmsClient.getInstance(cache.getUrlPath(), networkAdapter).getApertureMasterData(param); ApertureMasterDataJSON masterDataJson = AcmsClient.getInstance(cache.getUrlPath(), networkAdapter).getApertureMasterData(param);
//サーバーデータの日付 //サーバーデータの日付
String lastEditDateString = masterDataJson.lastEditDate; String lastEditDateString = masterDataJson.lastEditDate;
if(lastFetchDateString != null) {
Date lastFetchDate = DateTimeUtil.toDate(lastFetchDateString, "UTC", DateTimeFormat.yyyyMMddHHmmss_hyphen); if (lastFetchDateString == null){
Date lastEditDate = DateTimeUtil.toDate(lastEditDateString, "UTC", DateTimeFormat.yyyyMMddHHmmss_hyphen); //最初のマスタデータダウンロードの場合
if (lastFetchDate == null || lastEditDate.after(lastFetchDate)) { if (masterDataJson.apertureData != null && masterDataJson.apertureData.keys().hasNext()) {
createApertureMasterDataJson(masterDataJson.apertureData); createApertureMasterDataJson(masterDataJson.apertureData);
cache.setTempApertureMasterDataFetchDate(lastEditDateString); cache.setTempApertureMasterDataFetchDate(lastEditDateString);
} }
} }
else{ else if(lastEditDateString != null){
//マスタデータがある場合、サーバーから修正事項があるセットだけ上書きする
Date lastFetchDate = DateTimeUtil.toDate(lastFetchDateString, "UTC", DateTimeFormat.yyyyMMddHHmmss_hyphen);
Date lastEditDate = DateTimeUtil.toDate(lastEditDateString, "UTC", DateTimeFormat.yyyyMMddHHmmss_hyphen);
if (lastEditDate != null && lastEditDate.after(lastFetchDate)) {
if (masterDataJson.apertureData != null && masterDataJson.apertureData.keys().hasNext()) {
createApertureMasterDataJson(masterDataJson.apertureData); createApertureMasterDataJson(masterDataJson.apertureData);
// updateApertureMasterDataJson(masterDataJson.apertureData);
cache.setTempApertureMasterDataFetchDate(lastEditDateString); cache.setTempApertureMasterDataFetchDate(lastEditDateString);
} }
}
}
} catch (Exception e) { } catch (Exception e) {
Logger.e(TAG, "apertureMasterDataSend error : ", e); Logger.e(TAG, "apertureMasterDataSend error : ", e);
} }
...@@ -51,12 +72,12 @@ public class ApertureMasterDataLogic extends AbstractLogic { ...@@ -51,12 +72,12 @@ public class ApertureMasterDataLogic extends AbstractLogic {
/** /**
* apertureMaster.jsonファイル作成 * apertureMaster.jsonファイル作成
* @param json * @param masterDataJson
* @throws IOException * @throws IOException
*/ */
private void createApertureMasterDataJson(JSONObject json) throws IOException { private void createApertureMasterDataJson(JSONObject masterDataJson) throws IOException {
// マスタデータの保存されるパス // マスタデータの保存されるパス
String masterDataJsonPath = ABVEnvironment.getInstance().getMasterFilePath() + File.separator + ABVEnvironment.getInstance().ApertureMasterDataFileName; String masterDataJsonPath = ABVEnvironment.getInstance().getMasterFilePath() + File.separator + ABVEnvironment.getInstance().ApertureMasterDataFileName;
FileUtil.createFile(masterDataJsonPath, json.toString()); FileUtil.createFile(masterDataJsonPath, masterDataJson.toString());
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment