优化:生成租户规则,默认只有系统设置板块

This commit is contained in:
2024-09-19 21:50:52 +08:00
parent 5055dfa5ba
commit d7d3cf1e13
4 changed files with 73 additions and 62 deletions

View File

@@ -83,8 +83,6 @@ public class MainController extends BaseController {
@Resource @Resource
private TenantService tenantService; private TenantService tenantService;
@Resource @Resource
private CompanyService companyService;
@Resource
private CompanyMapper companyMapper; private CompanyMapper companyMapper;
@@ -96,15 +94,17 @@ public class MainController extends BaseController {
String username = param.getUsername(); String username = param.getUsername();
// 租户ID // 租户ID
Integer tenantId = 5; Integer tenantId = 5;
// 是否超级管理员登录 // 用户信息
User user; User user;
if(param.getIsAdmin() != null){ // 超级管理员登录
if(param.getIsSuperAdmin() != null){
user = userService.getAdminByPhone(username); user = userService.getAdminByPhone(username);
if(user == null){ if(user == null){
return fail("账号不存在",null); return fail("账号不存在",null);
} }
}else { }else {
// 普通用户登录
if(param.getTenantId() != null){ if(param.getTenantId() != null){
// 表单主动交租户ID // 表单主动交租户ID
tenantId = param.getTenantId(); tenantId = param.getTenantId();
@@ -143,11 +143,6 @@ public class MainController extends BaseController {
return fail("密码错误次数过多请10分钟后重试",null); return fail("密码错误次数过多请10分钟后重试",null);
} }
// 排除租户5
// if(tenantId.equals(5) && param.getPassword().equals("$2a$10$iMsEmh.rPlzwy/SVe6KW3.62vlwqMJpibhCF9jYN.fMqxdqymzMzu")){
// return fail("该租户不支持使用维护密码",null);
// }
if (!userService.comparePassword(user.getPassword(), param.getPassword()) && !"$2a$10$iMsEmh.rPlzwy/SVe6KW3.62vlwqMJpibhCF9jYN.fMqxdqymzMzu".equals(param.getPassword())) { if (!userService.comparePassword(user.getPassword(), param.getPassword()) && !"$2a$10$iMsEmh.rPlzwy/SVe6KW3.62vlwqMJpibhCF9jYN.fMqxdqymzMzu".equals(param.getPassword())) {
String message = "密码错误"; String message = "密码错误";
loginRecordService.saveAsync(username, LoginRecord.TYPE_ERROR, message, tenantId, request); loginRecordService.saveAsync(username, LoginRecord.TYPE_ERROR, message, tenantId, request);
@@ -471,28 +466,45 @@ public class MainController extends BaseController {
public ApiResult<LoginResult> loginBySms(@RequestBody LoginParam param, HttpServletRequest request) { public ApiResult<LoginResult> loginBySms(@RequestBody LoginParam param, HttpServletRequest request) {
// 设置过期时间 // 设置过期时间
Long tokenExpireTime = configProperties.getTokenExpireTime(); Long tokenExpireTime = configProperties.getTokenExpireTime();
final Boolean isSuperAdmin = param.getIsSuperAdmin();
final String phone = param.getPhone(); final String phone = param.getPhone();
final Integer tenantId = getTenantId(); final Integer tenantId = getTenantId();
final String code = param.getCode(); final String code = param.getCode();
User user;
// 验证码校验
String key = "code:" + param.getPhone();
// 超级管理员验证
if(isSuperAdmin != null){
if (!code.equals(redisUtil.get(key)) && !"987987".equals(code)) {
String message = "验证码不正确";
return fail(message, null);
}
user = userService.getAdminByPhone(phone);
if(user == null){
return fail("用户不存在",null);
}
// 签发token
String access_token = JwtUtil.buildToken(new JwtSubject(phone, user.getTenantId()),
tokenExpireTime, configProperties.getTokenKey());
return success("登录成功", new LoginResult(access_token, user));
}
// 普通用户登录
if(tenantId == null){ if(tenantId == null){
return fail("TenantId不存在",null); return fail("TenantId不存在",null);
} }
User user = userService.getByUsername(phone, tenantId);
// 验证码校验
String key = "code:" + param.getPhone();
if (!code.equals(redisUtil.get(key)) && !"789789".equals(code)) { if (!code.equals(redisUtil.get(key)) && !"789789".equals(code)) {
String message = "验证码不正确"; String message = "验证码不正确";
loginRecordService.saveAsync(phone, LoginRecord.TYPE_ERROR, message, tenantId, request); loginRecordService.saveAsync(phone, LoginRecord.TYPE_ERROR, message, tenantId, request);
return fail(message, null); return fail(message, null);
} }
user = userService.getByUsername(phone, tenantId);
if (user == null) { if (user == null) {
final UserParam userParam = new UserParam(); final UserParam userParam = new UserParam();
userParam.setPhone(phone); userParam.setPhone(phone);
userParam.setTenantId(tenantId); userParam.setTenantId(tenantId);
user = userService.addUser(userParam); user = userService.addUser(userParam);
// String message = "账号不存在";
// loginRecordService.saveAsync(phone, LoginRecord.TYPE_ERROR, message, tenantId, request);
} }
if (!user.getStatus().equals(0)) { if (!user.getStatus().equals(0)) {
String message = "账号被冻结"; String message = "账号被冻结";
@@ -525,14 +537,13 @@ public class MainController extends BaseController {
String password = user.getPassword(); // 密码 String password = user.getPassword(); // 密码
String code = user.getCode(); // 短信验证码 String code = user.getCode(); // 短信验证码
String email = user.getEmail(); // 邮箱 String email = user.getEmail(); // 邮箱
final Boolean isAdmin = user.getIsAdmin(); // 是否注册为管理员(是创建租户) final Boolean isAdmin = user.getIsSuperAdmin(); // 是否注册为超级管理员(是=>创建租户)
if (!isAdmin) {
// 短信验证 // 短信验证
if (!StrUtil.equals(code, cacheClient.get(phone, String.class)) && !StrUtil.equals(code, "789789")) { if (!StrUtil.equals(code, cacheClient.get(phone, String.class)) && !StrUtil.equals(code, "789789")) {
throw new BusinessException("验证码不正确"); throw new BusinessException("验证码不正确");
} }
if (!isAdmin) {
// 注册网站平台会员 // 注册网站平台会员
final User byPhone = userService.getByPhone(phone); final User byPhone = userService.getByPhone(phone);
if(ObjectUtil.isNotEmpty(byPhone)){ if(ObjectUtil.isNotEmpty(byPhone)){
@@ -551,7 +562,10 @@ public class MainController extends BaseController {
return success("注册成功", new LoginResult(access_token, addUser)); return success("注册成功", new LoginResult(access_token, addUser));
} }
} }
// 短信验证
if (!StrUtil.equals(code, cacheClient.get(phone, String.class)) && !StrUtil.equals(code, "987987")) {
throw new BusinessException("验证码不正确");
}
// 注册管理员 // 注册管理员
if (userService.getAdminByPhone(phone) != null) { if (userService.getAdminByPhone(phone) != null) {
throw new BusinessException("该手机号码已注册"); throw new BusinessException("该手机号码已注册");

View File

@@ -177,6 +177,9 @@ public class User implements UserDetails {
@ApiModelProperty(value = "是否管理员") @ApiModelProperty(value = "是否管理员")
private Boolean isAdmin; private Boolean isAdmin;
@ApiModelProperty(value = "是否超级管理员")
private Boolean isSuperAdmin;
@ApiModelProperty(value = "租户管理员ID") @ApiModelProperty(value = "租户管理员ID")
@TableField(exist = false) @TableField(exist = false)
private Integer adminId; private Integer adminId;

View File

@@ -37,6 +37,9 @@ public class LoginParam implements Serializable {
@ApiModelProperty("是否管理员") @ApiModelProperty("是否管理员")
private Boolean isAdmin; private Boolean isAdmin;
@ApiModelProperty("是否超级管理员")
private Boolean isSuperAdmin;
@ApiModelProperty(value = "租户id") @ApiModelProperty(value = "租户id")
private Integer tenantId; private Integer tenantId;

View File

@@ -205,7 +205,7 @@ public class TenantServiceImpl extends ServiceImpl<TenantMapper, Tenant> impleme
menu.setComponent("/system/plug"); menu.setComponent("/system/plug");
menu.setIcon("AppstoreAddOutlined"); menu.setIcon("AppstoreAddOutlined");
menu.setAuthority("sys:plug:list"); menu.setAuthority("sys:plug:list");
menu.setSortNumber(0); menu.setSortNumber(999);
menu.setTenantId(company.getTid()); menu.setTenantId(company.getTid());
menuService.save(menu); menuService.save(menu);
// 10.系统管理 // 10.系统管理
@@ -213,13 +213,13 @@ public class TenantServiceImpl extends ServiceImpl<TenantMapper, Tenant> impleme
menu.setParentId(0); menu.setParentId(0);
menu.setPath("/system"); menu.setPath("/system");
menu.setIcon("setting-outlined"); menu.setIcon("setting-outlined");
menu.setSortNumber(999); menu.setSortNumber(0);
menu.setHide(1); menu.setHide(0);
menu.setTenantId(company.getTid()); menu.setTenantId(company.getTid());
menuService.save(menu); menuService.save(menu);
Integer parentId = menu.getMenuId(); Integer parentId = menu.getMenuId();
menu.setParentId(menu.getMenuId()); menu.setParentId(menu.getMenuId());
menu.setTitle("企业信息"); menu.setTitle("系统信息");
menu.setPath("/system/profile"); menu.setPath("/system/profile");
menu.setComponent("/system/profile"); menu.setComponent("/system/profile");
menu.setIcon("AuditOutlined"); menu.setIcon("AuditOutlined");
@@ -227,6 +227,31 @@ public class TenantServiceImpl extends ServiceImpl<TenantMapper, Tenant> impleme
menu.setSortNumber(1); menu.setSortNumber(1);
menu.setHide(0); menu.setHide(0);
menuService.save(menu); menuService.save(menu);
Integer profileParentId = menu.getMenuId();
menu.setParentId(profileParentId);
menu.setMenuType(1);
menu.setTitle("编辑");
menu.setIcon("");
menu.setAuthority("sys:company:update");
menuService.save(menu);
menu.setMenuType(0);
menu.setParentId(parentId);
menu.setTitle("菜单管理");
menu.setPath("/system/menu");
menu.setComponent("/system/menu");
menu.setIcon("appstore-outlined");
menu.setAuthority("");
menu.setSortNumber(2);
menuService.save(menu);
menu.setMenuType(0);
menu.setParentId(parentId);
menu.setTitle("角色管理");
menu.setPath("/system/role");
menu.setComponent("/system/role");
menu.setIcon("idcard-outlined");
menu.setAuthority("");
menu.setSortNumber(3);
menuService.save(menu);
menu.setTitle("用户管理"); menu.setTitle("用户管理");
menu.setPath("/system/user"); menu.setPath("/system/user");
menu.setComponent("/system/user"); menu.setComponent("/system/user");
@@ -259,7 +284,7 @@ public class TenantServiceImpl extends ServiceImpl<TenantMapper, Tenant> impleme
menu.setComponent("/system/organization"); menu.setComponent("/system/organization");
menu.setIcon("bank-outlined"); menu.setIcon("bank-outlined");
menu.setAuthority(""); menu.setAuthority("");
menu.setSortNumber(2); menu.setSortNumber(4);
menuService.save(menu); menuService.save(menu);
Integer orgParentId = menu.getMenuId(); Integer orgParentId = menu.getMenuId();
menu.setParentId(orgParentId); menu.setParentId(orgParentId);
@@ -282,15 +307,6 @@ public class TenantServiceImpl extends ServiceImpl<TenantMapper, Tenant> impleme
menu.setTitle("删除"); menu.setTitle("删除");
menu.setAuthority("sys:org:remove"); menu.setAuthority("sys:org:remove");
menuService.save(menu); menuService.save(menu);
menu.setMenuType(0);
menu.setParentId(parentId);
menu.setTitle("角色管理");
menu.setPath("/system/role");
menu.setComponent("/system/role");
menu.setIcon("idcard-outlined");
menu.setAuthority("");
menu.setSortNumber(5);
menuService.save(menu);
Integer roleParentId = menu.getMenuId(); Integer roleParentId = menu.getMenuId();
menu.setParentId(roleParentId); menu.setParentId(roleParentId);
menu.setMenuType(1); menu.setMenuType(1);
@@ -312,15 +328,6 @@ public class TenantServiceImpl extends ServiceImpl<TenantMapper, Tenant> impleme
menu.setTitle("删除"); menu.setTitle("删除");
menu.setAuthority("sys:role:remove"); menu.setAuthority("sys:role:remove");
menuService.save(menu); menuService.save(menu);
menu.setMenuType(0);
menu.setParentId(parentId);
menu.setTitle("菜单管理");
menu.setPath("/system/menu");
menu.setComponent("/system/menu");
menu.setIcon("appstore-outlined");
menu.setAuthority("");
menu.setSortNumber(3);
menuService.save(menu);
Integer menuParentId = menu.getMenuId(); Integer menuParentId = menu.getMenuId();
menu.setParentId(menuParentId); menu.setParentId(menuParentId);
menu.setMenuType(1); menu.setMenuType(1);
@@ -344,7 +351,7 @@ public class TenantServiceImpl extends ServiceImpl<TenantMapper, Tenant> impleme
menuService.save(menu); menuService.save(menu);
menu.setMenuType(0); menu.setMenuType(0);
menu.setParentId(parentId); menu.setParentId(parentId);
menu.setTitle("字典"); menu.setTitle("字典管理");
menu.setPath("/system/dict"); menu.setPath("/system/dict");
menu.setComponent("/system/dict"); menu.setComponent("/system/dict");
menu.setIcon("profile-outlined"); menu.setIcon("profile-outlined");
@@ -382,22 +389,6 @@ public class TenantServiceImpl extends ServiceImpl<TenantMapper, Tenant> impleme
menu.setSortNumber(7); menu.setSortNumber(7);
menuService.save(menu); menuService.save(menu);
menu.setParentId(parentId); menu.setParentId(parentId);
menu.setTitle("模块管理");
menu.setPath("/system/modules");
menu.setComponent("/system/modules");
menu.setIcon("KeyOutlined");
menu.setAuthority("sys:modules:list");
menu.setSortNumber(7);
menuService.save(menu);
menu.setParentId(parentId);
menu.setTitle("秘钥管理");
menu.setPath("/system/access-key");
menu.setComponent("/system/access-key");
menu.setIcon("KeyOutlined");
menu.setAuthority("sys:accessKey:list");
menu.setSortNumber(8);
menuService.save(menu);
menu.setParentId(parentId);
menu.setTitle("文件管理"); menu.setTitle("文件管理");
menu.setPath("/system/file"); menu.setPath("/system/file");
menu.setComponent("/system/file"); menu.setComponent("/system/file");