diff --git a/epdc-cloud-admin/pom.xml b/epdc-cloud-admin/pom.xml index ce04879..b13448f 100644 --- a/epdc-cloud-admin/pom.xml +++ b/epdc-cloud-admin/pom.xml @@ -69,6 +69,13 @@ ${epdc-cloud-commons.version} + + + com.esua.epdc.yushan + epdc-commons-api-version-control + ${epdc-cloud-commons.version} + + diff --git a/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/controller/v2/AppMenuV2Controller.java b/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/controller/v2/AppMenuV2Controller.java new file mode 100644 index 0000000..dfd7741 --- /dev/null +++ b/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/controller/v2/AppMenuV2Controller.java @@ -0,0 +1,89 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.elink.esua.epdc.controller.v2; + +import com.elink.esua.epdc.commons.api.version.ApiVersion; +import com.elink.esua.epdc.commons.tools.constant.Constant; +import com.elink.esua.epdc.commons.tools.exception.ErrorCode; +import com.elink.esua.epdc.commons.tools.security.user.UserDetail; +import com.elink.esua.epdc.commons.tools.utils.ExcelUtils; +import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.commons.tools.validator.AssertUtils; +import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils; +import com.elink.esua.epdc.commons.tools.validator.group.AddGroup; +import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup; +import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup; +import com.elink.esua.epdc.dto.AppMenuDTO; +import com.elink.esua.epdc.dto.AppMenuGroupDTO; +import com.elink.esua.epdc.dto.epdc.result.EpdcAppChildNavResultDTO; +import com.elink.esua.epdc.dto.epdc.result.EpdcAppIndexPanelResultDTO; +import com.elink.esua.epdc.excel.AppMenuExcel; +import com.elink.esua.epdc.service.AppMenuService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; +import java.util.Map; + + +/** + * APP菜单管理 + * + * @author work@yujt.net.cn + * @since v1.0.0 2019-11-19 + */ +@ApiVersion(2) +@RestController +@RequestMapping("appmenu" + Constant.VERSION_CONTROL) +public class AppMenuV2Controller { + + @Autowired + private AppMenuService appMenuService; + + + @GetMapping("select") + public Result select(UserDetail userDetail) { + AppMenuGroupDTO result = appMenuService.getUserMenuListV2(userDetail); + return new Result().ok(result); + } + + /** + * @param mobile + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @Author yinzuomei + * @Description 首页面板 获取工作端APP菜单 + * @Date 2019/11/20 10:43 + **/ + @GetMapping("/indexPanel/{mobile}") + public Result> indexPanel(@PathVariable("mobile") String mobile) { + return appMenuService.indexPanel(mobile); + } + + /** + * @param userId + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @Author lpf + * @Description 首页面板 获取数据端APP菜单 + * @Date 2020/03/18 10:42 + **/ + @GetMapping("/analysisIndexPanel/{userId}") + public Result> analysisIndexPanel(@PathVariable("userId") String userId) { + return appMenuService.getAnalysisIndexPanel(userId); + } +} diff --git a/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/entity/AppMenuEntity.java b/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/entity/AppMenuEntity.java index 00b42d0..e6a516d 100644 --- a/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/entity/AppMenuEntity.java +++ b/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/entity/AppMenuEntity.java @@ -57,6 +57,11 @@ public class AppMenuEntity extends BaseEntity { */ private Integer type; + /** + * {@link com.elink.esua.epdc.enums.AppMenuCategoryEnum} + */ + private String category; + /** * 菜单图标 */ diff --git a/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/entity/AppMenuTemplateEntity.java b/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/entity/AppMenuTemplateEntity.java index f274f40..20d1133 100644 --- a/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/entity/AppMenuTemplateEntity.java +++ b/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/entity/AppMenuTemplateEntity.java @@ -32,17 +32,17 @@ import java.util.Date; * @since v1.0.0 2019-11-19 */ @Data -@EqualsAndHashCode(callSuper=false) +@EqualsAndHashCode(callSuper = false) @TableName("sys_app_menu_template") public class AppMenuTemplateEntity extends BaseEpdcEntity { - private static final long serialVersionUID = 3771232002180783503L; + private static final long serialVersionUID = 3771232002180783503L; /** * 背景颜色(渐变色为0时使用) */ - private String backgroundColor; + private String backgroundColor; /** * CSS类名 @@ -57,16 +57,21 @@ public class AppMenuTemplateEntity extends BaseEpdcEntity { /** * 模板编码(tem-1,tem-2,tem-3) */ - private String templateCode; + private String templateCode; /** * 模板名称 */ - private String templateName; + private String templateName; /** * 模块列数 */ private Integer columnAmount; + /** + * {@link com.elink.esua.epdc.enums.AppMenuCategoryEnum} + */ + private String category; + } \ No newline at end of file diff --git a/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/service/AppMenuService.java b/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/service/AppMenuService.java index 401d3fc..473fe2c 100644 --- a/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/service/AppMenuService.java +++ b/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/service/AppMenuService.java @@ -22,6 +22,7 @@ import com.elink.esua.epdc.commons.tools.page.PageData; import com.elink.esua.epdc.commons.tools.security.user.UserDetail; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dto.AppMenuDTO; +import com.elink.esua.epdc.dto.AppMenuGroupDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcAppChildNavResultDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcAppIndexPanelResultDTO; import com.elink.esua.epdc.entity.AppMenuEntity; @@ -144,6 +145,7 @@ public interface AppMenuService extends BaseService { * @Date 2019/11/20 10:42 **/ Result> indexPanel(String mobile); + /** * @param userId * @return com.elink.esua.epdc.commons.tools.utils.Result> @@ -152,4 +154,14 @@ public interface AppMenuService extends BaseService { * @Date 2020/03/18 10:42 **/ Result> getAnalysisIndexPanel(String userId); + + /** + * 获取小程序端菜单并分组 + * + * @param userDetail 用户信息 + * @return com.elink.esua.epdc.dto.AppMenuGroupDTO + * @author work@yujt.net.cn + * @date 2020/9/1 10:58 + */ + AppMenuGroupDTO getUserMenuListV2(UserDetail userDetail); } diff --git a/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/service/impl/AppMenuServiceImpl.java b/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/service/impl/AppMenuServiceImpl.java index 876d250..df1bb48 100644 --- a/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/service/impl/AppMenuServiceImpl.java +++ b/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/service/impl/AppMenuServiceImpl.java @@ -33,12 +33,15 @@ import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.commons.tools.utils.TreeUtils; import com.elink.esua.epdc.dao.AppMenuDao; import com.elink.esua.epdc.dto.AppMenuDTO; +import com.elink.esua.epdc.dto.AppMenuGroupDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcAppChildNavResultDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcAppIndexPanelResultDTO; import com.elink.esua.epdc.entity.AppMenuEntity; +import com.elink.esua.epdc.enums.AppMenuCategoryEnum; import com.elink.esua.epdc.enums.MenuTableEnum; import com.elink.esua.epdc.service.AppMenuService; import com.elink.esua.epdc.service.SysLanguageService; +import com.google.common.collect.Lists; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -92,7 +95,7 @@ public class AppMenuServiceImpl extends BaseServiceImpl getUserMenuList(UserDetail userDetail, Integer type) { - List menuList; + List dtoList = ConvertUtils.sourceToTarget(getUserMenuList(userDetail), AppMenuDTO.class); + return TreeUtils.build(dtoList); + } + + @Override + public AppMenuGroupDTO getUserMenuListV2(UserDetail userDetail) { + List dtoList = ConvertUtils.sourceToTarget(getUserMenuList(userDetail), AppMenuDTO.class); + List workMenuList = Lists.newArrayList(); + List analysisMenuList = Lists.newArrayList(); + for (int i = 0; i < dtoList.size(); i++) { + AppMenuDTO dto = dtoList.get(i); + if (AppMenuCategoryEnum.WORK.getValue().equals(dto.getCategory())) { + workMenuList.add(dto); + } else if (AppMenuCategoryEnum.ANALYSIS.getValue().equals(dto.getCategory())) { + analysisMenuList.add(dto); + } + } + AppMenuGroupDTO group = new AppMenuGroupDTO(); + group.setWorkMenu(TreeUtils.build(workMenuList)); + group.setAnalysisMenu(TreeUtils.build(analysisMenuList)); + return group; + } + /** + * 查询用户APP菜单权限 + * + * @param userDetail + * @return java.util.List + * @author work@yujt.net.cn + * @date 2020/9/1 13:39 + */ + private List getUserMenuList(UserDetail userDetail) { + List menuList; //系统管理员,拥有最高权限 if (userDetail.getSuperAdmin() == SuperAdminEnum.YES.value()) { - menuList = baseDao.getMenuList(type, HttpContextUtils.getLanguage()); + menuList = baseDao.getMenuList(null, HttpContextUtils.getLanguage()); } else { - menuList = baseDao.getUserMenuList(userDetail.getId(), type, HttpContextUtils.getLanguage()); + menuList = baseDao.getUserMenuList(userDetail.getId(), null, HttpContextUtils.getLanguage()); } - - List dtoList = ConvertUtils.sourceToTarget(menuList, AppMenuDTO.class); - - return TreeUtils.build(dtoList); + return menuList; } /** @@ -172,6 +203,7 @@ public class AppMenuServiceImpl extends BaseServiceImpl indexPanelResultDTOList = this.baseDao.indexPanelByMobile(mobile); return new Result().ok(indexPanelResultDTOList); } + @Override public Result> getAnalysisIndexPanel(String userId) { if (StringUtils.isBlank(userId)) { diff --git a/epdc-cloud-client-yushan b/epdc-cloud-client-yushan index 8c3f710..36dc899 160000 --- a/epdc-cloud-client-yushan +++ b/epdc-cloud-client-yushan @@ -1 +1 @@ -Subproject commit 8c3f710e726265ff1b3b47ac6ab005d025218974 +Subproject commit 36dc899615aee282944b09e5abd92f45d0084553