Commit 23590039 by guojuxing

权限控制加入gic基础服务版本逻辑

parent abe49ae3
......@@ -142,9 +142,10 @@ public interface TabSysMenuMapper {
* @Description:

 * @author guojuxing
* @param project

* @param versionCode gic商户基础服务版本
* @return java.util.List<com.gic.auth.entity.TabSysMenu>


 */
List<TabSysMenu> listMenuTree(@Param("project") String project);
List<TabSysMenu> listMenuTree(@Param("project") String project, @Param("versionCode") String versionCode);
List<TabSysMenu> selectByProjectList(@Param("projectList")List<String> projectList);
......
......@@ -112,9 +112,10 @@ public interface MenuService {
* @Description:

 * @author guojuxing
* @param project

* @param versionCode gic商户基础服务版本
* @return java.util.List<com.gic.auth.dto.MenuDTO>


 */
List<TabSysMenu> listMenuTree(String project);
List<TabSysMenu> listMenuTree(String project, String versionCode);
/**
* 根据项目查询
......
......@@ -122,8 +122,8 @@ public class MenuServiceImpl implements MenuService {
}
@Override
public List<TabSysMenu> listMenuTree(String project) {
return tabSysMenuMapper.listMenuTree(project);
public List<TabSysMenu> listMenuTree(String project, String versionCode) {
return tabSysMenuMapper.listMenuTree(project, versionCode);
}
@Override
......
......@@ -61,17 +61,22 @@ public class MenuApiServiceImpl implements MenuApiService {
}
@Override
public ServiceResponse<List<MenuDTO>> listUserMenu(Integer userId) {
public ServiceResponse<List<MenuDTO>> listUserMenu(Integer userId, String versionCode) {
TabSysUser tabSysUser = userService.getUserById(userId);
if (tabSysUser == null) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "用户不存在");
}
if (StringUtils.isBlank(versionCode)) {
return ServiceResponse.success(new ArrayList<>());
}
List<MenuDTO> result;
if (tabSysUser.getSuperAdmin().intValue() == 1) {
List<TabSysMenu> temp = new ArrayList<>();
//超级管理员
MenuListQO params = new MenuListQO();
params.setVersionCode(versionCode);
params.setMenuType(MenuTypeEnum.PAGE.getCode());
temp.addAll(this.menuService.listMenu(params));
......@@ -79,7 +84,7 @@ public class MenuApiServiceImpl implements MenuApiService {
} else {
List<TabSysMenu> menuList = getUserMenuList(userId);
result = EntityUtil.changeEntityListNew(MenuDTO.class, menuList);
ServiceResponse<List<MenuDTO>> tempResult = getNoAuthOperationItem(userId, MenuProjectConstants.ALL_CODE);
ServiceResponse<List<MenuDTO>> tempResult = getNoAuthOperationItem(userId, MenuProjectConstants.ALL_CODE, versionCode);
result.addAll(tempResult.getResult());
}
......@@ -87,18 +92,18 @@ public class MenuApiServiceImpl implements MenuApiService {
}
@Override
public ServiceResponse<List<MenuDTO>> getUserMenuOfGic(Integer userId, Integer currentMenu) {
return getUserLoginMenu(userId, currentMenu, true);
public ServiceResponse<List<MenuDTO>> getUserMenuOfGic(Integer userId, Integer currentMenu, String versionCode) {
return getUserLoginMenu(userId, currentMenu, true, versionCode);
}
@Override
public ServiceResponse<List<MenuDTO>> getNoAuthOperationItemOfGic(Integer userId) {
return getNoAuthOperationItem(userId, MenuProjectConstants.DEFAULT_PROJECT_CODE);
public ServiceResponse<List<MenuDTO>> getNoAuthOperationItemOfGic(Integer userId, String versionCode) {
return getNoAuthOperationItem(userId, MenuProjectConstants.DEFAULT_PROJECT_CODE, versionCode);
}
@Override
public ServiceResponse<List<MenuDTO>> getSuperAdminMenu(Integer userId) {
return this.getUserMenuOfGic(userId, null);
public ServiceResponse<List<MenuDTO>> getSuperAdminMenu(Integer userId, String versionCode) {
return this.getUserMenuOfGic(userId, null, versionCode);
}
@Override
......@@ -115,8 +120,8 @@ public class MenuApiServiceImpl implements MenuApiService {
}
@Override
public ServiceResponse<List<MenuDTO>> listMenuTreeForRole(String project) {
List<TabSysMenu> list = menuService.listMenuTree(project);
public ServiceResponse<List<MenuDTO>> listMenuTreeForRole(String project, String versionCode) {
List<TabSysMenu> list = menuService.listMenuTree(project, versionCode);
if (CollectionUtils.isNotEmpty(list)) {
return ServiceResponse.success(EntityUtil.changeEntityListNew(MenuDTO.class, list));
}
......@@ -124,8 +129,11 @@ public class MenuApiServiceImpl implements MenuApiService {
}
@Override
public ServiceResponse<List<MenuDTO>> listMenuTreeForRoleOfGic() {
return listMenuTreeForRole(MenuProjectConstants.DEFAULT_PROJECT);
public ServiceResponse<List<MenuDTO>> listMenuTreeForRoleOfGic(String versionCode) {
if (StringUtils.isBlank(versionCode)) {
return ServiceResponse.success(new ArrayList<>());
}
return listMenuTreeForRole(MenuProjectConstants.DEFAULT_PROJECT, versionCode);
}
@Override
......@@ -831,7 +839,8 @@ public class MenuApiServiceImpl implements MenuApiService {
* @param isGic
 是否是gic项目
* @return com.gic.api.base.commons.ServiceResponse<java.util.List<com.gic.auth.dto.MenuDTO>>


 */
private ServiceResponse<List<MenuDTO>> getUserLoginMenu(Integer userId, Integer currentMenu, boolean isGic) {
private ServiceResponse<List<MenuDTO>> getUserLoginMenu(Integer userId, Integer currentMenu, boolean isGic,
String versionCode) {
TabSysUser tabSysUser = userService.getUserById(userId);
if (tabSysUser == null) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "用户不存在");
......@@ -839,9 +848,14 @@ public class MenuApiServiceImpl implements MenuApiService {
List<TabSysMenu> resultList;
if (StringUtils.isBlank(versionCode)) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "商户还没有订购基础服务");
}
if (tabSysUser.getSuperAdmin().intValue() == 1) {
//超级用户
MenuListQO params = new MenuListQO();
params.setVersionCode(versionCode);
params.setMenuType(MenuTypeEnum.PAGE.getCode());
if (isGic) {
params.setIsGIC(MenuProjectConstants.DEFAULT_PROJECT_CODE);
......@@ -885,9 +899,10 @@ public class MenuApiServiceImpl implements MenuApiService {

 * @author guojuxing
* @param userId
* @param projectCode

* @param versionCode 商户基础服务版本
* @return com.gic.api.base.commons.ServiceResponse<java.util.List<com.gic.auth.dto.MenuDTO>>


 */
private ServiceResponse<List<MenuDTO>> getNoAuthOperationItem(Integer userId, int projectCode) {
private ServiceResponse<List<MenuDTO>> getNoAuthOperationItem(Integer userId, int projectCode, String versionCode) {
TabSysUser tabSysUser = userService.getUserById(userId);
if (tabSysUser == null) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "用户不存在");
......@@ -922,11 +937,14 @@ public class MenuApiServiceImpl implements MenuApiService {
operationItemMap.put(menuItem.getItemId(), "1");
}
}
//获取配置在权限项内的操作项数据
List<MenuDTO> operationItemListOfAuthItem = getOperationItemOfAuthItem();
//已配置的操作项需要权限控制
for (MenuDTO menuDTO : operationItemListOfAuthItem) {
if (!operationItemMap.containsKey(menuDTO.getMenuId())) {
//如果不存在,说明是没有权限的操作项
if (!operationItemMap.containsKey(menuDTO.getMenuId()) || StringUtils.isBlank(versionCode)
|| menuDTO.getMenuVersion().contains("_" + versionCode + "_")) {
//如果不存在,或者操作项的版本不对
//则是没有权限的操作项
resultList.add(menuDTO);
}
}
......
......@@ -306,6 +306,9 @@
<if test="project != null">
and project = #{project}
</if>
<if test="versionCode != null and versionCode != '' ">
and menu_version like concat('%_', versionCode, '_%' )
</if>
order by level,sort
</select>
......@@ -401,6 +404,9 @@
<if test="project != null">
and project = #{project}
</if>
<if test="versionCode != null and versionCode != '' ">
and menu_version like concat('%_', versionCode, '_%' )
</if>
<include refid="tree_filter" />
order by level,sort
......
......@@ -52,26 +52,27 @@ public class LoginController {
private OperationUserApiService operationUserApiService;
@RequestMapping("list-enterprise-by-phone")
public RestResponse listUserEnterprise(String phoneNumber){
if(StringUtils.isBlank(phoneNumber)){
public RestResponse listUserEnterprise(String phoneNumber) {
if (StringUtils.isBlank(phoneNumber)) {
return EnterpriseRestResponse.failure(ErrorCode.PARAMETER_ERROR);
}
ServiceResponse<List<UserDTO>> listServiceResponse = this.userApiService.listUserByPhoneNumber(phoneNumber);
if(listServiceResponse.isSuccess()){
if (listServiceResponse.isSuccess()) {
List<UserDTO> result = listServiceResponse.getResult();
if(CollectionUtils.isEmpty(result)){
if (CollectionUtils.isEmpty(result)) {
return RestResponse.failure(ErrorCode.SYSTEM_ERROR.getCode(), "用户不存在");
}else {
} else {
List<Integer> idList = new ArrayList<>();
for(UserDTO userDTO : result){
for (UserDTO userDTO : result) {
idList.add(userDTO.getEnterpriseId());
}
ServiceResponse<List<EnterpriseDTO>> serviceResponse = this.enterpriseApiService.listEnterpriseByIds(idList);
if(serviceResponse.isSuccess()){
ServiceResponse<List<EnterpriseDTO>> serviceResponse = this.enterpriseApiService
.listEnterpriseByIds(idList);
if (serviceResponse.isSuccess()) {
List<EnterpriseDTO> list = serviceResponse.getResult();
if(CollectionUtils.isEmpty(list)){
if (CollectionUtils.isEmpty(list)) {
return RestResponse.failure(ErrorCode.SYSTEM_ERROR.getCode(), "用户不存在");
}else{
} else {
return RestResponse.success(list);
}
}
......@@ -81,31 +82,32 @@ public class LoginController {
}
@RequestMapping("login")
public RestResponse login(String phoneNumber, Integer enterpriseId, String password){
if(StringUtils.isBlank(password) || StringUtils.isBlank(phoneNumber) || enterpriseId == null){
public RestResponse login(String phoneNumber, Integer enterpriseId, String password) {
if (StringUtils.isBlank(password) || StringUtils.isBlank(phoneNumber) || enterpriseId == null) {
return EnterpriseRestResponse.failure(ErrorCode.PARAMETER_ERROR);
}
Md5Util md5 = new Md5Util();
// password 自身作为盐值
if(password.length() != 32) {
if (password.length() != 32) {
password = md5.encrypt(password + password);
}
ServiceResponse<UserDTO> login = this.userApiService.login(phoneNumber, enterpriseId, password);
if(login.isSuccess()){
if (login.isSuccess()) {
UserDTO userDTO = login.getResult();
if(userDTO == null){
if (userDTO == null) {
return EnterpriseRestResponse.failure(ErrorCode.LOGIN_ERR);
}
UserDetail userDetail = new UserDetail();
userDetail.setUserId(userDTO.getUserId());
userDetail.setUserInfo(EntityUtil.changeEntityNew(UserInfo.class, userDTO));
ServiceResponse<EnterpriseDTO> enterprise = this.enterpriseApiService.getEnterpriseById(enterpriseId);
if(enterprise.isSuccess()){
if (enterprise.isSuccess()) {
EnterpriseDTO enterpriseDTO = enterprise.getResult();
if(enterpriseDTO != null){
if (enterpriseDTO != null) {
userDetail.setEnterpriseInfo(EntityUtil.changeEntityNew(EnterpriseInfo.class, enterpriseDTO));
ServiceResponse<List<MenuDTO>> menuResult = menuApiService.listUserMenu(userDetail.getUserId());
ServiceResponse<List<MenuDTO>> menuResult = menuApiService.listUserMenu(userDetail.getUserId(),
UserDetailUtils.getUserDetail().getEnterpriseInfo().getVersionCode());
if (menuResult.isSuccess()) {
List<MenuDTO> menuList = menuResult.getResult();
List<MenuInfo> menuInfoList = EntityUtil.changeEntityListNew(MenuInfo.class, menuList);
......@@ -132,12 +134,12 @@ public class LoginController {
}
@RequestMapping("get-login-user-info")
public RestResponse getLoginUserINfo(){
public RestResponse getLoginUserINfo() {
return RestResponse.success(UserDetailUtils.getUserDetail().getUserInfo());
}
@RequestMapping("logout")
public RestResponse logout(){
public RestResponse logout() {
UserDetailUtils.destory();
return RestResponse.success();
}
......
......@@ -35,7 +35,8 @@ public class MenuController {
@RequestMapping("login-user-menu")
public RestResponse loginUserMenu(Integer currentMenu) {
Integer userId = UserDetailUtils.getUserDetail().getUserId();
ServiceResponse<List<MenuDTO>> userMenu = this.menuApiService.getUserMenuOfGic(userId, currentMenu);
ServiceResponse<List<MenuDTO>> userMenu = this.menuApiService.getUserMenuOfGic(userId, currentMenu,
UserDetailUtils.getUserDetail().getEnterpriseInfo().getVersionCode());
if (userMenu.isSuccess()) {
return RestResponse.success(userMenu.getResult());
}
......@@ -45,7 +46,9 @@ public class MenuController {
@RequestMapping("login-user-operation-item")
public RestResponse loginUserOperationItem() {
Integer userId = UserDetailUtils.getUserDetail().getUserId();
return ResultControllerUtils.commonResult(this.menuApiService.getNoAuthOperationItemOfGic(userId),
return ResultControllerUtils.commonResult(
this.menuApiService.getNoAuthOperationItemOfGic(userId,
UserDetailUtils.getUserDetail().getEnterpriseInfo().getVersionCode()),
UserOperationItemAuthVO.class);
}
......@@ -62,7 +65,8 @@ public class MenuController {
params.setMenuType(MenuTypeEnum.PAGE.getCode());
ServiceResponse<List<MenuDTO>> result = menuApiService.listMenuTree(params);
if (result.isSuccess()) {
return RestResponse.success(changePageListToTree(MenuLevelConstants.FIRST_LEVEL_PARENT_ID, result.getResult()));
return RestResponse
.success(changePageListToTree(MenuLevelConstants.FIRST_LEVEL_PARENT_ID, result.getResult()));
}
return EnterpriseRestResponse.failure(result);
}
......
......@@ -62,8 +62,8 @@ public class RoleController {
}
}
ServiceResponse<List<MenuDTO>> gicResult = menuApiService
.listMenuTreeForRole(MenuProjectConstants.DEFAULT_PROJECT);
ServiceResponse<List<MenuDTO>> gicResult = menuApiService.listMenuTreeForRoleOfGic(
UserDetailUtils.getUserDetail().getEnterpriseInfo().getVersionCode());
vo.setGicMap(
changeListToSelectTree(MenuLevelConstants.FIRST_LEVEL_PARENT_ID, gicResult.getResult(), gicMap));
......@@ -118,7 +118,8 @@ public class RoleController {
if (userResponse.isSuccess()) {
UserDTO admin = userResponse.getResult();
Integer userId = admin.getUserId();
ServiceResponse<List<MenuDTO>> menuResponse = menuApiService.getSuperAdminMenu(userId);
ServiceResponse<List<MenuDTO>> menuResponse = menuApiService.getSuperAdminMenu(userId,
UserDetailUtils.getUserDetail().getEnterpriseInfo().getVersionCode());
if (menuResponse.isSuccess()) {
return RestResponse.success(menuResponse.getResult());
} else {
......@@ -138,8 +139,8 @@ public class RoleController {

 */
@RequestMapping("/list-gic-menu-tree")
public RestResponse listMenuTree() {
ServiceResponse<List<MenuDTO>> result = menuApiService
.listMenuTreeForRole(MenuProjectConstants.DEFAULT_PROJECT);
ServiceResponse<List<MenuDTO>> result = menuApiService.listMenuTreeForRoleOfGic(
UserDetailUtils.getUserDetail().getEnterpriseInfo().getVersionCode());
if (result.isSuccess()) {
return RestResponse.success(changeListToTree(MenuLevelConstants.FIRST_LEVEL_PARENT_ID, result.getResult()));
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment