From 9e39021f891484b6accb2abc77d34c87bd65681a Mon Sep 17 00:00:00 2001 From: Fixiaobai <fixiaobai@163.com> Date: 星期六, 26 八月 2023 13:27:23 +0800 Subject: [PATCH] 角色管理 --- 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 | 39 ++ framework/src/main/java/com/yuanchu/limslaboratory/enums/MenuEnum.java | 60 ++++ user-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/UpdatePersonnelVo.java | 2 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/pojo/User.java | 2 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 29 files changed, 662 insertions(+), 102 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/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/User.java b/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/User.java index f434599..26cc155 100644 --- a/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/User.java +++ b/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/User.java @@ -73,7 +73,7 @@ private Integer version; @ApiModelProperty(value = "鍏宠仈 瑙掕壊id") - private Integer roleId; + private Long roleId; @ApiModelProperty(value = "鍏宠仈 浼佷笟id") private Integer enterpriseId; 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/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/UpdatePersonnelVo.java b/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/UpdatePersonnelVo.java index 954d9f4..dd75f80 100644 --- a/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/UpdatePersonnelVo.java +++ b/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/UpdatePersonnelVo.java @@ -20,7 +20,7 @@ private String account; @ApiModelProperty(value = "0锛氭棤鏉冮檺锛�1锛氭湁鏉冮檺", example = "1", required = true) - private Integer role_id; + private Long role_id; @ApiModelProperty(value = "骞撮緞", example = "23") private Integer age; 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..30bb77b 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,7 @@ List<RoleAndMenuDto> roleAndMenuDtos = roleManageMapper.selectAllRoleAndMenu(dto); roleAndMenuDtos.forEach(r->{ List<RoleMenu>roleMenuList=r.getRoleMenuList(); - System.out.println(roleMenuList); + //System.out.println(roleMenuList); List<RoleMenu> collect = roleMenuList.stream() .filter(t -> t.getParentId() == 0) .peek((menu) -> menu.setChildren(this.getRoleMenuChildren(menu, roleMenuList))) @@ -99,11 +100,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