/** * Tencent is pleased to support the open source community by making MSEC available. * * Copyright (C) 2016 THL A29 Limited, a Tencent company. All rights reserved. * * Licensed under the GNU General Public License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. You may * obtain a copy of the License at * * https://opensource.org/licenses/GPL-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under the * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package beans.service; import beans.dbaccess.*; import beans.request.QuerySecondLevelServiceDetailRequest; import beans.response.QueryFirstLevelServiceResponse; import beans.response.QuerySecondLevelServiceDetailResponse; import ngse.org.DBUtil; import ngse.org.JsonRPCHandler; import java.lang.reflect.Array; import java.util.ArrayList; import java.util.List; /** * Created by Administrator on 2016/1/27. * 查询某个二级标准服务的详情 */ public class QuerySecondLevelServiceDetail extends JsonRPCHandler { public QuerySecondLevelServiceDetailResponse exec(QuerySecondLevelServiceDetailRequest request) { QuerySecondLevelServiceDetailResponse resp = new QuerySecondLevelServiceDetailResponse(); String result = checkIdentity(); if (!result.equals("success")) { resp.setStatus(99); resp.setMessage(result); return resp; } DBUtil util = new DBUtil(); if (util.getConnection() == null) { resp.setStatus(100); resp.setMessage("db connect failed!"); return resp; } String sql; List<Object> params; List<SecondLevelService> serviceList ; List<SecondLevelServiceIPInfo> ipList; List<SecondLevelServiceConfigTag> tagList; List<IDL> IDLList; List<LibraryFile> libraryFileList; List<SharedobjectTag> sharedobjectTagList; try { //查出开发语言 port sql = "select dev_lang,port from t_second_level_service where second_level_service_name=? and first_level_service_name=?"; params = new ArrayList<Object>(); params.add(request.getService_name()); params.add(request.getService_parent()); serviceList = util.findMoreRefResult(sql, params, SecondLevelService.class); if (serviceList.size() != 1) { resp.setStatus(100); resp.setMessage("can not find the service named "+request.getService_name()); return resp; } //resp.setFirst_level_service_name(serviceList.get(0).getFirst_level_service_name()); resp.setDev_lang(serviceList.get(0).getDev_lang()); resp.setPort(serviceList.get(0).getPort()); resp.setFirst_level_service_name(request.getService_parent()); //查出ip列表 sql = "select ip,port,status,second_level_service_name,first_level_service_name, release_memo,comm_proto from " + "t_second_level_service_ipinfo where second_level_service_name=? and first_level_service_name=?"; params = new ArrayList<Object>(); params.add(request.getService_name()); params.add(resp.getFirst_level_service_name()); ipList = util.findMoreRefResult(sql, params, SecondLevelServiceIPInfo.class); resp.setIpList((ArrayList<SecondLevelServiceIPInfo>) ipList); //查出配置文件的tag列表 sql = "select tag_name, memo,second_level_service_name,first_level_service_name from t_config_tag where second_level_service_name=? and first_level_service_name=?"; params = new ArrayList<Object>(); params.add(request.getService_name()); params.add(resp.getFirst_level_service_name()); tagList = util.findMoreRefResult(sql, params, SecondLevelServiceConfigTag.class); resp.setConfigTagList((ArrayList<SecondLevelServiceConfigTag>) tagList); //查出 IDL文件的tag列表 sql = "select tag_name, memo,second_level_service_name,first_level_service_name from t_idl_tag where second_level_service_name=? and first_level_service_name=?"; params = new ArrayList<Object>(); params.add(request.getService_name()); params.add(resp.getFirst_level_service_name()); IDLList = util.findMoreRefResult(sql, params, IDL.class); resp.setIDLTagList((ArrayList<IDL>) IDLList); //查出 library文件列表 sql = "select file_name, memo,second_level_service_name,first_level_service_name from t_library_file where second_level_service_name=? and first_level_service_name=?"; params = new ArrayList<Object>(); params.add(request.getService_name()); params.add(resp.getFirst_level_service_name()); libraryFileList = util.findMoreRefResult(sql, params, LibraryFile.class); resp.setLibraryFileList((ArrayList<LibraryFile>) libraryFileList); //查出 业务插件的tag列表 sql = "select tag_name, memo,second_level_service_name,first_level_service_name from t_sharedobject_tag where second_level_service_name=? and first_level_service_name=?"; params = new ArrayList<Object>(); params.add(request.getService_name()); params.add(resp.getFirst_level_service_name()); sharedobjectTagList = util.findMoreRefResult(sql, params, SharedobjectTag.class); resp.setSharedobjectTagList((ArrayList<SharedobjectTag>)sharedobjectTagList); resp.setMessage("success"); resp.setStatus(0); return resp; } catch (Exception e) { resp.setStatus(100); resp.setMessage("db query exception!"); e.printStackTrace(); return resp; } finally { util.releaseConn(); } } }