From 7c291e0d10e63f403f016ede7d8e4ee47dcbf8a9 Mon Sep 17 00:00:00 2001 From: shentao999 Date: Tue, 2 Apr 2019 10:18:24 +0800 Subject: [PATCH 1/1] Add multi-language APIs into BE-common Change-Id: Ia9fddbe81bb2eb8d3e0786fcc81f0469ed45bfa0 Issue-ID: PORTAL-376 Signed-off-by: shentao999 --- ecomp-portal-BE-common/pom.xml | 11 ++++ .../portal/controller/AppsController.java | 2 +- .../portal/controller/LanguageController.java | 53 +++++++++++++++ .../onap/portalapp/portal/domain/DisplayText.java | 27 ++++++++ .../org/onap/portalapp/portal/domain/EPUser.java | 12 +++- .../org/onap/portalapp/portal/domain/Language.java | 26 ++++++++ .../portal/service/EPLeftMenuServiceImpl.java | 26 ++++++++ .../portalapp/portal/service/LanguageService.java | 30 +++++++++ .../portal/service/LanguageServiceImpl.java | 75 ++++++++++++++++++++++ .../src/main/webapp/WEB-INF/fusion/orm/EP.hbm.xml | 43 +++++++++++++ 10 files changed, 302 insertions(+), 3 deletions(-) create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/LanguageController.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/DisplayText.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/Language.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/LanguageService.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/LanguageServiceImpl.java diff --git a/ecomp-portal-BE-common/pom.xml b/ecomp-portal-BE-common/pom.xml index 6cb1279a..b8787f78 100644 --- a/ecomp-portal-BE-common/pom.xml +++ b/ecomp-portal-BE-common/pom.xml @@ -720,6 +720,17 @@ + + org.projectlombok + lombok + 1.18.4 + + + + com.alibaba + fastjson + 1.2.7 + diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/AppsController.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/AppsController.java index 289c8279..b5bd02bc 100644 --- a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/AppsController.java +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/AppsController.java @@ -233,7 +233,7 @@ public class AppsController extends EPRestrictedBaseController { * @return JSON with left menu */ @SuppressWarnings({ "rawtypes", "unchecked" }) - @RequestMapping(value = { "/portalApi/leftmenuItems" }, method = RequestMethod.GET, produces = "application/json") + @RequestMapping(value = { "/portalApi/leftmenuItems" }, method = RequestMethod.GET, produces = "application/json;charset=UTF-8") public String getLeftMenuItems(HttpServletRequest request, HttpServletResponse response) { String menuList = null; Set menuSet = (Set) AppUtils.getSession(request) diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/LanguageController.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/LanguageController.java new file mode 100644 index 00000000..f3a79285 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/LanguageController.java @@ -0,0 +1,53 @@ +/** + * Copyright (C) 2019 CMCC, Inc. and others. All rights reserved. + * + * Licensed under the Apache 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 + * + * http://www.apache.org/licenses/LICENSE-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 org.onap.portalapp.portal.controller; + +import com.alibaba.fastjson.JSONObject; +import org.onap.portalapp.portal.domain.Language; +import org.onap.portalapp.portal.service.LanguageService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +@RestController +@RequestMapping("/auxapi") +public class LanguageController { + + @Autowired + private LanguageService languageService; + + @RequestMapping(value = "/language",method = RequestMethod.GET) + public JSONObject getLanguageList() { + return languageService.getLanguages(); + } + + @RequestMapping(value = "/languageSetting/user/{loginId}",method = RequestMethod.POST) + public void setUpUserLanguage(@RequestBody JSONObject jsonLanguageId, + @PathVariable("loginId") String loginId) throws Exception { + Integer languageId = jsonLanguageId.getInteger("languageId"); + languageService.setUpUserLanguage(languageId,loginId); + } + + @RequestMapping(value = "/languageSetting/user/{loginId}",method = RequestMethod.GET) + public JSONObject getUserLanguage(HttpServletRequest request, HttpServletResponse response, + @PathVariable("loginId") String loginId) { + return languageService.getUserLanguage(loginId); + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/DisplayText.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/DisplayText.java new file mode 100644 index 00000000..d375c020 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/DisplayText.java @@ -0,0 +1,27 @@ +/** + * Copyright (C) 2019 CMCC, Inc. and others. All rights reserved. + * + * Licensed under the Apache 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 + * + * http://www.apache.org/licenses/LICENSE-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 org.onap.portalapp.portal.domain; + +import lombok.Data; + +@Data +public class DisplayText { + + private Integer id; + private Integer languageId; + private Long textId; + private String label; +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPUser.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPUser.java index d7cce0ec..ce7495f7 100644 --- a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPUser.java +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPUser.java @@ -98,7 +98,7 @@ public class EPUser extends User { private Long timeZoneId; private boolean online; private String chatId; - + private Integer languageId; private static final long serialVersionUID = 1L; private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(EPUser.class); @@ -491,8 +491,16 @@ public class EPUser extends User { public void setChatId(String chatId) { this.chatId = chatId; } - + + public Integer getLanguageId() { + return languageId; + } + + public void setLanguageId(Integer languageId) { + this.languageId = languageId; + } + public void setPseudoEPRoles(SortedSet pseudoRoles) { this.pseudoRoles = pseudoRoles; } diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/Language.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/Language.java new file mode 100644 index 00000000..f26488b7 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/Language.java @@ -0,0 +1,26 @@ +/** + * Copyright (C) 2019 CMCC, Inc. and others. All rights reserved. + * + * Licensed under the Apache 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 + * + * http://www.apache.org/licenses/LICENSE-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 org.onap.portalapp.portal.domain; + +import lombok.Data; + +@Data +public class Language { + + private String languageId; + private String languageName; + private String languageAlias; +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPLeftMenuServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPLeftMenuServiceImpl.java index 97c2b74c..96db8e32 100644 --- a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPLeftMenuServiceImpl.java +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPLeftMenuServiceImpl.java @@ -41,6 +41,7 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Comparator; import java.util.HashMap; +import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -51,6 +52,7 @@ import java.util.TreeSet; import org.json.JSONArray; import org.json.JSONObject; import org.onap.portalapp.portal.domain.CentralizedApp; +import org.onap.portalapp.portal.domain.DisplayText; import org.onap.portalapp.portal.domain.EPUser; import org.onap.portalapp.portal.logging.aop.EPMetricsLog; import org.onap.portalsdk.core.domain.MenuData; @@ -117,6 +119,30 @@ public class EPLeftMenuServiceImpl implements EPLeftMenuService { } } + //mulitilanguage impl + String loginId = user.getLoginId(); + HashMap loginParams = new HashMap(); + loginParams.put("login_id",loginId); + List epUsers = dataAccessService.executeNamedQuery("getEPUserByLoginId", loginParams, new HashMap()); + Integer languageId = 1; + for (EPUser epUser : epUsers) { + languageId = epUser.getLanguageId(); + } + Iterator iterator = fullMenuSet.iterator(); + HashMap params = new HashMap(); + params.put("language_id",languageId); + List displayTexts = dataAccessService.executeNamedQuery("displayText",params,new HashMap()); + while (iterator.hasNext()) { + MenuData menuData = iterator.next(); + for (int index = 0;index sortMenuSet = new TreeSet(new SortOrderComparator()); for (MenuData mn : fullMenuSet) { sortMenuSet.add(mn); diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/LanguageService.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/LanguageService.java new file mode 100644 index 00000000..570d1e92 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/LanguageService.java @@ -0,0 +1,30 @@ +/** + * Copyright (C) 2019 CMCC, Inc. and others. All rights reserved. + * + * Licensed under the Apache 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 + * + * http://www.apache.org/licenses/LICENSE-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 org.onap.portalapp.portal.service; + +import com.alibaba.fastjson.JSONObject; +import org.onap.portalapp.portal.domain.Language; + +import java.util.List; + +public interface LanguageService { + + JSONObject getLanguages(); + + String setUpUserLanguage(Integer languageId,String loginId) throws Exception; + + JSONObject getUserLanguage(String loginId); +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/LanguageServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/LanguageServiceImpl.java new file mode 100644 index 00000000..b0d8c424 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/LanguageServiceImpl.java @@ -0,0 +1,75 @@ +/** + * Copyright (C) 2019 CMCC, Inc. and others. All rights reserved. + * + * Licensed under the Apache 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 + * + * http://www.apache.org/licenses/LICENSE-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 org.onap.portalapp.portal.service; + +import com.alibaba.fastjson.JSONObject; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.domain.Language; +import org.onap.portalsdk.core.service.DataAccessService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class LanguageServiceImpl implements LanguageService { + + @Autowired + private DataAccessService dataAccessService; + + @Override + public JSONObject getLanguages() { + List languages = (List) dataAccessService.executeNamedQuery("queryLanguage",null,new HashMap()); + JSONObject result = new JSONObject(); + result.put("languageList",languages); + return result; + } + + @Override + public String setUpUserLanguage(Integer languageId, String loginId) throws Exception{ + Map params = new HashMap<>(); + params.put("login_id",loginId); + params.put("language_id",languageId); + dataAccessService.executeNamedQuery("updateFnUser",params,new HashMap()); + return "success"; + } + + @Override + public JSONObject getUserLanguage(String loginId) { + // get language_id from fn_user by loginId + JSONObject result = new com.alibaba.fastjson.JSONObject(); + HashMap params = new HashMap(); + params.put("login_id",loginId); + + List list = null; + list = dataAccessService.executeNamedQuery("getEPUserByLoginId",params,new HashMap()); + for (EPUser user : list) { + int languageId = user.getLanguageId(); + HashMap params1 = new HashMap(); + params1.put("language_id", String.valueOf(languageId)); + List languages = dataAccessService.executeNamedQuery("queryLanguageByLanguageId",params1,new HashMap()); + for (Language language : languages) { + result.put("languageId",languageId); + result.put("languageName",language.getLanguageName()); + result.put("languageAlias",language.getLanguageAlias()); + } + return result; + } + return null; + } +} diff --git a/ecomp-portal-BE-common/src/main/webapp/WEB-INF/fusion/orm/EP.hbm.xml b/ecomp-portal-BE-common/src/main/webapp/WEB-INF/fusion/orm/EP.hbm.xml index 50264215..4e8943ce 100644 --- a/ecomp-portal-BE-common/src/main/webapp/WEB-INF/fusion/orm/EP.hbm.xml +++ b/ecomp-portal-BE-common/src/main/webapp/WEB-INF/fusion/orm/EP.hbm.xml @@ -43,6 +43,29 @@ + + + + + + + + + + + + + + + + + + + + + + + @@ -206,6 +229,7 @@ + @@ -528,6 +552,25 @@ + + + + + + + + + + + + + -- 2.16.6