Просмотр исходного кода

[用户管理重整,角色管理重整][修复]

release_toaliyun_real
Stormeye.Wu 7 лет назад
Родитель
Сommit
20ddd18116
8 измененных файлов: 65 добавлений и 33 удалений
  1. +32
    -11
      mallinkAdmin/src/main/java/com/iformall/controller/MallRoleController.java
  2. +12
    -6
      mallinkAdmin/src/main/java/com/iformall/controller/MallUserInfoController.java
  3. +3
    -0
      mallinkService/src/main/java/com/iformall/common/ErrorCode.java
  4. +0
    -4
      mallinkService/src/main/java/com/iformall/mapper/MallUserInfoMapper.java
  5. +2
    -2
      mallinkService/src/main/java/com/iformall/service/MallRoleService.java
  6. +11
    -6
      mallinkService/src/main/java/com/iformall/service/MallUserInfoService.java
  7. +5
    -0
      mallinkService/src/main/java/com/iformall/service/impl/MallUserInfoServiceImpl.java
  8. +0
    -4
      mallinkService/src/main/resources/mapper/MallUserInfoMapper.xml

+ 32
- 11
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;
}


+ 12
- 6
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());



+ 3
- 0
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, "用户名或密码错误"),


+ 0
- 4
mallinkService/src/main/java/com/iformall/mapper/MallUserInfoMapper.java Просмотреть файл

@@ -11,12 +11,8 @@ public interface MallUserInfoMapper extends CommonMapper<MallUserInfo, String> {

List<MallUserInfo> findList(MallUserInfo mallUserInfo);

Integer hasButtonPermission(@Param("userId") Long userId, @Param("permission") String permission);


long cntByUserName(Map<String,Object> params);

}

+ 2
- 2
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<MallRole> listAsPage(MallRole record, Integer pageIndex, Integer pageSize);


+ 11
- 6
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<MallUserInfo> 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


+ 5
- 0
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);


+ 0
- 4
mallinkService/src/main/resources/mapper/MallUserInfoMapper.xml Просмотреть файл

@@ -13,7 +13,6 @@
<result column="is_admin" jdbcType="INTEGER" property="isAdmin" />
<result column="nick_name" jdbcType="VARCHAR" property="nickName" />
<result column="phone" jdbcType="VARCHAR" property="phone" />
</resultMap>
<sql id="allColumns">
@@ -90,9 +89,6 @@
<include refid="dynamicWhereConditions" />
</select>
<select id="hasButtonPermission" resultType="java.lang.Integer">
SELECT 1
FROM mall_user_role ur, mall_user_role_permission rp, mall_permission p


Загрузка…
Отмена
Сохранить