From 20ddd18116f39117df8970e2800ba698f4170124 Mon Sep 17 00:00:00 2001 From: "Stormeye.Wu" Date: Wed, 26 Sep 2018 09:47:49 +0800 Subject: [PATCH] =?UTF-8?q?[=E7=94=A8=E6=88=B7=E7=AE=A1=E7=90=86=E9=87=8D?= =?UTF-8?q?=E6=95=B4,=E8=A7=92=E8=89=B2=E7=AE=A1=E7=90=86=E9=87=8D?= =?UTF-8?q?=E6=95=B4][=E4=BF=AE=E5=A4=8D]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/MallRoleController.java | 43 ++++++++++++++----- .../controller/MallUserInfoController.java | 18 +++++--- .../java/com/iformall/common/ErrorCode.java | 3 ++ .../iformall/mapper/MallUserInfoMapper.java | 4 -- .../com/iformall/service/MallRoleService.java | 4 +- .../iformall/service/MallUserInfoService.java | 17 +++++--- .../service/impl/MallUserInfoServiceImpl.java | 5 +++ .../resources/mapper/MallUserInfoMapper.xml | 4 -- 8 files changed, 65 insertions(+), 33 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/MallRoleController.java b/mallinkAdmin/src/main/java/com/iformall/controller/MallRoleController.java index 2c0a9af4d..d916d8e2d 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/MallRoleController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/MallRoleController.java @@ -1,12 +1,16 @@ package com.iformall.controller; import com.github.pagehelper.PageInfo; +import com.iformall.common.ErrorCode; import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.domain.po.MallRole; import com.iformall.domain.po.MallRolePermission; +import com.iformall.domain.po.MallUserInfo; +import com.iformall.enums.EnumUserAdmin; import com.iformall.service.MallRolePermissionService; import com.iformall.service.MallRoleService; +import com.iformall.service.MallUserInfoService; import io.swagger.annotations.Api; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; @@ -32,6 +36,9 @@ public class MallRoleController extends BaseController { @Autowired private MallRolePermissionService sysRolePermissionService; + @Autowired + private MallUserInfoService mallUserInfoService; + @GetMapping("list") public ResultData list(MallRole sysRole, Integer pageNum, Integer pageSize) { String tenantId = getTenantId(); @@ -57,7 +64,11 @@ public class MallRoleController extends BaseController { @PostMapping("saveOrUpdate") public ResultData saveOrUpdate(@RequestBody MallRole sysRole) { - String tenantId = getTenantId(); + MallUserInfo currentUser = getUser(); + if(currentUser.getIsAdmin().equals(EnumUserAdmin.Normal.getCode())) { + return new ResultData(ErrorCode.USER_NOT_ADMIN.getCode(), "只有超级管理员才能保存角色"); + } + String tenantId = currentUser.getTenantId(); int count = sysRoleService.countByName(sysRole.getName(), sysRole.getId()); if (count > 0) { return new ResultData(ResultData.ERROR, "角色名已存在"); @@ -79,6 +90,10 @@ public class MallRoleController extends BaseController { @PostMapping("add") public ResultData add(MallRole sysRole) { + MallUserInfo currentUser = getUser(); + if(currentUser.getIsAdmin().equals(EnumUserAdmin.Normal.getCode())) { + return new ResultData(ErrorCode.USER_NOT_ADMIN.getCode(), "只有超级管理员才能添加角色"); + } Assert.notNull(sysRole.getName(), "角色名不能为空"); Assert.isTrue(!checkUnique(sysRole.getName(), null), "重复的角色名"); sysRoleService.saveOrUpdate(sysRole); @@ -87,6 +102,10 @@ public class MallRoleController extends BaseController { @PostMapping("update") public ResultData update(MallRole sysRole) { + MallUserInfo currentUser = getUser(); + if(currentUser.getIsAdmin().equals(EnumUserAdmin.Normal.getCode())) { + return new ResultData(ErrorCode.USER_NOT_ADMIN.getCode(), "只有超级管理员才能更新角色"); + } if (sysRole.getName() != null) { System.out.println(checkUnique(sysRole.getName(), sysRole.getId())); Assert.isTrue(!checkUnique(sysRole.getName(), sysRole.getId()), "角色名已存在"); @@ -99,21 +118,23 @@ public class MallRoleController extends BaseController { @PostMapping("/del") public ResultData delete(@RequestBody MallRole sysRole) { + MallUserInfo currentUser = getUser(); + if(currentUser.getIsAdmin().equals(EnumUserAdmin.Normal.getCode())) { + return new ResultData(ErrorCode.USER_NOT_ADMIN.getCode(), "只有超级管理员才能删除角色"); + } + MallUserInfo record = new MallUserInfo(); + record.setTenantId(currentUser.getTenantId()); + record.setRoleId(sysRole.getId()); + record.setIsAdmin(EnumUserAdmin.Normal.getCode()); + int count = mallUserInfoService.cntUserList(record); + if (count > 0) { + return new ResultData(ErrorCode.USER_USE_ROLE.getCode(), "有用户使用此角色,请先删除相应的用户!!"); + } sysRoleService.deleteById(sysRole.getId()); sysRolePermissionService.deleteByRoleId(sysRole.getId()); return new ResultData(Result.SUCCESS, "删除成功", null); } - @GetMapping("setPermission") - public ResultData setPermission(Long roleId, String perId) { - Assert.notNull(perId, "请选择权限"); - /*String[] perIds = perId.split(","); - SysRolePermissionService.savePermissions(roleId, perIds);*/ - //TODO - return new ResultData(Result.SUCCESS, "设置角色权限成功", null); - - } - private boolean checkUnique(String name, Long id) { return sysRoleService.countByName(name, id) > 0 ? true : false; } diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/MallUserInfoController.java b/mallinkAdmin/src/main/java/com/iformall/controller/MallUserInfoController.java index cbc05221d..33a4f03f2 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/MallUserInfoController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/MallUserInfoController.java @@ -117,6 +117,12 @@ public class MallUserInfoController extends BaseController { @ApiOperation(value = "修改用户接口", response = String.class) @PostMapping("update") public ResultData updateUser(@RequestBody MallUserInfo userInfo) { + MallUserInfo currentUser = getUser(); + // 只有超管和自己能更新信息 + if (!(currentUser.getId().equals(userInfo.getId()) || + currentUser.getIsAdmin().equals(EnumUserAdmin.ADMIN.getCode()))) { + return new ResultData(ErrorCode.USER_NO_PERMISSION.getCode(), "超级管理员和自己才能修改信息"); + } //Assert.notNull(userInfo.getUsername(), "用户名不能为空"); if(checkUniqueName(userInfo.getUsername(), userInfo.getId())){ return new ResultData(ErrorCode.USER_NAME_IS_FOUND,"用户名已存在"); @@ -125,19 +131,19 @@ public class MallUserInfoController extends BaseController { return new ResultData(ErrorCode.USER_PHONE_IS_FOUND,"手机号已存在"); } - // is_admin 不能在此系统设置 - userInfo.setIsAdmin(null); + userInfo.setTenantId(getTenantId()); if (StringUtils.isNotBlank(userInfo.getPassword()) && userInfo.getPassword().length() > 0) { PasswordHelper passwordHelper = new PasswordHelper(); passwordHelper.encryptPassword(userInfo); } - userInfo.setTenantId(getTenantId()); + userInfo.setIsAdmin(null); - MallUserInfo currentUser = getUser(); - if(currentUser.getIsAdmin().equals(EnumUserAdmin.ADMIN.getCode())) { + if (currentUser.getIsAdmin().equals(EnumUserAdmin.ADMIN.getCode()) && + currentUser.getId().equals(userInfo.getId())) { // 超管 boolean bModify = false; MallUserInfo adminUser = new MallUserInfo(); + adminUser.setId(userInfo.getId()); if (StringUtils.isNotBlank(userInfo.getPassword()) && userInfo.getPassword().length() > 0) { adminUser.setPassword(userInfo.getPassword()); bModify = true; @@ -170,7 +176,7 @@ public class MallUserInfoController extends BaseController { return new ResultData(ErrorCode.USER_NOT_ADMIN.getCode(), "只有超级管理员才能删除用户"); } if (currentUser.getId().equals(userInfo.getId())) { - return new ResultData(ErrorCode.USER_IS_EMPTY); + return new ResultData(ErrorCode.USER_NO_PERMISSION.getCode(), "用户不能删除自己"); } userInfoService.deleteById(userInfo.getId()); diff --git a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java index 6b2d51b31..eb891024a 100644 --- a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java +++ b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java @@ -48,9 +48,12 @@ public enum ErrorCode{ /** * 用户2000-2099 */ + USER_PHONE_IS_NOT_FOUND(1990,"手机号不存在"), USER_DEL_SELF(1991,"用户删除自己"), USER_NOT_ADMIN(1992,"用户非超管"), + USER_NO_PERMISSION(1993,"用户无此权限"), + USER_USE_ROLE(1994,"用户使用此角色"), USER_IS_EMPTY(2000, "用户不存在"), PASSWORD_ERROR(2001, "密码错误"), LOGIN_USER_OR_PWD_ERROR(2002, "用户名或密码错误"), diff --git a/mallinkService/src/main/java/com/iformall/mapper/MallUserInfoMapper.java b/mallinkService/src/main/java/com/iformall/mapper/MallUserInfoMapper.java index 40262472b..8048a158b 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/MallUserInfoMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/MallUserInfoMapper.java @@ -11,12 +11,8 @@ public interface MallUserInfoMapper extends CommonMapper { List findList(MallUserInfo mallUserInfo); - - - Integer hasButtonPermission(@Param("userId") Long userId, @Param("permission") String permission); - long cntByUserName(Map params); } diff --git a/mallinkService/src/main/java/com/iformall/service/MallRoleService.java b/mallinkService/src/main/java/com/iformall/service/MallRoleService.java index eb347e6d8..69afe1315 100644 --- a/mallinkService/src/main/java/com/iformall/service/MallRoleService.java +++ b/mallinkService/src/main/java/com/iformall/service/MallRoleService.java @@ -11,8 +11,8 @@ public interface MallRoleService { * 根据实体查询分页列表 * * @param record - * @param offset - * @param limit + * @param pageIndex + * @param pageSize * @return */ PageInfo listAsPage(MallRole record, Integer pageIndex, Integer pageSize); diff --git a/mallinkService/src/main/java/com/iformall/service/MallUserInfoService.java b/mallinkService/src/main/java/com/iformall/service/MallUserInfoService.java index 16ca1984d..c4d7fc416 100644 --- a/mallinkService/src/main/java/com/iformall/service/MallUserInfoService.java +++ b/mallinkService/src/main/java/com/iformall/service/MallUserInfoService.java @@ -4,17 +4,26 @@ import com.github.pagehelper.PageInfo; import com.iformall.common.ResultData; import com.iformall.domain.po.MallUserInfo; +import java.util.List; + public interface MallUserInfoService { /** * 根据实体查询分页列表 * * @param record - * @param offset - * @param limit + * @param pageIndex + * @param pageSize * @return */ PageInfo listAsPage(MallUserInfo record, Integer pageIndex, Integer pageSize); + + /** + * 根据实体查询列表 + * @param record + * @return + */ + int cntUserList(MallUserInfo record); /** * 根据Id获得实体 @@ -37,11 +46,7 @@ public interface MallUserInfoService { * @param id */ void deleteById(Long id); - - - - /** * 查询用户名总数,用于校验用户名是否重复 * @param username diff --git a/mallinkService/src/main/java/com/iformall/service/impl/MallUserInfoServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/MallUserInfoServiceImpl.java index 99d42c010..a4a87b422 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/MallUserInfoServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/MallUserInfoServiceImpl.java @@ -45,6 +45,11 @@ public class MallUserInfoServiceImpl implements MallUserInfoService { return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> mallUserInfoMapper.findList(record)); } + @Override + public int cntUserList(MallUserInfo record) { + return mallUserInfoMapper.selectCount(record); + } + @Override public MallUserInfo getById(Long id) { return mallUserInfoMapper.selectByPrimaryKey(id); diff --git a/mallinkService/src/main/resources/mapper/MallUserInfoMapper.xml b/mallinkService/src/main/resources/mapper/MallUserInfoMapper.xml index 593238b9c..fa8da2bd7 100644 --- a/mallinkService/src/main/resources/mapper/MallUserInfoMapper.xml +++ b/mallinkService/src/main/resources/mapper/MallUserInfoMapper.xml @@ -13,7 +13,6 @@ - @@ -90,9 +89,6 @@ - - -