From 15e31c6e6550f9e8bf6fb1df5ca5ad4cc726b64f Mon Sep 17 00:00:00 2001
From: XiaoRuby <3114200645@qq.com>
Date: 星期六, 26 八月 2023 13:30:13 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
user-server/src/main/java/com/yuanchu/limslaboratory/mapper/MenuMapper.java | 0
user-server/src/main/java/com/yuanchu/limslaboratory/pojo/Menu.java | 0
user-server/src/main/java/com/yuanchu/limslaboratory/clients/UserLoginUtils.java | 27 +-
framework/src/main/java/com/yuanchu/limslaboratory/utils/HttpUtils.java | 140 ++++++++++
framework/src/main/java/com/yuanchu/limslaboratory/exception/AuthException.java | 31 ++
sys/src/main/java/com/yuanchu/limslaboratory/aop/AuthRequestAspect.java | 69 +++++
user-server/src/main/java/com/yuanchu/limslaboratory/controller/RoleMangerController.java | 21 +
framework/src/main/java/com/yuanchu/limslaboratory/controllerServerApi/LaboratoryServerApi.java | 35 ++
user-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/RoleInfoDto.java | 0
user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RoleManagerServiceImpl.java | 38 ++
framework/src/main/java/com/yuanchu/limslaboratory/enums/MenuEnum.java | 60 ++++
framework/pom.xml | 14 +
framework/src/main/java/com/yuanchu/limslaboratory/handler/GlobalExceptionHandler.java | 7
user-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/UpdateRoleMenuDto.java | 27 ++
user-server/src/main/resources/mapper/MenuMapper.xml | 0
user-server/src/main/java/com/yuanchu/limslaboratory/mapper/RoleManageMapper.java | 11
sys/src/main/resources/application-dev.yml | 2
framework/src/main/java/com/yuanchu/limslaboratory/annotation/RequestInfo.java | 19 +
user-server/src/main/java/com/yuanchu/limslaboratory/pojo/RoleInfo.java | 0
/dev/null | 76 -----
user-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/GetAllRoleAndMenuByConditionPageDto.java | 1
user-server/src/main/resources/mapper/RoleManangeMapper.xml | 127 +++++++++
user-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/RoleAndMenuDto.java | 2
user-server/src/main/java/com/yuanchu/limslaboratory/service/RoleManagerService.java | 7
user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/UserServiceImpl.java | 38 ++
user-server/src/main/java/com/yuanchu/limslaboratory/pojo/RoleMenu.java | 6
user-server/pom.xml | 1
27 files changed, 659 insertions(+), 100 deletions(-)
diff --git a/framework/pom.xml b/framework/pom.xml
index ce4fbb6..21d90b7 100644
--- a/framework/pom.xml
+++ b/framework/pom.xml
@@ -36,6 +36,11 @@
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-ui</artifactId>
</dependency>
+ <!-- aop-->
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-aop</artifactId>
+ </dependency>
<!--redis jar鍖�-->
<dependency>
@@ -47,6 +52,15 @@
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
</dependency>
+
+ <dependency>
+ <groupId>com.squareup.okhttp3</groupId>
+ <artifactId>okhttp</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.google.code.gson</groupId>
+ <artifactId>gson</artifactId>
+ </dependency>
</dependencies>
</project>
diff --git a/framework/src/main/java/com/yuanchu/limslaboratory/annotation/RequestInfo.java b/framework/src/main/java/com/yuanchu/limslaboratory/annotation/RequestInfo.java
new file mode 100644
index 0000000..484c3f5
--- /dev/null
+++ b/framework/src/main/java/com/yuanchu/limslaboratory/annotation/RequestInfo.java
@@ -0,0 +1,19 @@
+package com.yuanchu.limslaboratory.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * @author 寮犲
+ */
+@Target({ElementType.METHOD, ElementType.TYPE})
+@Retention(RetentionPolicy.RUNTIME)
+public @interface RequestInfo {
+
+ String type();
+
+ String name() ;
+
+}
diff --git a/framework/src/main/java/com/yuanchu/limslaboratory/controllerServerApi/LaboratoryServerApi.java b/framework/src/main/java/com/yuanchu/limslaboratory/controllerServerApi/LaboratoryServerApi.java
new file mode 100644
index 0000000..1460e5a
--- /dev/null
+++ b/framework/src/main/java/com/yuanchu/limslaboratory/controllerServerApi/LaboratoryServerApi.java
@@ -0,0 +1,35 @@
+package com.yuanchu.limslaboratory.controllerServerApi;
+
+import com.yuanchu.limslaboratory.utils.HttpUtils;
+import com.yuanchu.limslaboratory.utils.JsonUtil;
+import com.yuanchu.limslaboratory.utils.RedisUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/26
+ */
+@Component
+public class LaboratoryServerApi {
+
+ private final String ROLE_MANAGER="/role-manager";
+
+ @Resource
+ HttpUtils httpUtils;
+
+ public Map<String, Object> getRoleAndMenuByRole(Long roleId){
+ String url=ROLE_MANAGER+ "/getRoleAndMenuByRole";
+ HashMap<String, String>map=new HashMap<>();
+ map.put("roleId",String.valueOf(roleId));
+ String result = httpUtils.get(url, map, String.valueOf(RedisUtil.get("access_token")));
+ return JsonUtil.jsonToPojo(result,Map.class);
+ }
+
+
+}
diff --git a/framework/src/main/java/com/yuanchu/limslaboratory/enums/MenuEnum.java b/framework/src/main/java/com/yuanchu/limslaboratory/enums/MenuEnum.java
new file mode 100644
index 0000000..f44bb11
--- /dev/null
+++ b/framework/src/main/java/com/yuanchu/limslaboratory/enums/MenuEnum.java
@@ -0,0 +1,60 @@
+package com.yuanchu.limslaboratory.enums;
+
+/**
+ * @Author 寮犲
+ * @Date 2023825
+ */
+public enum MenuEnum {
+ standardLibrary(1L,"鏍囧噯搴�"),
+ inspectionManagement(2L,"鎶ユ绠$悊"),
+ commissionInspection(3L,"濮旀墭妫�楠�"),
+ reportForInspection(4L,"鍘熸潗鏂欐姤妫�"),
+ experiment(5L,"璇曢獙绠$悊"),
+ inspectionApplication(6L,"鏂板妫�楠�"),
+ planAssignments(7L,"妫�楠岃鍒�"),
+ checkTheReport(8L,"妫�楠屾姤鍛�"),
+ reportAuditing(9L,"鎶ュ憡瀹℃牳"),
+ nonConformanceReview(10L,"涓嶅悎鏍煎搧鍙嶉"),
+ nonConformingFeedback(11L,"涓嶅悎鏍煎搧璇勫"),
+ passRateStatistics(12L,"鍚堟牸鐜囩粺璁�"),
+ laboratory(13L,"瀹為獙瀹ょ鐞�"),
+ ledger(14L,"璁惧鍙拌处"),
+ measure(15L,"璁¢噺绠$悊"),
+ gather(16L,"璁惧閲囬泦"),
+ personnel(17L,"浜哄憳绠$悊"),
+ role(18L,"瑙掕壊绠$悊"),
+ CNAS(19L,"CNS绠$悊"),
+ reviewAnnualPlan(20L,"瀹℃牳骞村害璁″垝"),
+ nonConformanceManage(21L,"涓嶇鍚堥」绠$悊"),
+ nonConformanceStatistics(22L,"涓嶇鍚堥」缁熻"),
+ satisfactionSurveys(23L,"婊℃剰搴﹁皟鏌�"),
+ chart(24L,"鏅鸿兘鍥捐〃"),
+ center(25L,"瀹為獙涓績"),
+ spc(26L,"SPC鎺у埗鍥�"),
+ shota(27L,"姝eお鍒嗗竷鍥�"),
+ work(28L,"宸ヤ綔缁熻"),
+ message(29L,"娑堟伅浠e姙"),
+ messages(30L,"鎴戠殑娑堟伅"),
+ toDo(31L,"鎴戠殑浠e姙"),
+ personal(32L,"浜哄憳绠$悊"),
+ myInformation(33L,"鎴戠殑淇℃伅"),
+ baseData(34L,"鍩虹鏁版嵁"),
+ basicDataMessage(35L,"鍩虹鏁版嵁"),
+ org(36L,"缁勭粐鏋舵瀯");
+
+ private Long menuId;
+ private String menuName;
+
+
+ MenuEnum(Long menuId, String menuName) {
+ this.menuId = menuId;
+ this.menuName = menuName;
+ }
+ public Long menuId() {
+ return this.menuId;
+ }
+
+ public String menuName() {
+ return this.menuName;
+ }
+}
diff --git a/framework/src/main/java/com/yuanchu/limslaboratory/exception/AuthException.java b/framework/src/main/java/com/yuanchu/limslaboratory/exception/AuthException.java
new file mode 100644
index 0000000..c105ca8
--- /dev/null
+++ b/framework/src/main/java/com/yuanchu/limslaboratory/exception/AuthException.java
@@ -0,0 +1,31 @@
+package com.yuanchu.limslaboratory.exception;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/25
+ */
+public class AuthException extends RuntimeException {
+
+ /**
+ * 涓氬姟缂栫爜瀹氫箟
+ * @return 涓氬姟缂栫爜
+ */
+ private String code;
+
+ /**
+ * 涓氬姟淇℃伅瀹氫箟
+ * @return 涓氬姟淇℃伅瀹氫箟
+ */
+ private String msg;
+
+
+ public AuthException(String code, String msg) {
+
+ super(msg);
+ this.code = code;
+ this.msg = msg;
+ }
+
+ public AuthException() {
+ }
+}
diff --git a/framework/src/main/java/com/yuanchu/limslaboratory/handler/GlobalExceptionHandler.java b/framework/src/main/java/com/yuanchu/limslaboratory/handler/GlobalExceptionHandler.java
index e94b324..bb81a8f 100644
--- a/framework/src/main/java/com/yuanchu/limslaboratory/handler/GlobalExceptionHandler.java
+++ b/framework/src/main/java/com/yuanchu/limslaboratory/handler/GlobalExceptionHandler.java
@@ -1,5 +1,6 @@
package com.yuanchu.limslaboratory.handler;
+import com.yuanchu.limslaboratory.exception.AuthException;
import com.yuanchu.limslaboratory.exception.MyFileException;
import com.yuanchu.limslaboratory.utils.MyUtil;
import com.yuanchu.limslaboratory.vo.Result;
@@ -212,4 +213,10 @@
e.printStackTrace();
return Result.fail("缃戠粶杩炴帴澶辫触锛岃閫�鍑哄悗鍐嶈瘯");
}
+
+ @ExceptionHandler({AuthException.class})
+ public Result<?> noAuth(AuthException e){
+ e.printStackTrace();
+ return Result.fail(400,"鏃犳潈闄�");
+ }
}
diff --git a/framework/src/main/java/com/yuanchu/limslaboratory/utils/HttpUtils.java b/framework/src/main/java/com/yuanchu/limslaboratory/utils/HttpUtils.java
new file mode 100644
index 0000000..86283cf
--- /dev/null
+++ b/framework/src/main/java/com/yuanchu/limslaboratory/utils/HttpUtils.java
@@ -0,0 +1,140 @@
+package com.yuanchu.limslaboratory.utils;
+
+import com.google.gson.Gson;
+import okhttp3.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/26
+ */
+@Component
+public class HttpUtils {
+
+ private final String IP="http://localhost:";
+
+ @Value("${server.port}")
+ private String port;
+
+ public static final MediaType JSON = MediaType.get("application/json; charset=utf-8");
+
+ public static final Logger logger = LoggerFactory.getLogger(HttpUtils.class);
+
+ final OkHttpClient client
+ = new OkHttpClient.Builder()
+ .connectTimeout(10, TimeUnit.SECONDS)
+ .writeTimeout(10, TimeUnit.SECONDS)
+ .readTimeout(20, TimeUnit.SECONDS)
+ .build();
+
+ public String postJson(String url, Map<String, String> map,String token){
+ url=IP+port+url;
+ if (map == null || StringUtils.isEmpty(url)) {
+ throw new RuntimeException("url鎴栬姹傚弬鏁颁笉鑳戒负绌�");
+ }
+ Gson gson = new Gson();
+ String json = gson.toJson(map);
+ RequestBody body = RequestBody.create(JSON, json);
+ Request request = builderRequest(url, body, token);
+ try (Response response = client.newCall(request).execute()) {
+ ResponseBody responseBody = response.body();
+ if (Objects.isNull(responseBody)) {
+ throw new RuntimeException("鍝嶅簲浣撲负绌�");
+ }
+ return responseBody.string();
+ } catch (Exception e) {
+ logger.error(e.toString());
+ return "";
+ }
+ }
+
+ private Request builderRequest(String url,RequestBody body,String token) {
+ if(StringUtils.isNotEmpty(token)){
+ return new Request.Builder()
+ .url(url)
+ .post(body)
+ .addHeader("X-Token", token)
+ .build();
+ }else {
+ return new Request.Builder()
+ .url(url)
+ .post(body)
+ .build();
+ }
+ }
+
+ /**
+ * 闇�瑕佷娇鐢ㄥ簭鍒楀寲宸ュ叿灏嗗璞″簭鍒楀寲鎴愬瓧绗︿覆锛氬gson
+ *
+ * @param url
+ * @param json
+ * @return
+ */
+ public String postJson(String url, String json,String token) {
+ url=IP+port+url;
+ if (StringUtils.isEmpty(json) || StringUtils.isEmpty(url)) {
+ throw new RuntimeException("url鎴栬姹傚弬鏁颁笉鑳戒负绌�");
+ }
+ RequestBody body = RequestBody.create(JSON, json);
+ Request request = builderRequest(url, body, token);
+ try (Response response = client.newCall(request).execute()) {
+ ResponseBody responseBody = response.body();
+ if (Objects.isNull(responseBody)) {
+ throw new RuntimeException("鍝嶅簲浣撲负绌�");
+ }
+ return responseBody.string();
+ } catch (Exception e) {
+ logger.error(e.toString());
+ return "";
+ }
+ }
+
+ /**
+ * @param url
+ * @param queryParamMap
+ * @return
+ */
+ public String get(String url, Map<String, String> queryParamMap, String token){
+ url=IP+port+url;
+ if (StringUtils.isEmpty(url)) {
+ throw new RuntimeException("url鎴栬姹傚弬鏁颁笉鑳戒负绌�");
+ }
+ System.out.println(url);
+ HttpUrl.Builder builder = Objects.requireNonNull(HttpUrl.parse(url)).newBuilder();
+ if (queryParamMap != null && queryParamMap.size() != 0) {
+ queryParamMap.forEach(builder::addQueryParameter);
+ }
+ url = builder.build().toString();
+ Request request=null;
+ if(StringUtils.isNotEmpty(token)){
+ request = new Request.Builder()
+ .url(url)
+ .addHeader("X-Token", token)
+ .build();
+ }else {
+ request = new Request.Builder()
+ .url(url)
+ .build();
+ }
+ try (Response response = client.newCall(request).execute()) {
+ ResponseBody responseBody = response.body();
+ if (Objects.isNull(responseBody)) {
+ throw new RuntimeException("鍝嶅簲浣撲负绌�");
+ }
+ return responseBody.string();
+ } catch (Exception e) {
+ logger.error(e.toString());
+ return "";
+ }
+ }
+}
\ No newline at end of file
diff --git a/laboratory-server/src/main/resources/mapper/RoleManangeMapper.xml b/laboratory-server/src/main/resources/mapper/RoleManangeMapper.xml
deleted file mode 100644
index 8980e01..0000000
--- a/laboratory-server/src/main/resources/mapper/RoleManangeMapper.xml
+++ /dev/null
@@ -1,76 +0,0 @@
-<?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.yuanchu.limslaboratory.mapper.RoleManageMapper">
- <insert id="insertBatchRoleMenu" useGeneratedKeys="true" keyProperty="id">
- insert
- role_menu (id,`role_id`,`menu_id`,`selected`,`added`,`updated`,`deleted`,`create_time`)
- values
- <foreach collection="roleMenuAddList" separator="," item="r">
- (#{r.id},#{r.roleId},#{r.menuId},#{r.selected},#{r.added},#{r.updated},#{r.deleted},#{r.createTime})
- </foreach>
- </insert>
- <insert id="insertRole">
- insert
- role(id,name,create_time) value (
- #{id},
- #{name},
- #{createTime}
- )
- </insert>
- <select id="getAssertName" resultType="com.yuanchu.limslaboratory.pojo.RoleInfo">
- select id
- from role
- where name = #{roleName}
- </select>
- <select id="selectAllRoleAndMenu" resultMap="roleAndMenu">
- SELECT r.id roleId,
- r.`name` roleName,
- menu_id menuId,
- parent_id parentId,
- m.`name` menuName,
- rm.selected,
- rm.added,
- rm.updated,
- rm.deleted,
- r.create_time createTime,
- r.update_time updateTime
- FROM role_menu rm,
- (select id, name, createTime, updateTime
- from role
- where 1=1
- <if test="dto.name!=null and dto.name!=''">
- and name=#{dto.name}
- </if>
- limit #{dto.currentPage}, #{dto.pageSize}) r,
- menu m
- WHERE rm.role_id = r.id
- AND rm.menu_id = m.id
- AND r.state = 1
- AND rm.state = 1
- AND m.state = 1
- </select>
- <select id="getRoleByName" resultType="com.yuanchu.limslaboratory.pojo.Role">
- select id
- from role
- where 1=1
- <if test="dto.name!=null and dto.name!=''">
- and name=#{dto.name}
- </if>
- </select>
-
- <resultMap id="roleAndMenu" type="com.yuanchu.limslaboratory.pojo.dto.RoleAndMenuDto">
- <result property="roleId" column="roleId"/>
- <result property="roleName" column="roleName"/>
- <result property="createTime" column="createTime"/>
- <result property="updateTime" column="updateTime"/>
- <collection property="roleMenuList" ofType="roleMenu">
- <result property="menuId" column="menuId"/>
- <result property="added" column="added"/>
- <result property="deleted" column="deleted"/>
- <result property="updated" column="updated"/>
- <result property="selected" column="selected"/>
- <result property="menuName" column="menuName"/>
- <result property="parentId" column="parentId"/>
- </collection>
- </resultMap>
-</mapper>
\ No newline at end of file
diff --git a/sys/src/main/java/com/yuanchu/limslaboratory/aop/AuthRequestAspect.java b/sys/src/main/java/com/yuanchu/limslaboratory/aop/AuthRequestAspect.java
new file mode 100644
index 0000000..4e6b38f
--- /dev/null
+++ b/sys/src/main/java/com/yuanchu/limslaboratory/aop/AuthRequestAspect.java
@@ -0,0 +1,69 @@
+package com.yuanchu.limslaboratory.aop;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.yuanchu.limslaboratory.annotation.RequestInfo;
+import com.yuanchu.limslaboratory.exception.AuthException;
+import com.yuanchu.limslaboratory.utils.ServletUtils;
+import com.yuanchu.limslaboratory.vo.Result;
+import io.swagger.annotations.ApiOperation;
+import lombok.SneakyThrows;
+import lombok.extern.slf4j.Slf4j;
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Before;
+import org.aspectj.lang.annotation.Pointcut;
+import org.aspectj.lang.reflect.MethodSignature;
+import org.springframework.stereotype.Component;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Method;
+import java.nio.charset.StandardCharsets;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/25
+ */
+@Component
+@Slf4j
+@Aspect
+public class AuthRequestAspect {
+
+ @Pointcut("@annotation(com.yuanchu.limslaboratory.annotation.RequestInfo)")
+ public void pointCut() {
+ }
+
+ //private ThreadLocal<ConcurrentHashMap<String, Map>> threadLocal;
+
+ @SneakyThrows
+ @Before("pointCut()")
+ public void before(JoinPoint joinPoint) {
+ HttpServletRequest request = ServletUtils.getRequest();
+ log.info("鎷︽埅=====銆�"+request.getServletPath());
+ Class<?> clazz = joinPoint.getTarget().getClass();
+ String clazzName = joinPoint.getTarget().getClass().getName();
+ // 鑾峰彇璁块棶鐨勬柟娉曞悕
+ String methodName = joinPoint.getSignature().getName();
+ // 鑾峰彇鏂规硶鎵�鏈夊弬鏁板強鍏剁被鍨�
+ Class[] argClz = ((MethodSignature) joinPoint.getSignature()).getParameterTypes();
+ // 鑾峰彇璁块棶鐨勬柟娉曞璞�
+ Method method = clazz.getDeclaredMethod(methodName, argClz);
+ // 鍒ゆ柇褰撳墠璁块棶鐨勬柟娉曟槸鍚﹀瓨鍦ㄦ寚瀹氭敞瑙�
+ if (method.isAnnotationPresent(RequestInfo.class)) {
+ RequestInfo annotation = method.getAnnotation(RequestInfo.class);
+ System.out.println(annotation.name());
+ System.out.println(annotation.type());
+ }
+ //throw new AuthException("400","鏃犳潈闄�");
+ }
+
+
+
+
+}
diff --git a/sys/src/main/resources/application-dev.yml b/sys/src/main/resources/application-dev.yml
index 46a07a9..5bcc703 100644
--- a/sys/src/main/resources/application-dev.yml
+++ b/sys/src/main/resources/application-dev.yml
@@ -65,7 +65,7 @@
# redis鏁版嵁搴撶储寮�(榛樿涓�0)锛屾垜浠娇鐢ㄧ储寮曚负3鐨勬暟鎹簱锛岄伩鍏嶅拰鍏朵粬鏁版嵁搴撳啿绐�
database: 0
# redis鏈嶅姟鍣ㄥ湴鍧�锛堥粯璁や负localhost锛�
- host: 192.168.110.209
+ host: 192.168.110.209
# redis绔彛锛堥粯璁や负6379锛�
port: 6380
# redis璁块棶瀵嗙爜锛堥粯璁や负绌猴級
diff --git a/user-server/pom.xml b/user-server/pom.xml
index a1f86af..1c70204 100644
--- a/user-server/pom.xml
+++ b/user-server/pom.xml
@@ -26,7 +26,6 @@
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
-
<!--okhttp-->
<dependency>
<groupId>io.github.openfeign</groupId>
diff --git a/user-server/src/main/java/com/yuanchu/limslaboratory/clients/UserLoginUtils.java b/user-server/src/main/java/com/yuanchu/limslaboratory/clients/UserLoginUtils.java
index 7b1ead7..6c6c169 100644
--- a/user-server/src/main/java/com/yuanchu/limslaboratory/clients/UserLoginUtils.java
+++ b/user-server/src/main/java/com/yuanchu/limslaboratory/clients/UserLoginUtils.java
@@ -1,6 +1,12 @@
package com.yuanchu.limslaboratory.clients;
+import com.yuanchu.limslaboratory.controllerServerApi.LaboratoryServerApi;
+import com.yuanchu.limslaboratory.mapper.RoleManageMapper;
+import com.yuanchu.limslaboratory.mapper.UserMapper;
+import com.yuanchu.limslaboratory.pojo.Menu;
+import com.yuanchu.limslaboratory.pojo.RoleMenu;
import com.yuanchu.limslaboratory.pojo.User;
+import com.yuanchu.limslaboratory.pojo.dto.RoleAndMenuDto;
import com.yuanchu.limslaboratory.shiro.utils.JwtUtils;
import com.yuanchu.limslaboratory.utils.MyUtil;
import com.yuanchu.limslaboratory.utils.RedisUtil;
@@ -10,7 +16,10 @@
import javax.annotation.Resource;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
@Component
public class UserLoginUtils {
@@ -23,6 +32,8 @@
@Value("${login.secret}")
private String LoginSecret;
+
+
public Result<Map<String, Object>> LoginExamine(User user){
Map<String, Object> mapData = new HashMap<>();
@@ -41,8 +52,11 @@
mapRedis.put("name", user.getName());
mapRedis.put("enterpriseId", user.getEnterpriseId());
mapRedis.put("data", data);
+ mapRedis.put("roleId",user.getRoleId());
//瀛樺叆redis,浜屼釜灏忔椂鍚庡垹闄�
RedisUtil.set(token, mapRedis, 120);
+ //
+ RedisUtil.set("access_token",token,120);
// 灏嗙鍙戠殑 JWT token 杩斿洖缁欏墠绔�
HashMap<String, Object> map = new HashMap<>();
String refresh = JwtUtils.sign(user.getAccount());
@@ -58,17 +72,4 @@
}
}
-
-// public Result<Map<String, Object>> LoginExamine(User user){
-// String token = JwtUtils.sign(user.getAccount());
-// //瀛樺叆redis,浜屼釜灏忔椂鍚庡垹闄�
-// RedisUtil.set(token, user, 2);
-// // 灏嗙鍙戠殑 JWT token 杩斿洖缁欏墠绔�
-// HashMap<String, Object> map = new HashMap<>();
-// String refresh = JwtUtils.sign(user.getAccount());
-// map.put("token", token);
-// map.put("refresh", refresh);
-// RedisUtil.set(user.getAccount(), map, 120);
-// return Result.success(map);
-// }
}
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/RoleMangerController.java b/user-server/src/main/java/com/yuanchu/limslaboratory/controller/RoleMangerController.java
similarity index 66%
rename from laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/RoleMangerController.java
rename to user-server/src/main/java/com/yuanchu/limslaboratory/controller/RoleMangerController.java
index 69ea1fd..e0b0cc5 100644
--- a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/RoleMangerController.java
+++ b/user-server/src/main/java/com/yuanchu/limslaboratory/controller/RoleMangerController.java
@@ -1,7 +1,9 @@
package com.yuanchu.limslaboratory.controller;
+import com.yuanchu.limslaboratory.annotation.RequestInfo;
import com.yuanchu.limslaboratory.pojo.dto.GetAllRoleAndMenuByConditionPageDto;
import com.yuanchu.limslaboratory.pojo.dto.RoleInfoDto;
+import com.yuanchu.limslaboratory.pojo.dto.UpdateRoleMenuDto;
import com.yuanchu.limslaboratory.service.RoleManagerService;
import com.yuanchu.limslaboratory.vo.Result;
import io.swagger.annotations.Api;
@@ -24,6 +26,7 @@
@ApiOperation("鑾峰彇鑿滃崟鍔熻兘鏍�")
@GetMapping("/getMenusTree")
+ @RequestInfo(type = "add",name="ccc")
public Result<?>getMenusTree() {
return Result.success(roleManagerService.getMenusTree());
};
@@ -45,4 +48,22 @@
public Result<?> getAllRoleAndMenuInfo(GetAllRoleAndMenuByConditionPageDto dto){
return Result.success(roleManagerService.getAllRoleAndMenuInfo(dto));
}
+
+ @ApiOperation("閫昏緫鍒犻櫎瑙掕壊")
+ @GetMapping("/deleteRole")
+ public Result<?> deleteRole(Long id){
+ return Result.success(roleManagerService.deleteRole(id));
+ }
+
+ @ApiOperation("淇敼鏉冮檺")
+ @PostMapping("/updateRoleMenu")
+ public Result<?> updateRoleMenu(@RequestBody UpdateRoleMenuDto dto){
+ return Result.success(roleManagerService.updateRoleMenu(dto));
+ }
+
+ @ApiOperation("/鏍规嵁瑙掕壊鑾峰彇Role")
+ @GetMapping("/getRoleAndMenuByRole")
+ public Result<?> getRoleAndMenuByRole(Long roleId){
+ return Result.success(roleManagerService.getRoleAndMenuByRole(roleId));
+ }
}
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/MenuMapper.java b/user-server/src/main/java/com/yuanchu/limslaboratory/mapper/MenuMapper.java
similarity index 100%
rename from laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/MenuMapper.java
rename to user-server/src/main/java/com/yuanchu/limslaboratory/mapper/MenuMapper.java
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/RoleManageMapper.java b/user-server/src/main/java/com/yuanchu/limslaboratory/mapper/RoleManageMapper.java
similarity index 79%
rename from laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/RoleManageMapper.java
rename to user-server/src/main/java/com/yuanchu/limslaboratory/mapper/RoleManageMapper.java
index e85957b..f0c2e12 100644
--- a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/RoleManageMapper.java
+++ b/user-server/src/main/java/com/yuanchu/limslaboratory/mapper/RoleManageMapper.java
@@ -1,12 +1,9 @@
package com.yuanchu.limslaboratory.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.yuanchu.limslaboratory.pojo.LimitPage;
-import com.yuanchu.limslaboratory.pojo.Role;
import com.yuanchu.limslaboratory.pojo.RoleInfo;
import com.yuanchu.limslaboratory.pojo.RoleMenu;
import com.yuanchu.limslaboratory.pojo.dto.GetAllRoleAndMenuByConditionPageDto;
-import com.yuanchu.limslaboratory.pojo.dto.GetPlanMeasureInstrumentDto;
import com.yuanchu.limslaboratory.pojo.dto.RoleAndMenuDto;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
@@ -29,5 +26,11 @@
List<RoleAndMenuDto>selectAllRoleAndMenu(@Param("dto") GetAllRoleAndMenuByConditionPageDto dto);
- List<Role>getRoleByName(@Param("roleName") String roleName);
+ List<RoleInfo>getRoleInfoByName(@Param("roleName") String roleName);
+
+ int updateRoleState(Long id);
+
+ int deleteRoleMenuByRoleId(Long id);
+
+ RoleAndMenuDto selectAllRoleAndMenuByRoleId(Long roleId);
}
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/Menu.java b/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/Menu.java
similarity index 100%
rename from laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/Menu.java
rename to user-server/src/main/java/com/yuanchu/limslaboratory/pojo/Menu.java
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/RoleInfo.java b/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/RoleInfo.java
similarity index 100%
rename from laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/RoleInfo.java
rename to user-server/src/main/java/com/yuanchu/limslaboratory/pojo/RoleInfo.java
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/RoleMenu.java b/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/RoleMenu.java
similarity index 94%
rename from laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/RoleMenu.java
rename to user-server/src/main/java/com/yuanchu/limslaboratory/pojo/RoleMenu.java
index 2bb7b23..a826b94 100644
--- a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/RoleMenu.java
+++ b/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/RoleMenu.java
@@ -26,6 +26,12 @@
private String menuName;
+ private String menuUrl;
+
+ private String redirect;
+
+ private String icon;
+
private Long menuId;
private Boolean selected;
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/GetAllRoleAndMenuByConditionPageDto.java b/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/GetAllRoleAndMenuByConditionPageDto.java
similarity index 99%
rename from laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/GetAllRoleAndMenuByConditionPageDto.java
rename to user-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/GetAllRoleAndMenuByConditionPageDto.java
index 51285e3..d311511 100644
--- a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/GetAllRoleAndMenuByConditionPageDto.java
+++ b/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/GetAllRoleAndMenuByConditionPageDto.java
@@ -13,6 +13,7 @@
@Data
@ApiModel(value = "GetAllRoleAndMenuByConditionPageDto瀵硅薄", description = "")
public class GetAllRoleAndMenuByConditionPageDto implements Serializable {
+
@ApiModelProperty(value = "褰撳墠椤�", example = "1", required = true)
private Long currentPage;
@ApiModelProperty(value = "姣忛〉澶氬皯鏉�", required = true)
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/RoleAndMenuDto.java b/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/RoleAndMenuDto.java
similarity index 96%
rename from laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/RoleAndMenuDto.java
rename to user-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/RoleAndMenuDto.java
index aa3d4d0..d66e780 100644
--- a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/RoleAndMenuDto.java
+++ b/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/RoleAndMenuDto.java
@@ -16,7 +16,7 @@
@Data
public class RoleAndMenuDto implements Serializable {
- private Long roleId;
+ private String roleId;
private String roleName;
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/RoleInfoDto.java b/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/RoleInfoDto.java
similarity index 100%
rename from laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/RoleInfoDto.java
rename to user-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/RoleInfoDto.java
diff --git a/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/UpdateRoleMenuDto.java b/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/UpdateRoleMenuDto.java
new file mode 100644
index 0000000..756cce2
--- /dev/null
+++ b/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/UpdateRoleMenuDto.java
@@ -0,0 +1,27 @@
+package com.yuanchu.limslaboratory.pojo.dto;
+
+import com.yuanchu.limslaboratory.pojo.RoleMenu;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/25
+ */
+@Data
+public class UpdateRoleMenuDto implements Serializable {
+
+ @ApiModelProperty(value = "瑙掕壊ID", required = true)
+ private Long roleId;
+ @ApiModelProperty(value = "瑙掕壊鍚�", required = true)
+ private String roleName;
+ //@ApiModelProperty(value = "淇敼鍓�", required = true)
+ //private List<RoleMenu> lastMenuSelect;
+ @ApiModelProperty(value = "褰撳墠閫夋嫨", required = true)
+ private List<RoleMenu> menuData;
+
+
+}
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/RoleManagerService.java b/user-server/src/main/java/com/yuanchu/limslaboratory/service/RoleManagerService.java
similarity index 73%
rename from laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/RoleManagerService.java
rename to user-server/src/main/java/com/yuanchu/limslaboratory/service/RoleManagerService.java
index 9fde5f7..c051e02 100644
--- a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/RoleManagerService.java
+++ b/user-server/src/main/java/com/yuanchu/limslaboratory/service/RoleManagerService.java
@@ -3,6 +3,7 @@
import com.yuanchu.limslaboratory.pojo.dto.GetAllRoleAndMenuByConditionPageDto;
import com.yuanchu.limslaboratory.pojo.dto.RoleAndMenuDto;
import com.yuanchu.limslaboratory.pojo.dto.RoleInfoDto;
+import com.yuanchu.limslaboratory.pojo.dto.UpdateRoleMenuDto;
import java.util.List;
import java.util.Map;
@@ -19,4 +20,10 @@
boolean assertRepeat(String roleName);
Map<String, Object> getAllRoleAndMenuInfo(GetAllRoleAndMenuByConditionPageDto dto);
+
+ boolean deleteRole(Long id);
+
+ boolean updateRoleMenu(UpdateRoleMenuDto dto);
+
+ RoleAndMenuDto getRoleAndMenuByRole(Long roleId);
}
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RoleManagerServiceImpl.java b/user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RoleManagerServiceImpl.java
similarity index 76%
rename from laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RoleManagerServiceImpl.java
rename to user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RoleManagerServiceImpl.java
index eedf808..735ee30 100644
--- a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RoleManagerServiceImpl.java
+++ b/user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RoleManagerServiceImpl.java
@@ -2,17 +2,18 @@
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.limslaboratory.mapper.MenuMapper;
import com.yuanchu.limslaboratory.mapper.RoleManageMapper;
-import com.yuanchu.limslaboratory.pojo.LimitPage;
import com.yuanchu.limslaboratory.pojo.Menu;
import com.yuanchu.limslaboratory.pojo.RoleInfo;
import com.yuanchu.limslaboratory.pojo.RoleMenu;
import com.yuanchu.limslaboratory.pojo.dto.GetAllRoleAndMenuByConditionPageDto;
import com.yuanchu.limslaboratory.pojo.dto.RoleAndMenuDto;
import com.yuanchu.limslaboratory.pojo.dto.RoleInfoDto;
+import com.yuanchu.limslaboratory.pojo.dto.UpdateRoleMenuDto;
import com.yuanchu.limslaboratory.service.RoleManagerService;
import com.yuanchu.limslaboratory.utils.JsonUtil;
import org.springframework.stereotype.Service;
@@ -87,7 +88,6 @@
List<RoleAndMenuDto> roleAndMenuDtos = roleManageMapper.selectAllRoleAndMenu(dto);
roleAndMenuDtos.forEach(r->{
List<RoleMenu>roleMenuList=r.getRoleMenuList();
- System.out.println(roleMenuList);
List<RoleMenu> collect = roleMenuList.stream()
.filter(t -> t.getParentId() == 0)
.peek((menu) -> menu.setChildren(this.getRoleMenuChildren(menu, roleMenuList)))
@@ -99,11 +99,43 @@
});
Map<String, Object>result=new HashMap<>(3);
result.put("list",roleAndMenuDtos);
- int size = roleManageMapper.getRoleByName(dto.getName()).size();
+ int size = roleManageMapper.getRoleInfoByName(dto.getName()).size();
result.put("total",size);
return result;
}
+ @Override
+ public boolean deleteRole(Long id) {
+ return roleManageMapper.updateRoleState(id)>0;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean updateRoleMenu(UpdateRoleMenuDto dto) {
+ //淇敼role琛ㄤ俊鎭�
+ UpdateWrapper<RoleInfo>updateWrapper=new UpdateWrapper<>();
+ updateWrapper.lambda()
+ .set(RoleInfo::getName,dto.getRoleName())
+ .set(RoleInfo::getUpdateTime,DateUtil.toLocalDateTime(DateUtil.date()))
+ .eq(RoleInfo::getId,dto.getRoleId());
+ int update = roleManageMapper.update(null, updateWrapper);
+ //鍒犻櫎role_menu淇℃伅
+ int deleteRoleMenuByRoleId = roleManageMapper.deleteRoleMenuByRoleId(dto.getRoleId());
+ //娣诲姞鏈�鏂伴�夋嫨銆�
+ dto.getMenuData().forEach(l->{
+ l.setRoleId(dto.getRoleId());
+ l.setCreateTime(DateUtil.toLocalDateTime(DateUtil.date()));
+ l.setUpdateTime(DateUtil.toLocalDateTime(DateUtil.date()));
+ });
+ int insertBatchRoleMenu = roleManageMapper.insertBatchRoleMenu(dto.getMenuData());
+ return update>0&&deleteRoleMenuByRoleId>0&&insertBatchRoleMenu>0;
+ }
+
+ @Override
+ public RoleAndMenuDto getRoleAndMenuByRole(Long roleId) {
+ return roleManageMapper.selectAllRoleAndMenuByRoleId(roleId);
+ }
+
private List<Menu> getEnumChildren(Menu root, List<Menu> all) {
return all.stream()
diff --git a/user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/UserServiceImpl.java b/user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/UserServiceImpl.java
index f18693f..72e2822 100644
--- a/user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/UserServiceImpl.java
+++ b/user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/UserServiceImpl.java
@@ -4,8 +4,11 @@
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.limslaboratory.mapper.RoleManageMapper;
+import com.yuanchu.limslaboratory.pojo.RoleMenu;
import com.yuanchu.limslaboratory.pojo.User;
import com.yuanchu.limslaboratory.mapper.UserMapper;
+import com.yuanchu.limslaboratory.pojo.dto.RoleAndMenuDto;
import com.yuanchu.limslaboratory.service.UserService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.limslaboratory.utils.JackSonUtil;
@@ -20,6 +23,8 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
/**
* <p>
@@ -34,6 +39,9 @@
@Resource
private UserMapper userMapper;
+
+ @Resource
+ private RoleManageMapper roleManageMapper;
@Override
public Map<String, Object> getUserInfo(String token) {
@@ -52,6 +60,11 @@
data.put("name",loginUser.get("name"));
data.put("id",loginUser.get("id"));
data.put("remind", remind);
+ RoleAndMenuDto role = getRoleInfo(Long.valueOf(String.valueOf(loginUser.get("roleId"))));
+ System.out.println("+++++++++++++++++++++++++++++++++++++++++++++");
+ System.out.println(role);
+ System.out.println("++++++++++++++++++++++++++++++++++++++++++++++");
+ data.put("role",role);
return data;
}
return null;
@@ -96,7 +109,7 @@
public User AccordingUsernameSelectAll(String account) {
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(User::getAccount, account);
- wrapper.select(User::getPassword, User::getId, User::getName, User::getAccount, User::getEnterpriseId);
+ wrapper.select(User::getPassword, User::getRoleId,User::getId, User::getName, User::getAccount, User::getEnterpriseId);
return userMapper.selectOne(wrapper);
}
@@ -132,4 +145,27 @@
MyUtil.PrintLog(name + status + "=============");
return userMapper.getNewPersonnelPage(name, page, status);
}
+
+
+ public RoleAndMenuDto getRoleInfo(Long roleId) {
+ RoleAndMenuDto roleAndMenuDto = roleManageMapper.selectAllRoleAndMenuByRoleId(roleId);
+ List<RoleMenu> collect = roleAndMenuDto.getRoleMenuList()
+ .stream()
+ .filter(t -> t.getParentId() == 0)
+ .peek((menu) -> menu.setChildren(this.getRoleMenuChildren(menu, roleAndMenuDto.getRoleMenuList())))
+ .collect(Collectors.toList());
+ roleAndMenuDto.setRoleMenuList(collect);
+ return roleAndMenuDto;
+ }
+
+
+ private List<RoleMenu> getRoleMenuChildren(RoleMenu root, List<RoleMenu> all) {
+ return all.stream()
+ .filter(t -> Objects.equals(t.getParentId(), root.getMenuId()))
+ .peek(g -> {
+ //鎵惧瓙鑿滃崟
+ g.setChildren(getRoleMenuChildren(g, all));
+ })
+ .collect(Collectors.toList());
+ }
}
diff --git a/laboratory-server/src/main/resources/mapper/MenuMapper.xml b/user-server/src/main/resources/mapper/MenuMapper.xml
similarity index 100%
rename from laboratory-server/src/main/resources/mapper/MenuMapper.xml
rename to user-server/src/main/resources/mapper/MenuMapper.xml
diff --git a/user-server/src/main/resources/mapper/RoleManangeMapper.xml b/user-server/src/main/resources/mapper/RoleManangeMapper.xml
new file mode 100644
index 0000000..f2d1cc1
--- /dev/null
+++ b/user-server/src/main/resources/mapper/RoleManangeMapper.xml
@@ -0,0 +1,127 @@
+<?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.yuanchu.limslaboratory.mapper.RoleManageMapper">
+ <insert id="insertBatchRoleMenu" useGeneratedKeys="true" keyProperty="id">
+ insert
+ role_menu (id,`role_id`,`menu_id`,`selected`,`added`,`updated`,`deleted`,`create_time`)
+ values
+ <foreach collection="roleMenuAddList" separator="," item="r">
+ (#{r.id},#{r.roleId},#{r.menuId},#{r.selected},#{r.added},#{r.updated},#{r.deleted},#{r.createTime})
+ </foreach>
+ </insert>
+ <insert id="insertRole">
+ insert
+ role(id,name,create_time) value (
+ #{id},
+ #{name},
+ #{createTime}
+ )
+ </insert>
+ <update id="updateRoleState">
+ UPDATE role SET state = 0 WHERE (id = #{id})
+ </update>
+ <delete id="deleteRoleMenuByRoleId">
+ delete from role_menu where role_id =#{id}
+ </delete>
+ <select id="getAssertName" resultType="com.yuanchu.limslaboratory.pojo.RoleInfo">
+ select id
+ from role
+ where name = #{roleName}
+ and state=1
+ </select>
+ <select id="selectAllRoleAndMenu" resultMap="roleAndMenu">
+ SELECT r.id roleId,
+ r.`name` roleName,
+ menu_id menuId,
+ parent_id parentId,
+ m.`name` menuName,
+ rm.selected,
+ rm.added,
+ rm.updated,
+ rm.deleted,
+ r.create_time createTime,
+ r.update_time updateTime
+ FROM role_menu rm,
+ (select id, name, create_Time, update_Time,state
+ from role
+ where 1=1
+ <if test="dto.name!=null and dto.name!=''">
+ and name like CONCAT('%',#{dto.name},'%')
+ </if>
+ limit #{dto.currentPage}, #{dto.pageSize}) r,
+ menu m
+ WHERE rm.role_id = r.id
+ AND rm.menu_id = m.id
+ AND r.state = 1
+ AND rm.state = 1
+ AND m.state = 1
+ </select>
+ <select id="getRoleInfoByName" resultType="com.yuanchu.limslaboratory.pojo.RoleInfo">
+ select id
+ from role
+ where 1=1
+ and state=1
+ <if test="roleName!=null and roleName!=''">
+ and name like CONCAT('%',#{roleName},'%')
+ </if>
+ </select>
+ <select id="selectAllRoleAndMenuByRoleId" resultMap="roleAndMenuById">
+ SELECT
+ r.`name` roleName,
+ menu_id menuId,
+ parent_id parentId,
+ m.`name` menuName,
+ m.url menuUrl,
+-- m.redirect redirect,
+-- m.icon icon,
+ rm.selected,
+ rm.added,
+ rm.updated,
+ rm.deleted
+ FROM
+ role_menu rm,
+ role r,
+ menu m
+ WHERE
+ rm.role_id = r.id
+ AND rm.menu_id = m.id
+ AND r.state = 1
+ AND rm.state = 1
+ AND m.state = 1
+ and r.id=#{roleId}
+ </select>
+
+ <resultMap id="roleAndMenuById" type="com.yuanchu.limslaboratory.pojo.dto.RoleAndMenuDto">
+ <result property="roleName" column="roleName"/>
+ <result property="createTime" column="createTime"/>
+ <result property="updateTime" column="updateTime"/>
+ <collection property="roleMenuList" ofType="roleMenu">
+ <result property="menuId" column="menuId"/>
+ <result property="added" column="added"/>
+ <result property="deleted" column="deleted"/>
+ <result property="updated" column="updated"/>
+ <result property="selected" column="selected"/>
+ <result property="menuName" column="menuName"/>
+ <result property="menuUrl" column="menuUrl"/>
+ <result property="redirect" column="redirect"/>
+ <result property="icon" column="icon"/>
+ <result property="parentId" column="parentId"/>
+ </collection>
+ </resultMap>
+
+ <resultMap id="roleAndMenu" type="com.yuanchu.limslaboratory.pojo.dto.RoleAndMenuDto">
+ <result property="roleId" column="roleId"/>
+ <result property="roleName" column="roleName"/>
+ <result property="createTime" column="createTime"/>
+ <result property="updateTime" column="updateTime"/>
+ <collection property="roleMenuList" ofType="roleMenu">
+ <result property="menuId" column="menuId"/>
+ <result property="added" column="added"/>
+ <result property="deleted" column="deleted"/>
+ <result property="updated" column="updated"/>
+ <result property="selected" column="selected"/>
+ <result property="menuName" column="menuName"/>
+ <result property="parentId" column="parentId"/>
+ </collection>
+ </resultMap>
+</mapper>
\ No newline at end of file
--
Gitblit v1.9.3