Przeglądaj źródła

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

release_toaliyun_real
Stormeye.Wu 7 lat temu
rodzic
commit
20ddd18116
8 zmienionych plików z 65 dodań i 33 usunięć
  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 Wyświetl plik

@@ -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;
} }


+ 12
- 6
mallinkAdmin/src/main/java/com/iformall/controller/MallUserInfoController.java Wyświetl plik

@@ -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());




+ 3
- 0
mallinkService/src/main/java/com/iformall/common/ErrorCode.java Wyświetl plik

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


+ 0
- 4
mallinkService/src/main/java/com/iformall/mapper/MallUserInfoMapper.java Wyświetl plik

@@ -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);


} }

+ 2
- 2
mallinkService/src/main/java/com/iformall/service/MallRoleService.java Wyświetl plik

@@ -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);


+ 11
- 6
mallinkService/src/main/java/com/iformall/service/MallUserInfoService.java Wyświetl plik

@@ -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


+ 5
- 0
mallinkService/src/main/java/com/iformall/service/impl/MallUserInfoServiceImpl.java Wyświetl plik

@@ -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);


+ 0
- 4
mallinkService/src/main/resources/mapper/MallUserInfoMapper.xml Wyświetl plik

@@ -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


Ładowanie…
Anuluj
Zapisz