Skip to content

グループ情報検索実装編#

1.1. 処理概要#

画面の入力内容をもとに、条件に合うグループの件数の取得と、グループ情報の検索を行います。
取得したグループ件数をもとに、グループ情報を表示するページ数を算出して画面に表示します。
画面上でページ番号が選択された場合は、その数によってグループ情報の検索の開始位置と終了位置を指定することで、ページング処理を実装しています。
本処理を行うには、API認証よりAPIを呼び出すためのアクセストークンが必要となります。

1.1.1. 呼出API#

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

No API 処理内容 使用用途
1 GET /v2/api/group グループを検索する グループ一覧画面で検索ボタン押下時にグループ情報を検索
2 GET /v2/api/grouplistcount グループの件数を取得する 入力情報をもとにグループ情報の件数を検索

1.1.2. 処理フロー#

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

1.1.3. 実装例#

以下API呼出の実装例となります。
※本マニュアルに記載している実装例は、分かりやすさを優先し簡易的に記載しております。提供しているソースと異なりますので詳細については提供ソースをご確認ください。

GroupListController.java

/**
 * グループ検索処理
 * @param form グループ一覧フォーム
 * @return グループ一覧フォーム
 */
private GroupListForm searchGroup(GroupListForm form, String groupId) {

    // グループの件数検索を行う
    Web_IFGroupListCountSearch_I web_IFGroupListCountSearch_I = new Web_IFGroupListCountSearch_I();

    if (groupId == null){
        web_IFGroupListCountSearch_I.group_name = SampleUtil.emptyToNull(form.getGroupnameSch());
        web_IFGroupListCountSearch_I.group_id = SampleUtil.emptyToNull(form.getGroupidSch());
    } else {
        web_IFGroupListCountSearch_I.group_name = SampleUtil.emptyToNull(form.getGroupnameSch());
        web_IFGroupListCountSearch_I.group_id = SampleUtil.emptyToNull(groupId);
        form.setGroupId(groupId);
        form.setGroupidSch(groupId);
    }

    // 処理を実行
    Web_IFGroupListCountSearch_O web_IFGroupListCountSearch_O = null;

    try {
        web_IFGroupListCountSearch_O = groupService.groupListCount(web_IFGroupListCountSearch_I);
        if (ControllerConstants.API_RESULT_NG.equals(web_IFGroupListCountSearch_O.result_information.result)) {
            form.setErrorInformation(web_IFGroupListCountSearch_O.result_information.detailed_result);
            return form;
        }
    } catch (ApiException e) {
        return form;
    } catch (Exception e) {
        return form;
    }

    // 件数を格納
    Long lCnt = Long.valueOf(web_IFGroupListCountSearch_O.count);
    if (lCnt == 0L) {
        form.setErrorInformation(getMsg(MessageConstants.MSGE00003));
        return form;
    }
    form.setListSize(lCnt);

    // 件数が1件以上ある場合、グループの検索を行う
    if (lCnt > 0L) {
        Web_IFGroupListSearch_I web_IFGroupListSearch_I = new Web_IFGroupListSearch_I();

        String GroupidSch = form.getGroupId();
        String GroupnameSch = form.getGroupnameSch();

        if (GroupidSch == null && GroupnameSch == null) {
            web_IFGroupListSearch_I.group_name = null;
            web_IFGroupListSearch_I.group_id = null;

            web_IFGroupListSearch_I.sort_item1 = SampleUtil.emptyToNull(form.getSortItem1());
            web_IFGroupListSearch_I.sort1 = SampleUtil.emptyToNull(form.getSort1());
            web_IFGroupListSearch_I.sort_item2 = SampleUtil.emptyToNull(form.getSortItem2());
            web_IFGroupListSearch_I.sort2 = SampleUtil.emptyToNull(form.getSort2());
            web_IFGroupListSearch_I.start_position = String.valueOf(form.getStartPosition());
            web_IFGroupListSearch_I.end_position = String.valueOf(form.getEndPosition());
        }else if (GroupidSch != null && GroupnameSch != null){
            web_IFGroupListSearch_I.group_name = SampleUtil.emptyToNull(form.getGroupnameSch());
            web_IFGroupListSearch_I.group_id = SampleUtil.emptyToNull(form.getGroupidSch());

            web_IFGroupListSearch_I.sort_item1 = SampleUtil.emptyToNull(form.getSortItem1());
            web_IFGroupListSearch_I.sort1 = SampleUtil.emptyToNull(form.getSort1());
            web_IFGroupListSearch_I.sort_item2 = SampleUtil.emptyToNull(form.getSortItem2());
            web_IFGroupListSearch_I.sort2 = SampleUtil.emptyToNull(form.getSort2());
            web_IFGroupListSearch_I.start_position = String.valueOf(form.getStartPosition());
            web_IFGroupListSearch_I.end_position = String.valueOf(form.getEndPosition());

        } else {

            web_IFGroupListSearch_I.group_name = SampleUtil.emptyToNull(form.getGroupnameSch());
            web_IFGroupListSearch_I.group_id = SampleUtil.emptyToNull(form.getGroupidSch());

            web_IFGroupListSearch_I.sort_item1 = SampleUtil.emptyToNull(form.getSortItem1());
            web_IFGroupListSearch_I.sort1 = SampleUtil.emptyToNull(form.getSort1());
            web_IFGroupListSearch_I.sort_item2 = SampleUtil.emptyToNull(form.getSortItem2());
            web_IFGroupListSearch_I.sort2 = SampleUtil.emptyToNull(form.getSort2());
            web_IFGroupListSearch_I.start_position = String.valueOf(form.getStartPosition());
            web_IFGroupListSearch_I.end_position = String.valueOf(form.getEndPosition());

        }

        // 処理を実行
        Web_IFGroupListSearch_O web_IFGroupListSearch_O = null;
        try {
            web_IFGroupListSearch_O = groupService.groupListSearch(web_IFGroupListSearch_I);
        } catch (ApiException e) {
            throw e;
        } catch (Exception e) {
            throw e;
        }
        GroupInformationListDto groupInformationListDto = null;
        List<GroupInformationListDto> groupList = new ArrayList<GroupInformationListDto>();

        for (Web_GroupInformationList list : web_IFGroupListSearch_O.group_information_list) {
            groupInformationListDto = new GroupInformationListDto();
            groupInformationListDto.setGroupId(list.group_id);
            groupInformationListDto.setGroupName(list.group_name);

            groupList.add(groupInformationListDto);
        }
        form.setGroupList(groupList);
    }
    return form;
}

GroupService.java

/**
 * グループ_件数検索 API
 * 
 * @param Web_IFGroupListCountSearch_I IFグループ_件数検索_入力
 * @return IFグループ_件数検索_出力
 */
public Web_IFGroupListCountSearch_O groupListCount(Web_IFGroupListCountSearch_I web_IFGroupListCountSearch_I) {
    // 通信設定
    HashMap<String, String> mapQueryString = new HashMap<String, String>();
    mapQueryString.put(UriInfo.group_id, web_IFGroupListCountSearch_I.group_id);
    mapQueryString.put(UriInfo.group_name, web_IFGroupListCountSearch_I.group_name);
    String strURI = ClientUtil.makeURI(UriInfo.GroupListCount, null, mapQueryString);
    HttpGet getMethod = ClientUtil.makeHttpGet(strURI);

    return CommonHttpClient.httpGet(getMethod, Web_IFGroupListCountSearch_O.class);
}
/** 
 * グループ_検索 API
 * 
 * @param Web_IFGroupListSearch_I IFグループ_検索_入力
 * @return IFグループ_検索_出力
 */
public Web_IFGroupListSearch_O groupListSearch(Web_IFGroupListSearch_I web_IFGroupListSearch_I) {
    // 通信設定
    HashMap<String, String> mapQueryString = new HashMap<String, String>();
    mapQueryString.put(UriInfo.group_id, web_IFGroupListSearch_I.group_id);
    mapQueryString.put(UriInfo.group_name, web_IFGroupListSearch_I.group_name);
    mapQueryString.put(UriInfo.sort_item1, web_IFGroupListSearch_I.sort_item1);
    mapQueryString.put(UriInfo.sort1, web_IFGroupListSearch_I.sort1);
    mapQueryString.put(UriInfo.sort_item2, web_IFGroupListSearch_I.sort_item2);
    mapQueryString.put(UriInfo.sort2, web_IFGroupListSearch_I.sort2);
    mapQueryString.put(UriInfo.start_position, web_IFGroupListSearch_I.start_position);
    mapQueryString.put(UriInfo.end_position, web_IFGroupListSearch_I.end_position);
    String strURI = ClientUtil.makeURI(UriInfo.GroupSearch, null, mapQueryString);
    HttpGet getMethod = ClientUtil.makeHttpGet(strURI);

    return CommonHttpClient.httpGet(getMethod, Web_IFGroupListSearch_O.class);
}

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

Top