| @@ -1,12 +1,16 @@ | |||||
| package com.iformall.controller; | package com.iformall.controller; | ||||
| import com.github.pagehelper.PageInfo; | import com.github.pagehelper.PageInfo; | ||||
| import com.iformall.common.ErrorCode; | |||||
| import com.iformall.common.Result; | import com.iformall.common.Result; | ||||
| import com.iformall.common.ResultData; | import com.iformall.common.ResultData; | ||||
| import com.iformall.domain.po.MallRole; | import com.iformall.domain.po.MallRole; | ||||
| import com.iformall.domain.po.MallRolePermission; | 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.MallRolePermissionService; | ||||
| import com.iformall.service.MallRoleService; | import com.iformall.service.MallRoleService; | ||||
| import com.iformall.service.MallUserInfoService; | |||||
| import io.swagger.annotations.Api; | import io.swagger.annotations.Api; | ||||
| import org.apache.commons.lang3.StringUtils; | import org.apache.commons.lang3.StringUtils; | ||||
| import org.slf4j.Logger; | import org.slf4j.Logger; | ||||
| @@ -32,6 +36,9 @@ public class MallRoleController extends BaseController { | |||||
| @Autowired | @Autowired | ||||
| private MallRolePermissionService sysRolePermissionService; | private MallRolePermissionService sysRolePermissionService; | ||||
| @Autowired | |||||
| private MallUserInfoService mallUserInfoService; | |||||
| @GetMapping("list") | @GetMapping("list") | ||||
| public ResultData list(MallRole sysRole, Integer pageNum, Integer pageSize) { | public ResultData list(MallRole sysRole, Integer pageNum, Integer pageSize) { | ||||
| String tenantId = getTenantId(); | String tenantId = getTenantId(); | ||||
| @@ -57,7 +64,11 @@ public class MallRoleController extends BaseController { | |||||
| @PostMapping("saveOrUpdate") | @PostMapping("saveOrUpdate") | ||||
| public ResultData saveOrUpdate(@RequestBody MallRole sysRole) { | 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()); | int count = sysRoleService.countByName(sysRole.getName(), sysRole.getId()); | ||||
| if (count > 0) { | if (count > 0) { | ||||
| return new ResultData(ResultData.ERROR, "角色名已存在"); | return new ResultData(ResultData.ERROR, "角色名已存在"); | ||||
| @@ -79,6 +90,10 @@ public class MallRoleController extends BaseController { | |||||
| @PostMapping("add") | @PostMapping("add") | ||||
| public ResultData add(MallRole sysRole) { | 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.notNull(sysRole.getName(), "角色名不能为空"); | ||||
| Assert.isTrue(!checkUnique(sysRole.getName(), null), "重复的角色名"); | Assert.isTrue(!checkUnique(sysRole.getName(), null), "重复的角色名"); | ||||
| sysRoleService.saveOrUpdate(sysRole); | sysRoleService.saveOrUpdate(sysRole); | ||||
| @@ -87,6 +102,10 @@ public class MallRoleController extends BaseController { | |||||
| @PostMapping("update") | @PostMapping("update") | ||||
| public ResultData update(MallRole sysRole) { | 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) { | if (sysRole.getName() != null) { | ||||
| System.out.println(checkUnique(sysRole.getName(), sysRole.getId())); | System.out.println(checkUnique(sysRole.getName(), sysRole.getId())); | ||||
| Assert.isTrue(!checkUnique(sysRole.getName(), sysRole.getId()), "角色名已存在"); | Assert.isTrue(!checkUnique(sysRole.getName(), sysRole.getId()), "角色名已存在"); | ||||
| @@ -99,21 +118,23 @@ public class MallRoleController extends BaseController { | |||||
| @PostMapping("/del") | @PostMapping("/del") | ||||
| public ResultData delete(@RequestBody MallRole sysRole) { | 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()); | sysRoleService.deleteById(sysRole.getId()); | ||||
| sysRolePermissionService.deleteByRoleId(sysRole.getId()); | sysRolePermissionService.deleteByRoleId(sysRole.getId()); | ||||
| return new ResultData(Result.SUCCESS, "删除成功", null); | 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) { | private boolean checkUnique(String name, Long id) { | ||||
| return sysRoleService.countByName(name, id) > 0 ? true : false; | return sysRoleService.countByName(name, id) > 0 ? true : false; | ||||
| } | } | ||||
| @@ -117,6 +117,12 @@ public class MallUserInfoController extends BaseController { | |||||
| @ApiOperation(value = "修改用户接口", response = String.class) | @ApiOperation(value = "修改用户接口", response = String.class) | ||||
| @PostMapping("update") | @PostMapping("update") | ||||
| public ResultData updateUser(@RequestBody MallUserInfo userInfo) { | 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(), "用户名不能为空"); | //Assert.notNull(userInfo.getUsername(), "用户名不能为空"); | ||||
| if(checkUniqueName(userInfo.getUsername(), userInfo.getId())){ | if(checkUniqueName(userInfo.getUsername(), userInfo.getId())){ | ||||
| return new ResultData(ErrorCode.USER_NAME_IS_FOUND,"用户名已存在"); | 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,"手机号已存在"); | 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) { | if (StringUtils.isNotBlank(userInfo.getPassword()) && userInfo.getPassword().length() > 0) { | ||||
| PasswordHelper passwordHelper = new PasswordHelper(); | PasswordHelper passwordHelper = new PasswordHelper(); | ||||
| passwordHelper.encryptPassword(userInfo); | 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; | boolean bModify = false; | ||||
| MallUserInfo adminUser = new MallUserInfo(); | MallUserInfo adminUser = new MallUserInfo(); | ||||
| adminUser.setId(userInfo.getId()); | |||||
| if (StringUtils.isNotBlank(userInfo.getPassword()) && userInfo.getPassword().length() > 0) { | if (StringUtils.isNotBlank(userInfo.getPassword()) && userInfo.getPassword().length() > 0) { | ||||
| adminUser.setPassword(userInfo.getPassword()); | adminUser.setPassword(userInfo.getPassword()); | ||||
| bModify = true; | bModify = true; | ||||
| @@ -170,7 +176,7 @@ public class MallUserInfoController extends BaseController { | |||||
| return new ResultData(ErrorCode.USER_NOT_ADMIN.getCode(), "只有超级管理员才能删除用户"); | return new ResultData(ErrorCode.USER_NOT_ADMIN.getCode(), "只有超级管理员才能删除用户"); | ||||
| } | } | ||||
| if (currentUser.getId().equals(userInfo.getId())) { | 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()); | userInfoService.deleteById(userInfo.getId()); | ||||
| @@ -48,9 +48,12 @@ public enum ErrorCode{ | |||||
| /** | /** | ||||
| * 用户2000-2099 | * 用户2000-2099 | ||||
| */ | */ | ||||
| USER_PHONE_IS_NOT_FOUND(1990,"手机号不存在"), | USER_PHONE_IS_NOT_FOUND(1990,"手机号不存在"), | ||||
| USER_DEL_SELF(1991,"用户删除自己"), | USER_DEL_SELF(1991,"用户删除自己"), | ||||
| USER_NOT_ADMIN(1992,"用户非超管"), | USER_NOT_ADMIN(1992,"用户非超管"), | ||||
| USER_NO_PERMISSION(1993,"用户无此权限"), | |||||
| USER_USE_ROLE(1994,"用户使用此角色"), | |||||
| USER_IS_EMPTY(2000, "用户不存在"), | USER_IS_EMPTY(2000, "用户不存在"), | ||||
| PASSWORD_ERROR(2001, "密码错误"), | PASSWORD_ERROR(2001, "密码错误"), | ||||
| LOGIN_USER_OR_PWD_ERROR(2002, "用户名或密码错误"), | LOGIN_USER_OR_PWD_ERROR(2002, "用户名或密码错误"), | ||||
| @@ -11,12 +11,8 @@ public interface MallUserInfoMapper extends CommonMapper<MallUserInfo, String> { | |||||
| List<MallUserInfo> findList(MallUserInfo mallUserInfo); | List<MallUserInfo> findList(MallUserInfo mallUserInfo); | ||||
| Integer hasButtonPermission(@Param("userId") Long userId, @Param("permission") String permission); | Integer hasButtonPermission(@Param("userId") Long userId, @Param("permission") String permission); | ||||
| long cntByUserName(Map<String,Object> params); | long cntByUserName(Map<String,Object> params); | ||||
| } | } | ||||
| @@ -11,8 +11,8 @@ public interface MallRoleService { | |||||
| * 根据实体查询分页列表 | * 根据实体查询分页列表 | ||||
| * | * | ||||
| * @param record | * @param record | ||||
| * @param offset | |||||
| * @param limit | |||||
| * @param pageIndex | |||||
| * @param pageSize | |||||
| * @return | * @return | ||||
| */ | */ | ||||
| PageInfo<MallRole> listAsPage(MallRole record, Integer pageIndex, Integer pageSize); | PageInfo<MallRole> listAsPage(MallRole record, Integer pageIndex, Integer pageSize); | ||||
| @@ -4,17 +4,26 @@ import com.github.pagehelper.PageInfo; | |||||
| import com.iformall.common.ResultData; | import com.iformall.common.ResultData; | ||||
| import com.iformall.domain.po.MallUserInfo; | import com.iformall.domain.po.MallUserInfo; | ||||
| import java.util.List; | |||||
| public interface MallUserInfoService { | public interface MallUserInfoService { | ||||
| /** | /** | ||||
| * 根据实体查询分页列表 | * 根据实体查询分页列表 | ||||
| * | * | ||||
| * @param record | * @param record | ||||
| * @param offset | |||||
| * @param limit | |||||
| * @param pageIndex | |||||
| * @param pageSize | |||||
| * @return | * @return | ||||
| */ | */ | ||||
| PageInfo<MallUserInfo> listAsPage(MallUserInfo record, Integer pageIndex, Integer pageSize); | PageInfo<MallUserInfo> listAsPage(MallUserInfo record, Integer pageIndex, Integer pageSize); | ||||
| /** | |||||
| * 根据实体查询列表 | |||||
| * @param record | |||||
| * @return | |||||
| */ | |||||
| int cntUserList(MallUserInfo record); | |||||
| /** | /** | ||||
| * 根据Id获得实体 | * 根据Id获得实体 | ||||
| @@ -37,11 +46,7 @@ public interface MallUserInfoService { | |||||
| * @param id | * @param id | ||||
| */ | */ | ||||
| void deleteById(Long id); | void deleteById(Long id); | ||||
| /** | /** | ||||
| * 查询用户名总数,用于校验用户名是否重复 | * 查询用户名总数,用于校验用户名是否重复 | ||||
| * @param username | * @param username | ||||
| @@ -45,6 +45,11 @@ public class MallUserInfoServiceImpl implements MallUserInfoService { | |||||
| return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> mallUserInfoMapper.findList(record)); | return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> mallUserInfoMapper.findList(record)); | ||||
| } | } | ||||
| @Override | |||||
| public int cntUserList(MallUserInfo record) { | |||||
| return mallUserInfoMapper.selectCount(record); | |||||
| } | |||||
| @Override | @Override | ||||
| public MallUserInfo getById(Long id) { | public MallUserInfo getById(Long id) { | ||||
| return mallUserInfoMapper.selectByPrimaryKey(id); | return mallUserInfoMapper.selectByPrimaryKey(id); | ||||
| @@ -13,7 +13,6 @@ | |||||
| <result column="is_admin" jdbcType="INTEGER" property="isAdmin" /> | <result column="is_admin" jdbcType="INTEGER" property="isAdmin" /> | ||||
| <result column="nick_name" jdbcType="VARCHAR" property="nickName" /> | <result column="nick_name" jdbcType="VARCHAR" property="nickName" /> | ||||
| <result column="phone" jdbcType="VARCHAR" property="phone" /> | <result column="phone" jdbcType="VARCHAR" property="phone" /> | ||||
| </resultMap> | </resultMap> | ||||
| <sql id="allColumns"> | <sql id="allColumns"> | ||||
| @@ -90,9 +89,6 @@ | |||||
| <include refid="dynamicWhereConditions" /> | <include refid="dynamicWhereConditions" /> | ||||
| </select> | </select> | ||||
| <select id="hasButtonPermission" resultType="java.lang.Integer"> | <select id="hasButtonPermission" resultType="java.lang.Integer"> | ||||
| SELECT 1 | SELECT 1 | ||||
| FROM mall_user_role ur, mall_user_role_permission rp, mall_permission p | FROM mall_user_role ur, mall_user_role_permission rp, mall_permission p | ||||