Skip to content

グループ情報登録実装編#

1.1. 処理概要#

画面の入力内容をもとにグループ情報の登録を行います。
また、顧客追加ボタンから顧客を選択し、グループの作成と同時にそのグループに紐づく顧客の作成も行います。
本処理を行うには、API認証よりAPIを呼び出すためのアクセストークンが必要となります。

1.1.1. 呼出API#

以下、グループ登録で呼び出すAPIとなります。

No API 処理内容 使用用途
1 POST /v2/api/group グループを作成する グループ登録画面で登録ボタン押下時にグループ情報を登録
2 GET /v2/api/customers 顧客を検索する グループ登録画面で顧客追加ボタン押下時に顧客情報を検索
3 POST /v2/api/grouprelation グループに紐づく顧客を追加する グループ登録画面で登録ボタン押下時に、グループに紐づく顧客情報を追加

1.1.2. 処理フロー#

グループ登録を行うまでの処理は以下のフローとなります。

1.1.3. 実装例#

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

GroupRegisterController.java

    /**
     * 登録処理
     */
    @RequestMapping(value = "/GroupRegister/register", method = RequestMethod.POST)
    public String register(
            Model model,
            @Valid GroupRegisterForm form,
            BindingResult result){

        // バリデーションエラー
        if (result.hasErrors()) {
            return ControllerConstants.GROUP_REGISTER_JSP;
        }

        model.addAttribute("groupRegisterForm", form);

        Web_IFGroupCreate_I web_IFGroupCreate_I = new Web_IFGroupCreate_I();
        Web_IFGroupCreate_O web_IFGroupCreate_O = new Web_IFGroupCreate_O();
        Web_IFGroupRelationCreate_I web_IFGroupRelationCreate_I = new Web_IFGroupRelationCreate_I();
        Web_IFGroupRelationCreate_O web_IFGroupRelationCreate_O = new Web_IFGroupRelationCreate_O();
        web_IFGroupCreate_I.entry_id = CommonConstants.登録者ID;

        web_IFGroupCreate_I.group_name = form.getGroupName();

        // フリー項目
        JsonObject free_json = new JsonObject();
        if (!form.getRepresentative().isEmpty() || !form.getTEL().isEmpty() ||
                !form.getEmail().isEmpty() || !form.getNote().isEmpty()) {
            free_json.addProperty("representative", SampleUtil.emptyToNull(form.getRepresentative()));
            free_json.addProperty("TEL", SampleUtil.emptyToNull(form.getTEL()));
            free_json.addProperty("email", SampleUtil.emptyToNull(form.getEmail()));
            free_json.addProperty("note", SampleUtil.emptyToNull(form.getNote()));
        }
        web_IFGroupCreate_I.free_item = free_json;
        web_IFGroupCreate_I.free_item1 = form.getNumberOfPersons();

        try {
            // グループを作成する
            web_IFGroupCreate_O = groupService.groupCreate(web_IFGroupCreate_I);

            if (ControllerConstants.API_RESULT_NG.equals(web_IFGroupCreate_O.result_information.result)) {
                form.setErrorInformation(web_IFGroupCreate_O.result_information.detailed_result);
                return ControllerConstants.GROUP_REGISTER_JSP;

                // メンバー情報がある場合、グループに紐づく顧客の追加を実行
            } else if (form.getMemberId() != null){
                List<String> memberList = form.getMemberId();
                for (int i = 0; memberList.size() > i; i++) {
                    web_IFGroupRelationCreate_I.entry_id = CommonConstants.登録者ID;
                    web_IFGroupRelationCreate_I.group_id = web_IFGroupCreate_O.group_id;
                    web_IFGroupRelationCreate_I.customer_id = memberList.get(i);

                    // グループに紐づく顧客の追加
                    web_IFGroupRelationCreate_O = groupService.groupRelationCreate(web_IFGroupRelationCreate_I);

                    if (ControllerConstants.API_RESULT_NG.equals(web_IFGroupRelationCreate_O.result_information.result)) {
                        form.setErrorInformation(web_IFGroupRelationCreate_O.result_information.detailed_result);
                        return ControllerConstants.GROUP_REGISTER_JSP;
                    }
                }
            }

        } catch (ApiException e) {
            model.addAttribute("errorCode", e.getErrorCode().getValue());
            return ControllerConstants.SYSTEM_ERROR_JSP;

        } catch (Exception e) {
            return ControllerConstants.SYSTEM_ERROR_JSP;
        }

        // メッセージ表示
        form.setMessage(getMsg(MessageConstants.MSGI00001,
                getMsg(MessageConstants.LBL000005),
                web_IFGroupCreate_O.group_id));

        form.setGroupId(web_IFGroupCreate_O.group_id);

        return ControllerConstants.GROUP_REGISTER_JSP;
    }

GroupService.java

public Web_IFGroupCreate_O groupCreate(Web_IFGroupCreate_I web_IFGroupCreate_I){

    // 通信設定
    String strURI = ClientUtil.makeURI(UriInfo.GroupCreate, null, null);
    HttpPost postMethod = ClientUtil.makeHttpPost(strURI, web_IFGroupCreate_I);

    return CommonHttpClient.httpPost(postMethod, Web_IFGroupCreate_O.class);
}
//・・・ 省略・・・

public Web_IFGroupRelationCreate_O groupRelationCreate(Web_IFGroupRelationCreate_I web_IFGroupRelationCreate_I){

    // 通信設定
    String strURI = ClientUtil.makeURI(UriInfo.GroupRelationCreate, null, null);
    HttpPost postMethod = ClientUtil.makeHttpPost(strURI, web_IFGroupRelationCreate_I);

    return CommonHttpClient.httpPost(postMethod, Web_IFGroupRelationCreate_O.class);
}

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

Top