feat: bug-243 管理端权限调整,添加对客户端菜单的支持
This commit is contained in:
parent
b4ecf2f8f0
commit
62b3f2fa30
|
|
@ -458,4 +458,16 @@ public class AppUserController extends ControllerBase {
|
||||||
emailService.sendEmail(request.getEmail(), subject, content);
|
emailService.sendEmail(request.getEmail(), subject, content);
|
||||||
return ApiResult.success();
|
return ApiResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 授权角色
|
||||||
|
* @param request 请求参数
|
||||||
|
*/
|
||||||
|
@PostMapping("authorizeRole")
|
||||||
|
@MethodInfoMark(value = "授权角色", menuName = "账号管理")
|
||||||
|
@ApiMark(moduleName = "账号管理", apiName = "授权角色")
|
||||||
|
public ApiResult<Void> authorizeRole(@Valid @RequestBody AuthorizeRoleRequest request) {
|
||||||
|
appUserService.authorizeRole(request);
|
||||||
|
return ApiResult.success();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -22,6 +22,7 @@ import com.nflg.mobilebroken.common.util.AdminUserUtil;
|
||||||
import com.nflg.mobilebroken.common.util.EecExcelUtil;
|
import com.nflg.mobilebroken.common.util.EecExcelUtil;
|
||||||
import com.nflg.mobilebroken.common.util.PageUtil;
|
import com.nflg.mobilebroken.common.util.PageUtil;
|
||||||
import com.nflg.mobilebroken.common.util.VUtils;
|
import com.nflg.mobilebroken.common.util.VUtils;
|
||||||
|
import com.nflg.mobilebroken.repository.entity.DictionaryItem;
|
||||||
import com.nflg.mobilebroken.repository.entity.DictionaryItemTranslate;
|
import com.nflg.mobilebroken.repository.entity.DictionaryItemTranslate;
|
||||||
import com.nflg.mobilebroken.repository.entity.Language;
|
import com.nflg.mobilebroken.repository.entity.Language;
|
||||||
import com.nflg.mobilebroken.repository.service.IDictionaryItemService;
|
import com.nflg.mobilebroken.repository.service.IDictionaryItemService;
|
||||||
|
|
@ -37,6 +38,7 @@ import org.springframework.web.multipart.MultipartFile;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
|
import javax.validation.constraints.NotBlank;
|
||||||
import javax.validation.constraints.NotEmpty;
|
import javax.validation.constraints.NotEmpty;
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
@ -212,4 +214,15 @@ public class DictionaryController extends ControllerBase {
|
||||||
throw new NflgException(STATE.BusinessError, "文件处理失败:" + e.getMessage());
|
throw new NflgException(STATE.BusinessError, "文件处理失败:" + e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据字典编码获取字典值列表
|
||||||
|
* @param dictionaryCode 字典编码
|
||||||
|
* @return 字典值列表
|
||||||
|
*/
|
||||||
|
@GetMapping("getListByDictionaryCode")
|
||||||
|
@ApiMark(moduleName = "字典管理", apiName = "根据字典编码获取字典值列表",isPublic = true)
|
||||||
|
public ApiResult<List<DictionaryItem>> getListByDictionaryCode(@Valid @RequestParam @NotBlank String dictionaryCode){
|
||||||
|
return ApiResult.success(dictionaryItemService.getListByDictionaryCode(dictionaryCode));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,22 +1,24 @@
|
||||||
package com.nflg.mobilebroken.admin.controller;
|
package com.nflg.mobilebroken.admin.controller;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.nflg.mobilebroken.admin.annotation.ApiMark;
|
import com.nflg.mobilebroken.admin.annotation.ApiMark;
|
||||||
|
import com.nflg.mobilebroken.common.constant.Constant;
|
||||||
import com.nflg.mobilebroken.common.pojo.ApiResult;
|
import com.nflg.mobilebroken.common.pojo.ApiResult;
|
||||||
import com.nflg.mobilebroken.common.pojo.PageData;
|
import com.nflg.mobilebroken.common.pojo.PageData;
|
||||||
import com.nflg.mobilebroken.common.pojo.request.*;
|
import com.nflg.mobilebroken.common.pojo.request.*;
|
||||||
import com.nflg.mobilebroken.common.pojo.vo.AdminMenuButtonVO;
|
import com.nflg.mobilebroken.common.pojo.vo.AdminMenuButtonVO;
|
||||||
import com.nflg.mobilebroken.common.pojo.vo.ApiVO;
|
import com.nflg.mobilebroken.common.pojo.vo.ApiVO;
|
||||||
import com.nflg.mobilebroken.common.pojo.vo.MenuVO;
|
import com.nflg.mobilebroken.common.pojo.vo.MenuVO;
|
||||||
import com.nflg.mobilebroken.repository.service.IAdminApiService;
|
import com.nflg.mobilebroken.repository.entity.DictionaryItem;
|
||||||
import com.nflg.mobilebroken.repository.service.IAdminMenuButtonApiMapService;
|
import com.nflg.mobilebroken.repository.service.*;
|
||||||
import com.nflg.mobilebroken.repository.service.IAdminMenuButtonService;
|
|
||||||
import com.nflg.mobilebroken.repository.service.IAdminMenuService;
|
|
||||||
import com.nflg.mobilebroken.starter.annotation.MethodInfoMark;
|
import com.nflg.mobilebroken.starter.annotation.MethodInfoMark;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 菜单相关接口
|
* 菜单相关接口
|
||||||
|
|
@ -39,6 +41,9 @@ public class MenuController extends ControllerBase {
|
||||||
@Resource
|
@Resource
|
||||||
private IAdminMenuButtonApiMapService adminMenuButtonApiMapService;
|
private IAdminMenuButtonApiMapService adminMenuButtonApiMapService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IDictionaryItemService dictionaryItemService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 搜索菜单
|
* 搜索菜单
|
||||||
* @param request 请求信息
|
* @param request 请求信息
|
||||||
|
|
@ -46,7 +51,22 @@ public class MenuController extends ControllerBase {
|
||||||
@PostMapping("searchMenu")
|
@PostMapping("searchMenu")
|
||||||
@ApiMark(moduleName = "菜单管理", apiName = "搜索菜单")
|
@ApiMark(moduleName = "菜单管理", apiName = "搜索菜单")
|
||||||
public ApiResult<PageData<MenuVO>> searchMenu(@Valid @RequestBody MenuSearchRequest request) {
|
public ApiResult<PageData<MenuVO>> searchMenu(@Valid @RequestBody MenuSearchRequest request) {
|
||||||
return ApiResult.success(adminMenuService.search(request));
|
List<DictionaryItem> items=dictionaryItemService.getListByDictionaryCode(Constant.DICTIONARY_SERVICE);
|
||||||
|
IPage<MenuVO> page=adminMenuService.search(request);
|
||||||
|
bindMenuService(page.getRecords(),items);
|
||||||
|
return ApiResult.success(page);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void bindMenuService(List<MenuVO> datas,List<DictionaryItem> items){
|
||||||
|
if (CollectionUtil.isNotEmpty(datas)){
|
||||||
|
datas.forEach(m -> {
|
||||||
|
if (Objects.nonNull(m.getServiceDescId())){
|
||||||
|
DictionaryItem item=items.stream().filter(i -> i.getId().equals(m.getServiceDescId())).findFirst().get();
|
||||||
|
m.setServiceDesc(item.getValue());
|
||||||
|
}
|
||||||
|
bindMenuService(m.getChildren(),items);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -88,7 +88,7 @@ public class AdminController extends ControllerBase {
|
||||||
@GetMapping("getPermissionMenus")
|
@GetMapping("getPermissionMenus")
|
||||||
public ApiResult<List<MenuVO>> getPermissionMenus() {
|
public ApiResult<List<MenuVO>> getPermissionMenus() {
|
||||||
VUtils.trueThrow(!SaTokenAdminUtil.isLogin()).throwMessage(STATE.LoginError,"请重新登录");
|
VUtils.trueThrow(!SaTokenAdminUtil.isLogin()).throwMessage(STATE.LoginError,"请重新登录");
|
||||||
return ApiResult.success(adminRoleService.getMenusByRoleCodes(AdminUserUtil.getUserId()));
|
return ApiResult.success(adminRoleService.getMenusByRoleCodes("admin",AdminUserUtil.getUserId(), "admin"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -8,9 +8,13 @@ import com.nflg.mobilebroken.common.constant.STATE;
|
||||||
import com.nflg.mobilebroken.common.constant.UserState;
|
import com.nflg.mobilebroken.common.constant.UserState;
|
||||||
import com.nflg.mobilebroken.common.pojo.ApiResult;
|
import com.nflg.mobilebroken.common.pojo.ApiResult;
|
||||||
import com.nflg.mobilebroken.common.pojo.vo.AppLoginVO;
|
import com.nflg.mobilebroken.common.pojo.vo.AppLoginVO;
|
||||||
|
import com.nflg.mobilebroken.common.pojo.vo.MenuVO;
|
||||||
|
import com.nflg.mobilebroken.common.util.AppUserUtil;
|
||||||
|
import com.nflg.mobilebroken.common.util.SaTokenAdminUtil;
|
||||||
import com.nflg.mobilebroken.common.util.SaTokenAppUtil;
|
import com.nflg.mobilebroken.common.util.SaTokenAppUtil;
|
||||||
import com.nflg.mobilebroken.common.util.VUtils;
|
import com.nflg.mobilebroken.common.util.VUtils;
|
||||||
import com.nflg.mobilebroken.repository.entity.AppUser;
|
import com.nflg.mobilebroken.repository.entity.AppUser;
|
||||||
|
import com.nflg.mobilebroken.repository.service.IAdminRoleService;
|
||||||
import com.nflg.mobilebroken.repository.service.IAppUserService;
|
import com.nflg.mobilebroken.repository.service.IAppUserService;
|
||||||
import com.nflg.mobilebroken.repository.service.IDictionaryItemTranslateService;
|
import com.nflg.mobilebroken.repository.service.IDictionaryItemTranslateService;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
|
@ -20,6 +24,7 @@ import org.springframework.web.bind.annotation.RestController;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.chrono.ChronoLocalDate;
|
import java.time.chrono.ChronoLocalDate;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
|
@ -37,6 +42,9 @@ public class AppController extends ControllerBase {
|
||||||
@Resource
|
@Resource
|
||||||
private IDictionaryItemTranslateService dictionaryItemTranslateService;
|
private IDictionaryItemTranslateService dictionaryItemTranslateService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IAdminRoleService adminRoleService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户端登录
|
* 用户端登录
|
||||||
* @param userName 用户名
|
* @param userName 用户名
|
||||||
|
|
@ -80,4 +88,14 @@ public class AppController extends ControllerBase {
|
||||||
// StpUtil.logout();
|
// StpUtil.logout();
|
||||||
// return ApiResult.success();
|
// return ApiResult.success();
|
||||||
//}
|
//}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取权限菜单
|
||||||
|
* @return 权限列表
|
||||||
|
*/
|
||||||
|
@GetMapping("getPermissionMenus")
|
||||||
|
public ApiResult<List<MenuVO>> getPermissionMenus() {
|
||||||
|
VUtils.trueThrow(!SaTokenAdminUtil.isLogin()).throwMessage(STATE.LoginError,"请重新登录");
|
||||||
|
return ApiResult.success(adminRoleService.getMenusByRoleCodes("app",AppUserUtil.getUserId(), "app"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -122,4 +122,5 @@ public class Constant {
|
||||||
public static final String DICTIONARY_AD_TYPE ="AdvertisementType";
|
public static final String DICTIONARY_AD_TYPE ="AdvertisementType";
|
||||||
|
|
||||||
public static final String DICTIONARY_AD_POSITION ="AdvertisementPosition";
|
public static final String DICTIONARY_AD_POSITION ="AdvertisementPosition";
|
||||||
|
public static final String DICTIONARY_SERVICE = "SystemService";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -34,4 +34,8 @@ public class MenuAddRequest {
|
||||||
// 是否显示
|
// 是否显示
|
||||||
@NotNull
|
@NotNull
|
||||||
private boolean show;
|
private boolean show;
|
||||||
|
|
||||||
|
//服务标识,字典项ID
|
||||||
|
@NotNull
|
||||||
|
private Integer serviceDescId;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,10 +6,7 @@ import lombok.experimental.Accessors;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
|
|
@ -106,6 +103,9 @@ public class AppUserForAdminVO {
|
||||||
//职位id
|
//职位id
|
||||||
private Integer titleId;
|
private Integer titleId;
|
||||||
|
|
||||||
|
//所属角色
|
||||||
|
private Collection<RoleSimpleVO> roles;
|
||||||
|
|
||||||
//下级账号
|
//下级账号
|
||||||
private List<AppUserForAdminVO> children=new ArrayList<>();
|
private List<AppUserForAdminVO> children=new ArrayList<>();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -46,6 +46,12 @@ public class MenuVO {
|
||||||
// 修改时间
|
// 修改时间
|
||||||
private LocalDateTime updateTime;
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
//服务标识,字典项ID
|
||||||
|
private Integer serviceDescId;
|
||||||
|
|
||||||
|
//服务标识,字典项名称
|
||||||
|
private String serviceDesc;
|
||||||
|
|
||||||
//下级菜单
|
//下级菜单
|
||||||
private List<MenuVO> children = new ArrayList<>();
|
private List<MenuVO> children = new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -66,6 +66,11 @@ public class AdminMenu implements Serializable {
|
||||||
*/
|
*/
|
||||||
private Integer sort;
|
private Integer sort;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 服务标识,字典项ID
|
||||||
|
*/
|
||||||
|
private Integer serviceDescId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建人
|
* 创建人
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -3,11 +3,12 @@ package com.nflg.mobilebroken.repository.entity;
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import java.io.Serializable;
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
*
|
*
|
||||||
|
|
@ -36,4 +37,9 @@ public class AdminUserRoleMap implements Serializable {
|
||||||
* 用户id
|
* 用户id
|
||||||
*/
|
*/
|
||||||
private Integer userId;
|
private Integer userId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 来源平台
|
||||||
|
*/
|
||||||
|
private String platform;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ public interface AdminRoleMapper extends BaseMapper<AdminRole> {
|
||||||
|
|
||||||
List<String> getUrlsByRoleCodes(List<String> roleCodes);
|
List<String> getUrlsByRoleCodes(List<String> roleCodes);
|
||||||
|
|
||||||
List<MenuVO> getMenusByRoleCodes(Integer userId);
|
List<MenuVO> getMenusByRoleCodes(String from,Integer userId,Integer serviceId);
|
||||||
|
|
||||||
IPage<RoleVO> search(RoleSearchRequest request, Page<?> page);
|
IPage<RoleVO> search(RoleSearchRequest request, Page<?> page);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,4 +23,6 @@ public interface DictionaryItemMapper extends BaseMapper<DictionaryItem> {
|
||||||
String getName(String dictionaryCode, String itemCode);
|
String getName(String dictionaryCode, String itemCode);
|
||||||
|
|
||||||
List<DictionaryItem> getListByDictionaryCode(String code);
|
List<DictionaryItem> getListByDictionaryCode(String code);
|
||||||
|
|
||||||
|
DictionaryItem getByCode(String dictionaryCode, String dictionaryItemCode);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ public interface IAdminRoleService extends IService<AdminRole> {
|
||||||
|
|
||||||
List<String> getUrlsByRoleCodes(List<String> roleCodes);
|
List<String> getUrlsByRoleCodes(List<String> roleCodes);
|
||||||
|
|
||||||
List<MenuVO> getMenusByRoleCodes(Integer userId);
|
List<MenuVO> getMenusByRoleCodes(String from,Integer userId,String serviceName);
|
||||||
|
|
||||||
IPage<RoleVO> search(RoleSearchRequest request);
|
IPage<RoleVO> search(RoleSearchRequest request);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ import com.nflg.mobilebroken.common.pojo.vo.AreaSimpleVO;
|
||||||
import com.nflg.mobilebroken.common.pojo.vo.CompanyVO;
|
import com.nflg.mobilebroken.common.pojo.vo.CompanyVO;
|
||||||
import com.nflg.mobilebroken.repository.entity.AppUser;
|
import com.nflg.mobilebroken.repository.entity.AppUser;
|
||||||
|
|
||||||
|
import javax.validation.Valid;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -63,4 +64,6 @@ public interface IAppUserService extends IService<AppUser> {
|
||||||
void deleteAppUser(Integer id);
|
void deleteAppUser(Integer id);
|
||||||
|
|
||||||
List<AreaSimpleVO> getSimpleAreas(Integer userId);
|
List<AreaSimpleVO> getSimpleAreas(Integer userId);
|
||||||
|
|
||||||
|
void authorizeRole(@Valid AuthorizeRoleRequest request);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -25,4 +25,6 @@ public interface IDictionaryItemService extends IService<DictionaryItem> {
|
||||||
Integer getId(String dictionaryName, String dictionaryItemName);
|
Integer getId(String dictionaryName, String dictionaryItemName);
|
||||||
|
|
||||||
List<DictionaryItem> getListByDictionaryCode(String code);
|
List<DictionaryItem> getListByDictionaryCode(String code);
|
||||||
|
|
||||||
|
DictionaryItem getByCode(String dictionaryCode, String DictionaryItemCode);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -74,6 +74,7 @@ public class AdminMenuServiceImpl extends ServiceImpl<AdminMenuMapper, AdminMenu
|
||||||
.setSort(request.getSort())
|
.setSort(request.getSort())
|
||||||
.setEnable(request.isEnable())
|
.setEnable(request.isEnable())
|
||||||
.setShow(request.isShow())
|
.setShow(request.isShow())
|
||||||
|
.setServiceDescId(request.getServiceDescId())
|
||||||
.setParentId(request.getParentId())
|
.setParentId(request.getParentId())
|
||||||
.setCreateBy(AdminUserUtil.getUserName())
|
.setCreateBy(AdminUserUtil.getUserName())
|
||||||
.setCreateTime(LocalDateTime.now());
|
.setCreateTime(LocalDateTime.now());
|
||||||
|
|
@ -90,6 +91,7 @@ public class AdminMenuServiceImpl extends ServiceImpl<AdminMenuMapper, AdminMenu
|
||||||
.setSort(request.getSort())
|
.setSort(request.getSort())
|
||||||
.setEnable(request.isEnable())
|
.setEnable(request.isEnable())
|
||||||
.setShow(request.isShow())
|
.setShow(request.isShow())
|
||||||
|
.setServiceDescId(request.getServiceDescId())
|
||||||
.setParentId(request.getParentId())
|
.setParentId(request.getParentId())
|
||||||
.setUpdateBy(AdminUserUtil.getUserName())
|
.setUpdateBy(AdminUserUtil.getUserName())
|
||||||
.setUpdateTime(LocalDateTime.now());
|
.setUpdateTime(LocalDateTime.now());
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ package com.nflg.mobilebroken.repository.service.impl;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.nflg.mobilebroken.common.constant.Constant;
|
||||||
import com.nflg.mobilebroken.common.pojo.request.EnableRoleRequest;
|
import com.nflg.mobilebroken.common.pojo.request.EnableRoleRequest;
|
||||||
import com.nflg.mobilebroken.common.pojo.request.RoleAddRequest;
|
import com.nflg.mobilebroken.common.pojo.request.RoleAddRequest;
|
||||||
import com.nflg.mobilebroken.common.pojo.request.RoleSearchRequest;
|
import com.nflg.mobilebroken.common.pojo.request.RoleSearchRequest;
|
||||||
|
|
@ -11,11 +12,14 @@ import com.nflg.mobilebroken.common.pojo.vo.ButtonVO;
|
||||||
import com.nflg.mobilebroken.common.pojo.vo.MenuVO;
|
import com.nflg.mobilebroken.common.pojo.vo.MenuVO;
|
||||||
import com.nflg.mobilebroken.common.pojo.vo.RoleVO;
|
import com.nflg.mobilebroken.common.pojo.vo.RoleVO;
|
||||||
import com.nflg.mobilebroken.common.util.AdminUserUtil;
|
import com.nflg.mobilebroken.common.util.AdminUserUtil;
|
||||||
|
import com.nflg.mobilebroken.common.util.VUtils;
|
||||||
import com.nflg.mobilebroken.repository.entity.AdminMenu;
|
import com.nflg.mobilebroken.repository.entity.AdminMenu;
|
||||||
import com.nflg.mobilebroken.repository.entity.AdminRole;
|
import com.nflg.mobilebroken.repository.entity.AdminRole;
|
||||||
|
import com.nflg.mobilebroken.repository.entity.DictionaryItem;
|
||||||
import com.nflg.mobilebroken.repository.mapper.AdminRoleMapper;
|
import com.nflg.mobilebroken.repository.mapper.AdminRoleMapper;
|
||||||
import com.nflg.mobilebroken.repository.service.IAdminMenuService;
|
import com.nflg.mobilebroken.repository.service.IAdminMenuService;
|
||||||
import com.nflg.mobilebroken.repository.service.IAdminRoleService;
|
import com.nflg.mobilebroken.repository.service.IAdminRoleService;
|
||||||
|
import com.nflg.mobilebroken.repository.service.IDictionaryItemService;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
|
@ -37,6 +41,9 @@ public class AdminRoleServiceImpl extends ServiceImpl<AdminRoleMapper, AdminRole
|
||||||
@Resource
|
@Resource
|
||||||
private IAdminMenuService menuService;
|
private IAdminMenuService menuService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IDictionaryItemService dictionaryItemService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void add(RoleAddRequest request) {
|
public void add(RoleAddRequest request) {
|
||||||
AdminRole adminRole = new AdminRole()
|
AdminRole adminRole = new AdminRole()
|
||||||
|
|
@ -76,8 +83,10 @@ public class AdminRoleServiceImpl extends ServiceImpl<AdminRoleMapper, AdminRole
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<MenuVO> getMenusByRoleCodes(Integer userId) {
|
public List<MenuVO> getMenusByRoleCodes(String from,Integer userId,String serviceName) {
|
||||||
List<MenuVO> menus=baseMapper.getMenusByRoleCodes(userId);
|
DictionaryItem service = dictionaryItemService.getByCode(Constant.DICTIONARY_SERVICE, serviceName);
|
||||||
|
VUtils.trueThrowBusinessError(Objects.isNull(service)).throwMessage("无效的服务:"+serviceName);
|
||||||
|
List<MenuVO> menus=baseMapper.getMenusByRoleCodes(from,userId,service.getId());
|
||||||
for (int i = 0; i < menus.size(); i++) {
|
for (int i = 0; i < menus.size(); i++) {
|
||||||
MenuVO menu = menus.get(i);
|
MenuVO menu = menus.get(i);
|
||||||
bindParent(menu, menus);
|
bindParent(menu, menus);
|
||||||
|
|
|
||||||
|
|
@ -176,10 +176,12 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser
|
||||||
@Override
|
@Override
|
||||||
public void authorizeRole(AuthorizeRoleRequest request) {
|
public void authorizeRole(AuthorizeRoleRequest request) {
|
||||||
adminUserRoleMapService.remove(new LambdaQueryWrapper<AdminUserRoleMap>()
|
adminUserRoleMapService.remove(new LambdaQueryWrapper<AdminUserRoleMap>()
|
||||||
.eq(AdminUserRoleMap::getUserId, request.getUserId()));
|
.eq(AdminUserRoleMap::getUserId, request.getUserId())
|
||||||
|
.eq(AdminUserRoleMap::getPlatform, "admin"));
|
||||||
if (CollectionUtil.isNotEmpty(request.getRoleIds())) {
|
if (CollectionUtil.isNotEmpty(request.getRoleIds())) {
|
||||||
adminUserRoleMapService.saveBatch(request.getRoleIds().stream().map(roleId -> new AdminUserRoleMap()
|
adminUserRoleMapService.saveBatch(request.getRoleIds().stream().map(roleId -> new AdminUserRoleMap()
|
||||||
.setRoleId(roleId)
|
.setRoleId(roleId)
|
||||||
|
.setPlatform("admin")
|
||||||
.setUserId(request.getUserId()))
|
.setUserId(request.getUserId()))
|
||||||
.collect(Collectors.toList()));
|
.collect(Collectors.toList()));
|
||||||
}
|
}
|
||||||
|
|
@ -365,6 +367,7 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser
|
||||||
private Collection<RoleSimpleVO> getRoles(Integer userId) {
|
private Collection<RoleSimpleVO> getRoles(Integer userId) {
|
||||||
Collection<Integer> roleIds = adminUserRoleMapService.lambdaQuery()
|
Collection<Integer> roleIds = adminUserRoleMapService.lambdaQuery()
|
||||||
.eq(AdminUserRoleMap::getUserId, userId)
|
.eq(AdminUserRoleMap::getUserId, userId)
|
||||||
|
.eq(AdminUserRoleMap::getPlatform, "admin")
|
||||||
.list()
|
.list()
|
||||||
.stream()
|
.stream()
|
||||||
.map(AdminUserRoleMap::getRoleId)
|
.map(AdminUserRoleMap::getRoleId)
|
||||||
|
|
|
||||||
|
|
@ -10,10 +10,7 @@ import com.nflg.mobilebroken.common.constant.*;
|
||||||
import com.nflg.mobilebroken.common.exception.NflgException;
|
import com.nflg.mobilebroken.common.exception.NflgException;
|
||||||
import com.nflg.mobilebroken.common.pojo.PageData;
|
import com.nflg.mobilebroken.common.pojo.PageData;
|
||||||
import com.nflg.mobilebroken.common.pojo.request.*;
|
import com.nflg.mobilebroken.common.pojo.request.*;
|
||||||
import com.nflg.mobilebroken.common.pojo.vo.AppUserForAdminVO;
|
import com.nflg.mobilebroken.common.pojo.vo.*;
|
||||||
import com.nflg.mobilebroken.common.pojo.vo.AppUserVO;
|
|
||||||
import com.nflg.mobilebroken.common.pojo.vo.AreaSimpleVO;
|
|
||||||
import com.nflg.mobilebroken.common.pojo.vo.CompanyVO;
|
|
||||||
import com.nflg.mobilebroken.common.util.AdminUserUtil;
|
import com.nflg.mobilebroken.common.util.AdminUserUtil;
|
||||||
import com.nflg.mobilebroken.common.util.AppUserUtil;
|
import com.nflg.mobilebroken.common.util.AppUserUtil;
|
||||||
import com.nflg.mobilebroken.common.util.PageUtil;
|
import com.nflg.mobilebroken.common.util.PageUtil;
|
||||||
|
|
@ -63,6 +60,12 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper, AppUser> impl
|
||||||
@Resource
|
@Resource
|
||||||
private ITBaseAreaService adminAreaService;
|
private ITBaseAreaService adminAreaService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IAdminUserRoleMapService adminUserRoleMapService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IAdminRoleService roleService;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private RedisTemplate<String, String> redisTemplate;
|
private RedisTemplate<String, String> redisTemplate;
|
||||||
|
|
||||||
|
|
@ -288,6 +291,20 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper, AppUser> impl
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void authorizeRole(AuthorizeRoleRequest request) {
|
||||||
|
adminUserRoleMapService.remove(new LambdaQueryWrapper<AdminUserRoleMap>()
|
||||||
|
.eq(AdminUserRoleMap::getUserId, request.getUserId())
|
||||||
|
.eq(AdminUserRoleMap::getPlatform, "app"));
|
||||||
|
if (CollectionUtil.isNotEmpty(request.getRoleIds())) {
|
||||||
|
adminUserRoleMapService.saveBatch(request.getRoleIds().stream().map(roleId -> new AdminUserRoleMap()
|
||||||
|
.setRoleId(roleId)
|
||||||
|
.setPlatform("app")
|
||||||
|
.setUserId(request.getUserId()))
|
||||||
|
.collect(Collectors.toList()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void bindChildren1(AreaSimpleVO vo) {
|
private void bindChildren1(AreaSimpleVO vo) {
|
||||||
List<AppArea> datas = appAreaService.lambdaQuery().eq(AppArea::getParentId, vo.getId()).eq(AppArea::getEnable, true).list();
|
List<AppArea> datas = appAreaService.lambdaQuery().eq(AppArea::getParentId, vo.getId()).eq(AppArea::getEnable, true).list();
|
||||||
List<AreaSimpleVO> vos = datas.stream().map(d -> new AreaSimpleVO().setId(d.getId()).setName(d.getName())).collect(Collectors.toList());
|
List<AreaSimpleVO> vos = datas.stream().map(d -> new AreaSimpleVO().setId(d.getId()).setName(d.getName())).collect(Collectors.toList());
|
||||||
|
|
@ -377,9 +394,33 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper, AppUser> impl
|
||||||
.skip((long) (request.getPage() - 1) * request.getPageSize())
|
.skip((long) (request.getPage() - 1) * request.getPageSize())
|
||||||
.limit(request.getPageSize())
|
.limit(request.getPageSize())
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
page.forEach(it->{
|
||||||
|
if (it.getKey().startsWith("u-")) {
|
||||||
|
it.setRoles(getRoles(it.getId()));
|
||||||
|
}
|
||||||
|
});
|
||||||
return new PageData<AppUserForAdminVO>().setPage(request.getPage()).setPageSize(request.getPageSize()).setTotal(primarys.size()).setItems(page);
|
return new PageData<AppUserForAdminVO>().setPage(request.getPage()).setPageSize(request.getPageSize()).setTotal(primarys.size()).setItems(page);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Collection<RoleSimpleVO> getRoles(Integer userId) {
|
||||||
|
Collection<Integer> roleIds = adminUserRoleMapService.lambdaQuery()
|
||||||
|
.eq(AdminUserRoleMap::getUserId, userId)
|
||||||
|
.eq(AdminUserRoleMap::getPlatform, "app")
|
||||||
|
.list()
|
||||||
|
.stream()
|
||||||
|
.map(AdminUserRoleMap::getRoleId)
|
||||||
|
.collect(Collectors.toSet());
|
||||||
|
if (CollectionUtil.isEmpty(roleIds)) {
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
|
return roleService.lambdaQuery()
|
||||||
|
.in(AdminRole::getId, roleIds)
|
||||||
|
.list()
|
||||||
|
.stream()
|
||||||
|
.map(r -> new RoleSimpleVO().setId(r.getId()).setName(r.getName()))
|
||||||
|
.collect(Collectors.toSet());
|
||||||
|
}
|
||||||
|
|
||||||
public PageData<AppUserForAdminVO> searchAppUserForAdmin1(SearchAppUserForAdminRequest request) {
|
public PageData<AppUserForAdminVO> searchAppUserForAdmin1(SearchAppUserForAdminRequest request) {
|
||||||
Page<AppUser> page = lambdaQuery()
|
Page<AppUser> page = lambdaQuery()
|
||||||
.eq(AppUser::getIsDel, false)
|
.eq(AppUser::getIsDel, false)
|
||||||
|
|
|
||||||
|
|
@ -135,4 +135,9 @@ public class DictionaryItemServiceImpl extends ServiceImpl<DictionaryItemMapper,
|
||||||
public List<DictionaryItem> getListByDictionaryCode(String code) {
|
public List<DictionaryItem> getListByDictionaryCode(String code) {
|
||||||
return baseMapper.getListByDictionaryCode(code);
|
return baseMapper.getListByDictionaryCode(code);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DictionaryItem getByCode(String dictionaryCode, String DictionaryItemCode) {
|
||||||
|
return baseMapper.getByCode(dictionaryCode, DictionaryItemCode);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@
|
||||||
INNER JOIN admin_role_menu_map rmm ON r.id=rmm.role_id
|
INNER JOIN admin_role_menu_map rmm ON r.id=rmm.role_id
|
||||||
INNER JOIN admin_menu m ON rmm.menu_id=m.id
|
INNER JOIN admin_menu m ON rmm.menu_id=m.id
|
||||||
INNER JOIN admin_user_role_map urm ON urm.role_id=r.id
|
INNER JOIN admin_user_role_map urm ON urm.role_id=r.id
|
||||||
WHERE m.`enable`=1 AND r.`enable`=1 AND urm.user_id=#{userId}
|
WHERE m.`enable`=1 AND r.`enable`=1 AND urm.user_id=#{userId} AND m.service_desc_id=#{serviceId} AND urm.platform=#{from}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="search" resultType="com.nflg.mobilebroken.common.pojo.vo.RoleVO">
|
<select id="search" resultType="com.nflg.mobilebroken.common.pojo.vo.RoleVO">
|
||||||
|
|
|
||||||
|
|
@ -16,4 +16,11 @@
|
||||||
WHERE d.`code`=#{code}
|
WHERE d.`code`=#{code}
|
||||||
ORDER BY di.id
|
ORDER BY di.id
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="getByCode" resultType="com.nflg.mobilebroken.repository.entity.DictionaryItem">
|
||||||
|
SELECT di.*
|
||||||
|
FROM dictionary d
|
||||||
|
INNER JOIN dictionary_item di ON d.id=di.dictionary_id
|
||||||
|
WHERE d.`code`= #{dictionaryCode} AND di.`code`= #{dictionaryItemCode}
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue