From 27e9d7d2c7db63c5f12c83e069980213398e8337 Mon Sep 17 00:00:00 2001 From: XiaoRuby <3114200645@qq.com> Date: 星期四, 13 七月 2023 10:22:51 +0800 Subject: [PATCH] LIMS管理系统框架-开发7-12-v1.0.0 --- standard-library/src/main/java/com/yuanchu/limslaboratory/pojo/SerialNumber.java | 62 ++ standard-library/src/main/java/com/yuanchu/limslaboratory/controller/StandardsController.java | 59 ++ standard-library/src/main/java/com/yuanchu/limslaboratory/mapper/StandardsMapper.java | 20 user-server/src/main/java/com/yuanchu/limslaboratory/vo/NewPersonnelVo.java | 33 + user-server/src/main/java/com/yuanchu/limslaboratory/pojo/Enterprise.java | 7 sys/src/main/resources/application.yml | 8 standard-library/src/main/java/com/yuanchu/limslaboratory/mapper/SerialNumberMapper.java | 19 framework/src/main/java/com/yuanchu/limslaboratory/utils/SpringUtil.java | 2 standard-library/src/main/java/com/yuanchu/limslaboratory/service/SerialNumberService.java | 27 + standard-library/src/main/java/com/yuanchu/limslaboratory/service/StandardsService.java | 27 + sys/src/test/java/com/yuanchu/limslaboratory/CodeGenerator.java | 4 user-server/src/main/java/com/yuanchu/limslaboratory/shiro/realm/ShiroRealm.java | 18 standard-library/src/main/java/com/yuanchu/limslaboratory/controller/SpecificationsController.java | 72 ++ user-server/src/main/java/com/yuanchu/limslaboratory/shiro/config/ShiroConfig.java | 18 standard-library/src/main/resources/mapper/StandardsMapper.xml | 13 standard-library/src/main/java/com/yuanchu/limslaboratory/service/impl/SerialNumberServiceImpl.java | 64 ++ user-server/src/main/resources/mapper/UserMapper.xml | 20 standard-library/src/main/java/com/yuanchu/limslaboratory/mapper/SpecificationsMapper.java | 24 standard-library/src/main/resources/mapper/SerialNumberMapper.xml | 5 user-server/src/main/java/com/yuanchu/limslaboratory/controller/UserController.java | 67 ++ user-server/src/main/java/com/yuanchu/limslaboratory/shiro/realm/JwtRealm.java | 9 user-server/pom.xml | 5 standard-library/src/main/java/com/yuanchu/limslaboratory/service/SpecificationsService.java | 25 + user-server/src/main/java/com/yuanchu/limslaboratory/pojo/Role.java | 8 framework/src/main/java/com/yuanchu/limslaboratory/config/MyBatisPlusConfig.java | 15 user-server/src/main/java/com/yuanchu/limslaboratory/mapper/UserMapper.java | 6 user-server/src/main/java/com/yuanchu/limslaboratory/vo/PagePersonnelVo.java | 39 + standard-library/src/main/java/com/yuanchu/limslaboratory/pojo/Standards.java | 65 ++ standard-library/src/main/java/com/yuanchu/limslaboratory/vo/ListSpecificationsInformation.java | 27 + user-server/src/main/java/com/yuanchu/limslaboratory/clients/UserLoginUtils.java | 85 +- pom.xml | 1 standard-library/src/main/resources/mapper/SpecificationsMapper.xml | 23 framework/src/main/java/com/yuanchu/limslaboratory/utils/FileSaveUtil.java | 6 framework/src/main/java/com/yuanchu/limslaboratory/utils/JackSonUtil.java | 8 user-server/src/main/java/com/yuanchu/limslaboratory/vo/UpdatePersonnelVo.java | 41 + standard-library/src/main/java/com/yuanchu/limslaboratory/controller/SerialNumberController.java | 58 ++ standard-library/src/main/java/com/yuanchu/limslaboratory/service/impl/StandardsServiceImpl.java | 57 ++ user-server/src/main/java/com/yuanchu/limslaboratory/shiro/utils/JwtUtils.java | 1 user-server/src/main/java/com/yuanchu/limslaboratory/service/UserService.java | 19 framework/src/main/java/com/yuanchu/limslaboratory/handler/GlobalExceptionHandler.java | 34 user-server/src/main/java/com/yuanchu/limslaboratory/pojo/User.java | 18 user-server/src/main/java/com/yuanchu/limslaboratory/pojo/EnterpriseUserList.java | 10 sys/src/main/resources/application-dev.yml | 44 framework/src/main/java/com/yuanchu/limslaboratory/utils/MyUtil.java | 2 framework/src/main/java/com/yuanchu/limslaboratory/handler/MyMetaObjectHandler.java | 8 standard-library/pom.xml | 38 + user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/UserServiceImpl.java | 86 +++ sys/pom.xml | 10 standard-library/src/main/java/com/yuanchu/limslaboratory/service/impl/SpecificationsServiceImpl.java | 62 ++ framework/src/main/java/com/yuanchu/limslaboratory/config/Swagger3.java | 4 standard-library/src/main/java/com/yuanchu/limslaboratory/pojo/Specifications.java | 82 +++ 51 files changed, 1,295 insertions(+), 170 deletions(-) diff --git a/framework/src/main/java/com/yuanchu/limslaboratory/config/MyBatisPlusConfig.java b/framework/src/main/java/com/yuanchu/limslaboratory/config/MyBatisPlusConfig.java index 56853a6..33b08c6 100644 --- a/framework/src/main/java/com/yuanchu/limslaboratory/config/MyBatisPlusConfig.java +++ b/framework/src/main/java/com/yuanchu/limslaboratory/config/MyBatisPlusConfig.java @@ -1,7 +1,9 @@ package com.yuanchu.limslaboratory.config; +import com.baomidou.mybatisplus.annotation.DbType; +import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor; -import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; +import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; import org.mybatis.spring.annotation.MapperScan; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -15,4 +17,15 @@ public OptimisticLockerInterceptor optimisticLockerInterceptor() { return new OptimisticLockerInterceptor(); } + + /** + * 闇�瑕侀厤缃嫤鎴櫒锛屼笉鐒跺湪AddDevice涓殑total鏃犳硶鑾峰彇鍒� + * @return + */ + @Bean + public MybatisPlusInterceptor mybatisPlusInterceptor(){ + MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); + interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); + return interceptor; + } } diff --git a/framework/src/main/java/com/yuanchu/limslaboratory/config/Swagger3.java b/framework/src/main/java/com/yuanchu/limslaboratory/config/Swagger3.java index 29954ad..7e2671f 100644 --- a/framework/src/main/java/com/yuanchu/limslaboratory/config/Swagger3.java +++ b/framework/src/main/java/com/yuanchu/limslaboratory/config/Swagger3.java @@ -35,9 +35,9 @@ // 鐢ˋpiInfoBuilder杩涜瀹氬埗 return new ApiInfoBuilder() // 璁剧疆鏍囬 - .title("姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃绠$悊绯荤粺") + .title("LIMS绠$悊绯荤粺") // 鎻忚堪 - .description("姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃绠$悊绯荤粺") + .description("LIMS绠$悊绯荤粺") // 浣滆�呬俊鎭� .contact(new Contact("Crunchy", null, null)) // 鐗堟湰 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 7e4449a..0dd0dfd 100644 --- a/framework/src/main/java/com/yuanchu/limslaboratory/handler/GlobalExceptionHandler.java +++ b/framework/src/main/java/com/yuanchu/limslaboratory/handler/GlobalExceptionHandler.java @@ -50,115 +50,115 @@ /** 杩愯鏃跺紓甯� */ @ExceptionHandler(RuntimeException.class) public Result<?> runtimeExceptionHandler(RuntimeException e) { - log.error(e.getMessage(), e.getCause()); + e.printStackTrace(); return Result.fail("杩愯鏃跺紓甯�"); } /** 绫诲瀷杞崲寮傚父 */ @ExceptionHandler(ClassCastException.class) public Result<?> classCastExceptionHandler(ClassCastException e) { - log.error(e.getMessage(), e.getCause()); + e.printStackTrace(); return Result.fail("绫诲瀷杞崲寮傚父"); } /** 鏂囦欢鏈壘鍒板紓甯� */ @ExceptionHandler(FileNotFoundException.class) public Result<?> FileNotFoundException(FileNotFoundException e) { - log.error(e.getMessage(), e.getCause()); + e.printStackTrace(); return Result.fail("鏂囦欢鏈壘鍒板紓甯�"); } /** 鏁板瓧鏍煎紡寮傚父 */ @ExceptionHandler(NumberFormatException.class) public Result<?> NumberFormatException(NumberFormatException e) { - log.error(e.getMessage(), e.getCause()); + e.printStackTrace(); return Result.fail("鏁板瓧鏍煎紡寮傚父"); } /** 瀹夊叏寮傚父 */ @ExceptionHandler(SecurityException.class) public Result<?> SecurityException(SecurityException e) { - log.error(e.getMessage(), e.getCause()); + e.printStackTrace(); return Result.fail("瀹夊叏寮傚父"); } /** 绫诲瀷涓嶅瓨鍦ㄥ紓甯� */ @ExceptionHandler(TypeNotPresentException.class) public Result<?> TypeNotPresentException(TypeNotPresentException e) { - log.error(e.getMessage(), e.getCause()); + e.printStackTrace(); return Result.fail("绫诲瀷涓嶅瓨鍦ㄥ紓甯�"); } /** IO寮傚父 */ @ExceptionHandler(IOException.class) public Result<?> iOExceptionHandler(IOException e) { - log.error(e.getMessage(), e.getCause()); + e.printStackTrace(); return Result.fail("IO寮傚父"); } /** 鏈煡鏂规硶寮傚父 */ @ExceptionHandler(NoSuchMethodException.class) public Result<?> noSuchMethodExceptionHandler(NoSuchMethodException e) { - log.error(e.getMessage(), e.getCause()); + e.printStackTrace(); return Result.fail("鏈煡鏂规硶寮傚父"); } /** 鏁扮粍瓒婄晫寮傚父 */ @ExceptionHandler(IndexOutOfBoundsException.class) public Result<?> indexOutOfBoundsExceptionHandler(IndexOutOfBoundsException e) { - log.error(e.getMessage(), e.getCause()); + e.printStackTrace(); return Result.fail("鏁扮粍瓒婄晫寮傚父"); } /** sql璇硶閿欒寮傚父 */ @ExceptionHandler(BadSqlGrammarException.class) public Result<?> BadSqlGrammarException(BadSqlGrammarException e) { - log.error(e.getMessage(), e.getCause()); + e.printStackTrace(); return Result.fail("sql璇硶閿欒寮傚父"); } /** 鏃犳硶娉ㄥ叆bean寮傚父 */ @ExceptionHandler(NoSuchBeanDefinitionException.class) public Result<?> NoSuchBeanDefinitionException(NoSuchBeanDefinitionException e) { - log.error(e.getMessage(), e.getCause()); + e.printStackTrace(); return Result.fail("鏃犳硶娉ㄥ叆bean"); } /** Http娑堟伅涓嶅彲璇诲紓甯� */ @ExceptionHandler({HttpMessageNotReadableException.class}) public Result<?> requestNotReadable(HttpMessageNotReadableException e) { - log.error(e.getMessage(), e.getCause()); + e.printStackTrace(); return Result.fail("Http娑堟伅涓嶅彲璇�"); } /** 400閿欒 */ @ExceptionHandler({TypeMismatchException.class}) public Result<?> requestTypeMismatch(TypeMismatchException e) { - log.error(e.getMessage(), e.getCause()); + e.printStackTrace(); return Result.fail("鏈嶅姟鍣ㄥ紓甯�"); } /** 500閿欒 */ @ExceptionHandler({ConversionNotSupportedException.class, HttpMessageNotWritableException.class}) public Result<?> server500(RuntimeException e) { - log.error(e.getMessage(), e.getCause()); + e.printStackTrace(); return Result.fail("鏈嶅姟鍣ㄥ紓甯�"); } /** 鏍堟孩鍑� */ @ExceptionHandler({StackOverflowError.class}) public Result<?> requestStackOverflow(StackOverflowError e) { - log.error(e.getMessage(), e.getCause()); + e.printStackTrace(); return Result.fail("鏍堟孩鍑哄紓甯�"); } /** 闄ゆ暟涓嶈兘涓�0 */ @ExceptionHandler({ArithmeticException.class}) public Result<?> arithmeticException(ArithmeticException e) { - log.error(e.getMessage(), e.getCause()); + e.printStackTrace(); return Result.fail("闄ゆ暟涓嶈兘涓�0寮傚父"); } /** 鍏朵粬閿欒 */ @ExceptionHandler({Exception.class}) public Result<?> exception(Exception e) { - log.error(e.getMessage(), e.getCause()); + e.printStackTrace(); return Result.fail("缃戠粶杩炴帴澶辫触锛岃閫�鍑哄悗鍐嶈瘯"); } } diff --git a/framework/src/main/java/com/yuanchu/limslaboratory/handler/MyMetaObjectHandler.java b/framework/src/main/java/com/yuanchu/limslaboratory/handler/MyMetaObjectHandler.java index 03566f9..b72572a 100644 --- a/framework/src/main/java/com/yuanchu/limslaboratory/handler/MyMetaObjectHandler.java +++ b/framework/src/main/java/com/yuanchu/limslaboratory/handler/MyMetaObjectHandler.java @@ -4,19 +4,19 @@ import org.apache.ibatis.reflection.MetaObject; import org.springframework.stereotype.Component; -import java.time.LocalDateTime; +import java.util.Date; @Component public class MyMetaObjectHandler implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { - this.strictInsertFill(metaObject, "createTime", LocalDateTime.class, LocalDateTime.now()); // 璧峰鐗堟湰 3.3.0(鎺ㄨ崘浣跨敤) - this.strictInsertFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now()); // 璧峰鐗堟湰 3.3.0(鎺ㄨ崘浣跨敤) + this.strictInsertFill(metaObject, "createTime", Date.class, new Date()); // 璧峰鐗堟湰 3.3.0(鎺ㄨ崘浣跨敤) + this.strictInsertFill(metaObject, "updateTime", Date.class, new Date()); // 璧峰鐗堟湰 3.3.0(鎺ㄨ崘浣跨敤) } @Override public void updateFill(MetaObject metaObject) { // update鐨勬椂鍊欎娇鐢紝鏇存柊鐨勬椂鍊欏己鍒惰繘琛屽~鍏� - this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now()); // 璧峰鐗堟湰 3.3.0(鎺ㄨ崘) + this.strictUpdateFill(metaObject, "updateTime", Date.class, new Date()); // 璧峰鐗堟湰 3.3.0(鎺ㄨ崘) } } diff --git a/framework/src/main/java/com/yuanchu/limslaboratory/utils/FileSaveUtils.java b/framework/src/main/java/com/yuanchu/limslaboratory/utils/FileSaveUtil.java similarity index 93% rename from framework/src/main/java/com/yuanchu/limslaboratory/utils/FileSaveUtils.java rename to framework/src/main/java/com/yuanchu/limslaboratory/utils/FileSaveUtil.java index d06b77a..75e28eb 100644 --- a/framework/src/main/java/com/yuanchu/limslaboratory/utils/FileSaveUtils.java +++ b/framework/src/main/java/com/yuanchu/limslaboratory/utils/FileSaveUtil.java @@ -13,7 +13,7 @@ */ @Slf4j @Component -public class FileSaveUtils { +public class FileSaveUtil { // 鍙杫ml涓殑璺緞 + / // @Value("${file.path}") @@ -27,7 +27,7 @@ */ public String StoreFile(byte[] content, String originalFilename) { // 鐢熸垚闅忔満鍚嶇О锛氭椂闂確闅忔満6浣嶆暟瀛� - String FileName = System.currentTimeMillis() + "_" + MyUtils.getNumber(6); + String FileName = System.currentTimeMillis() + "_" + MyUtil.getNumber(6); String suffix = originalFilename.substring(originalFilename.lastIndexOf(".")); // 鍚嶇О鎷兼帴 String fileName = FileName + suffix; @@ -54,7 +54,7 @@ ByteArrayInputStream is = new ByteArrayInputStream(content)) { IOUtils.copy(is, os); } catch (IOException e) { - MyUtils.PrintLog("瀛樺偍鏂囦欢寮傚父锛�" + e); + MyUtil.PrintLog("瀛樺偍鏂囦欢寮傚父锛�" + e); } } } diff --git a/framework/src/main/java/com/yuanchu/limslaboratory/utils/JackSonUtil.java b/framework/src/main/java/com/yuanchu/limslaboratory/utils/JackSonUtil.java index 837d6b9..f272754 100644 --- a/framework/src/main/java/com/yuanchu/limslaboratory/utils/JackSonUtil.java +++ b/framework/src/main/java/com/yuanchu/limslaboratory/utils/JackSonUtil.java @@ -94,6 +94,14 @@ } } + /** + * 瀛楃涓茶浆瀵硅薄 + * @param str + * @param valueType + * @return + * @param <T> + * @throws Exception + */ public static <T> T unmarshal(String str, Class<T> valueType) throws Exception { try { return OBJECT_MAPPER.readValue(str, valueType); diff --git a/framework/src/main/java/com/yuanchu/limslaboratory/utils/MyUtils.java b/framework/src/main/java/com/yuanchu/limslaboratory/utils/MyUtil.java similarity index 98% rename from framework/src/main/java/com/yuanchu/limslaboratory/utils/MyUtils.java rename to framework/src/main/java/com/yuanchu/limslaboratory/utils/MyUtil.java index 3efefe9..2ba0601 100644 --- a/framework/src/main/java/com/yuanchu/limslaboratory/utils/MyUtils.java +++ b/framework/src/main/java/com/yuanchu/limslaboratory/utils/MyUtil.java @@ -7,7 +7,7 @@ import java.util.Random; @Component -public class MyUtils<T> { +public class MyUtil<T> { /** * 鑷畾涔夎皟璇曞伐鍏风被 diff --git a/framework/src/main/java/com/yuanchu/limslaboratory/utils/SpringUtils.java b/framework/src/main/java/com/yuanchu/limslaboratory/utils/SpringUtil.java similarity index 94% rename from framework/src/main/java/com/yuanchu/limslaboratory/utils/SpringUtils.java rename to framework/src/main/java/com/yuanchu/limslaboratory/utils/SpringUtil.java index f611767..96ba602 100644 --- a/framework/src/main/java/com/yuanchu/limslaboratory/utils/SpringUtils.java +++ b/framework/src/main/java/com/yuanchu/limslaboratory/utils/SpringUtil.java @@ -6,7 +6,7 @@ import org.springframework.stereotype.Component; @Component -public class SpringUtils implements ApplicationContextAware { +public class SpringUtil implements ApplicationContextAware { private static ApplicationContext context; @Override diff --git a/pom.xml b/pom.xml index 580ba65..390cd93 100644 --- a/pom.xml +++ b/pom.xml @@ -19,6 +19,7 @@ <module>user-server</module> <module>sys</module> <module>framework</module> + <module>standard-library</module> </modules> <properties> diff --git a/standard-library/pom.xml b/standard-library/pom.xml new file mode 100644 index 0000000..aaf8e17 --- /dev/null +++ b/standard-library/pom.xml @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <artifactId>lims-laboratory</artifactId> + <groupId>com.yuanchu</groupId> + <version>0.0.1-SNAPSHOT</version> + </parent> + <groupId>com.yunchu.limslaboratory</groupId> + <artifactId>standard-library</artifactId> + <version>0.0.1-SNAPSHOT</version> + <name>standard-library</name> + <description>standard-library</description> + + <packaging>jar</packaging> + + <dependencies> + <dependency> + <groupId>com.yunchu.limslaboratory</groupId> + <artifactId>framework</artifactId> + <version>${project.parent.version}</version> + </dependency> + + <dependency> + <groupId>com.yunchu.limslaboratory</groupId> + <artifactId>user-server</artifactId> + <version>${project.parent.version}</version> + </dependency> + + <!--mybatis-plus--> + <dependency> + <groupId>com.baomidou</groupId> + <artifactId>mybatis-plus-boot-starter</artifactId> + </dependency> + </dependencies> + +</project> diff --git a/standard-library/src/main/java/com/yuanchu/limslaboratory/controller/SerialNumberController.java b/standard-library/src/main/java/com/yuanchu/limslaboratory/controller/SerialNumberController.java new file mode 100644 index 0000000..fc8f537 --- /dev/null +++ b/standard-library/src/main/java/com/yuanchu/limslaboratory/controller/SerialNumberController.java @@ -0,0 +1,58 @@ +package com.yuanchu.limslaboratory.controller; + + +import com.yuanchu.limslaboratory.pojo.SerialNumber; +import com.yuanchu.limslaboratory.service.SerialNumberService; +import com.yuanchu.limslaboratory.utils.JackSonUtil; +import com.yuanchu.limslaboratory.utils.RedisUtil; +import com.yuanchu.limslaboratory.vo.Result; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; + +/** + * <p> + * 鍓嶇鎺у埗鍣� + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2023-07-11 + */ +@Api(tags = "鏍囧噯搴�-->鍨嬪彿鎿嶄綔") +@RestController +@RequestMapping("/serial-number") +public class SerialNumberController { + + @Autowired + private SerialNumberService serialNumberService; + + @ApiOperation("鏍囧噯搴�-->娣诲姞鍨嬪彿") + @PostMapping("/add") + public Result<?> addSerialNumberInformation(@RequestHeader("X-Token") String token,@RequestBody SerialNumber serialNumber) throws Exception { + Object object = RedisUtil.get(token); + Map<String, Object> unmarshal = JackSonUtil.unmarshal(JackSonUtil.marshal(object), Map.class); + serialNumber.setUserId((Integer) unmarshal.get("id")); + Integer isStandardsSuccess = serialNumberService.addSerialNumberInformation(serialNumber); + if (isStandardsSuccess == 1) { + return Result.success("娣诲姞銆�"+ serialNumber.getName() +"銆戞垚鍔燂紒"); + } + return Result.fail("娣诲姞銆�"+ serialNumber.getName() +"銆戝け璐ワ紒"); + } + + @ApiOperation("鏍囧噯搴�-->鐐瑰嚮渚ц竟鏍忔爣鍑嗭紝鏌ヨ鎵�鏈夊瀷鍙�") + @ApiImplicitParams(value = { + @ApiImplicitParam(value = "鏍囧噯鍙�/鏍囧噯鍚嶇О", name = "IdOrNameOfSerialNumber", dataTypeClass = String.class), + @ApiImplicitParam(value = "鏍囧噯鍙稩d", name = "standardsId", dataTypeClass = String.class, required = true) + }) + @GetMapping("/list") + public Result<?> listSerialNumberInformation(String IdOrNameOfSerialNumber, String standardsId){ + List<Map<String, Object>> selectStandards= serialNumberService.listSerialNumberInformation(IdOrNameOfSerialNumber,standardsId); + return Result.success(selectStandards); + } +} diff --git a/standard-library/src/main/java/com/yuanchu/limslaboratory/controller/SpecificationsController.java b/standard-library/src/main/java/com/yuanchu/limslaboratory/controller/SpecificationsController.java new file mode 100644 index 0000000..f19b84f --- /dev/null +++ b/standard-library/src/main/java/com/yuanchu/limslaboratory/controller/SpecificationsController.java @@ -0,0 +1,72 @@ +package com.yuanchu.limslaboratory.controller; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.yuanchu.limslaboratory.pojo.Specifications; +import com.yuanchu.limslaboratory.pojo.Standards; +import com.yuanchu.limslaboratory.service.SpecificationsService; +import com.yuanchu.limslaboratory.utils.JackSonUtil; +import com.yuanchu.limslaboratory.utils.RedisUtil; +import com.yuanchu.limslaboratory.vo.ListSpecificationsInformation; +import com.yuanchu.limslaboratory.vo.Result; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** + * <p> + * 鍓嶇鎺у埗鍣� + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2023-07-11 + */ +@Api(tags = "鏍囧噯搴�-->鍨嬪彿-->浜у搧瑙勬牸鎿嶄綔") +@RestController +@RequestMapping("/specifications") +public class SpecificationsController { + + @Autowired + private SpecificationsService specificationsService; + + @ApiOperation("鏍囧噯搴�-->浜у搧瑙勬牸") + @PostMapping("/add") + public Result<?> addSpecificationsInformation(@RequestHeader("X-Token") String token,@RequestBody Specifications specifications) throws Exception { + Object object = RedisUtil.get(token); + Map<String, Object> unmarshal = JackSonUtil.unmarshal(JackSonUtil.marshal(object), Map.class); + specifications.setUserId((Integer) unmarshal.get("id")); + Integer isStandardsSuccess = specificationsService.addSpecificationsInformation(specifications); + if (isStandardsSuccess == 1) { + return Result.success("娣诲姞銆�"+ specifications.getName() +"銆戞垚鍔燂紒"); + } + return Result.fail("娣诲姞銆�"+ specifications.getName() +"銆戝け璐ワ紒"); + } + + @ApiOperation("鏍囧噯搴�-->鏍规嵁鍨嬪彿鏌ヨ浜у搧瑙勬牸") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "pageNo", value = "璧峰椤�", dataTypeClass = Integer.class, required = true), + @ApiImplicitParam(name = "pageSize", value = "姣忎竴椤垫暟閲�", dataTypeClass = Integer.class, required = true), + @ApiImplicitParam(name = "specificationsName", value = "鍨嬪彿鍚嶇О", dataTypeClass = String.class), + @ApiImplicitParam(name = "serialNumberId", value = "鍨嬪彿ID", dataTypeClass = String.class), + }) + @GetMapping("/list") + public Result<?> listSpecificationsInformation(Integer pageNo, + Integer pageSize, + String specificationsName, + String serialNumberId){ + IPage<ListSpecificationsInformation> pageList= specificationsService.listSpecificationsInformation(specificationsName,serialNumberId,new Page<Objects>(pageNo, pageSize)); + Map<String, Object> map = new HashMap<>(); + map.put("row", pageList.getRecords()); + map.put("total", pageList.getTotal()); + return Result.success(map); + } +} diff --git a/standard-library/src/main/java/com/yuanchu/limslaboratory/controller/StandardsController.java b/standard-library/src/main/java/com/yuanchu/limslaboratory/controller/StandardsController.java new file mode 100644 index 0000000..c7fdf0d --- /dev/null +++ b/standard-library/src/main/java/com/yuanchu/limslaboratory/controller/StandardsController.java @@ -0,0 +1,59 @@ +package com.yuanchu.limslaboratory.controller; + + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.yuanchu.limslaboratory.pojo.Standards; +import com.yuanchu.limslaboratory.service.StandardsService; +import com.yuanchu.limslaboratory.utils.JackSonUtil; +import com.yuanchu.limslaboratory.utils.MyUtil; +import com.yuanchu.limslaboratory.utils.RedisUtil; +import com.yuanchu.limslaboratory.vo.Result; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; + +/** + * <p> + * 鍓嶇鎺у埗鍣� + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2023-07-11 + */ +@Api(tags = "鏍囧噯搴撴搷浣�") +@RestController +@RequestMapping("/standards") +public class StandardsController { + + @Autowired + private StandardsService standardsService; + + @ApiOperation("鏍囧噯搴�-->娣诲姞鏍囧噯") + @PostMapping("/add") + public Result<?> addStandardsInformation(@RequestHeader("X-Token") String token, @RequestBody Standards standards) throws Exception { + Object object = RedisUtil.get(token); + Map<String, Object> unmarshal = JackSonUtil.unmarshal(JackSonUtil.marshal(object), Map.class); + standards.setUserId((Integer) unmarshal.get("id")); + Integer isStandardsSuccess = standardsService.addStandardsInformation(standards); + if (isStandardsSuccess == 1) { + return Result.success("娣诲姞銆�"+ standards.getName() +"銆戞垚鍔燂紒"); + } + return Result.fail("娣诲姞銆�"+ standards.getName() +"銆戝け璐ワ紒"); + } + + @ApiOperation("鏍囧噯搴�-->鐐瑰嚮鍏ㄩ儴锛氭煡璇㈡墍鏈夋爣鍑嗘暟鎹�") + @ApiImplicitParams(value = { + @ApiImplicitParam(value = "鏍囧噯鍙�/鏍囧噯鍚嶇О", name = "IdOrNameOfStandards", dataTypeClass = String.class) + }) + @GetMapping("/list") + public Result<?> listStandardsInformation(String IdOrNameOfStandards){ + List<Map<String, Object>> list = standardsService.listStandardsInformation(IdOrNameOfStandards); + return Result.success(list); + } +} diff --git a/standard-library/src/main/java/com/yuanchu/limslaboratory/mapper/SerialNumberMapper.java b/standard-library/src/main/java/com/yuanchu/limslaboratory/mapper/SerialNumberMapper.java new file mode 100644 index 0000000..466b13d --- /dev/null +++ b/standard-library/src/main/java/com/yuanchu/limslaboratory/mapper/SerialNumberMapper.java @@ -0,0 +1,19 @@ +package com.yuanchu.limslaboratory.mapper; + +import com.yuanchu.limslaboratory.pojo.SerialNumber; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +import java.util.List; +import java.util.Map; + +/** + * <p> + * Mapper 鎺ュ彛 + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2023-07-11 + */ +public interface SerialNumberMapper extends BaseMapper<SerialNumber> { + +} diff --git a/standard-library/src/main/java/com/yuanchu/limslaboratory/mapper/SpecificationsMapper.java b/standard-library/src/main/java/com/yuanchu/limslaboratory/mapper/SpecificationsMapper.java new file mode 100644 index 0000000..38b90bd --- /dev/null +++ b/standard-library/src/main/java/com/yuanchu/limslaboratory/mapper/SpecificationsMapper.java @@ -0,0 +1,24 @@ +package com.yuanchu.limslaboratory.mapper; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.yuanchu.limslaboratory.pojo.Specifications; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yuanchu.limslaboratory.vo.ListSpecificationsInformation; + +import java.util.Map; +import java.util.Objects; + +/** + * <p> + * Mapper 鎺ュ彛 + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2023-07-11 + */ +public interface SpecificationsMapper extends BaseMapper<Specifications> { + + IPage<ListSpecificationsInformation> listSpecificationsInformation(String specificationsName, String serialNumberId, Page<Objects> page); +} diff --git a/standard-library/src/main/java/com/yuanchu/limslaboratory/mapper/StandardsMapper.java b/standard-library/src/main/java/com/yuanchu/limslaboratory/mapper/StandardsMapper.java new file mode 100644 index 0000000..5155826 --- /dev/null +++ b/standard-library/src/main/java/com/yuanchu/limslaboratory/mapper/StandardsMapper.java @@ -0,0 +1,20 @@ +package com.yuanchu.limslaboratory.mapper; + +import com.yuanchu.limslaboratory.pojo.Standards; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +import java.util.List; +import java.util.Map; + +/** + * <p> + * Mapper 鎺ュ彛 + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2023-07-11 + */ +public interface StandardsMapper extends BaseMapper<Standards> { + + List<Map<String, Object>> listStandardsInformation(String idOrNameOfStandards); +} diff --git a/standard-library/src/main/java/com/yuanchu/limslaboratory/pojo/SerialNumber.java b/standard-library/src/main/java/com/yuanchu/limslaboratory/pojo/SerialNumber.java new file mode 100644 index 0000000..d650d56 --- /dev/null +++ b/standard-library/src/main/java/com/yuanchu/limslaboratory/pojo/SerialNumber.java @@ -0,0 +1,62 @@ +package com.yuanchu.limslaboratory.pojo; + +import java.time.LocalDateTime; +import java.io.Serializable; +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.baomidou.mybatisplus.annotation.Version; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * <p> + * + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2023-07-11 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="SerialNumber瀵硅薄", description="鍨嬪彿") +public class SerialNumber implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "鍨嬪彿缂栧彿", example = "ModelNumber001", required = true) + private String id; + + @ApiModelProperty(value = "鍨嬪彿鍚嶇О",example = "鍏夌氦2.0.1", required = true) + private String name; + + @TableLogic(value = "1", delval = "0") + @ApiModelProperty(value = "閫昏緫鍒犻櫎 姝e父>=1,鍒犻櫎<=0", hidden = true) + private Integer state; + + @TableField(fill = FieldFill.INSERT) + @ApiModelProperty(value = "鍒涘缓鏃堕棿", hidden = true) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date createTime; + + @TableField(fill = FieldFill.INSERT_UPDATE) + @ApiModelProperty(value = "鏇存柊鏃堕棿", hidden = true) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date updateTime; + + @ApiModelProperty(value = "涔愯閿�", hidden = true) + @Version + private Integer version; + + @ApiModelProperty(value = "鍏宠仈瀛楁 鏍囧噯缂栧彿id", example = "230711000002", required = true) + private String standardsId; + + @ApiModelProperty(value = "鍏宠仈瀛楁 娣诲姞鐢ㄦ埛id", hidden = true) + private Integer userId; + +} diff --git a/standard-library/src/main/java/com/yuanchu/limslaboratory/pojo/Specifications.java b/standard-library/src/main/java/com/yuanchu/limslaboratory/pojo/Specifications.java new file mode 100644 index 0000000..56d0026 --- /dev/null +++ b/standard-library/src/main/java/com/yuanchu/limslaboratory/pojo/Specifications.java @@ -0,0 +1,82 @@ +package com.yuanchu.limslaboratory.pojo; + +import com.baomidou.mybatisplus.annotation.*; + +import java.time.LocalDateTime; +import java.io.Serializable; +import java.util.Date; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import io.swagger.models.auth.In; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * <p> + * + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2023-07-11 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="Specifications瀵硅薄", description="瑙勬牸") +public class Specifications implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "瑙勬牸id", hidden = true) + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty(value = "瑙勬牸id", example = "modelId", required = true) + private String number; + + @ApiModelProperty(value = "浜у搧瑙勬牸鍚嶇О", example = "AB", required = true) + private String name; + + @ApiModelProperty(value = "鐢熶骇鎸囦护鍙�", example = "test", required = true) + private String instruct; + + @ApiModelProperty(value = "鐢靛帇绛夌骇", example = "test", required = true) + private String voltageLevel; + + @ApiModelProperty(value = "涓荤嚎蹇冩埅闈�", example = "test", required = true) + private String crossSection; + + @ApiModelProperty(value = "涓荤嚎鑺姱鏁�", example = "test", required = true) + private String numberOfCores; + + @ApiModelProperty(value = "瑙勬牸鐘舵�� 0锛氬仠鐢紱1锛氭甯革紱-1锛氳崏绋�", hidden = true) + private Integer spe_state; + + @ApiModelProperty(value = "閫昏緫鍒犻櫎 姝e父>=1,鍒犻櫎<=0", hidden = true) + private Integer state; + + @TableField(fill = FieldFill.INSERT) + @ApiModelProperty(value = "鍒涘缓鏃堕棿", hidden = true) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date createTime; + + @TableField(fill = FieldFill.INSERT_UPDATE) + @ApiModelProperty(value = "鏇存柊鏃堕棿", hidden = true) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date updateTime; + + @ApiModelProperty(value = "涔愯閿�", hidden = true) + @Version + private Integer version; + + @ApiModelProperty(value = "鍏宠仈瀛楁 鍨嬪彿id", hidden = true) + private String vel; + + @ApiModelProperty(value = "鍏宠仈瀛楁 鍨嬪彿id", example = "230711000002", required = true) + private String serialId; + + @ApiModelProperty(value = "鍏宠仈瀛楁 鐢ㄦ埛id", hidden = true) + private Integer userId; + +} diff --git a/standard-library/src/main/java/com/yuanchu/limslaboratory/pojo/Standards.java b/standard-library/src/main/java/com/yuanchu/limslaboratory/pojo/Standards.java new file mode 100644 index 0000000..c9088fe --- /dev/null +++ b/standard-library/src/main/java/com/yuanchu/limslaboratory/pojo/Standards.java @@ -0,0 +1,65 @@ +package com.yuanchu.limslaboratory.pojo; + +import com.baomidou.mybatisplus.annotation.*; + +import java.time.LocalDateTime; +import java.io.Serializable; +import java.util.Date; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * <p> + * + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2023-07-11 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="Standards瀵硅薄", description="鏍囧噯") +public class Standards implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "鏍囧噯缂栧彿 yyMMdd000001(000001++)", example = "230711000001", required = true) + @TableId(value = "id", type = IdType.INPUT) + private String id; + + @ApiModelProperty(value = "鏍囧噯鍚嶇О", example = "鍏夌氦", required = true) + private String name; + + @ApiModelProperty(value = "鑻辨枃鍚嶇О", example = "OpticalFibre", required = true) + private String engName; + + @ApiModelProperty(value = "0锛氬師鏉愭枡锛�1锛氱數绾跨數缂�", example = "1", required = true) + private Integer type; + + @TableLogic(value = "1", delval = "0") + @ApiModelProperty(value = "閫昏緫鍒犻櫎 姝e父>=1,鍒犻櫎<=0", hidden = true) + private Integer state; + + @TableField(fill = FieldFill.INSERT) + @ApiModelProperty(value = "鍒涘缓鏃堕棿", hidden = true) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date createTime; + + @TableField(fill = FieldFill.INSERT_UPDATE) + @ApiModelProperty(value = "鏇存柊鏃堕棿", hidden = true) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date updateTime; + + @ApiModelProperty(value = "涔愯閿�", hidden = true) + @Version + private Integer version; + + @ApiModelProperty(value = "鍏宠仈瀛楁 鏇存柊浜篿d", hidden = true) + private Integer userId; + + +} diff --git a/standard-library/src/main/java/com/yuanchu/limslaboratory/service/SerialNumberService.java b/standard-library/src/main/java/com/yuanchu/limslaboratory/service/SerialNumberService.java new file mode 100644 index 0000000..94f4955 --- /dev/null +++ b/standard-library/src/main/java/com/yuanchu/limslaboratory/service/SerialNumberService.java @@ -0,0 +1,27 @@ +package com.yuanchu.limslaboratory.service; + +import com.yuanchu.limslaboratory.pojo.SerialNumber; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; +import java.util.Map; + +/** + * <p> + * 鏈嶅姟绫� + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2023-07-11 + */ +public interface SerialNumberService extends IService<SerialNumber> { + + /** + * 娣诲姞鍨嬪彿锛岄鍏堥渶瑕佸垽鏂敤鎴凤紝鏍囧噯缂栫爜鏄惁瀛樺湪 + * @param serialNumber + * @return + */ + Integer addSerialNumberInformation(SerialNumber serialNumber); + + List<Map<String, Object>> listSerialNumberInformation(String idOrNameOfSerialNumber, String standardsId); +} diff --git a/standard-library/src/main/java/com/yuanchu/limslaboratory/service/SpecificationsService.java b/standard-library/src/main/java/com/yuanchu/limslaboratory/service/SpecificationsService.java new file mode 100644 index 0000000..8991ba5 --- /dev/null +++ b/standard-library/src/main/java/com/yuanchu/limslaboratory/service/SpecificationsService.java @@ -0,0 +1,25 @@ +package com.yuanchu.limslaboratory.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.yuanchu.limslaboratory.pojo.Specifications; +import com.baomidou.mybatisplus.extension.service.IService; +import com.yuanchu.limslaboratory.vo.ListSpecificationsInformation; + +import java.util.Map; +import java.util.Objects; + +/** + * <p> + * 鏈嶅姟绫� + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2023-07-11 + */ +public interface SpecificationsService extends IService<Specifications> { + + Integer addSpecificationsInformation(Specifications specifications); + + IPage<ListSpecificationsInformation> listSpecificationsInformation(String specificationsName, String serialNumberId, Page<Objects> page); +} diff --git a/standard-library/src/main/java/com/yuanchu/limslaboratory/service/StandardsService.java b/standard-library/src/main/java/com/yuanchu/limslaboratory/service/StandardsService.java new file mode 100644 index 0000000..0225c87 --- /dev/null +++ b/standard-library/src/main/java/com/yuanchu/limslaboratory/service/StandardsService.java @@ -0,0 +1,27 @@ +package com.yuanchu.limslaboratory.service; + +import com.yuanchu.limslaboratory.pojo.Standards; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; +import java.util.Map; + +/** + * <p> + * 鏈嶅姟绫� + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2023-07-11 + */ +public interface StandardsService extends IService<Standards> { + + Integer addStandardsInformation(Standards standards); + + List<Map<String, Object>> listStandardsInformation(String IdOrNameOfStandards); + + /** + * 鏍规嵁Id鏌ヨ鏄惁瀛樺湪璇ユ爣鍑� + */ + Boolean standardsIsNull(String Id); +} diff --git a/standard-library/src/main/java/com/yuanchu/limslaboratory/service/impl/SerialNumberServiceImpl.java b/standard-library/src/main/java/com/yuanchu/limslaboratory/service/impl/SerialNumberServiceImpl.java new file mode 100644 index 0000000..65272ac --- /dev/null +++ b/standard-library/src/main/java/com/yuanchu/limslaboratory/service/impl/SerialNumberServiceImpl.java @@ -0,0 +1,64 @@ +package com.yuanchu.limslaboratory.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.yuanchu.limslaboratory.pojo.SerialNumber; +import com.yuanchu.limslaboratory.mapper.SerialNumberMapper; +import com.yuanchu.limslaboratory.pojo.Standards; +import com.yuanchu.limslaboratory.pojo.User; +import com.yuanchu.limslaboratory.service.SerialNumberService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yuanchu.limslaboratory.service.StandardsService; +import com.yuanchu.limslaboratory.service.UserService; +import com.yuanchu.limslaboratory.utils.MyUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.ObjectUtils; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * <p> + * 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2023-07-11 + */ +@Service +public class SerialNumberServiceImpl extends ServiceImpl<SerialNumberMapper, SerialNumber> implements SerialNumberService { + + @Resource + private SerialNumberMapper serialNumberMapper; + + @Autowired + private UserService userService; + + @Autowired + private StandardsService standardsService; + + @Override + public Integer addSerialNumberInformation(SerialNumber serialNumber) { + Boolean userIsNull = userService.userIsNull(serialNumber.getUserId()); + if (userIsNull){ + Boolean standardsIsNull = standardsService.standardsIsNull(serialNumber.getStandardsId()); + if (!ObjectUtils.isEmpty(standardsIsNull)){ + return serialNumberMapper.insert(serialNumber); + } + } + return 0; + } + + + @Override + public List<Map<String, Object>> listSerialNumberInformation(String idOrNameOfSerialNumber, String standardsId) { + LambdaQueryWrapper<SerialNumber> wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(SerialNumber::getStandardsId, standardsId); + wrapper.like(SerialNumber::getId, idOrNameOfSerialNumber); + wrapper.or().like(SerialNumber::getName, idOrNameOfSerialNumber); + wrapper.select(SerialNumber::getId, SerialNumber::getName); + return serialNumberMapper.selectMaps(wrapper); + } +} diff --git a/standard-library/src/main/java/com/yuanchu/limslaboratory/service/impl/SpecificationsServiceImpl.java b/standard-library/src/main/java/com/yuanchu/limslaboratory/service/impl/SpecificationsServiceImpl.java new file mode 100644 index 0000000..099e61e --- /dev/null +++ b/standard-library/src/main/java/com/yuanchu/limslaboratory/service/impl/SpecificationsServiceImpl.java @@ -0,0 +1,62 @@ +package com.yuanchu.limslaboratory.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.yuanchu.limslaboratory.pojo.Specifications; +import com.yuanchu.limslaboratory.mapper.SpecificationsMapper; +import com.yuanchu.limslaboratory.service.SpecificationsService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yuanchu.limslaboratory.service.StandardsService; +import com.yuanchu.limslaboratory.service.UserService; +import com.yuanchu.limslaboratory.vo.ListSpecificationsInformation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.ObjectUtils; + +import javax.annotation.Resource; +import java.util.Map; +import java.util.Objects; + +/** + * <p> + * 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2023-07-11 + */ +@Service +public class SpecificationsServiceImpl extends ServiceImpl<SpecificationsMapper, Specifications> implements SpecificationsService { + + @Resource + private SpecificationsMapper specificationsMapper; + + @Autowired + private StandardsService standardsService; + + @Autowired + private UserService userService; + + @Override + public Integer addSpecificationsInformation(Specifications specifications) { + Boolean userIsNull = userService.userIsNull(specifications.getUserId()); + if (userIsNull){ + Boolean standardsIsNull = standardsService.standardsIsNull(specifications.getSerialId()); + if (!ObjectUtils.isEmpty(standardsIsNull)){ + LambdaQueryWrapper<Specifications> wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(Specifications::getNumber, specifications.getNumber()); + Specifications specificationsNumberIsNull = specificationsMapper.selectOne(wrapper); + if (ObjectUtils.isEmpty(specificationsNumberIsNull)){ + return specificationsMapper.insert(specifications); + } + } + } + return 0; + } + + @Override + public IPage<ListSpecificationsInformation> listSpecificationsInformation(String specificationsName, String serialNumberId, Page<Objects> page) { + return specificationsMapper.listSpecificationsInformation(specificationsName,serialNumberId,page); + } +} diff --git a/standard-library/src/main/java/com/yuanchu/limslaboratory/service/impl/StandardsServiceImpl.java b/standard-library/src/main/java/com/yuanchu/limslaboratory/service/impl/StandardsServiceImpl.java new file mode 100644 index 0000000..d82050d --- /dev/null +++ b/standard-library/src/main/java/com/yuanchu/limslaboratory/service/impl/StandardsServiceImpl.java @@ -0,0 +1,57 @@ +package com.yuanchu.limslaboratory.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.yuanchu.limslaboratory.pojo.Standards; +import com.yuanchu.limslaboratory.mapper.StandardsMapper; +import com.yuanchu.limslaboratory.pojo.User; +import com.yuanchu.limslaboratory.service.StandardsService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yuanchu.limslaboratory.service.UserService; +import com.yuanchu.limslaboratory.utils.MyUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.ObjectUtils; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +/** + * <p> + * 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2023-07-11 + */ +@Service +public class StandardsServiceImpl extends ServiceImpl<StandardsMapper, Standards> implements StandardsService { + + @Resource + private StandardsMapper standardsMapper; + + @Autowired + private UserService userService; + + @Override + public Integer addStandardsInformation(Standards standards) { + Boolean userIsNull = userService.userIsNull(standards.getUserId()); + if (userIsNull){ + return standardsMapper.insert(standards); + } + return 0; + } + + @Override + public List<Map<String, Object>> listStandardsInformation(String IdOrNameOfStandards) { + return standardsMapper.listStandardsInformation(IdOrNameOfStandards); + } + + @Override + public Boolean standardsIsNull(String Id) { + LambdaQueryWrapper<Standards> wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(Standards::getId, Id); + Standards standardsIsNull = standardsMapper.selectOne(wrapper); + return !ObjectUtils.isEmpty(standardsIsNull); + } +} diff --git a/standard-library/src/main/java/com/yuanchu/limslaboratory/vo/ListSpecificationsInformation.java b/standard-library/src/main/java/com/yuanchu/limslaboratory/vo/ListSpecificationsInformation.java new file mode 100644 index 0000000..c3e13de --- /dev/null +++ b/standard-library/src/main/java/com/yuanchu/limslaboratory/vo/ListSpecificationsInformation.java @@ -0,0 +1,27 @@ +package com.yuanchu.limslaboratory.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; + +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="ListSpecificationsInformation瀵硅薄", description="鐢ㄤ簬鍒嗛〉鏄剧ず瑙勬牸鏁版嵁") +public class ListSpecificationsInformation { + + private Integer id; + + private String name; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date updateTime; + + private String username; + + private String vel; + + private Integer spe_state; +} diff --git a/standard-library/src/main/resources/mapper/SerialNumberMapper.xml b/standard-library/src/main/resources/mapper/SerialNumberMapper.xml new file mode 100644 index 0000000..f9f96e2 --- /dev/null +++ b/standard-library/src/main/resources/mapper/SerialNumberMapper.xml @@ -0,0 +1,5 @@ +<?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.SerialNumberMapper"> + +</mapper> diff --git a/standard-library/src/main/resources/mapper/SpecificationsMapper.xml b/standard-library/src/main/resources/mapper/SpecificationsMapper.xml new file mode 100644 index 0000000..aaf57c3 --- /dev/null +++ b/standard-library/src/main/resources/mapper/SpecificationsMapper.xml @@ -0,0 +1,23 @@ +<?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.SpecificationsMapper"> + + <resultMap id="listSpecificationsInformationMap" type="com.yuanchu.limslaboratory.vo.ListSpecificationsInformation"> + <result property="id" column="id"/> + <result property="name" column="name"/> + <result property="updateTime" column="update_time"/> + <result property="username" column="username"/> + <result property="vel" column="vel"/> + <result property="spe_state" column="spe_state"/> + </resultMap> + + <select id="listSpecificationsInformation" resultMap="listSpecificationsInformationMap"> + SELECT s.`id`,s.`name`,s.`update_time`,u.`name` username,s.`vel`,s.`spe_state` + FROM specifications s,`user` u + WHERE s.`user_id` = u.`id` + AND s.`serial_id` = #{serialNumberId} + <if test="specificationsName != null"> + AND s.`name` = #{specificationsName} + </if> + </select> +</mapper> diff --git a/standard-library/src/main/resources/mapper/StandardsMapper.xml b/standard-library/src/main/resources/mapper/StandardsMapper.xml new file mode 100644 index 0000000..35264ea --- /dev/null +++ b/standard-library/src/main/resources/mapper/StandardsMapper.xml @@ -0,0 +1,13 @@ +<?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.StandardsMapper"> + + <select id="listStandardsInformation" resultType="Map"> + SELECT s.`id`, s.`name`, s.`eng_name`, DATE_FORMAT(s.`create_time`, '%Y-%m-%d %H:%i') createTime + FROM standards s + <if test="idOrNameOfStandards != null"> + WHERE s.`id` LIKE concat('%',#{idOrNameOfStandards},'%') + OR s.name LIKE concat('%',#{idOrNameOfStandards},'%') + </if> + </select> +</mapper> diff --git a/sys/pom.xml b/sys/pom.xml index 23b57dc..eb71288 100644 --- a/sys/pom.xml +++ b/sys/pom.xml @@ -16,12 +16,20 @@ <packaging>jar</packaging> <dependencies> - <!--鐢ㄦ埛鏈嶅姟--> + <!--鐢ㄦ埛鏈嶅姟妯″潡--> <dependency> <groupId>com.yunchu.limslaboratory</groupId> <artifactId>user-server</artifactId> <version>${project.parent.version}</version> </dependency> + + <!--鏍囧噯搴撴ā鍧�--> + <dependency> + <groupId>com.yunchu.limslaboratory</groupId> + <artifactId>standard-library</artifactId> + <version>${project.parent.version}</version> + </dependency> + <!--鍩虹妗嗘灦绫�--> <dependency> <groupId>com.yunchu.limslaboratory</groupId> diff --git a/sys/src/main/resources/application-dev.yml b/sys/src/main/resources/application-dev.yml index 889f183..f06d3ad 100644 --- a/sys/src/main/resources/application-dev.yml +++ b/sys/src/main/resources/application-dev.yml @@ -34,27 +34,25 @@ filters: stat,wall,log4j # 閰嶇疆鐩戞帶缁熻鎷︽埅鐨刦ilters锛屽幓鎺夊悗鐩戞帶鐣岄潰sql鏃犳硶缁熻锛�'wall'鐢ㄤ簬闃茬伀澧� useGlobalDataSourceStat: true #鍚堝苟澶氫釜DruidDatasource鐨勭洃鎺ф暟鎹� connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500; #閫氳繃connectProperties灞炴�ф潵鎵撳紑mergesql鍔熻兘缃楁參sQL璁板綍 - - -redis: - # redis鏁版嵁搴撶储寮�(榛樿涓�0)锛屾垜浠娇鐢ㄧ储寮曚负3鐨勬暟鎹簱锛岄伩鍏嶅拰鍏朵粬鏁版嵁搴撳啿绐� - database: 0 - # redis鏈嶅姟鍣ㄥ湴鍧�锛堥粯璁や负loaclhost锛� - host: 127.0.0.1 - # redis绔彛锛堥粯璁や负6379锛� - port: 6379 - # redis璁块棶瀵嗙爜锛堥粯璁や负绌猴級 - # password: - # redis杩炴帴瓒呮椂鏃堕棿锛堝崟浣嶆绉掞級 - timeout: 0 - # redis杩炴帴姹犻厤缃� - pool: - # 鏈�澶у彲鐢ㄨ繛鎺ユ暟锛堥粯璁や负8锛岃礋鏁拌〃绀烘棤闄愶級 - max-active: 8 - # 鏈�澶х┖闂茶繛鎺ユ暟锛堥粯璁や负8锛岃礋鏁拌〃绀烘棤闄愶級 - max-idle: 8 - # 鏈�灏忕┖闂茶繛鎺ユ暟锛堥粯璁や负0锛岃鍊煎彧鏈変负姝f暟鎵嶆湁鐢級 - min-idle: 0 - # 浠庤繛鎺ユ睜涓幏鍙栬繛鎺ユ渶澶х瓑寰呮椂闂达紙榛樿涓�-1锛屽崟浣嶄负姣锛岃礋鏁拌〃绀烘棤闄愶級 - max-wait: -1 + redis: + # redis鏁版嵁搴撶储寮�(榛樿涓�0)锛屾垜浠娇鐢ㄧ储寮曚负3鐨勬暟鎹簱锛岄伩鍏嶅拰鍏朵粬鏁版嵁搴撳啿绐� + database: 0 + # redis鏈嶅姟鍣ㄥ湴鍧�锛堥粯璁や负localhost锛� + host: localhost + # redis绔彛锛堥粯璁や负6379锛� + port: 6380 + # redis璁块棶瀵嗙爜锛堥粯璁や负绌猴級 + password: null + # redis杩炴帴瓒呮椂鏃堕棿锛堝崟浣嶆绉掞級 + timeout: 0 + # redis杩炴帴姹犻厤缃� + pool: + # 鏈�澶у彲鐢ㄨ繛鎺ユ暟锛堥粯璁や负8锛岃礋鏁拌〃绀烘棤闄愶級 + max-active: 8 + # 鏈�澶х┖闂茶繛鎺ユ暟锛堥粯璁や负8锛岃礋鏁拌〃绀烘棤闄愶級 + max-idle: 8 + # 鏈�灏忕┖闂茶繛鎺ユ暟锛堥粯璁や负0锛岃鍊煎彧鏈変负姝f暟鎵嶆湁鐢級 + min-idle: 0 + # 浠庤繛鎺ユ睜涓幏鍙栬繛鎺ユ渶澶х瓑寰呮椂闂达紙榛樿涓�-1锛屽崟浣嶄负姣锛岃礋鏁拌〃绀烘棤闄愶級 + max-wait: -1 diff --git a/sys/src/main/resources/application.yml b/sys/src/main/resources/application.yml index 4457033..6b18398 100644 --- a/sys/src/main/resources/application.yml +++ b/sys/src/main/resources/application.yml @@ -5,12 +5,12 @@ active: dev login: - userID: 9c08241a7c38cb25efafde9dd1347bab - secret: D1E3ED958C5DB5BDF1FC9F77CE54B29B016213acd698f4686cac2f399f1c8d18 + userID: c8b1aaacec366c24e5d18c7eea9e551b + secret: 701C85FCE0F7CFD714C2052D77098DC7f407b0ee79210bcef51787a0eb8ec7a5 mybatis-plus: type-aliases-package: com.yuanchu.limslaboratory.pojo - mapper-locations: classpath:mapper/*.xml + mapper-locations: classpath*:/mapper/*.xml global-config: banner: off # 鍏抽棴mybatis-plus鍚姩鍥炬爣 @@ -24,4 +24,4 @@ httpclient: enabled: false # 鍏抽棴 httpclient okhttp: - enabled: true # 寮�鍚� okhttp \ No newline at end of file + enabled: true # 寮�鍚� okhttp diff --git a/sys/src/test/java/com/yuanchu/limslaboratory/CodeGenerator.java b/sys/src/test/java/com/yuanchu/limslaboratory/CodeGenerator.java index a70131e..8cb102c 100644 --- a/sys/src/test/java/com/yuanchu/limslaboratory/CodeGenerator.java +++ b/sys/src/test/java/com/yuanchu/limslaboratory/CodeGenerator.java @@ -22,7 +22,7 @@ public static String database_username = "root"; public static String database_password= "123456"; public static String author = "姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃"; - public static String model_name = "/user-server"; // 濡傛灉涓哄垎甯冨紡濉瓙妯″潡鍚嶇О锛屽鏋滀笉鏄垎甯冨紡涓虹┖鍗冲彲 + public static String model_name = "/standard-library"; // 濡傛灉涓哄垎甯冨紡濉瓙妯″潡鍚嶇О锛屽鏋滀笉鏄垎甯冨紡涓虹┖鍗冲彲 public static String setParent = "com.yuanchu.limslaboratory"; // 鍖呰矾寰� public static Boolean Override = false; // 鏄惁瑕嗙洊鍘熸潵鐨勬枃浠讹紵 @@ -98,7 +98,7 @@ .setColumnNaming(NamingStrategy.underline_to_camel) .setEntityLombokModel(true) .setRestControllerStyle(true) - .setInclude(scanner("琛ㄥ悕锛屽涓┖鏍煎垎鍓�").split(",")) + .setInclude(scanner("琛ㄥ悕锛屽涓亾鍙峰垎鍓�").split(",")) .setControllerMappingHyphenStyle(true) .setTablePrefix("m_"); mpg.setStrategy(strategy); diff --git a/user-server/pom.xml b/user-server/pom.xml index 96c60be..1fb88b1 100644 --- a/user-server/pom.xml +++ b/user-server/pom.xml @@ -16,11 +16,6 @@ <packaging>jar</packaging> <dependencies> <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-test</artifactId> - </dependency> - - <dependency> <groupId>com.yunchu.limslaboratory</groupId> <artifactId>framework</artifactId> <version>${project.parent.version}</version> 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 b54743d..8bc7c5a 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 @@ -2,6 +2,7 @@ import com.yuanchu.limslaboratory.pojo.User; import com.yuanchu.limslaboratory.shiro.utils.JwtUtils; +import com.yuanchu.limslaboratory.utils.MyUtil; import com.yuanchu.limslaboratory.utils.RedisUtil; import com.yuanchu.limslaboratory.vo.Result; import org.springframework.beans.factory.annotation.Value; @@ -23,46 +24,50 @@ @Value("${login.secret}") private String LoginSecret; -// public Result<Map<String, Object>> LoginExamine(User user){ -// Map<String, Object> mapData = new HashMap<>(); -// mapData.put("LoginUserID", LoginUserID); -// mapData.put("LoginSecret", LoginSecret); -// Result<?> code = userClient.BusynessUserLogin(mapData); -// if (code.getCode() == 200){ -// Result<?> result = userClient.BusynessUserLoginToken(code.getData().toString()); -// if (result.getCode() == 200){ -// Map data = (Map) result.getData(); -// String token = data.get("token").toString(); -// data.remove("token"); -//// user.setMap(data); -// //瀛樺叆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, 168); -// return Result.success(map); -// } else { -// return Result.fail(result.getMessage()); -// } -// } else { -// return Result.fail(code.getMessage()); -// } -// } - - 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); + Map<String, Object> mapData = new HashMap<>(); + mapData.put("LoginUserID", LoginUserID); + mapData.put("LoginSecret", LoginSecret); + Result<?> code = userClient.BusynessUserLogin(mapData); + if (code.getCode() == 200){ + Result<?> result = userClient.BusynessUserLoginToken(code.getData().toString()); + if (result.getCode() == 200){ + Map data = (Map) result.getData(); + String token = data.get("token").toString(); + data.remove("token"); + HashMap<String, Object> mapRedis = new HashMap<>(); + mapRedis.put("id", user.getId()); + mapRedis.put("account", user.getAccount()); + mapRedis.put("name", user.getName()); + mapRedis.put("data", data); + //瀛樺叆redis,浜屼釜灏忔椂鍚庡垹闄� + RedisUtil.set(token, mapRedis, 120); + // 灏嗙鍙戠殑 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, 168); + return Result.success(map); + } else { + return Result.fail(result.getMessage()); + } + } else { + return Result.fail(code.getMessage()); + } } + + +// 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/UserController.java b/user-server/src/main/java/com/yuanchu/limslaboratory/controller/UserController.java index a91ab59..e28ea7d 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 @@ -1,13 +1,18 @@ package com.yuanchu.limslaboratory.controller; +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.SpringUtils; +import com.yuanchu.limslaboratory.utils.SpringUtil; +import com.yuanchu.limslaboratory.vo.NewPersonnelVo; +import com.yuanchu.limslaboratory.vo.PagePersonnelVo; import com.yuanchu.limslaboratory.vo.Result; +import com.yuanchu.limslaboratory.vo.UpdatePersonnelVo; import io.swagger.annotations.*; import org.apache.shiro.SecurityUtils; import org.apache.shiro.authc.IncorrectCredentialsException; @@ -15,13 +20,11 @@ import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.subject.Subject; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; - -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.HashMap; import java.util.Map; +import java.util.Objects; /** * <p> @@ -45,7 +48,7 @@ @ApiImplicitParam(name = "password", value = "瀵嗙爜", dataTypeClass = String.class, required = true) }) @PostMapping("/login") - public Result<?> UserLogin(String account, String password){ + public Result<?> userLogin(String account, String password){ boolean loginSuccess = false; Subject subject = SecurityUtils.getSubject(); if (!subject.isAuthenticated()) { @@ -61,14 +64,25 @@ } if (loginSuccess) { // 鑾峰彇shiroRealm涓殑鏁版嵁 - ShiroRealm bean = SpringUtils.getBean(ShiroRealm.class); + ShiroRealm bean = SpringUtil.getBean(ShiroRealm.class); User user = bean.user; user.setPassword(null); - UserLoginUtils bean1 = SpringUtils.getBean(UserLoginUtils.class); + UserLoginUtils bean1 = SpringUtil.getBean(UserLoginUtils.class); return bean1.LoginExamine(user); }else { return Result.fail("鐧诲綍澶辫触"); } + } + + @ApiOperation("鐧诲綍-->鑾峰彇鐢ㄦ埛淇℃伅") + @GetMapping("/info") + public Result<?> getUserInfo(@RequestHeader("X-Token") String token){ + //鏍规嵁token鑾峰彇鐢ㄦ埛淇℃伅 + Map<String,Object> data = userService.getUserInfo(token); + if (data != null){ + return Result.success(data); + } + return Result.fail(202,"鐢ㄦ埛鐧诲綍淇℃伅鏃犳晥锛岃閲嶆柊鐧诲綍"); } @PostMapping("/getUserById") @@ -88,8 +102,41 @@ } catch (Exception e) { return Result.fail("鐢ㄦ埛id涓虹┖!"); } - - } + @PostMapping("/add_new_personnel") + @ApiOperation("瀹為獙瀹ょ鐞�-->浜哄憳绠$悊-->鏂板浜哄憳") + public Result<?> addNewPersonnel(@RequestBody NewPersonnelVo newPersonnelVo) { + newPersonnelVo.setPassword("123456"); + Integer isAddSuccess = userService.addNewPersonnel(newPersonnelVo); + if (isAddSuccess == 1){ + return Result.success("娣诲姞銆�" + newPersonnelVo.getName() + "銆戞垚鍔燂紝榛樿瀵嗙爜涓猴細" + newPersonnelVo.getPassword()); + } + return Result.fail("娣诲姞澶辫触锛�"); + } + + @PutMapping("/update_new_personnel") + @ApiOperation("瀹為獙瀹ょ鐞�-->浜哄憳绠$悊-->缂栬緫鎿嶄綔") + public Result<?> updateNewPersonnel(@RequestBody UpdatePersonnelVo updatePersonnelVo) { + Integer isUpdateSuccess = userService.updateNewPersonnel(updatePersonnelVo); + if (isUpdateSuccess == 1){ + return Result.success("鏇存柊銆�" + updatePersonnelVo.getName() + "銆戞垚鍔�"); + } + return Result.fail("鏇存柊銆�" + updatePersonnelVo.getName() + "銆戝け璐�"); + } + + @GetMapping("/list_new_personnel") + @ApiOperation("瀹為獙瀹ょ鐞�-->浜哄憳绠$悊-->鍒嗛〉鏌ヨ") + @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) + }) + public Result<Map<String, Object>> getNewPersonnelPage(Integer pageNo, Integer pageSize, String name) { + IPage<PagePersonnelVo> PageList = userService.getNewPersonnelPage(name, new Page<Objects>(pageNo, pageSize)); + Map<String, Object> map = new HashMap<>(); + map.put("row", PageList.getRecords()); + map.put("total", PageList.getTotal()); + return Result.success(map); + } } 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 a0b0e21..4e78a8f 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 @@ -1,10 +1,14 @@ package com.yuanchu.limslaboratory.mapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +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.springframework.stereotype.Repository; import java.util.Map; +import java.util.Objects; /** * <p> @@ -16,4 +20,6 @@ */ public interface UserMapper extends BaseMapper<User> { Map<String, String> selectUserByUserId(int userId); + + IPage<PagePersonnelVo> getNewPersonnelPage(String name, Page page); } diff --git a/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/Enterprise.java b/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/Enterprise.java index a94a473..6b5fb32 100644 --- a/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/Enterprise.java +++ b/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/Enterprise.java @@ -1,9 +1,7 @@ package com.yuanchu.limslaboratory.pojo; -import com.baomidou.mybatisplus.annotation.FieldFill; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.*; + import java.time.LocalDateTime; import java.io.Serializable; import java.util.Date; @@ -61,6 +59,7 @@ @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone="GMT+8") private Date updateTime; + @Version @ApiModelProperty(value = "閿�") private Integer version; diff --git a/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/EnterpriseUserList.java b/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/EnterpriseUserList.java index 2950361..35ae87b 100644 --- a/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/EnterpriseUserList.java +++ b/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/EnterpriseUserList.java @@ -1,9 +1,7 @@ package com.yuanchu.limslaboratory.pojo; -import com.baomidou.mybatisplus.annotation.FieldFill; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.*; + import java.time.LocalDateTime; import java.io.Serializable; import java.util.Date; @@ -39,7 +37,8 @@ @ApiModelProperty(value = "鐢ㄦ埛id") private Integer userId; - @ApiModelProperty(value = "0:鍒犻櫎;1:姝e父") + @TableLogic(value = "1", delval = "0") + @ApiModelProperty(value = "閫昏緫鍒犻櫎 姝e父>=1,鍒犻櫎<=0") private Integer state; @TableField(fill = FieldFill.INSERT) @@ -50,6 +49,7 @@ @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone="GMT+8") private Date updateTime; + @Version private Integer version; diff --git a/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/Role.java b/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/Role.java index cf2e20c..c568112 100644 --- a/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/Role.java +++ b/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/Role.java @@ -1,9 +1,7 @@ package com.yuanchu.limslaboratory.pojo; -import com.baomidou.mybatisplus.annotation.FieldFill; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.*; + import java.time.LocalDateTime; import java.io.Serializable; import java.util.Date; @@ -39,6 +37,7 @@ @ApiModelProperty(value = "0锛氭棤鏉冮檺锛�1锛氭湁鏉冮檺") private Integer power; + @TableLogic(value = "1", delval = "0") @ApiModelProperty(value = "閫昏緫鍒犻櫎 姝e父>=1,鍒犻櫎<=0") private Integer state; @@ -50,6 +49,7 @@ @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone="GMT+8") private Date updateTime; + @Version @ApiModelProperty(value = "涔愯閿�") private Integer version; 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 50c73a1..ee1ba41 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 @@ -3,14 +3,19 @@ import com.baomidou.mybatisplus.annotation.*; import java.io.Serializable; +import java.time.LocalDateTime; import java.util.Date; +import java.util.Map; import com.fasterxml.jackson.annotation.JsonFormat; +import com.sun.jmx.snmp.Timestamp; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; +import org.springframework.format.annotation.DateTimeFormat; /** * <p> @@ -20,6 +25,7 @@ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 * @since 2023-07-07 */ +@Accessors(chain = true) @Data @NoArgsConstructor @EqualsAndHashCode(callSuper = false) @@ -50,21 +56,21 @@ @ApiModelProperty(value = "骞撮緞") private Integer age; - @TableLogic(value = "1", delval = "0") - @ApiModelProperty(value = "鍦ㄨ亴鐘舵�� 姝e父>=1,绂昏亴<=0") - private Integer jobState; - @ApiModelProperty(value = "涓�х鍚�") private String info; + @ApiModelProperty(value = "鍦ㄨ亴鐘舵�� 姝e父>=1,绂昏亴<=0") + private Integer jobState; + @TableField(fill = FieldFill.INSERT) - @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone="GMT+8") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date createTime; @TableField(fill = FieldFill.INSERT_UPDATE) - @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone="GMT+8") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date updateTime; + @Version private Integer version; @ApiModelProperty(value = "鍏宠仈 瑙掕壊id") 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 d01b0bf..cab8442 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 @@ -1,11 +1,17 @@ package com.yuanchu.limslaboratory.service; +import com.baomidou.mybatisplus.core.metadata.IPage; +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 java.io.Serializable; import java.util.Map; +import java.util.Objects; /** * <p> @@ -20,4 +26,17 @@ Map<String, String> selectUserByUserId(int userId); User AccordingUsernameSelectAll(String account); + + Integer addNewPersonnel(NewPersonnelVo newPersonnelVo); + + Integer updateNewPersonnel(UpdatePersonnelVo updatePersonnelVo); + + IPage<PagePersonnelVo> getNewPersonnelPage(String name, Page page); + + Map<String, Object> getUserInfo(String token); + + /** + * 鏍规嵁Id鏌ヨ鏄惁瀛樺湪璇ョ敤鎴� + */ + Boolean userIsNull(Integer Id); } 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 7f6d726..fc5490c 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 @@ -1,18 +1,25 @@ package com.yuanchu.limslaboratory.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yuanchu.limslaboratory.pojo.User; import com.yuanchu.limslaboratory.mapper.UserMapper; import com.yuanchu.limslaboratory.service.UserService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Repository; +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 org.springframework.stereotype.Service; +import org.springframework.util.ObjectUtils; import javax.annotation.Resource; +import java.util.HashMap; import java.util.Map; - -import javax.annotation.Resource; +import java.util.Objects; /** * <p> @@ -26,19 +33,82 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService { @Resource - UserMapper userMapper; + private UserMapper userMapper; + + @Override + public Map<String, Object> getUserInfo(String token) { + //鏍规嵁token鑾峰彇鐢ㄦ埛淇℃伅 + Object obj = RedisUtil.get(token); + if (!ObjectUtils.isEmpty(obj)){ + Map loginUser = (Map) obj; + Map map = (Map)loginUser.get("data"); + Object residualTime = map.get("residualTime"); + int i = Integer.parseInt(residualTime.toString()); + String remind = null; + if (i <= 30) { + remind = "鎮ㄦ墍浣跨敤鐨勭郴缁熷嵆灏嗚繃鏈燂紒璇疯仈绯荤鐞嗗憳锛�"; + } + Map<String, Object> data = new HashMap<>(); + data.put("name",loginUser.get("name")); + data.put("remind", remind); + return data; + } + return null; + } + + @Override + public Boolean userIsNull(Integer Id) { + LambdaQueryWrapper<User> userLambdaQueryWrapper = new LambdaQueryWrapper<>(); + userLambdaQueryWrapper.eq(User::getId, Id); + userLambdaQueryWrapper.select(User::getName); + User user = userMapper.selectOne(userLambdaQueryWrapper); + return !ObjectUtils.isEmpty(user); + } @Override public Map<String, String> selectUserByUserId(int userId) { return userMapper.selectUserByUserId(userId); } - @Resource - private UserMapper mapper; @Override public User AccordingUsernameSelectAll(String account) { LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>(); wrapper.eq(User::getAccount, account); - return mapper.selectOne(wrapper); + wrapper.select(User::getPassword, User::getId, User::getName, User::getAccount); + return userMapper.selectOne(wrapper); + } + + @Override + public Integer addNewPersonnel(NewPersonnelVo newPersonnelVo) { + User user = new User() + .setName(newPersonnelVo.getName()) + .setAccount(newPersonnelVo.getAccount()) + .setAge(newPersonnelVo.getAge()) + .setPhone(newPersonnelVo.getPhone()) + .setEmail(newPersonnelVo.getEmail()) + .setRoleId(newPersonnelVo.getRole_id()) + .setPassword(newPersonnelVo.getPassword()); + return userMapper.insert(user); + } + + @Override + public Integer updateNewPersonnel(UpdatePersonnelVo updatePersonnelVo) { + User user = new User() + .setName(updatePersonnelVo.getName()) + .setAccount(updatePersonnelVo.getAccount()) + .setAge(updatePersonnelVo.getAge()) + .setPhone(updatePersonnelVo.getPhone()) + .setEmail(updatePersonnelVo.getEmail()) + .setRoleId(updatePersonnelVo.getRole_id()) + .setPassword(updatePersonnelVo.getPassword()) + .setJobState(updatePersonnelVo.getJobState()); + LambdaUpdateWrapper<User> updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(User::getId, updatePersonnelVo.getId()); + return userMapper.update(user, updateWrapper); + } + + @Override + public IPage<PagePersonnelVo> getNewPersonnelPage(String name, Page page) { + return userMapper.getNewPersonnelPage(name, page); } } diff --git a/user-server/src/main/java/com/yuanchu/limslaboratory/shiro/config/ShiroConfig.java b/user-server/src/main/java/com/yuanchu/limslaboratory/shiro/config/ShiroConfig.java index be5d706..382e740 100644 --- a/user-server/src/main/java/com/yuanchu/limslaboratory/shiro/config/ShiroConfig.java +++ b/user-server/src/main/java/com/yuanchu/limslaboratory/shiro/config/ShiroConfig.java @@ -123,15 +123,27 @@ return securityManager; } -// 鍒涘缓鑷畾涔塕ealm + // 鍒涘缓鑷畾涔塕ealm @Bean public Realm shiroRealm() { - return new ShiroRealm(); + ShiroRealm realm = new ShiroRealm(); +// HashedCredentialsMatcher credentialsMatcher = new HashedCredentialsMatcher(); +//// //璁剧疆浣跨敤MD5鍔犲瘑绠楁硶 +//// credentialsMatcher.setHashAlgorithmName(Md5Hash.ALGORITHM_NAME); +//// //鏁e垪娆℃暟 +//// credentialsMatcher.setHashIterations(1024); +// realm.setCredentialsMatcher(credentialsMatcher); + return realm; } @Bean public Realm JwtRealm(){ - return new JwtRealm(); + JwtRealm jwtRealm = new JwtRealm(); + // 璁剧疆鍔犲瘑绠楁硶 + CredentialsMatcher credentialsMatcher = new JwtCredentialsMatcher(); + // 璁剧疆鍔犲瘑娆℃暟 + jwtRealm.setCredentialsMatcher(credentialsMatcher); + return jwtRealm; } diff --git a/user-server/src/main/java/com/yuanchu/limslaboratory/shiro/realm/JwtRealm.java b/user-server/src/main/java/com/yuanchu/limslaboratory/shiro/realm/JwtRealm.java index 4293742..d75fd50 100644 --- a/user-server/src/main/java/com/yuanchu/limslaboratory/shiro/realm/JwtRealm.java +++ b/user-server/src/main/java/com/yuanchu/limslaboratory/shiro/realm/JwtRealm.java @@ -2,10 +2,8 @@ import com.yuanchu.limslaboratory.pojo.User; import com.yuanchu.limslaboratory.shiro.JwtToken; -import com.yuanchu.limslaboratory.shiro.utils.JwtCredentialsMatcher; import com.yuanchu.limslaboratory.utils.RedisUtil; import org.apache.shiro.authc.*; -import org.apache.shiro.authc.credential.CredentialsMatcher; import org.apache.shiro.authz.AuthorizationInfo; import org.apache.shiro.authz.SimpleAuthorizationInfo; import org.apache.shiro.realm.AuthorizingRealm; @@ -46,12 +44,5 @@ protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { SimpleAuthorizationInfo info = new SimpleAuthorizationInfo(); return info; - } - - @Override - public void setCredentialsMatcher(CredentialsMatcher credentialsMatcher) { - // 璁剧疆鍔犲瘑绠楁硶 - CredentialsMatcher jwtCredentialsMatcher = new JwtCredentialsMatcher(); - super.setCredentialsMatcher(jwtCredentialsMatcher); } } diff --git a/user-server/src/main/java/com/yuanchu/limslaboratory/shiro/realm/ShiroRealm.java b/user-server/src/main/java/com/yuanchu/limslaboratory/shiro/realm/ShiroRealm.java index ec429f4..24b24b1 100644 --- a/user-server/src/main/java/com/yuanchu/limslaboratory/shiro/realm/ShiroRealm.java +++ b/user-server/src/main/java/com/yuanchu/limslaboratory/shiro/realm/ShiroRealm.java @@ -2,10 +2,8 @@ import com.yuanchu.limslaboratory.pojo.User; import com.yuanchu.limslaboratory.service.UserService; -import com.yuanchu.limslaboratory.utils.MyUtils; -import com.yuanchu.limslaboratory.utils.SpringUtils; +import com.yuanchu.limslaboratory.utils.SpringUtil; import org.apache.shiro.authc.*; -import org.apache.shiro.authc.credential.CredentialsMatcher; import org.apache.shiro.authz.AuthorizationInfo; import org.apache.shiro.realm.AuthorizingRealm; import org.apache.shiro.subject.PrincipalCollection; @@ -32,24 +30,12 @@ protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) { String principal = (String) authenticationToken.getPrincipal(); //鑾峰彇UserService瀵硅薄 - UserService userService = SpringUtils.getBean(UserService.class); + UserService userService = SpringUtil.getBean(UserService.class); user = userService.AccordingUsernameSelectAll(principal); - MyUtils.PrintLog(user.toString()); if (!ObjectUtils.isEmpty(user)) { return new SimpleAuthenticationInfo(user.getAccount(), user.getPassword(), this.getName()); } else { throw new UnknownAccountException(); } - } - - @Override - public void setCredentialsMatcher(CredentialsMatcher credentialsMatcher) { -// HashedCredentialsMatcher hashedCredentialsMatcher = new HashedCredentialsMatcher(); -// //璁剧疆浣跨敤MD5鍔犲瘑绠楁硶 -// hashedCredentialsMatcher.setHashAlgorithmName(Md5Hash.ALGORITHM_NAME); -// //鏁e垪娆℃暟 -// hashedCredentialsMatcher.setHashIterations(1024); -// super.setCredentialsMatcher(hashedCredentialsMatcher); - super.setCredentialsMatcher(credentialsMatcher); } } diff --git a/user-server/src/main/java/com/yuanchu/limslaboratory/shiro/utils/JwtUtils.java b/user-server/src/main/java/com/yuanchu/limslaboratory/shiro/utils/JwtUtils.java index f2cd618..68ae14f 100644 --- a/user-server/src/main/java/com/yuanchu/limslaboratory/shiro/utils/JwtUtils.java +++ b/user-server/src/main/java/com/yuanchu/limslaboratory/shiro/utils/JwtUtils.java @@ -15,7 +15,6 @@ import org.springframework.util.ObjectUtils; import javax.annotation.PostConstruct; -import java.io.UnsupportedEncodingException; import java.util.Calendar; import java.util.Date; import java.util.Map; diff --git a/user-server/src/main/java/com/yuanchu/limslaboratory/vo/NewPersonnelVo.java b/user-server/src/main/java/com/yuanchu/limslaboratory/vo/NewPersonnelVo.java new file mode 100644 index 0000000..ab2cc9a --- /dev/null +++ b/user-server/src/main/java/com/yuanchu/limslaboratory/vo/NewPersonnelVo.java @@ -0,0 +1,33 @@ +package com.yuanchu.limslaboratory.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="NewPersonnelVo瀵硅薄", description="鐢ㄤ簬瀵硅鑹茬鐞嗙殑娣诲姞") +public class NewPersonnelVo { + + @ApiModelProperty(value = "濮撳悕", example = "灏忛粦", required = true) + private String name; + + @ApiModelProperty(value = "璐﹀彿", example = "45612345", required = true) + private String account; + + @ApiModelProperty(value = "0锛氭棤鏉冮檺锛�1锛氭湁鏉冮檺", example = "1", required = true) + private Integer role_id; + + @ApiModelProperty(value = "骞撮緞", example = "23") + private Integer age; + + @ApiModelProperty(value = "骞撮緞", example = "23", hidden = true) + private String password; + + @ApiModelProperty(value = "鎵嬫満鍙�", example = "12345678981") + private String phone; + + @ApiModelProperty(value = "閭", example = "12345678@qq.com") + private String email; +} 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 new file mode 100644 index 0000000..b5564c0 --- /dev/null +++ b/user-server/src/main/java/com/yuanchu/limslaboratory/vo/PagePersonnelVo.java @@ -0,0 +1,39 @@ +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 Integer 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/user-server/src/main/java/com/yuanchu/limslaboratory/vo/UpdatePersonnelVo.java b/user-server/src/main/java/com/yuanchu/limslaboratory/vo/UpdatePersonnelVo.java new file mode 100644 index 0000000..2c6c05a --- /dev/null +++ b/user-server/src/main/java/com/yuanchu/limslaboratory/vo/UpdatePersonnelVo.java @@ -0,0 +1,41 @@ +package com.yuanchu.limslaboratory.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="UpdatePersonnelVo瀵硅薄", description="鐢ㄤ簬瀵硅鑹茬鐞嗙殑鏇存柊") +public class UpdatePersonnelVo { + + @ApiModelProperty(value = "涓婚敭ID", example = "1", required = true) + private String id; + + @ApiModelProperty(value = "濮撳悕", example = "灏忛粦", required = true) + private String name; + + @ApiModelProperty(value = "璐﹀彿", example = "45612345", required = true) + private String account; + + @ApiModelProperty(value = "0锛氭棤鏉冮檺锛�1锛氭湁鏉冮檺", example = "1", required = true) + private Integer role_id; + + @ApiModelProperty(value = "骞撮緞", example = "23") + private Integer 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; + + @ApiModelProperty(value = "璐﹀彿瀵嗙爜", example = "654321") + private String password; + + +} diff --git a/user-server/src/main/resources/mapper/UserMapper.xml b/user-server/src/main/resources/mapper/UserMapper.xml index 9f0e8b6..30e710c 100644 --- a/user-server/src/main/resources/mapper/UserMapper.xml +++ b/user-server/src/main/resources/mapper/UserMapper.xml @@ -9,4 +9,24 @@ and el.user_id = u.id 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 u.name = #{name} + </if> + </select> </mapper> -- Gitblit v1.9.3