Skip to content

顧客情報削除実装編#

1.1. 処理概要#

顧客情報の検索で取得した情報をもとに、画面上で入力ができる形で顧客情報を表示します。
削除ボタンが押された際に、顧客情報の削除を行います。
本処理を行うには、API認証よりAPIを呼び出すためのアクセストークンが必要となります。

1.1.1. 呼出API#

以下、顧客情報削除で呼び出すAPIとなります。

No API 処理内容 使用用途
1 DELETE /v2/api/customers/{customer_id} 顧客を削除する 顧客一覧画面で削除ボタン押下時に顧客情報を削除
2 GET /v2/api/customers 顧客を検索する 顧客変更画面表示時に変更対象の顧客情報を検索

1.1.2. 処理フロー#

顧客情報削除を行うまでの処理は以下のフローとなります。

1.1.3. 実装例#

以下API呼出の実装例となります。
顧客変更画面表示時の「顧客を検索する」API呼び出しについては、「顧客情報検索実装編」及び提供ソースをご確認ください。
※本マニュアルに記載している実装例は、分かりやすさを優先し簡易的に記載しております。提供しているソースと異なりますので詳細については提供ソースをご確認ください。

CustomerChangeController.java

/**
 * 削除ボタン処理
 */
// Spring annotation
@RequestMapping(value = "/CustomerChange/delete" , method = RequestMethod.POST)
public String delete(
    Model   model,
    @ModelAttribute("customerChangeForm") CustomerChangeForm form
) {
    // エラーメッセージをクリア
    form.setErrorInformation(null);

    Web_IFCustomerDelete_I iFCustomerDelete_I = new Web_IFCustomerDelete_I();
    Web_IFCustomerDelete_O iFCustomerDelete_O = new Web_IFCustomerDelete_O();

    iFCustomerDelete_I.entry_id = CommonConstants.登録者ID;
    iFCustomerDelete_I.version_info = form.getVersionInfo();

    try {
        // 契約中の基本契約をチェック
        if (this.judgeBasicContract(form.getCustomerId())) {
            form.setErrorInformation(getMsg(MessageConstants.MSGE00007,
                    getMsg(MessageConstants.LBL000008),
                    getMsg(MessageConstants.LBL000009),
                    getMsg(MessageConstants.LBL000011)));
            return ControllerConstants.CUSTOMER_CHANGE_JSP;
        }

        // 削除処理
        iFCustomerDelete_O = customerService.customerDelete(iFCustomerDelete_I, form.getCustomerId());
        if (ControllerConstants.API_RESULT_NG.equals(iFCustomerDelete_O.result_information.result)) {
            form.setErrorInformation(iFCustomerDelete_O.result_information.detailed_result);
            return ControllerConstants.CUSTOMER_CHANGE_JSP;
        }
    } catch (ApiException e) {
        if(ApiErrorType.排他エラー.getValue().equals(e.getErrorCode())) {
            // メッセージ表示
            form.setErrorInformation(getMsg(MessageConstants.MSGE00001,
                    getMsg(MessageConstants.SCN000010)));
            return ControllerConstants.CUSTOMER_CHANGE_JSP;
        } else {
            model.addAttribute("errorCode", e.getErrorCode().getValue());
            return ControllerConstants.SYSTEM_ERROR_JSP;
        }
    } catch (Exception e) {
        return ControllerConstants.SYSTEM_ERROR_JSP;
    }

    model.addAttribute("customerChangeForm", form);

    form.setMessage(getMsg(MessageConstants.MSGI00004,
            getMsg(MessageConstants.LBL000004),
                form.getCustomerId()));

    return ControllerConstants.CUSTOMER_CHANGE_JSP;
}

CustomerService.java

/**
 * 顧客_削除 API
 * 
 * @param web_IFCustomerDelete_I IF顧客_削除_入力
 * @return IF顧客_削除_出力
 */
public Web_IFCustomerDelete_O customerDelete(Web_IFCustomerDelete_I web_IFCustomerDelete_I, String customerId) {
    // 通信設定
    HashMap<String, String> mapQueryString = new HashMap<String, String>();
    mapQueryString.put(UriInfo.entry_id, web_IFCustomerDelete_I.entry_id);
    mapQueryString.put(UriInfo.version_info, String.valueOf(web_IFCustomerDelete_I.version_info));
    String strURI = ClientUtil.makeURI(UriInfo.CustomerDelete + customerId + "?", null, mapQueryString);
    HttpDelete deleteMethod = ClientUtil.makeHttpDelete(strURI);

    return CommonHttpClient.httpDelete(deleteMethod, Web_IFCustomerDelete_O.class);
}

共通HTTPリクエストクラス[CommonHttpClient.java]の実装例についてはこちらをご参照ください。

Top