From 084c0c3ba5600e0b406ea9c7c7c158a527933d4c Mon Sep 17 00:00:00 2001 From: Fixiaobai <fixiaobai@163.com> Date: 星期三, 30 八月 2023 09:12:58 +0800 Subject: [PATCH] 修改接口新增方式, --- inspection-server/src/main/resources/mapper/LinkDetectionMapper.xml | 3 user-server/src/main/java/com/yuanchu/limslaboratory/mapper/MenuMapper.java | 2 user-server/src/main/resources/mapper/MenuMapper.xml | 3 inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/LinkDetectionController.java | 2 user-server/src/main/java/com/yuanchu/limslaboratory/mapper/RoleManageMapper.java | 4 framework/src/main/java/com/yuanchu/limslaboratory/enums/MenuEnums.java | 91 +++++++++++++++ inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkBasicInformationServiceImpl.java | 15 ++ inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/LinkDetectionMapper.java | 1 user-server/src/main/resources/mapper/RoleManangeMapper.xml | 10 + user-server/src/main/java/com/yuanchu/limslaboratory/controller/RoleMangerController.java | 4 sys/src/main/java/com/yuanchu/limslaboratory/commandLineRunner/ResolutionRequestsCommandLineRunner.java | 127 +++++++++++--------- framework/src/main/java/com/yuanchu/limslaboratory/enums/InterfaceType.java | 46 +++++++ framework/src/main/java/com/yuanchu/limslaboratory/annotation/AuthHandler.java | 13 - 13 files changed, 251 insertions(+), 70 deletions(-) diff --git a/framework/src/main/java/com/yuanchu/limslaboratory/annotation/AuthHandler.java b/framework/src/main/java/com/yuanchu/limslaboratory/annotation/AuthHandler.java index b9af4b9..54e2dc6 100644 --- a/framework/src/main/java/com/yuanchu/limslaboratory/annotation/AuthHandler.java +++ b/framework/src/main/java/com/yuanchu/limslaboratory/annotation/AuthHandler.java @@ -1,5 +1,8 @@ package com.yuanchu.limslaboratory.annotation; +import com.yuanchu.limslaboratory.enums.InterfaceType; +import com.yuanchu.limslaboratory.enums.MenuEnums; + import java.lang.annotation.*; /** @@ -14,19 +17,13 @@ * 鎺ュ彛绫诲瀷 * @return */ - int type() default 0; - - /** - * 鎺ュ彛鍚� - * @return - */ - String name() default ""; + InterfaceType type() default InterfaceType.NUll; /** * 鑿滃崟id * @return */ - String menuId() default ""; + MenuEnums menuId() default MenuEnums.NUll; /** * 鏄惁闇�瑕佹坊鍔犳暟鎹簱 diff --git a/framework/src/main/java/com/yuanchu/limslaboratory/enums/InterfaceType.java b/framework/src/main/java/com/yuanchu/limslaboratory/enums/InterfaceType.java new file mode 100644 index 0000000..609128b --- /dev/null +++ b/framework/src/main/java/com/yuanchu/limslaboratory/enums/InterfaceType.java @@ -0,0 +1,46 @@ +package com.yuanchu.limslaboratory.enums; + +/** + * @Author 寮犲 + * @Date 2023/8/30 + */ +public enum InterfaceType { + + /** + * 鎺ュ彛绫诲瀷 + */ + SELECT("select",0), + ADD("add",1), + UPDATE("update",2), + DELETE("delete",3), + NUll(); + + + private String type; + + private Integer num; + + public String getType() { + return type; + } + + InterfaceType() { + } + + public void setType(String type) { + this.type = type; + } + + public Integer getNum() { + return this.num; + } + + public void setNum(Integer num) { + this.num = num; + } + + InterfaceType(String type, Integer num) { + this.type = type; + this.num = num; + } +} diff --git a/framework/src/main/java/com/yuanchu/limslaboratory/enums/MenuEnums.java b/framework/src/main/java/com/yuanchu/limslaboratory/enums/MenuEnums.java new file mode 100644 index 0000000..acc0a79 --- /dev/null +++ b/framework/src/main/java/com/yuanchu/limslaboratory/enums/MenuEnums.java @@ -0,0 +1,91 @@ +package com.yuanchu.limslaboratory.enums; + +/** + * @Author 寮犲 + * @Date 2023/8/29 + */ +public enum MenuEnums { + /** + * 绌烘牸鍖哄垎鍔熻兘妯″潡 + */ + standardLibrary("鏍囧噯搴�",1), + index("鏍囧噯搴�",38), + + inspectionManagement("鎶ユ绠$悊",2), + commissionInspection("濮旀墭妫�楠�",3), + reportForInspection("鍘熸潗鏂欐姤妫�",4), + + experiment("璇曢獙绠$悊",5), + inspectionApplication("鏂板妫�楠�",6), + planAssignments("妫�楠岃鍒�",7), + checkTheReport("妫�楠屾姤鍛�",8), + reportAuditing("鎶ュ憡瀹℃牳",9), + nonConformanceReview("涓嶅悎鏍煎搧鍙嶉",10), + nonConformingFeedback("涓嶅悎鏍煎搧璇勫",11), + passRateStatistics("鍚堟牸鐜囩粺璁�",12), + + laboratory("瀹為獙瀹ょ鐞�",13), + ledger("璁惧鍙拌处",14), + measure("璁¢噺绠$悊",15), + gather("璁惧閲囬泦",16), + personnel("浜哄憳绠$悊",17), + org("缁勭粐鏋舵瀯",36), + role("瑙掕壊绠$悊",37), + + laboratoryManage("瀹為獙瀹ょ鐞�",18), + CNAS("CNS绠$悊",19), + reviewAnnualPlan("瀹℃牳骞村害璁″垝",20), + nonConformanceManage("涓嶇鍚堥」绠$悊",21), + nonConformanceStatistics("涓嶇鍚堥」缁熻",22), + satisfactionSurveys("婊℃剰搴﹁皟鏌�",23), + + chart("鏅鸿兘鍥捐〃",24), + center("瀹為獙涓績",25), + spc("SPC鎺у埗鍥�",26), + shota("姝eお鍒嗗竷鍥�",27), + work("宸ヤ綔缁熻",28), + + message("娑堟伅浠e姙",29), + mymessage("鎴戠殑娑堟伅",30), + toDo("鎴戠殑浠e姙",31), + + personal("涓汉绠$悊",32), + myInformation("鎴戠殑淇℃伅",33), + + baseData("鍩虹鏁版嵁",34), + basicDataMessage("鍩虹鏁版嵁",35), + + home("涓婚〉",39), + + /** + * 绌� + */ + NUll(); + MenuEnums() { + } + + private String name; + + private Integer id; + + MenuEnums(String name, Integer id) { + this.name = name; + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } +} diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/LinkDetectionController.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/LinkDetectionController.java index b13ba59..be91e78 100644 --- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/LinkDetectionController.java +++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/LinkDetectionController.java @@ -49,6 +49,8 @@ @Resource ProductService productService; + + @ApiOperation("閾炬帴-->鑾峰彇鏍峰搧鍚嶇О") @GetMapping("/material") public Result<?> getMaterialIdAndName(@RequestHeader("link") String link) { diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/LinkDetectionMapper.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/LinkDetectionMapper.java index 7e6da26..e7a7486 100644 --- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/LinkDetectionMapper.java +++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/LinkDetectionMapper.java @@ -14,4 +14,5 @@ */ public interface LinkDetectionMapper extends MyBaseMapper<LinkDetection> { + int deleteByLinkbasic(Integer id); } diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkBasicInformationServiceImpl.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkBasicInformationServiceImpl.java index b3f3d61..6cde1b5 100644 --- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkBasicInformationServiceImpl.java +++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkBasicInformationServiceImpl.java @@ -1,7 +1,9 @@ package com.yuanchu.limslaboratory.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.yuanchu.limslaboratory.mapper.LinkDetectionMapper; import com.yuanchu.limslaboratory.pojo.LinkBasicInformation; import com.yuanchu.limslaboratory.mapper.LinkBasicInformationMapper; import com.yuanchu.limslaboratory.pojo.LinkDetection; @@ -12,6 +14,7 @@ import com.yuanchu.limslaboratory.utils.RedisUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.*; @@ -30,11 +33,23 @@ @Resource private LinkBasicInformationMapper linkBasicInformationMapper; + @Resource + private LinkDetectionMapper linkDetectionMapper; + @Autowired private LinkDetectionService linkDetectionService; @Override + @Transactional(rollbackFor = Exception.class) public String addLinkBasicInformation(LinkBasicInformation linkBasicInformation) { + QueryWrapper<LinkBasicInformation> queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().select(LinkBasicInformation::getId).eq(LinkBasicInformation::getUid, linkBasicInformation.getUid()); + LinkBasicInformation linkBasicInformation1 = linkBasicInformationMapper.selectOne(queryWrapper); + Optional.ofNullable(linkBasicInformation.getId()).ifPresent(l->{ + //鎵ц鍒犻櫎 + linkDetectionMapper.deleteByLinkbasic(linkBasicInformation1.getId()); + linkBasicInformationMapper.deleteById(linkBasicInformation1.getId()); + }); //濮旀墭缂栧彿 String code = MyUtil.getTimeSixNumberCode("SL", "SL"); linkBasicInformation.setEntrustCoding(code); diff --git a/inspection-server/src/main/resources/mapper/LinkDetectionMapper.xml b/inspection-server/src/main/resources/mapper/LinkDetectionMapper.xml index 192de47..bf28846 100644 --- a/inspection-server/src/main/resources/mapper/LinkDetectionMapper.xml +++ b/inspection-server/src/main/resources/mapper/LinkDetectionMapper.xml @@ -2,4 +2,7 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.yuanchu.limslaboratory.mapper.LinkDetectionMapper"> + <delete id="deleteByLinkbasic"> + delete from link_detection where link_basic_id=#{id} + </delete> </mapper> diff --git a/sys/src/main/java/com/yuanchu/limslaboratory/commandLineRunner/ResolutionRequestsCommandLineRunner.java b/sys/src/main/java/com/yuanchu/limslaboratory/commandLineRunner/ResolutionRequestsCommandLineRunner.java index 2ca5b77..4fbf344 100644 --- a/sys/src/main/java/com/yuanchu/limslaboratory/commandLineRunner/ResolutionRequestsCommandLineRunner.java +++ b/sys/src/main/java/com/yuanchu/limslaboratory/commandLineRunner/ResolutionRequestsCommandLineRunner.java @@ -1,6 +1,7 @@ package com.yuanchu.limslaboratory.commandLineRunner; import com.yuanchu.limslaboratory.annotation.AuthHandler; +import com.yuanchu.limslaboratory.mapper.MenuMapper; import com.yuanchu.limslaboratory.mapper.RoleManageMapper; import com.yuanchu.limslaboratory.utils.ArrayListUtil; import com.yuanchu.limslaboratory.utils.MyClassUtil; @@ -38,69 +39,77 @@ @Autowired private RoleManageMapper roleManageMapper; + @Autowired + private MenuMapper menuMapper; @SneakyThrows @Override public void run(String... args) throws Exception { - //log.info("瀹瑰櫒鐢熸垚涔嬪悗鎵ц"); - //List<Class<?>> classList = MyClassUtil.getClassList("com.yuanchu.limslaboratory.controller"); - //List<Map<String, Object>> requestListInfo = new ArrayList<Map<String, Object>>(); - //List<Map<String, Object>> urlList = new ArrayList<Map<String, Object>>(); - //classList.stream().forEach(c -> { - // Method[] methods = c.getMethods(); - // //鍘绘帀瀵硅薄鏂规硶 - // List<Method> methodList = Arrays.stream(methods) - // .filter(m -> !"notify".equals(m.getName()) && !"getClass".equals(m.getName()) - // && !"hashCode".equals(m.getName()) && !"toString".equals(m.getName()) - // && !"equals".equals(m.getName()) && !"wait".equals(m.getName()) && !"notifyAll".equals(m.getName())) - // .collect(Collectors.toList()); - // - // for (int i = 0; i < methodList.size(); i++) { - // Method method = methodList.get(i); - // if (method.isAnnotationPresent(AuthHandler.class)) { - // //鑾峰彇绫讳笂璇锋眰鍦板潃 - // RequestMapping annotation = c.getAnnotation(RequestMapping.class); - // StringBuilder builder = new StringBuilder(); - // String apiInfo = null; - // builder.append(annotation.value()[0]); - // //鑾峰彇鏂规硶涓婃敞瑙� - // if (method.isAnnotationPresent(PostMapping.class)) { - // PostMapping post = method.getAnnotation(PostMapping.class); - // builder.append(post.value()[0]); - // } - // if (method.isAnnotationPresent(GetMapping.class)) { - // GetMapping get = method.getAnnotation(GetMapping.class); - // builder.append(get.value()[0]); - // } - // if (method.isAnnotationPresent(DeleteMapping.class)) { - // DeleteMapping delete = method.getAnnotation(DeleteMapping.class); - // builder.append(delete.value()[0]); - // } - // if (method.isAnnotationPresent(PutMapping.class)) { - // PutMapping put = method.getAnnotation(PutMapping.class); - // builder.append(put.value()[0]); - // } - // if (method.isAnnotationPresent(ApiOperation.class)) { - // ApiOperation api = method.getAnnotation(ApiOperation.class); - // apiInfo = api.value(); - // } - // Map<String, Object> map = new HashMap<String, Object>(); - // map.put("url", builder); - // map.put("name", apiInfo); - // urlList.add(map); - // requestListInfo.add(map); - // } - // } - //}); - //requestListInfo.forEach(System.out::println); - //List<Map<String, Object>> allInterfaces = roleManageMapper.getAllInterfaces(); - //System.out.println(requestListInfo.size()); - //List<Map<String, Object>> mapList = urlList.stream().filter(item -> !allInterfaces.stream() - // .map(e -> e).distinct().collect(Collectors.toList()) - // .contains(item)) - // .collect(Collectors.toList()); - //System.out.println("======================="); - //mapList.forEach(System.out::println); + log.info("瀹瑰櫒鐢熸垚涔嬪悗鎵ц"); + List<Class<?>> classList = MyClassUtil.getClassList("com.yuanchu.limslaboratory.controller"); + List<Map<String, String>> requestListInfo = new ArrayList<Map<String, String>>(); + classList.stream().forEach(c -> { + Method[] methods = c.getMethods(); + //鍘绘帀瀵硅薄鏂规硶 + List<Method> methodList = Arrays.stream(methods) + .filter(m -> !"notify".equals(m.getName()) && !"getClass".equals(m.getName()) + && !"hashCode".equals(m.getName()) && !"toString".equals(m.getName()) + && !"equals".equals(m.getName()) && !"wait".equals(m.getName()) && !"notifyAll".equals(m.getName())) + .collect(Collectors.toList()); + + for (int i = 0; i < methodList.size(); i++) { + Method method = methodList.get(i); + boolean annotationPresent = method.isAnnotationPresent(AuthHandler.class); + if (annotationPresent&&method.getAnnotation(AuthHandler.class).isAdd()) { + //鑾峰彇绫讳笂璇锋眰鍦板潃 + RequestMapping annotation = c.getAnnotation(RequestMapping.class); + StringBuilder builder = new StringBuilder(); + String apiInfo = null; + builder.append(annotation.value()[0]); + //鑾峰彇鏂规硶涓婃敞瑙� + if (method.isAnnotationPresent(PostMapping.class)) { + PostMapping post = method.getAnnotation(PostMapping.class); + builder.append(post.value()[0]); + } + if (method.isAnnotationPresent(GetMapping.class)) { + GetMapping get = method.getAnnotation(GetMapping.class); + builder.append(get.value()[0]); + } + if (method.isAnnotationPresent(DeleteMapping.class)) { + DeleteMapping delete = method.getAnnotation(DeleteMapping.class); + builder.append(delete.value()[0]); + } + if (method.isAnnotationPresent(PutMapping.class)) { + PutMapping put = method.getAnnotation(PutMapping.class); + builder.append(put.value()[0]); + } + if (method.isAnnotationPresent(ApiOperation.class)) { + ApiOperation api = method.getAnnotation(ApiOperation.class); + apiInfo = api.value(); + } + Map<String, String> map = new HashMap<String, String>(); + AuthHandler auth = method.getAnnotation(AuthHandler.class); + map.put("menuId", String.valueOf(auth.menuId().getId())); + map.put("type",String.valueOf(auth.type().getNum())); + map.put("url", builder.toString()); + map.put("name", apiInfo); + requestListInfo.add(map); + } + } + }); + List<Map<String, String>> allInterfaces = roleManageMapper.getAllInterfaces(); + List<Map<String, String>> differentMaps = requestListInfo.stream() + .filter(map1 -> allInterfaces.stream() + .map(map2 -> map2.get("url")) // 鑾峰彇鎸囧畾閿殑鍊� + .noneMatch(value2 -> value2.equals(map1.get("url"))) // 鏌ユ壘涓嶅悓鐨勫�� + ).collect(Collectors.toList()); + if(differentMaps.size()>0){ + int insertInterfaceList = roleManageMapper.insertInterfaceList(differentMaps); + if (insertInterfaceList>0) log.info("鏂板鎺ュ彛鎴愬姛锛�"); + }else { + log.info("鏃犻渶澧炲姞鏂扮殑鎺ュ彛锛�"); + } + } diff --git a/user-server/src/main/java/com/yuanchu/limslaboratory/controller/RoleMangerController.java b/user-server/src/main/java/com/yuanchu/limslaboratory/controller/RoleMangerController.java index 46c89a8..e795ff3 100644 --- a/user-server/src/main/java/com/yuanchu/limslaboratory/controller/RoleMangerController.java +++ b/user-server/src/main/java/com/yuanchu/limslaboratory/controller/RoleMangerController.java @@ -1,6 +1,8 @@ package com.yuanchu.limslaboratory.controller; import com.yuanchu.limslaboratory.annotation.AuthHandler; +import com.yuanchu.limslaboratory.enums.InterfaceType; +import com.yuanchu.limslaboratory.enums.MenuEnums; import com.yuanchu.limslaboratory.pojo.dto.GetAllRoleAndMenuByConditionPageDto; import com.yuanchu.limslaboratory.pojo.dto.RoleInfoDto; import com.yuanchu.limslaboratory.pojo.dto.UpdateRoleMenuDto; @@ -73,7 +75,7 @@ return Result.success(roleManagerService.getRoleAndMenuByRole(roleId)); } - @AuthHandler(type = 1) + @AuthHandler(type = InterfaceType.SELECT,menuId = MenuEnums.role,isAdd = true) @ApiOperation("娴嬭瘯鐢熸垚") @GetMapping("/test") public Result<?> test(Long roleId){ diff --git a/user-server/src/main/java/com/yuanchu/limslaboratory/mapper/MenuMapper.java b/user-server/src/main/java/com/yuanchu/limslaboratory/mapper/MenuMapper.java index 56e131d..d97aff5 100644 --- a/user-server/src/main/java/com/yuanchu/limslaboratory/mapper/MenuMapper.java +++ b/user-server/src/main/java/com/yuanchu/limslaboratory/mapper/MenuMapper.java @@ -5,6 +5,7 @@ import org.springframework.stereotype.Repository; import java.util.List; +import java.util.Map; /** * @Author 寮犲 @@ -15,5 +16,6 @@ List<Menu> getMenuList(); + List<Map<String, Object>> getMenuNameAndId(); } diff --git a/user-server/src/main/java/com/yuanchu/limslaboratory/mapper/RoleManageMapper.java b/user-server/src/main/java/com/yuanchu/limslaboratory/mapper/RoleManageMapper.java index 731bbc4..25eba82 100644 --- a/user-server/src/main/java/com/yuanchu/limslaboratory/mapper/RoleManageMapper.java +++ b/user-server/src/main/java/com/yuanchu/limslaboratory/mapper/RoleManageMapper.java @@ -40,5 +40,7 @@ Map<String, Long> hasUrl(String type, String menuId, String roleId); - List<Map<String, Object>>getAllInterfaces(); + List<Map<String, String>>getAllInterfaces(); + + int insertInterfaceList(@Param("interfaceList") List<Map<String, String>>interfaceList); } diff --git a/user-server/src/main/resources/mapper/MenuMapper.xml b/user-server/src/main/resources/mapper/MenuMapper.xml index 1ea9b2d..8a36cca 100644 --- a/user-server/src/main/resources/mapper/MenuMapper.xml +++ b/user-server/src/main/resources/mapper/MenuMapper.xml @@ -7,4 +7,7 @@ from menu where state =1 </select> + <select id="getMenuNameAndId" resultType="map"> + select url,id,name from menu where state=1 + </select> </mapper> \ No newline at end of file diff --git a/user-server/src/main/resources/mapper/RoleManangeMapper.xml b/user-server/src/main/resources/mapper/RoleManangeMapper.xml index a269bfa..267f62f 100644 --- a/user-server/src/main/resources/mapper/RoleManangeMapper.xml +++ b/user-server/src/main/resources/mapper/RoleManangeMapper.xml @@ -17,6 +17,14 @@ #{createTime} ) </insert> + <insert id="insertInterfaceList"> + insert + interface_info (id,name,url,menu_id,type,state) + values + <foreach collection="interfaceList" item="m" separator=","> + (#{m.id},#{m.name},#{m.url},#{m.menuId},#{m.type},1) + </foreach> + </insert> <update id="updateRoleState"> UPDATE role SET state = 0 @@ -109,7 +117,7 @@ and ${type} = 1 </select> <select id="getAllInterfaces" resultType="java.util.Map"> - select name,url + select name, url from interface_info </select> <resultMap id="roleAndMenuById" type="com.yuanchu.limslaboratory.pojo.dto.RoleAndMenuDto"> -- Gitblit v1.9.3