From a8681f6598e064579ce6b3ab16a152258839e211 Mon Sep 17 00:00:00 2001
From: zhanzhiqin <895896009@qq.com>
Date: 星期三, 09 三月 2022 15:44:37 +0800
Subject: [PATCH] 普通用户登录fix
---
ximon-admin/src/main/java/com/sandu/ximon/admin/service/ClientService.java | 24 +++++++
dao/src/main/java/com/sandu/ximon/dao/mapper/ClientRoleRelationMapper.java | 17 +++++
ximon-admin/src/main/java/com/sandu/ximon/admin/service/ClientRoleRelationService.java | 14 ++++
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/ClientController.java | 4
dao/src/main/java/com/sandu/ximon/dao/domain/ClientRoleRelation.java | 41 +++++++++++++
ximon-admin/src/main/java/com/sandu/ximon/admin/param/AddClientPrarm.java | 4 +
dao/src/main/resources/mapper/ClientRoleRelationMapper.xml | 19 ++++++
sandu-common/src/main/java/com/sandu/common/enums/RoleLevelStatus.java | 1
8 files changed, 121 insertions(+), 3 deletions(-)
diff --git a/dao/src/main/java/com/sandu/ximon/dao/domain/ClientRoleRelation.java b/dao/src/main/java/com/sandu/ximon/dao/domain/ClientRoleRelation.java
new file mode 100644
index 0000000..7c305f1
--- /dev/null
+++ b/dao/src/main/java/com/sandu/ximon/dao/domain/ClientRoleRelation.java
@@ -0,0 +1,41 @@
+package com.sandu.ximon.dao.domain;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import lombok.Data;
+
+/**
+ *
+ * @TableName client_role_relation
+ */
+@TableName(value ="client_role_relation")
+@Data
+public class ClientRoleRelation implements Serializable {
+ /**
+ *
+ */
+ @TableId
+ private Long id;
+
+ /**
+ * 鐢ㄦ埛ID
+ */
+ private Long clientId;
+
+ /**
+ * 瑙掕壊ID
+ */
+ private Long roleId;
+
+ /**
+ *
+ */
+ private LocalDateTime createTime;
+
+ /**
+ *
+ */
+ private LocalDateTime updateTime;
+}
\ No newline at end of file
diff --git a/dao/src/main/java/com/sandu/ximon/dao/mapper/ClientRoleRelationMapper.java b/dao/src/main/java/com/sandu/ximon/dao/mapper/ClientRoleRelationMapper.java
new file mode 100644
index 0000000..0d082cb
--- /dev/null
+++ b/dao/src/main/java/com/sandu/ximon/dao/mapper/ClientRoleRelationMapper.java
@@ -0,0 +1,17 @@
+package com.sandu.ximon.dao.mapper;
+
+import com.sandu.ximon.dao.domain.ClientRoleRelation;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @Entity com.sandu.ximon.dao.domain.ClientRoleRelation
+ */
+@Mapper
+public interface ClientRoleRelationMapper extends BaseMapper<ClientRoleRelation> {
+
+}
+
+
+
+
diff --git a/dao/src/main/resources/mapper/ClientRoleRelationMapper.xml b/dao/src/main/resources/mapper/ClientRoleRelationMapper.xml
new file mode 100644
index 0000000..1b00482
--- /dev/null
+++ b/dao/src/main/resources/mapper/ClientRoleRelationMapper.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+ "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.sandu.ximon.dao.mapper.ClientRoleRelationMapper">
+
+ <resultMap id="BaseResultMap" type="com.sandu.ximon.dao.domain.ClientRoleRelation">
+ <id property="id" column="id" jdbcType="BIGINT"/>
+ <result property="clientId" column="client_id" jdbcType="BIGINT"/>
+ <result property="roleId" column="role_id" jdbcType="BIGINT"/>
+ <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+ <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+ </resultMap>
+
+ <sql id="Base_Column_List">
+ id,client_id,role_id,
+ create_time,update_time
+ </sql>
+</mapper>
diff --git a/sandu-common/src/main/java/com/sandu/common/enums/RoleLevelStatus.java b/sandu-common/src/main/java/com/sandu/common/enums/RoleLevelStatus.java
index 63a827a..24838b8 100644
--- a/sandu-common/src/main/java/com/sandu/common/enums/RoleLevelStatus.java
+++ b/sandu-common/src/main/java/com/sandu/common/enums/RoleLevelStatus.java
@@ -9,6 +9,7 @@
*/
SUPER(1, "瓒呯骇绠$悊鍛�"),
COMMON(2, "鏅�氱鐞嗗憳"),
+ NORMAL(3, "鏅�氱敤鎴�"),
;
private final Integer code;
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/ClientController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/ClientController.java
index efe7faf..e6b43bb 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/ClientController.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/ClientController.java
@@ -107,14 +107,14 @@
return ResponseUtil.error(ResponseStatusEnums.BAD_CREDENTIALS.getCode(), ResponseStatusEnums.BAD_CREDENTIALS.getMessage());
}
-// Collection<GrantedAuthority> grantedAuthorities = roleService.mapToGrantedAuthorities(client.getId());
+ Collection<GrantedAuthority> grantedAuthorities = roleService.mapToGrantedAuthorities(client.getId());
LoginUserInfo loginUserInfo = new LoginUserInfo();
loginUserInfo.setUserId(client.getId());
loginUserInfo.setAccount(client.getClientName());
loginUserInfo.setIp(IpUtil.getRealIp());
loginUserInfo.setAdministratorType(AdministratorEnums.NORMAL.getCode());
-// loginUserInfo.setPermission(grantedAuthorities.stream().map(GrantedAuthority::getAuthority).collect(Collectors.joining(",")));
+ loginUserInfo.setPermission(grantedAuthorities.stream().map(GrantedAuthority::getAuthority).collect(Collectors.joining(",")));
// 鐢熸垚浠ょ墝
String token = tokenProvider.createToken(loginUserInfo);
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/param/AddClientPrarm.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/param/AddClientPrarm.java
index a380be1..a2154e1 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/param/AddClientPrarm.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/param/AddClientPrarm.java
@@ -3,6 +3,7 @@
import lombok.Data;
import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
/**
* @author ZZQ
@@ -12,4 +13,7 @@
public class AddClientPrarm extends ClientPrarm {
@NotEmpty
private String password;
+
+ @NotNull(message = "瑙掕壊id涓嶈兘涓虹┖")
+ private Long roleId;
}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/ClientRoleRelationService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/ClientRoleRelationService.java
new file mode 100644
index 0000000..c9818b8
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/ClientRoleRelationService.java
@@ -0,0 +1,14 @@
+package com.sandu.ximon.admin.service;
+
+import com.sandu.common.service.impl.BaseServiceImpl;
+import com.sandu.ximon.dao.domain.ClientRoleRelation;
+import com.sandu.ximon.dao.mapper.ClientRoleRelationMapper;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author ZZQ
+ * @date 2022/3/9 15:22
+ */
+@Service
+public class ClientRoleRelationService extends BaseServiceImpl<ClientRoleRelationMapper, ClientRoleRelation> {
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/ClientService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/ClientService.java
index 9da3101..8b02c43 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/ClientService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/ClientService.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.sandu.common.enums.RoleLevelStatus;
import com.sandu.common.execption.BusinessException;
import com.sandu.common.object.BaseConditionVO;
import com.sandu.common.service.impl.BaseServiceImpl;
@@ -9,6 +10,8 @@
import com.sandu.ximon.admin.param.ClientPrarm;
import com.sandu.ximon.admin.security.SecurityUtils;
import com.sandu.ximon.dao.domain.Client;
+import com.sandu.ximon.dao.domain.ClientRoleRelation;
+import com.sandu.ximon.dao.domain.Role;
import com.sandu.ximon.dao.mapper.ClientMapper;
import lombok.AllArgsConstructor;
import org.springframework.security.crypto.password.PasswordEncoder;
@@ -22,6 +25,8 @@
private final ClientMapper clientMapper;
private final PasswordEncoder passwordEncoder;
+ private final ClientRoleRelationService clientRoleRelationService;
+ private final RoleService roleService;
public boolean addClient(AddClientPrarm addClientPrarm) {
@@ -39,14 +44,31 @@
throw new BusinessException("涓婄骇瀹㈡埛涓嶅瓨鍦�");
}
}
+
+ Role role = roleService.getById(addClientPrarm.getRoleId());
+ if (role == null) {
+ throw new BusinessException("瑙掕壊涓嶅瓨鍦�");
+ }
+ if (!RoleLevelStatus.NORMAL.getCode().equals(role.getLevel())) {
+ throw new BusinessException("鏃犳硶娣诲姞瓒呯骇绠$悊鍛樻垨鐢ㄦ埛绠$悊鍛�");
+ }
+
+
client.setClientName(addClientPrarm.getClientName());
client.setLinkMan(addClientPrarm.getLinkMan());
client.setMobile(addClientPrarm.getMobile());
client.setClientSuperior(addClientPrarm.getClientSuperior());
client.setPassword(passwordEncoder.encode(addClientPrarm.getPassword()));
+ boolean flag = save(client);
+ ClientRoleRelation clientRoleRelation = new ClientRoleRelation();
+ clientRoleRelation.setClientId(client.getId());
+ clientRoleRelation.setRoleId(addClientPrarm.getRoleId());
+ if (!clientRoleRelationService.save(clientRoleRelation)) {
+ throw new BusinessException("娣诲姞绠$悊鍛樿鑹插け璐�");
+ }
- return save(client);
+ return flag;
}
--
Gitblit v1.9.3