顧客情報変更実装編#
1.1. 処理概要#
顧客情報の検索で取得した情報をもとに、画面上で入力ができる形で顧客情報を表示します。
変更ボタンが押された際に、画面の入力内容をもとに顧客情報の変更を行います。
本処理を行うには、API認証よりAPIを呼び出すためのアクセストークンが必要となります。
1.1.1. 呼出API#
以下、顧客情報変更で呼び出すAPIとなります。
No | API | 処理内容 | 使用用途 |
---|---|---|---|
1 | PUT /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/change" , method = RequestMethod.POST) public String change( Model model, @Valid CustomerChangeForm form, BindingResult result ) { // 項目チェック if (result.hasErrors()) { return ControllerConstants.CUSTOMER_CHANGE_JSP; } // エラーメッセージをクリア form.setErrorInformation(null); Web_IFCustomerChange_I iFCustomerChange_I = new Web_IFCustomerChange_I(); Web_IFCustomerChange_O iFCustomerChange_O = new Web_IFCustomerChange_O(); // 現在日時(UTC)を取得 String timestamp = this.getNowDate(); iFCustomerChange_I.entry_id = CommonConstants.登録者ID; iFCustomerChange_I.address1 = form.getAddress1(); iFCustomerChange_I.address2 = form.getAddress2(); iFCustomerChange_I.address3 = form.getAddress3(); iFCustomerChange_I.address4 = form.getAddress4(); iFCustomerChange_I.address_of_workplace1 = form.getAddressOfWorkplace1(); iFCustomerChange_I.address_of_workplace2 = form.getAddressOfWorkplace2(); iFCustomerChange_I.address_of_workplace3 = form.getAddressOfWorkplace3(); iFCustomerChange_I.address_of_workplace4 = form.getAddressOfWorkplace4(); iFCustomerChange_I.company_name = form.getCompanyName(); iFCustomerChange_I.customer_name1 = form.getCustomerName1(); iFCustomerChange_I.customer_name2 = form.getCustomerName2(); iFCustomerChange_I.customer_name3 = form.getCustomerName3(); iFCustomerChange_I.customer_name4 = form.getCustomerName4(); iFCustomerChange_I.customer_name5 = form.getCustomerName5(); iFCustomerChange_I.customer_name6 = form.getCustomerName6(); iFCustomerChange_I.date_of_birth = form.getDateOfBirth(); iFCustomerChange_I.department = form.getDepartment(); iFCustomerChange_I.email_address1 = form.getEmailAddress1(); iFCustomerChange_I.email_address2 = form.getEmailAddress2(); iFCustomerChange_I.gender = form.getGender(); iFCustomerChange_I.nationality = form.getNationality(); iFCustomerChange_I.occupation = form.getOccupation(); iFCustomerChange_I.phone_number1 = form.getPhoneNumber1(); iFCustomerChange_I.phone_number2 = form.getPhoneNumber2(); iFCustomerChange_I.position = form.getPosition(); iFCustomerChange_I.postcode_of_workplace = form.getPostcodeOfWorkplace(); iFCustomerChange_I.status = SampleUtil.emptyToNull(form.getStatus()); if (form.getStatus().equals(CustomerConstants.仮登録_code)) { iFCustomerChange_I.temporary_registration_date_and_time = timestamp; } else if (form.getStatus().equals(CustomerConstants.本登録_code)) { iFCustomerChange_I.official_registration_date_and_time = timestamp; } iFCustomerChange_I.zip_code = form.getZipCode(); // フリー項目 JsonObject freeItem = new JsonObject(); if (!form.getFree1().isEmpty() || !form.getFree2().isEmpty() || !form.getFree3().isEmpty() || !form.getFree4().isEmpty()) { freeItem.addProperty("free1", SampleUtil.emptyToNull(form.getFree1())); freeItem.addProperty("free2", SampleUtil.emptyToNull(form.getFree2())); freeItem.addProperty("free3", SampleUtil.emptyToNull(form.getFree3())); freeItem.addProperty("free4", SampleUtil.emptyToNull(form.getFree4())); } iFCustomerChange_I.freeItem = freeItem; iFCustomerChange_I.free_item1 = form.getFreeItem1(); iFCustomerChange_I.version_info = form.getVersionInfo(); try { iFCustomerChange_O = customerService.customerChange(iFCustomerChange_I, form.getCustomerId()); if (ControllerConstants.API_RESULT_NG.equals(iFCustomerChange_O.result_information.result)) { form.setErrorInformation(iFCustomerChange_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.MSGI00002, getMsg(MessageConstants.LBL000004), iFCustomerChange_O.customer_id)); return ControllerConstants.CUSTOMER_CHANGE_JSP; }
CustomerService.java
/** * 顧客_変更 API * * @param web_IFCustomerChange_I IF顧客_変更_入力 * @return IF顧客_変更_出力 */ public Web_IFCustomerChange_O customerChange(Web_IFCustomerChange_I web_IFCustomerChange_I, String customerId) { // 通信設定 String strURI = ClientUtil.makeURI(UriInfo.CustomerChange + customerId, null, null); HttpPut postMethod = ClientUtil.makeHttpPut(strURI, web_IFCustomerChange_I); return CommonHttpClient.httpPut(postMethod, Web_IFCustomerChange_O.class); }
共通HTTPリクエストクラス[CommonHttpClient.java]の実装例についてはこちらをご参照ください。