Browse Source

数据端菜单管理

feature/syp_points
songyunpeng 5 years ago
parent
commit
242ad0e152
  1. 11
      esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/AppMenuDTO.java
  2. 29
      esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/AppMenuGroupDTO.java
  3. 33
      esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/enums/AppMenuCategoryEnum.java
  4. 7
      esua-epdc/epdc-admin/epdc-admin-server/pom.xml
  5. 77
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/v2/AppMenuV2Controller.java
  6. 83
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/v2/SysRoleV2Controller.java
  7. 10
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/AppMenuDao.java
  8. 12
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/AppRoleMenuDao.java
  9. 22
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/AppMenuService.java
  10. 11
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/AppRoleMenuService.java
  11. 4
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysRoleService.java
  12. 46
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/AppMenuServiceImpl.java
  13. 5
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/AppRoleMenuServiceImpl.java
  14. 64
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysRoleServiceImpl.java
  15. 37
      esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/AppMenuDao.xml
  16. 10
      esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/AppRoleMenuDao.xml
  17. 7
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiWorkUserController.java
  18. 42
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/v2/ApiWorkUserV2Controller.java
  19. 12
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java
  20. 4
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java
  21. 3
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/WorkUserService.java
  22. 10
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/WorkUserServiceImpl.java

11
esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/AppMenuDTO.java

@ -17,9 +17,6 @@
package com.elink.esua.epdc.dto;
import java.io.Serializable;
import java.util.Date;
import com.elink.esua.epdc.commons.tools.utils.TreeNode;
import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup;
import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup;
@ -30,6 +27,8 @@ import org.hibernate.validator.constraints.Range;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
/**
@ -132,4 +131,10 @@ public class AppMenuDTO extends TreeNode<SysMenuDTO> implements Serializable {
* 上级菜单名称
*/
private String parentName;
/**
* {@link com.elink.esua.epdc.enums.AppMenuCategoryEnum}
*/
private String category;
}

29
esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/AppMenuGroupDTO.java

@ -0,0 +1,29 @@
package com.elink.esua.epdc.dto;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* 移动端菜单分组
*
* @author work@yujt.net.cn
* @date 2020/9/1 10:52
*/
@Data
public class AppMenuGroupDTO implements Serializable {
private static final long serialVersionUID = 8979318364775500637L;
/**
* 工作端菜单
*/
private List<AppMenuDTO> workMenu;
/**
* 数据端菜单
*/
private List<AppMenuDTO> analysisMenu;
}

33
esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/enums/AppMenuCategoryEnum.java

@ -0,0 +1,33 @@
package com.elink.esua.epdc.enums;
/**
* 移动端菜单类别枚举
* ALTER TABLE sys_app_menu ADD COLUMN `category` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '菜单所属类别work(工作端);analysis(数据端)';
* ALTER TABLE sys_app_menu_template ADD COLUMN `category` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '菜单所属类别work(工作端);analysis(数据端)';
* UPDATE sys_app_menu SET category = 'work';
* UPDATE sys_app_menu_template SET category = 'work';
*
* @author work@yujt.net.cn
* @date 2020/9/1 13:34
*/
public enum AppMenuCategoryEnum {
/**
* 工作端/领导端
*/
WORK("work"),
/**
* 数据端
*/
ANALYSIS("analysis");
private String value;
AppMenuCategoryEnum(String value) {
this.value = value;
}
public String getValue() {
return value;
}
}

7
esua-epdc/epdc-admin/epdc-admin-server/pom.xml

@ -74,6 +74,13 @@
<artifactId>rocketmq-spring-boot-starter</artifactId>
<version>2.0.2</version>
</dependency>
<!--接口版本控制-->
<dependency>
<groupId>com.esua.epdc</groupId>
<artifactId>epdc-commons-api-version-control</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
<build>

77
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/v2/AppMenuV2Controller.java

@ -0,0 +1,77 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
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.security.user.UserDetail;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.AppMenuGroupDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcAppIndexPanelResultDTO;
import com.elink.esua.epdc.service.AppMenuService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 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;
/**
* 管理端角色修改页面获取全部菜单
*
* @param userDetail
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.AppMenuGroupDTO>
* @author work@yujt.net.cn
* @date 2020/9/1 17:31
*/
@GetMapping("select")
public Result<AppMenuGroupDTO> select(UserDetail userDetail) {
AppMenuGroupDTO result = appMenuService.getUserMenuListV2(userDetail);
return new Result().ok(result);
}
/**
* 首页面板 获取工作端数据端首页菜单
*
* @param category {@link com.elink.esua.epdc.enums.AppMenuCategoryEnum}
* @param mobile 管理员手机号
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < com.elink.esua.epdc.dto.epdc.result.EpdcAppIndexPanelResultDTO>>
* @author work@yujt.net.cn
* @date 2020/9/1 17:30
*/
@GetMapping("/indexPanel/{category}/{mobile}")
public Result<List<EpdcAppIndexPanelResultDTO>> indexPanel(@PathVariable("category") String category, @PathVariable("mobile") String mobile) {
return new Result().ok(appMenuService.indexPanel(category, mobile));
}
}

83
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/v2/SysRoleV2Controller.java

@ -0,0 +1,83 @@
/**
* Copyright (c) 2018 人人开源 All rights reserved.
* <p>
* https://www.renren.io
* <p>
* 版权所有侵权必究
*/
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.utils.Result;
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.SysRoleDTO;
import com.elink.esua.epdc.enums.AppMenuCategoryEnum;
import com.elink.esua.epdc.service.AppRoleMenuService;
import com.elink.esua.epdc.service.SysRoleDataScopeService;
import com.elink.esua.epdc.service.SysRoleMenuService;
import com.elink.esua.epdc.service.SysRoleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* 角色管理
*
* @author Mark sunlightcs@gmail.com
* @since 1.0.0
*/
@ApiVersion(2)
@RestController
@RequestMapping("role" + Constant.VERSION_CONTROL)
public class SysRoleV2Controller {
@Autowired
private SysRoleService sysRoleService;
@Autowired
private SysRoleMenuService sysRoleMenuService;
@Autowired
private SysRoleDataScopeService sysRoleDataScopeService;
@Autowired
private AppRoleMenuService appRoleMenuService;
@GetMapping("{id}")
public Result<SysRoleDTO> get(@PathVariable("id") Long id) {
SysRoleDTO data = sysRoleService.get(id);
//查询角色对应的菜单
data.setMenuIdList(sysRoleMenuService.getMenuIdList(id));
//查询角色对应的数据权限
data.setDeptIdList(sysRoleDataScopeService.getDeptIdList(id));
//查询角色对应app菜单权限
data.setAppMenuIdList(appRoleMenuService.getAppMenuIdListV2(id, AppMenuCategoryEnum.WORK.getValue()));
//查询角色对应数据端菜单权限
data.setAnalysisMenuIdList(appRoleMenuService.getAppMenuIdListV2(id, AppMenuCategoryEnum.ANALYSIS.getValue()));
//查询角色对应的项目处理类型权限
data.setCategoryIdList(sysRoleService.getCategoryIdList(id));
//查询角色对应的吹哨部门
data.setWhistleDeptIdList(sysRoleService.getWhistleDeptIdList(id));
return new Result<SysRoleDTO>().ok(data);
}
@PostMapping
public Result save(@RequestBody SysRoleDTO dto) {
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
sysRoleService.saveV2(dto);
return new Result();
}
@PutMapping
public Result update(@RequestBody SysRoleDTO dto) {
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
sysRoleService.updateV2(dto);
return new Result();
}
}

10
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/AppMenuDao.java

@ -88,4 +88,14 @@ public interface AppMenuDao extends BaseDao<AppMenuEntity> {
* @Date 2020/03/18 10:42
**/
List<EpdcAppChildNavResultDTO> getAnalysisIndexPanel(String userId);
/**
* 获取移动端菜单信息
*
* @param category 菜单类别
* @param mobile 手机号码
* @return java.util.List<com.elink.esua.epdc.dto.epdc.result.EpdcAppIndexPanelResultDTO>
* @author work@yujt.net.cn
* @date 2020/9/1 17:25
*/
List<EpdcAppIndexPanelResultDTO> indexPanelByMobileAndCategory(@Param("category") String category, @Param("mobile") String mobile);
}

12
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/AppRoleMenuDao.java

@ -20,6 +20,7 @@ package com.elink.esua.epdc.dao;
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
import com.elink.esua.epdc.entity.AppRoleMenuEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -45,4 +46,15 @@ public interface AppRoleMenuDao extends BaseDao<AppRoleMenuEntity> {
* @return
*/
List<Long> getAppMenuIdList(Long id);
/**
* 根据角色ID和APP菜单类别获取菜单ID列表
*
* @param roleId 角色ID
* @param appMenuCategory APP菜单类别区分工作端数据端
* @return java.util.List<java.lang.Long>
* @author work@yujt.net.cn
* @date 2020/9/1 15:42
*/
List<Long> selectAppMenuIdListV2(@Param("roleId") Long roleId, @Param("appMenuCategory") String appMenuCategory);
}

22
esua-epdc/epdc-admin/epdc-admin-server/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;
@ -152,4 +153,25 @@ public interface AppMenuService extends BaseService<AppMenuEntity> {
* @Date 2020/03/18 10:42
**/
Result<List<EpdcAppChildNavResultDTO>> 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);
/**
* 获取移动端菜单信息
*
* @param category 菜单类别
* @param mobile 手机号码
* @return java.util.List < com.elink.esua.epdc.dto.epdc.result.EpdcAppIndexPanelResultDTO>
* @author work@yujt.net.cn
* @date 2020/9/1 17:20
*/
List<EpdcAppIndexPanelResultDTO> indexPanel(String category, String mobile);
}

11
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/AppRoleMenuService.java

@ -115,4 +115,15 @@ public interface AppRoleMenuService extends BaseService<AppRoleMenuEntity> {
* @return
*/
List<Long> getAppMenuIdList(Long id);
/**
* 根据角色ID和APP菜单类别获取菜单ID列表
*
* @param roleId 角色id
* @param value APP菜单类别区分工作端数据端
* @return java.util.List<java.lang.Long>
* @author work@yujt.net.cn
* @date 2020/9/1 15:40
*/
List<Long> getAppMenuIdListV2(Long roleId, String value);
}

4
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysRoleService.java

@ -38,4 +38,8 @@ public interface SysRoleService extends BaseService<SysRoleEntity> {
List<String> getCategoryIdList(Long id);
List<Long> getWhistleDeptIdList(Long id);
void saveV2(SysRoleDTO dto);
void updateV2(SysRoleDTO dto);
}

46
esua-epdc/epdc-admin/epdc-admin-server/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;
@ -181,5 +184,48 @@ public class AppMenuServiceImpl extends BaseServiceImpl<AppMenuDao, AppMenuEntit
return new Result().ok(list);
}
@Override
public AppMenuGroupDTO getUserMenuListV2(UserDetail userDetail) {
List<AppMenuDTO> dtoList = ConvertUtils.sourceToTarget(getUserMenuList(userDetail), AppMenuDTO.class);
List<AppMenuDTO> workMenuList = Lists.newArrayList();
List<AppMenuDTO> analysisMenuList = Lists.newArrayList();
dtoList.forEach(dto -> {
if (dto != null) {
String category = dto.getCategory();
if (AppMenuCategoryEnum.WORK.getValue().equals(category)) {
workMenuList.add(dto);
} else if (AppMenuCategoryEnum.ANALYSIS.getValue().equals(category)) {
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<com.elink.esua.epdc.entity.AppMenuEntity>
* @author work@yujt.net.cn
* @date 2020/9/1 13:39
*/
private List<AppMenuEntity> getUserMenuList(UserDetail userDetail) {
List<AppMenuEntity> menuList;
//系统管理员,拥有最高权限
if (userDetail.getSuperAdmin() == SuperAdminEnum.YES.value()) {
menuList = baseDao.getMenuList(null, HttpContextUtils.getLanguage());
} else {
menuList = baseDao.getUserMenuList(userDetail.getId(), null, HttpContextUtils.getLanguage());
}
return menuList;
}
@Override
public List<EpdcAppIndexPanelResultDTO> indexPanel(String category, String mobile) {
return this.baseDao.indexPanelByMobileAndCategory(category, mobile);
}
}

5
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/AppRoleMenuServiceImpl.java

@ -149,4 +149,9 @@ public class AppRoleMenuServiceImpl extends BaseServiceImpl<AppRoleMenuDao, AppR
public List<Long> getAppMenuIdList(Long id) {
return baseDao.getAppMenuIdList(id);
}
@Override
public List<Long> getAppMenuIdListV2(Long roleId, String appMenuCategory) {
return baseDao.selectAppMenuIdListV2(roleId, appMenuCategory);
}
}

64
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysRoleServiceImpl.java

@ -8,6 +8,7 @@
package com.elink.esua.epdc.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.elink.esua.epdc.commons.mybatis.enums.DelFlagEnum;
@ -38,6 +39,8 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* 角色管理
@ -207,6 +210,67 @@ public class SysRoleServiceImpl extends BaseServiceImpl<SysRoleDao, SysRoleEntit
Result<List<Long>> result = eventFeignClient.queryWhistleDeptIdList(id);
return result.getData();
}
@Override
public void saveV2(SysRoleDTO dto) {
SysRoleEntity entity = ConvertUtils.sourceToTarget(dto, SysRoleEntity.class);
//保存角色
insert(entity);
//保存角色菜单关系
sysRoleMenuService.saveOrUpdate(entity.getId(), dto.getMenuIdList());
//保存角色数据权限关系
sysRoleDataScopeService.saveOrUpdate(entity.getId(), dto.getDeptIdList());
handleEpdcUserRole(dto, entity, true);
}
@Override
public void updateV2(SysRoleDTO dto) {
SysRoleEntity entity = ConvertUtils.sourceToTarget(dto, SysRoleEntity.class);
//更新角色
updateById(entity);
//更新角色菜单关系
sysRoleMenuService.saveOrUpdate(entity.getId(), dto.getMenuIdList());
//更新角色数据权限关系
sysRoleDataScopeService.saveOrUpdate(entity.getId(), dto.getDeptIdList());
handleEpdcUserRole(dto, entity, true);
}
/**
* 党群相关权限集中处理 包括工作端数据端吹哨权限
*
* @param dto 管理员设置的用户权限
* @param entity dto转化而来的实体对象
* @return void
* @author work@yujt.net.cn
* @date 2020/5/13 19:42
*/
private void handleEpdcUserRole(SysRoleDTO dto, SysRoleEntity entity, boolean v2) {
if (v2) {
// 同时保存数据端与工作端权限
appRoleMenuService.saveOrUpdate(entity.getId(), Stream.concat(dto.getAppMenuIdList().stream(), dto.getAnalysisMenuIdList().stream()).collect(Collectors.toList()));
} else {
// 分别保存数据端与工作端权限
appRoleMenuService.saveOrUpdate(entity.getId(), dto.getAppMenuIdList());
sysAnalysisRoleMenuService.saveOrUpdate(entity.getId(), dto.getAnalysisMenuIdList());
}
//保存角色与项目处理类型关系
List<String> categoryIdList = dto.getCategoryIdList();
if (CollUtil.isNotEmpty(categoryIdList)) {
HandleRoleCategoryFormDTO categoryFormDTO = new HandleRoleCategoryFormDTO();
categoryFormDTO.setRoleId(entity.getId());
categoryFormDTO.setCategoryIdList(categoryIdList);
eventFeignClient.saveOrUpdateHandleCategory(categoryFormDTO);
}
List<Long> whistleDeptIdList = dto.getWhistleDeptIdList();
if (CollUtil.isNotEmpty(whistleDeptIdList)) {
//保存角色对应的可吹哨部门权限
this.saveOrUpdateWhistleDeptId(entity.getId(), whistleDeptIdList);
}
}
/**
* @param roleId

37
esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/AppMenuDao.xml

@ -163,4 +163,41 @@
and m1.menu_code = 10010
)order by mp.sort asc,mc.sort asc
</select>
<select id="indexPanelByMobileAndCategory" resultMap="EpdcIndexPanelResultDTOMap">
SELECT
lp.field_value AS mainLabel,
t.COLUMN_AMOUNT AS columnAmount,
t.BACKGROUND_COLOR AS backgroundColor,
t.CLASS_NAME AS tpClassName,
t.SPARE_CLASS_NAME AS spareClassName,
t.TEMPLATE_CODE AS templateCode,
lc.field_value AS label,
mc.menu_code AS navCode,
mc.class_name AS className,
mc.remark,
mc.icon,
mc.num_flag as numFlag
FROM
sys_app_menu mp
LEFT JOIN sys_language lp ON lp.table_id = mp.id
LEFT JOIN sys_app_menu mc ON mp.id = mc.pid
LEFT JOIN sys_language lc ON lc.table_id = mc.id
LEFT JOIN sys_app_menu_template t ON mp.template_id = t.id
WHERE
mc.id IN (
SELECT
m.id meauId
FROM
sys_user u
LEFT JOIN sys_role_user ru ON ru.user_id = u.id
LEFT JOIN sys_app_role_menu am ON am.role_id = ru.role_id
LEFT JOIN sys_app_menu m ON am.menu_id = m.id
WHERE
u.mobile = #{mobile}
AND m.category =#{category}
AND am.menu_id IS NOT NULL
AND m.pid != 0
)order by mp.sort asc,mc.sort asc
</select>
</mapper>

10
esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/AppRoleMenuDao.xml

@ -18,4 +18,14 @@
<select id="getAppMenuIdList" resultType="long">
select menu_id from sys_app_role_menu where role_id = #{value}
</select>
<select id="selectAppMenuIdListV2" resultType="java.lang.Long">
SELECT
menu_id
FROM
sys_app_role_menu rm
LEFT JOIN sys_app_menu m ON rm.menu_id = m.id
WHERE
rm.role_id = #{roleId}
AND m.category = #{appMenuCategory}
</select>
</mapper>

7
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiWorkUserController.java

@ -168,7 +168,12 @@ public class ApiWorkUserController {
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < com.elink.esua.epdc.dto.epdc.result.EpdcIndexPanelResultDTO>>
* @Author yinzuomei
* @Date 2019/11/20 10:42
**/
* <p>
* 已过时改用新接口
* {@link ApiWorkUserV2Controller#indexPanel()}
* -- modified by yujt on 20200901
*/
@Deprecated
@GetMapping("indexPanel")
public Result<List<EpdcAppIndexPanelResultDTO>> indexPanel() {
return workUserService.indexPanel();

42
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/v2/ApiWorkUserV2Controller.java

@ -0,0 +1,42 @@
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.utils.Result;
import com.elink.esua.epdc.dto.epdc.result.EpdcAppIndexPanelResultDTO;
import com.elink.esua.epdc.service.WorkUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 工作端用户登录用户管理相关接口
*
* @author work@yujt.net.cn
* @date 2019/11/18 10:45
*/
@ApiVersion(2)
@RestController
@RequestMapping("work/user" + Constant.VERSION_CONTROL)
public class ApiWorkUserV2Controller {
@Autowired
private WorkUserService workUserService;
/**
* 首页面板 获取工作端APP菜单
*
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < com.elink.esua.epdc.dto.epdc.result.EpdcIndexPanelResultDTO>>
* @Author yinzuomei
* @Date 2019/11/20 10:42
**/
@GetMapping("indexPanel")
public Result<List<EpdcAppIndexPanelResultDTO>> indexPanel() {
return workUserService.indexPanelV2();
}
}

12
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java

@ -82,6 +82,18 @@ public interface AdminFeignClient {
@GetMapping("sys/appmenu/indexPanel/{mobile}")
Result<List<EpdcAppIndexPanelResultDTO>> indexPanel(@PathVariable("mobile") String mobile);
/**
* 首页面板 获取工作端数据端首页菜单
*
* @param category {@link com.elink.esua.epdc.enums.AppMenuCategoryEnum}
* @param mobile 管理员手机号
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < com.elink.esua.epdc.dto.epdc.result.EpdcAppIndexPanelResultDTO>>
* @author work@yujt.net.cn
* @date 2020/9/1 17:30
*/
@GetMapping("sys/appmenu/v2/indexPanel/{category}/{mobile}")
Result<List<EpdcAppIndexPanelResultDTO>> indexPanel(@PathVariable("category") String category, @PathVariable("mobile") String mobile);
/**
* @param
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.DeptOption>

4
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java

@ -45,6 +45,10 @@ public class AdminFeignClientFallback implements AdminFeignClient {
return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "indexPanel", mobile);
}
@Override
public Result<List<EpdcAppIndexPanelResultDTO>> indexPanel(String category, String mobile) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "indexPanel", category, mobile);
}
@Override
public Result<DeptOption> getDeptTreeForEpiDemic() {
return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "getDeptTreeForEpiDemic");

3
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/WorkUserService.java

@ -92,6 +92,9 @@ public interface WorkUserService {
**/
Result<List<EpdcAppIndexPanelResultDTO>> indexPanel();
Result<List<EpdcAppIndexPanelResultDTO>> indexPanelV2();
/**
* @param formDTO
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < com.elink.esua.epdc.dto.epdc.result.EpdcAuthenticateHistoryResultDTO>>

10
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/WorkUserServiceImpl.java

@ -23,6 +23,7 @@ import com.elink.esua.epdc.dto.issue.result.IssueStateStatisticsResultDTO;
import com.elink.esua.epdc.dto.item.form.ItemStatisticsFormDTO;
import com.elink.esua.epdc.dto.item.result.ItemStatisticsResultDTO;
import com.elink.esua.epdc.dto.result.WorkAppMenuStatisticsResultDTO;
import com.elink.esua.epdc.enums.AppMenuCategoryEnum;
import com.elink.esua.epdc.feign.AdminFeignClient;
import com.elink.esua.epdc.feign.ResourceFeignClient;
import com.elink.esua.epdc.feign.UserFeignClient;
@ -204,7 +205,14 @@ public class WorkUserServiceImpl implements WorkUserService {
}
return adminFeignClient.indexPanel(mobile);
}
@Override
public Result<List<EpdcAppIndexPanelResultDTO>> indexPanelV2() {
String mobile = SecurityUser.getUser().getMobile();
if (StringUtils.isBlank(mobile)) {
throw new RenException("获取用户信息失败");
}
return adminFeignClient.indexPanel(AppMenuCategoryEnum.WORK.getValue(), mobile);
}
/**
* @param formDTO
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < com.elink.esua.epdc.dto.epdc.result.EpdcAuthenticateHistoryResultDTO>>

Loading…
Cancel
Save