From 6984757bfc75b4a25014de1eb71c2aa75ebdb86f Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期六, 26 八月 2023 15:59:55 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- standard-server/src/main/resources/mapper/OrganizationalMapper.xml | 18 + user-server/src/main/java/com/yuanchu/limslaboratory/mapper/MenuMapper.java | 0 user-server/src/main/java/com/yuanchu/limslaboratory/mapper/UserMapper.java | 7 user-server/src/main/java/com/yuanchu/limslaboratory/pojo/Menu.java | 0 standard-server/src/main/resources/mapper/MaterialMapper.xml | 11 user-server/src/main/java/com/yuanchu/limslaboratory/clients/UserLoginUtils.java | 27 user-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/NewPersonnelVo.java | 5 framework/src/main/java/com/yuanchu/limslaboratory/utils/HttpUtils.java | 140 ++++++++ standard-server/src/main/java/com/yuanchu/limslaboratory/service/OrganizationalService.java | 6 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/UserService.java | 7 user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RoleManagerServiceImpl.java | 38 ++ framework/src/main/java/com/yuanchu/limslaboratory/enums/MenuEnum.java | 60 +++ standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/OrganizationalServiceImpl.java | 22 standard-server/src/main/java/com/yuanchu/limslaboratory/controller/OrganizationalController.java | 22 standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/OrganizationalMapper.java | 4 user-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/UpdatePersonnelVo.java | 4 framework/pom.xml | 14 standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Organizational.java | 3 framework/src/main/java/com/yuanchu/limslaboratory/handler/GlobalExceptionHandler.java | 7 user-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/UpdateRoleMenuDto.java | 27 + standard-server/src/main/resources/mapper/ProductMapper.xml | 1 user-server/src/main/resources/mapper/MenuMapper.xml | 0 user-server/src/main/java/com/yuanchu/limslaboratory/pojo/User.java | 7 user-server/src/main/java/com/yuanchu/limslaboratory/mapper/RoleManageMapper.java | 11 user-server/src/main/java/com/yuanchu/limslaboratory/controller/RoleController.java | 43 ++ sys/src/main/resources/application-dev.yml | 2 framework/src/main/java/com/yuanchu/limslaboratory/annotation/RequestInfo.java | 19 + user-server/src/main/resources/mapper/UserMapper.xml | 33 +- user-server/src/main/java/com/yuanchu/limslaboratory/pojo/RoleInfo.java | 0 /dev/null | 39 -- 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 | 67 +++- user-server/src/main/java/com/yuanchu/limslaboratory/pojo/RoleMenu.java | 6 user-server/src/main/java/com/yuanchu/limslaboratory/controller/UserController.java | 14 user-server/pom.xml | 1 43 files changed, 817 insertions(+), 141 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/standard-server/src/main/java/com/yuanchu/limslaboratory/controller/OrganizationalController.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/controller/OrganizationalController.java index 2087a6a..db89721 100644 --- a/standard-server/src/main/java/com/yuanchu/limslaboratory/controller/OrganizationalController.java +++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/controller/OrganizationalController.java @@ -2,6 +2,7 @@ import com.yuanchu.limslaboratory.pojo.Organizational; import com.yuanchu.limslaboratory.service.OrganizationalService; +import com.yuanchu.limslaboratory.utils.MyUtil; import com.yuanchu.limslaboratory.vo.Result; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -34,8 +35,18 @@ @ApiOperation(value = "渚ц竟鏍忔爲灞曞紑") @GetMapping("/list") public Result<?> getFourLevelInformation() { - Map<String, Object> organizationalTree = organizationalService.OrganizationalTree(); + List<Map<String, Object>> organizationalTree = organizationalService.OrganizationalTree(); return Result.success(organizationalTree); + } + + @ApiOperation(value = "鏍规嵁鐐瑰嚮Id鏌ヨ閮ㄩ棬") + @ApiImplicitParams(value = { + @ApiImplicitParam(value = "閮ㄩ棬ID", name = "departmentId", dataTypeClass = Integer.class) + }) + @GetMapping("/table") + public Result<?> getDepartmentListTable(Integer departmentId) { + List<Map<String, Object>> departmentListTable = organizationalService.getDepartmentListTable(departmentId); + return Result.success(departmentListTable); } @ApiOperation(value = "娣诲姞閮ㄩ棬") @@ -60,11 +71,8 @@ @ApiOperation(value = "鍒犻櫎閮ㄩ棬") @DeleteMapping("/delete") - public Result<?> deleteDepartment(Integer id) { - Integer deleteDepartment = organizationalService.deleteDepartment(id); - if (deleteDepartment >= 1){ - return Result.success("鍒犻櫎鎴愬姛锛�"); - } - return Result.fail("鍒犻櫎澶辫触锛�"); + public Result<?> deleteDepartment(String ids) { + organizationalService.deleteDepartment(ids); + return Result.success("鍒犻櫎鎴愬姛锛�"); } } diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/OrganizationalMapper.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/OrganizationalMapper.java index 3facef4..5198b03 100644 --- a/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/OrganizationalMapper.java +++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/OrganizationalMapper.java @@ -17,4 +17,8 @@ public interface OrganizationalMapper extends BaseMapper<Organizational> { List<Map<String, Object>> OrganizationalTree(Integer father_id); + + List<Map<String, Object>> getDepartmentListTable(Integer departmentId); + + void deleteDepartment(String ids); } diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Organizational.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Organizational.java index f55104c..0c3425b 100644 --- a/standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Organizational.java +++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Organizational.java @@ -16,6 +16,7 @@ import lombok.experimental.Accessors; import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; /** * <p> @@ -41,7 +42,7 @@ @ApiModelProperty(value = "閮ㄩ棬鍚嶇О", example = "寮�鍙戦儴", required = true) private String department; - @NotBlank(message = "璇烽�夋嫨涓婄骇閮ㄩ棬锛�") + @NotNull(message = "璇烽�夋嫨涓婄骇閮ㄩ棬锛�") @ApiModelProperty(value = "涓婄骇閮ㄩ棬ID", example = "1", required = true) private Integer fatherId; diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/service/OrganizationalService.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/service/OrganizationalService.java index bfedae9..8854972 100644 --- a/standard-server/src/main/java/com/yuanchu/limslaboratory/service/OrganizationalService.java +++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/service/OrganizationalService.java @@ -16,11 +16,13 @@ */ public interface OrganizationalService extends IService<Organizational> { - Map<String, Object> OrganizationalTree(); + List<Map<String, Object>> OrganizationalTree(); Integer addDepartment(Organizational organizational); Integer updateDepartment(Integer id, Organizational organizational); - Integer deleteDepartment(Integer id); + void deleteDepartment(String ids); + + List<Map<String, Object>> getDepartmentListTable(Integer departmentId); } diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/OrganizationalServiceImpl.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/OrganizationalServiceImpl.java index 77c0d32..56ca1fa 100644 --- a/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/OrganizationalServiceImpl.java +++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/OrganizationalServiceImpl.java @@ -6,10 +6,12 @@ import com.yuanchu.limslaboratory.service.EnterpriseService; import com.yuanchu.limslaboratory.service.OrganizationalService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yuanchu.limslaboratory.utils.MyUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -32,14 +34,16 @@ private EnterpriseService enterpriseService; @Override - public Map<String, Object> OrganizationalTree() { + public List<Map<String, Object>> OrganizationalTree() { String firstEnterpriseName = enterpriseService.getFirstEnterpriseName(); List<Map<String, Object>> mapList = organizationalMapper.OrganizationalTree(0); Map<String, Object> map = new HashMap<>(); + List<Map<String, Object>> mapData = new ArrayList<>(); + map.put("children", mapList); map.put("id", 0); map.put("department", firstEnterpriseName); - map.put("children", mapList); - return map; + mapData.add(map); + return mapData; } @Override @@ -55,10 +59,12 @@ } @Override - public Integer deleteDepartment(Integer id) { - LambdaUpdateWrapper<Organizational> updateWrapper = new LambdaUpdateWrapper<>(); - updateWrapper.eq(Organizational::getId, id); - updateWrapper.set(Organizational::getState, 0); - return organizationalMapper.update(new Organizational(), updateWrapper); + public void deleteDepartment(String ids) { + organizationalMapper.deleteDepartment(ids); + } + + @Override + public List<Map<String, Object>> getDepartmentListTable(Integer departmentId) { + return organizationalMapper.getDepartmentListTable(departmentId); } } diff --git a/standard-server/src/main/resources/mapper/MaterialMapper.xml b/standard-server/src/main/resources/mapper/MaterialMapper.xml index e879a4e..1d1cfe7 100644 --- a/standard-server/src/main/resources/mapper/MaterialMapper.xml +++ b/standard-server/src/main/resources/mapper/MaterialMapper.xml @@ -54,13 +54,14 @@ <select id="FourTree" resultMap="OneLevelTreeMap"> SELECT m.`type`, m.`id` materialId, m.`name` materialName, s.id standardId, s.name standardName, - f.id specificationsId, f.name specificationsName + f.id specificationsId, f.name specificationsName FROM material m - LEFT JOIN (SELECT s.`id`, s.`name`, s.`material_id` FROM standard s WHERE s.`state` = 1) s - ON s.material_id = m.`id` - LEFT JOIN (SELECT f.`id`, f.`name`, f.`standard_id` FROM specifications f WHERE f.`state` = 1) f - ON f.standard_id = s.id + LEFT JOIN (SELECT s.`id`, s.`name`, s.`material_id` FROM standard s WHERE s.`state` = 1) s + ON s.material_id = m.`id` + LEFT JOIN (SELECT f.`id`, f.`name`, f.`standard_id`, f.`create_time` FROM specifications f WHERE f.`state` = 1) f + ON f.standard_id = s.id WHERE m.`state` = 1 + ORDER BY f.create_time DESC </select> </mapper> diff --git a/standard-server/src/main/resources/mapper/OrganizationalMapper.xml b/standard-server/src/main/resources/mapper/OrganizationalMapper.xml index 5d2e231..5fee3e9 100644 --- a/standard-server/src/main/resources/mapper/OrganizationalMapper.xml +++ b/standard-server/src/main/resources/mapper/OrganizationalMapper.xml @@ -9,6 +9,22 @@ </resultMap> <select id="OrganizationalTree" resultMap="OrganizationalMap"> - SELECT o.id, o.`department` FROM organizational o where o.`father_id` = #{father_id} + SELECT o.id, o.`department` + FROM organizational o + where o.`father_id` = #{father_id} + and o.state = 1 + </select> + + <select id="getDepartmentListTable" resultType="map"> + SELECT o.`id`, o.`department` + FROM organizational o + WHERE o.`father_id` = #{departmentId} + AND o.`state` = 1 + </select> + + <select id="deleteDepartment"> + update lims_laboratory.organizational + set state=0 + where id in (${ids}) </select> </mapper> diff --git a/standard-server/src/main/resources/mapper/ProductMapper.xml b/standard-server/src/main/resources/mapper/ProductMapper.xml index 7c63626..69f48ee 100644 --- a/standard-server/src/main/resources/mapper/ProductMapper.xml +++ b/standard-server/src/main/resources/mapper/ProductMapper.xml @@ -37,6 +37,7 @@ from lims_laboratory.product where state = 1 and specifications_id = #{specificationsId} + ORDER BY product.`create_time` DESC and version = #{version} </select> 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/user-server/src/main/java/com/yuanchu/limslaboratory/controller/RoleController.java b/user-server/src/main/java/com/yuanchu/limslaboratory/controller/RoleController.java new file mode 100644 index 0000000..5f202d2 --- /dev/null +++ b/user-server/src/main/java/com/yuanchu/limslaboratory/controller/RoleController.java @@ -0,0 +1,43 @@ +package com.yuanchu.limslaboratory.controller; + + +import com.yuanchu.limslaboratory.service.RoleService; +import com.yuanchu.limslaboratory.vo.Result; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestHeader; +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; + +import java.util.Map; + +/** + * <p> + * 鍓嶇鎺у埗鍣� + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2023-07-07 + */ +@Api(tags = "鐢ㄦ埛妯″潡") +@RestController +@RequestMapping("/role") +public class RoleController { + + @Autowired + private RoleService roleService; + + @ApiOperation("鏂板鐢ㄦ埛-->鑾峰彇鐢ㄦ埛鏉冮檺鍒楄〃") + @GetMapping("/list") + public Result<?> getUserRoleList(){ + //鏍规嵁token鑾峰彇鐢ㄦ埛淇℃伅 +// Map<String,Object> data = roleService.getUserRoleList(); +// if (data != null){ +// return Result.success(data); +// } + return Result.fail(202,"鐢ㄦ埛鐧诲綍淇℃伅鏃犳晥锛岃閲嶆柊鐧诲綍"); + } +} 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/user-server/src/main/java/com/yuanchu/limslaboratory/controller/UserController.java b/user-server/src/main/java/com/yuanchu/limslaboratory/controller/UserController.java index 9efad92..a01ef4c 100644 --- a/user-server/src/main/java/com/yuanchu/limslaboratory/controller/UserController.java +++ b/user-server/src/main/java/com/yuanchu/limslaboratory/controller/UserController.java @@ -4,18 +4,15 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yuanchu.limslaboratory.clients.UserLoginUtils; -import com.yuanchu.limslaboratory.pojo.Enterprise; import com.yuanchu.limslaboratory.pojo.User; import com.yuanchu.limslaboratory.service.UserService; import com.yuanchu.limslaboratory.shiro.realm.ShiroRealm; import com.yuanchu.limslaboratory.utils.JackSonUtil; -import com.yuanchu.limslaboratory.utils.MyUtil; import com.yuanchu.limslaboratory.utils.RedisUtil; import com.yuanchu.limslaboratory.utils.SpringUtil; -import com.yuanchu.limslaboratory.vo.NewPersonnelVo; -import com.yuanchu.limslaboratory.vo.PagePersonnelVo; +import com.yuanchu.limslaboratory.pojo.vo.NewPersonnelVo; import com.yuanchu.limslaboratory.vo.Result; -import com.yuanchu.limslaboratory.vo.UpdatePersonnelVo; +import com.yuanchu.limslaboratory.pojo.vo.UpdatePersonnelVo; import io.swagger.annotations.*; import org.apache.shiro.SecurityUtils; import org.apache.shiro.authc.IncorrectCredentialsException; @@ -135,10 +132,11 @@ @ApiImplicitParams(value = { @ApiImplicitParam(name = "pageNo", value = "璧峰椤�", dataTypeClass = Integer.class, required = true), @ApiImplicitParam(name = "pageSize", value = "姣忎竴椤垫暟閲�", dataTypeClass = Integer.class, required = true), - @ApiImplicitParam(name = "name", value = "浜哄憳鍚嶇О", dataTypeClass = String.class) + @ApiImplicitParam(name = "name", value = "浜哄憳鍚嶇О", dataTypeClass = String.class), + @ApiImplicitParam(name = "status", value = "鍦ㄨ亴鐘舵��", dataTypeClass = Integer.class) }) - public Result<Map<String, Object>> getNewPersonnelPage(Integer pageNo, Integer pageSize, String name) { - IPage<PagePersonnelVo> PageList = userService.getNewPersonnelPage(name, new Page<Objects>(pageNo, pageSize)); + public Result<Map<String, Object>> getNewPersonnelPage(Integer pageNo, Integer pageSize, String name, Integer status) { + IPage<Map<String, Object>> PageList = userService.getNewPersonnelPage(name, new Page<Objects>(pageNo, pageSize), status); Map<String, Object> map = new HashMap<>(); map.put("row", PageList.getRecords()); map.put("total", PageList.getTotal()); 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/user-server/src/main/java/com/yuanchu/limslaboratory/mapper/UserMapper.java b/user-server/src/main/java/com/yuanchu/limslaboratory/mapper/UserMapper.java index add3f16..27aa78b 100644 --- a/user-server/src/main/java/com/yuanchu/limslaboratory/mapper/UserMapper.java +++ b/user-server/src/main/java/com/yuanchu/limslaboratory/mapper/UserMapper.java @@ -4,14 +4,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yuanchu.limslaboratory.pojo.User; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.yuanchu.limslaboratory.vo.PagePersonnelVo; -import org.apache.ibatis.annotations.Mapper; -import org.springframework.stereotype.Repository; -import javax.annotation.Resource; import java.util.List; import java.util.Map; -import java.util.Objects; /** * <p> @@ -24,7 +19,7 @@ public interface UserMapper extends BaseMapper<User> { Map<String, String> selectUserByUserId(int userId); - IPage<PagePersonnelVo> getNewPersonnelPage(String name, Page page); + IPage<Map<String, Object>> getNewPersonnelPage(String name, Page page, Integer status); List<Map<String,Object>> selectUser(); 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 c6e8d74..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 @@ -78,6 +78,13 @@ @ApiModelProperty(value = "鍏宠仈 浼佷笟id") private Integer enterpriseId; + @ApiModelProperty(value = "缁勭粐鏋舵瀯Id", example = "2") + private Integer organizationId; + + @TableLogic(value = "1", delval = "0") + @ApiModelProperty(value = "閫昏緫鍒犻櫎 姝e父>=1,鍒犻櫎<=0") + private Integer state; + public User(String account, String name, String phone, String email, String info) { this.account = account; this.name = name; 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/vo/NewPersonnelVo.java b/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/NewPersonnelVo.java similarity index 87% rename from user-server/src/main/java/com/yuanchu/limslaboratory/vo/NewPersonnelVo.java rename to user-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/NewPersonnelVo.java index 4628708..e7b9667 100644 --- a/user-server/src/main/java/com/yuanchu/limslaboratory/vo/NewPersonnelVo.java +++ b/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/NewPersonnelVo.java @@ -1,4 +1,4 @@ -package com.yuanchu.limslaboratory.vo; +package com.yuanchu.limslaboratory.pojo.vo; import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.annotations.ApiModel; @@ -31,4 +31,7 @@ @ApiModelProperty(value = "閭", example = "12345678@qq.com") private String email; + + @ApiModelProperty(value = "缁勭粐鏋舵瀯Id", example = "2") + private Integer organizationId; } diff --git a/user-server/src/main/java/com/yuanchu/limslaboratory/vo/UpdatePersonnelVo.java b/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/UpdatePersonnelVo.java similarity index 96% rename from user-server/src/main/java/com/yuanchu/limslaboratory/vo/UpdatePersonnelVo.java rename to user-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/UpdatePersonnelVo.java index b8a2758..dd75f80 100644 --- a/user-server/src/main/java/com/yuanchu/limslaboratory/vo/UpdatePersonnelVo.java +++ b/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/UpdatePersonnelVo.java @@ -1,4 +1,4 @@ -package com.yuanchu.limslaboratory.vo; +package com.yuanchu.limslaboratory.pojo.vo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -36,6 +36,4 @@ @ApiModelProperty(value = "璐﹀彿瀵嗙爜", example = "654321") private String password; - - } 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/user-server/src/main/java/com/yuanchu/limslaboratory/service/UserService.java b/user-server/src/main/java/com/yuanchu/limslaboratory/service/UserService.java index 29107b5..3b7a54e 100644 --- a/user-server/src/main/java/com/yuanchu/limslaboratory/service/UserService.java +++ b/user-server/src/main/java/com/yuanchu/limslaboratory/service/UserService.java @@ -4,9 +4,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yuanchu.limslaboratory.pojo.User; import com.baomidou.mybatisplus.extension.service.IService; -import com.yuanchu.limslaboratory.vo.NewPersonnelVo; -import com.yuanchu.limslaboratory.vo.PagePersonnelVo; -import com.yuanchu.limslaboratory.vo.UpdatePersonnelVo; +import com.yuanchu.limslaboratory.pojo.vo.NewPersonnelVo; +import com.yuanchu.limslaboratory.pojo.vo.UpdatePersonnelVo; import java.util.List; import java.util.Map; @@ -50,7 +49,7 @@ * @param page * @return */ - IPage<PagePersonnelVo> getNewPersonnelPage(String name, Page page); + IPage<Map<String, Object>> getNewPersonnelPage(String name, Page page, Integer status); /** * 鐧诲綍鑾峰彇鐢ㄦ埛鍩烘湰淇℃伅涓庣郴缁熻秴鏃舵椂闂存彁閱� 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 b3013e4..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,14 +4,18 @@ 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; +import com.yuanchu.limslaboratory.utils.MyUtil; import com.yuanchu.limslaboratory.utils.RedisUtil; -import com.yuanchu.limslaboratory.vo.NewPersonnelVo; -import com.yuanchu.limslaboratory.vo.PagePersonnelVo; -import com.yuanchu.limslaboratory.vo.UpdatePersonnelVo; +import com.yuanchu.limslaboratory.pojo.vo.NewPersonnelVo; +import com.yuanchu.limslaboratory.pojo.vo.UpdatePersonnelVo; import org.springframework.stereotype.Service; import org.springframework.util.ObjectUtils; @@ -19,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> @@ -33,6 +39,9 @@ @Resource private UserMapper userMapper; + + @Resource + private RoleManageMapper roleManageMapper; @Override public Map<String, Object> getUserInfo(String token) { @@ -51,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; @@ -95,22 +109,19 @@ 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); } @Override public Integer addNewPersonnel(NewPersonnelVo newPersonnelVo, String enterpriseId) { - User user = new User() - .setName(newPersonnelVo.getName()) - .setAccount(newPersonnelVo.getAccount()) - .setAge(String.valueOf(newPersonnelVo.getAge())) - .setPhone(newPersonnelVo.getPhone()) - .setEmail(newPersonnelVo.getEmail()) - .setRoleId(newPersonnelVo.getRole_id()) - .setPassword(newPersonnelVo.getPassword()) - .setEnterpriseId(Integer.valueOf(enterpriseId)); - return userMapper.insert(user); + try { + User unmarshal = JackSonUtil.unmarshal(JackSonUtil.marshal(newPersonnelVo), User.class); + unmarshal.setEnterpriseId(Integer.valueOf(enterpriseId)); + return userMapper.insert(unmarshal); + } catch (Exception e) { + throw new RuntimeException(e); + } } @Override @@ -130,7 +141,31 @@ } @Override - public IPage<PagePersonnelVo> getNewPersonnelPage(String name, Page page) { - return userMapper.getNewPersonnelPage(name, page); + public IPage<Map<String, Object>> getNewPersonnelPage(String name, Page page, Integer status) { + 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/user-server/src/main/java/com/yuanchu/limslaboratory/vo/PagePersonnelVo.java b/user-server/src/main/java/com/yuanchu/limslaboratory/vo/PagePersonnelVo.java deleted file mode 100644 index ec6866e..0000000 --- a/user-server/src/main/java/com/yuanchu/limslaboratory/vo/PagePersonnelVo.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.yuanchu.limslaboratory.vo; - -import com.fasterxml.jackson.annotation.JsonFormat; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.util.Date; - -@Data -@EqualsAndHashCode(callSuper = false) -@ApiModel(value="UpdatePersonnelVo瀵硅薄", description="鐢ㄤ簬瀵硅鑹茬鐞嗙殑鏇存柊") -public class PagePersonnelVo { - - @ApiModelProperty(value = "涓婚敭ID", example = "1", required = true) - private String id; - - @ApiModelProperty(value = "濮撳悕", example = "灏忛粦", required = true) - private String username; - - @ApiModelProperty(value = "瑙掕壊鏉冮檺", example = "灏忛粦", required = true) - private String roleName; - - @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8") - private Date createTime; - - @ApiModelProperty(value = "骞撮緞", example = "23") - private String age; - - @ApiModelProperty(value = "鎵嬫満鍙�", example = "12345678981") - private String phone; - - @ApiModelProperty(value = "閭", example = "12345678@qq.com") - private String email; - - @ApiModelProperty(value = "鍦ㄨ亴鐘舵�� 姝e父>=1,绂昏亴<=0", example = "0") - private Integer jobState; -} 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 diff --git a/user-server/src/main/resources/mapper/UserMapper.xml b/user-server/src/main/resources/mapper/UserMapper.xml index 8220b5a..039f57c 100644 --- a/user-server/src/main/resources/mapper/UserMapper.xml +++ b/user-server/src/main/resources/mapper/UserMapper.xml @@ -17,24 +17,23 @@ AND u.id = #{userId} </select> - <resultMap id="PagePersonnelVoMap" type="com.yuanchu.limslaboratory.vo.PagePersonnelVo"> - <result property="id" column="id"/> - <result property="username" column="username"/> - <result property="roleName" column="roleName"/> - <result property="createTime" column="create_time"/> - <result property="age" column="age"/> - <result property="phone" column="phone"/> - <result property="email" column="email"/> - <result property="jobState" column="job_state"/> - </resultMap> - <select id="getNewPersonnelPage" resultMap="PagePersonnelVoMap"> - SELECT u.`id`, u.`name` username, r.`name` roleName, u.`create_time`, IFNULL(u.`age`, '---') age, - IFNULL(u.`phone`, '---') phone, IFNULL(u.`email`, '---') email, u.`job_state` - FROM `user` u, role r - WHERE u.`role_id` = r.`id` - <if test="name != null and name!=''"> - AND u.name = #{name} + + <select id="getNewPersonnelPage" resultType="map"> + SELECT u.`id`, u.`name` username, r.`name` roleName, DATE_FORMAT(u.`create_time`, '%Y-%m-%d') createTime, u.`age`, + u.`phone`, u.`email`, u.`job_state` jobState, o.`department`, u.`account`, o.`id` departmentId + FROM `user` u + LEFT JOIN role r + ON u.`role_id` = r.`id` AND r.`state` = 1 + LEFT JOIN organizational o + ON u.`organization_id` = o.`id` AND o.`state` = 1 + WHERE u.`state` = 1 + <if test="name != null and name != ''"> + AND u.`name` LIKE CONCAT('%',#{name}, '%') </if> + <if test="status != null"> + AND u.`job_state` in (#{status}) + </if> + ORDER BY u.`create_time` DESC </select> <select id="selectUser" resultType="Map"> -- Gitblit v1.9.3