From 6178b11b439f8c60a9fc61b2a2a3165c193a4b8e Mon Sep 17 00:00:00 2001 From: dongjie <1605846502@qq.com> Date: Fri, 17 May 2024 23:22:49 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E7=99=BB=E5=BD=95=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E7=9A=84=E6=93=8D=E4=BD=9C=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/uiDesigner.xml | 124 +++++++++++++ src/main/java/zoo/CodeGenerator.java | 37 ++++ src/main/java/zoo/ThreadTest/Test.java | 52 ++++++ src/main/java/zoo/ThreadTest/Test1.java | 35 ++++ src/main/java/zoo/ThreadTest/Test2.java | 18 ++ src/main/java/zoo/ZooSystemApplication.java | 15 ++ .../java/zoo/common/JacksonObjectMapper.java | 56 ++++++ src/main/java/zoo/common/R.java | 38 ++++ src/main/java/zoo/config/MyCorsConfig.java | 27 +++ .../java/zoo/config/MybatisPlusConfig.java | 19 ++ src/main/java/zoo/config/WebMvcConfig.java | 24 +++ .../zoo/controller/AccountController.java | 18 ++ .../java/zoo/controller/AdminController.java | 18 ++ .../java/zoo/controller/AnimalController.java | 18 ++ .../java/zoo/controller/KeeperController.java | 18 ++ .../java/zoo/controller/LoginController.java | 64 +++++++ .../zoo/controller/VeterinaryController.java | 18 ++ src/main/java/zoo/dto/AdminDto.java | 16 ++ src/main/java/zoo/dto/KeeperDto.java | 15 ++ src/main/java/zoo/dto/VeterinaryDto.java | 15 ++ src/main/java/zoo/entity/Account.java | 88 ++++++++++ src/main/java/zoo/entity/Admin.java | 49 ++++++ src/main/java/zoo/entity/Animal.java | 166 ++++++++++++++++++ src/main/java/zoo/entity/Keeper.java | 75 ++++++++ src/main/java/zoo/entity/Veterinary.java | 62 +++++++ src/main/java/zoo/mapper/AccountMapper.java | 16 ++ src/main/java/zoo/mapper/AdminMapper.java | 16 ++ src/main/java/zoo/mapper/AnimalMapper.java | 16 ++ src/main/java/zoo/mapper/KeeperMapper.java | 16 ++ .../java/zoo/mapper/VeterinaryMapper.java | 16 ++ .../java/zoo/service/IAccountService.java | 20 +++ src/main/java/zoo/service/IAdminService.java | 18 ++ src/main/java/zoo/service/IAnimalService.java | 16 ++ src/main/java/zoo/service/IKeeperService.java | 19 ++ .../java/zoo/service/IVeterinaryService.java | 19 ++ .../zoo/service/impl/AccountServiceImpl.java | 20 +++ .../zoo/service/impl/AdminServiceImpl.java | 28 +++ .../zoo/service/impl/AnimalServiceImpl.java | 20 +++ .../zoo/service/impl/KeeperServiceImpl.java | 28 +++ .../service/impl/VeterinaryServiceImpl.java | 27 +++ 40 files changed, 1380 insertions(+) create mode 100644 .idea/uiDesigner.xml create mode 100644 src/main/java/zoo/CodeGenerator.java create mode 100644 src/main/java/zoo/ThreadTest/Test.java create mode 100644 src/main/java/zoo/ThreadTest/Test1.java create mode 100644 src/main/java/zoo/ThreadTest/Test2.java create mode 100644 src/main/java/zoo/ZooSystemApplication.java create mode 100644 src/main/java/zoo/common/JacksonObjectMapper.java create mode 100644 src/main/java/zoo/common/R.java create mode 100644 src/main/java/zoo/config/MyCorsConfig.java create mode 100644 src/main/java/zoo/config/MybatisPlusConfig.java create mode 100644 src/main/java/zoo/config/WebMvcConfig.java create mode 100644 src/main/java/zoo/controller/AccountController.java create mode 100644 src/main/java/zoo/controller/AdminController.java create mode 100644 src/main/java/zoo/controller/AnimalController.java create mode 100644 src/main/java/zoo/controller/KeeperController.java create mode 100644 src/main/java/zoo/controller/LoginController.java create mode 100644 src/main/java/zoo/controller/VeterinaryController.java create mode 100644 src/main/java/zoo/dto/AdminDto.java create mode 100644 src/main/java/zoo/dto/KeeperDto.java create mode 100644 src/main/java/zoo/dto/VeterinaryDto.java create mode 100644 src/main/java/zoo/entity/Account.java create mode 100644 src/main/java/zoo/entity/Admin.java create mode 100644 src/main/java/zoo/entity/Animal.java create mode 100644 src/main/java/zoo/entity/Keeper.java create mode 100644 src/main/java/zoo/entity/Veterinary.java create mode 100644 src/main/java/zoo/mapper/AccountMapper.java create mode 100644 src/main/java/zoo/mapper/AdminMapper.java create mode 100644 src/main/java/zoo/mapper/AnimalMapper.java create mode 100644 src/main/java/zoo/mapper/KeeperMapper.java create mode 100644 src/main/java/zoo/mapper/VeterinaryMapper.java create mode 100644 src/main/java/zoo/service/IAccountService.java create mode 100644 src/main/java/zoo/service/IAdminService.java create mode 100644 src/main/java/zoo/service/IAnimalService.java create mode 100644 src/main/java/zoo/service/IKeeperService.java create mode 100644 src/main/java/zoo/service/IVeterinaryService.java create mode 100644 src/main/java/zoo/service/impl/AccountServiceImpl.java create mode 100644 src/main/java/zoo/service/impl/AdminServiceImpl.java create mode 100644 src/main/java/zoo/service/impl/AnimalServiceImpl.java create mode 100644 src/main/java/zoo/service/impl/KeeperServiceImpl.java create mode 100644 src/main/java/zoo/service/impl/VeterinaryServiceImpl.java diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..2b63946 --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/zoo/CodeGenerator.java b/src/main/java/zoo/CodeGenerator.java new file mode 100644 index 0000000..c046871 --- /dev/null +++ b/src/main/java/zoo/CodeGenerator.java @@ -0,0 +1,37 @@ +package zoo; + + +import com.baomidou.mybatisplus.generator.FastAutoGenerator; +import com.baomidou.mybatisplus.generator.config.OutputFile; +import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine; + +import java.util.Collections; + +public class CodeGenerator { + public static void main(String[] args) { + String url = "jdbc:mysql://localhost:3306/zoo"; + String username = "root"; + String password = "83363083a"; + String moduleName = "zoo"; + String table = "account,admin,animal,keeper,veterinary"; + String mapperLocation = "C:\\Users\\16058\\IdeaProjects\\zooSystem\\src\\main\\resources\\mapper\\"; + FastAutoGenerator.create(url, username, password) + .globalConfig(builder -> { + builder.author("DJ") // 设置作者 + // .enableSwagger() // 开启 swagger 模式 + // .fileOverride() // 覆盖已生成文件 + .outputDir("C:\\Users\\16058\\IdeaProjects\\zooSystem\\src\\main\\java"); // 指定输出目录 + }) + .packageConfig(builder -> { + builder.parent("com") // 设置父包名 + .moduleName(moduleName) // 设置父包模块名 + .pathInfo(Collections.singletonMap(OutputFile.xml,mapperLocation)); // 设置mapperXml生成路径 + }) + .strategyConfig(builder -> { + builder.addInclude(table) // 设置需要生成的表名 + .addTablePrefix(); // 设置过滤表前缀 + }) + .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板 + .execute(); + } +} diff --git a/src/main/java/zoo/ThreadTest/Test.java b/src/main/java/zoo/ThreadTest/Test.java new file mode 100644 index 0000000..640a553 --- /dev/null +++ b/src/main/java/zoo/ThreadTest/Test.java @@ -0,0 +1,52 @@ +package zoo.ThreadTest; + +import java.util.concurrent.ExecutionException; +import java.util.concurrent.FutureTask; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; + +public class Test { + public static void main(String[] args) throws ExecutionException, InterruptedException, TimeoutException { + FutureTask futureTask = new FutureTask<>(()->{ + System.out.println(Thread.currentThread().getName()+"/t ---come in"); + TimeUnit.SECONDS.sleep(5); + return "task over"; + }); + Thread t1 = new Thread(futureTask, "t1"); + t1.start(); + System.out.println(Thread.currentThread()+"\t ----忙其他事情去了"); + while (true){ + if (futureTask.isDone()){ + System.out.println(futureTask.get()); + break; + }else { + //暂停毫秒 + TimeUnit.MICROSECONDS.sleep(2000); + System.out.println("正在处理中,不要再催了"); + } + } + new A(()->{ + System.out.println("c"); + }).a(); + + //System.out.println(futureTask.get()); + // System.out.println(futureTask.get(3,TimeUnit.SECONDS)); + } +} +class A implements B{ + C c ; + public A(C c){ + this.c = c; + } + @Override + public void a() { + c.c(); + System.out.println(1); + } +} +interface B{ + public abstract void a(); +} +interface C{ + public abstract void c(); +} diff --git a/src/main/java/zoo/ThreadTest/Test1.java b/src/main/java/zoo/ThreadTest/Test1.java new file mode 100644 index 0000000..e9235a1 --- /dev/null +++ b/src/main/java/zoo/ThreadTest/Test1.java @@ -0,0 +1,35 @@ +package zoo.ThreadTest; + +import java.util.concurrent.*; + +public class Test1 { + public static void main(String[] args) { + //CompletableFuture默认线程池是守护线程 + ExecutorService executorService = Executors.newFixedThreadPool(3); + CompletableFuture.supplyAsync(()->{ + System.out.println(Thread.currentThread().getName() + "...come in"); + int result = ThreadLocalRandom.current().nextInt(10); + try{ + TimeUnit.SECONDS.sleep(1); + }catch (InterruptedException e){ + e.printStackTrace(); + } + System.out.println("--1秒钟出结果"+result); + return result; + },executorService).whenComplete((v,e)->{ + if (e==null){ + System.out.println("==计算完成,更新系统updateValue"+v); + } + }).exceptionally(e->{ + e.printStackTrace(); + System.out.println("异常情况"+e.getCause()+"\t" + e.getMessage()); + return null; + }); + System.out.println(Thread.currentThread().getName()+"线程先去忙其他任务"); +// try { +// TimeUnit.SECONDS.sleep(3); +// } catch (InterruptedException e) { +// throw new RuntimeException(e); +// } + } +} diff --git a/src/main/java/zoo/ThreadTest/Test2.java b/src/main/java/zoo/ThreadTest/Test2.java new file mode 100644 index 0000000..e41a186 --- /dev/null +++ b/src/main/java/zoo/ThreadTest/Test2.java @@ -0,0 +1,18 @@ +package zoo.ThreadTest; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.function.Predicate; + +public class Test2 { + public static void main(String[] args) { + List list = Arrays.asList(1,2,3,3,4); + list.stream().distinct().filter(new Predicate() { + @Override + public boolean test(Integer integer) { + return integer > 1; + } + }).filter(Integer->Integer < 4).forEach(Integer -> System.out.println(Integer)); + } +} diff --git a/src/main/java/zoo/ZooSystemApplication.java b/src/main/java/zoo/ZooSystemApplication.java new file mode 100644 index 0000000..1ac5a23 --- /dev/null +++ b/src/main/java/zoo/ZooSystemApplication.java @@ -0,0 +1,15 @@ +package zoo; + +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +@MapperScan("com.demo.zoo.mapper") +public class ZooSystemApplication { + + public static void main(String[] args) { + SpringApplication.run(ZooSystemApplication.class, args); + } + +} diff --git a/src/main/java/zoo/common/JacksonObjectMapper.java b/src/main/java/zoo/common/JacksonObjectMapper.java new file mode 100644 index 0000000..366844c --- /dev/null +++ b/src/main/java/zoo/common/JacksonObjectMapper.java @@ -0,0 +1,56 @@ +package zoo.common; + +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.module.SimpleModule; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer; + +import java.math.BigInteger; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.format.DateTimeFormatter; + +import static com.fasterxml.jackson.databind.DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES; + +/** + * 对象映射器:基于jackson将Java对象转为json,或者将json转为Java对象 + * 将JSON解析为Java对象的过程称为 [从JSON反序列化Java对象] + * 从Java对象生成JSON的过程称为 [序列化Java对象到JSON] + */ +public class JacksonObjectMapper extends ObjectMapper { + + public static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd"; + public static final String DEFAULT_DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss"; + public static final String DEFAULT_TIME_FORMAT = "HH:mm:ss"; + + public JacksonObjectMapper() { + super(); + //收到未知属性时不报异常 + this.configure(FAIL_ON_UNKNOWN_PROPERTIES, false); + + //反序列化时,属性不存在的兼容处理 + this.getDeserializationConfig().withoutFeatures(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); + + + SimpleModule simpleModule = new SimpleModule() + .addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT))) + .addDeserializer(LocalDate.class, new LocalDateDeserializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_FORMAT))) + .addDeserializer(LocalTime.class, new LocalTimeDeserializer(DateTimeFormatter.ofPattern(DEFAULT_TIME_FORMAT))) + + .addSerializer(BigInteger.class, ToStringSerializer.instance) + .addSerializer(Long.class, ToStringSerializer.instance) + .addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT))) + .addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_FORMAT))) + .addSerializer(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ofPattern(DEFAULT_TIME_FORMAT))); + + //注册功能模块 例如,可以添加自定义序列化器和反序列化器 + this.registerModule(simpleModule); + } +} diff --git a/src/main/java/zoo/common/R.java b/src/main/java/zoo/common/R.java new file mode 100644 index 0000000..45a824d --- /dev/null +++ b/src/main/java/zoo/common/R.java @@ -0,0 +1,38 @@ +package zoo.common; + +import lombok.Data; + +import java.util.HashMap; +import java.util.Map; + +@Data +public class R { + + private Integer code; //编码:1成功,0和其它数字为失败 + + private String msg; //错误信息 + + private T data; //数据 + + private Map map = new HashMap(); //动态数据 + + public static R success(T object) { + R r = new R(); + r.data = object; + r.code = 1; + return r; + } + + public static R error(String msg) { + R r = new R(); + r.msg = msg; + r.code = 0; + return r; + } + + public R add(String key, Object value) { + this.map.put(key, value); + return this; + } + +} diff --git a/src/main/java/zoo/config/MyCorsConfig.java b/src/main/java/zoo/config/MyCorsConfig.java new file mode 100644 index 0000000..e16d9a0 --- /dev/null +++ b/src/main/java/zoo/config/MyCorsConfig.java @@ -0,0 +1,27 @@ +package zoo.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.cors.CorsConfiguration; +import org.springframework.web.cors.UrlBasedCorsConfigurationSource; +import org.springframework.web.filter.CorsFilter; + +@Configuration +public class MyCorsConfig { + //跨越处理 + @Bean + public CorsFilter corsFilter(){ + CorsConfiguration corsConfiguration = new CorsConfiguration(); + //允许跨域的地址 + corsConfiguration.addAllowedOrigin("http://localhost:8888"); + //http://localhost:8080 + //是否发送cookie信息 + corsConfiguration.setAllowCredentials(true); + corsConfiguration.addAllowedMethod("*"); + corsConfiguration.addAllowedHeader("*"); + //添加映射路径,拦截一切请求 + UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); + source.registerCorsConfiguration("/**",corsConfiguration); + return new CorsFilter(source); + } +} diff --git a/src/main/java/zoo/config/MybatisPlusConfig.java b/src/main/java/zoo/config/MybatisPlusConfig.java new file mode 100644 index 0000000..eda7d28 --- /dev/null +++ b/src/main/java/zoo/config/MybatisPlusConfig.java @@ -0,0 +1,19 @@ +package zoo.config; + +import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; +import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * 添加MybatisPlus分页插件 + */ +@Configuration +public class MybatisPlusConfig { + @Bean + public MybatisPlusInterceptor mybatisPlusInterceptor(){ + MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor(); + mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor()); + return mybatisPlusInterceptor; + } +} diff --git a/src/main/java/zoo/config/WebMvcConfig.java b/src/main/java/zoo/config/WebMvcConfig.java new file mode 100644 index 0000000..4db3144 --- /dev/null +++ b/src/main/java/zoo/config/WebMvcConfig.java @@ -0,0 +1,24 @@ +package zoo.config; + +import com.demo.zoo.common.JacksonObjectMapper; +import org.springframework.context.annotation.Configuration; +import org.springframework.http.converter.HttpMessageConverter; +import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; + +import java.util.List; + +@Configuration +public class WebMvcConfig extends WebMvcConfigurationSupport { + + + @Override + protected void extendMessageConverters(List> converters) { + //创建消息转化器对象 + MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter(); + //设置对象转换器,底层使用Jackson对象转换为java + mappingJackson2HttpMessageConverter.setObjectMapper(new JacksonObjectMapper()); + //将上面的消息转换器对象追加到mvc框架的集合中 + converters.add(0,mappingJackson2HttpMessageConverter); + } +} diff --git a/src/main/java/zoo/controller/AccountController.java b/src/main/java/zoo/controller/AccountController.java new file mode 100644 index 0000000..0e8bba4 --- /dev/null +++ b/src/main/java/zoo/controller/AccountController.java @@ -0,0 +1,18 @@ +package zoo.controller; + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.stereotype.Controller; + +/** + *

+ * 前端控制器 + *

+ * + * @author DJ + * @since 2024-05-17 + */ +@Controller +@RequestMapping("/zoo/account") +public class AccountController { + +} diff --git a/src/main/java/zoo/controller/AdminController.java b/src/main/java/zoo/controller/AdminController.java new file mode 100644 index 0000000..4ef1420 --- /dev/null +++ b/src/main/java/zoo/controller/AdminController.java @@ -0,0 +1,18 @@ +package zoo.controller; + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.stereotype.Controller; + +/** + *

+ * 前端控制器 + *

+ * + * @author DJ + * @since 2024-05-17 + */ +@Controller +@RequestMapping("/zoo/admin") +public class AdminController { + +} diff --git a/src/main/java/zoo/controller/AnimalController.java b/src/main/java/zoo/controller/AnimalController.java new file mode 100644 index 0000000..2d50ef4 --- /dev/null +++ b/src/main/java/zoo/controller/AnimalController.java @@ -0,0 +1,18 @@ +package zoo.controller; + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.stereotype.Controller; + +/** + *

+ * 前端控制器 + *

+ * + * @author DJ + * @since 2024-05-17 + */ +@Controller +@RequestMapping("/zoo/animal") +public class AnimalController { + +} diff --git a/src/main/java/zoo/controller/KeeperController.java b/src/main/java/zoo/controller/KeeperController.java new file mode 100644 index 0000000..8b66e79 --- /dev/null +++ b/src/main/java/zoo/controller/KeeperController.java @@ -0,0 +1,18 @@ +package zoo.controller; + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.stereotype.Controller; + +/** + *

+ * 前端控制器 + *

+ * + * @author DJ + * @since 2024-05-17 + */ +@Controller +@RequestMapping("/zoo/keeper") +public class KeeperController { + +} diff --git a/src/main/java/zoo/controller/LoginController.java b/src/main/java/zoo/controller/LoginController.java new file mode 100644 index 0000000..6afc3f4 --- /dev/null +++ b/src/main/java/zoo/controller/LoginController.java @@ -0,0 +1,64 @@ +package zoo.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.demo.zoo.common.R; +import com.demo.zoo.dto.AdminDto; +import com.demo.zoo.dto.KeeperDto; +import com.demo.zoo.dto.VeterinaryDto; +import com.demo.zoo.entity.Account; +import com.demo.zoo.entity.Admin; +import com.demo.zoo.entity.Keeper; +import com.demo.zoo.entity.Veterinary; +import com.demo.zoo.service.IAccountService; +import com.demo.zoo.service.IAdminService; +import com.demo.zoo.service.IKeeperService; +import com.demo.zoo.service.IVeterinaryService; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/zoo/login") +public class LoginController { + @Autowired + IAccountService iAccountService; + @Autowired + IAdminService iAdminService; + @Autowired + IKeeperService iKeeperService; + @Autowired + IVeterinaryService iVeterinaryService; + + @PostMapping("/login") + public R login(String username,String password){ + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("username",username); + queryWrapper.eq("password",password); + Account one = iAccountService.getOne(queryWrapper); + if (one == null){ + return R.error("账号密码错误"); + } + if (one.getPermissions()==0){ + Admin admin = iAdminService.selectById(one.getRoleid()); + AdminDto adminDto = new AdminDto(); + BeanUtils.copyProperties(admin,adminDto); + adminDto.setPermissions(0); + return R.success(adminDto); + }else if (one.getPermissions()==1){ + Keeper keeper = iKeeperService.selectById(one.getRoleid()); + KeeperDto keeperDto = new KeeperDto(); + BeanUtils.copyProperties(keeper,keeperDto); + keeperDto.setPermissions(1); + return R.success(keeperDto); + }else { + Veterinary veterinary = iVeterinaryService.selectById(one.getRoleid()); + VeterinaryDto veterinaryDto = new VeterinaryDto(); + BeanUtils.copyProperties(veterinary,veterinaryDto); + veterinaryDto.setPermissions(2); + return R.success(veterinaryDto); + } + } +} diff --git a/src/main/java/zoo/controller/VeterinaryController.java b/src/main/java/zoo/controller/VeterinaryController.java new file mode 100644 index 0000000..53de7f9 --- /dev/null +++ b/src/main/java/zoo/controller/VeterinaryController.java @@ -0,0 +1,18 @@ +package zoo.controller; + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.stereotype.Controller; + +/** + *

+ * 前端控制器 + *

+ * + * @author DJ + * @since 2024-05-17 + */ +@Controller +@RequestMapping("/zoo/veterinary") +public class VeterinaryController { + +} diff --git a/src/main/java/zoo/dto/AdminDto.java b/src/main/java/zoo/dto/AdminDto.java new file mode 100644 index 0000000..3a63159 --- /dev/null +++ b/src/main/java/zoo/dto/AdminDto.java @@ -0,0 +1,16 @@ +package zoo.dto; + +import zoo.entity.Admin; + + +public class AdminDto extends Admin { + private Integer permissions; + + public Integer getPermissions() { + return permissions; + } + + public void setPermissions(Integer permissions) { + this.permissions = permissions; + } +} diff --git a/src/main/java/zoo/dto/KeeperDto.java b/src/main/java/zoo/dto/KeeperDto.java new file mode 100644 index 0000000..a6bf4fe --- /dev/null +++ b/src/main/java/zoo/dto/KeeperDto.java @@ -0,0 +1,15 @@ +package zoo.dto; + +import zoo.entity.Keeper; + +public class KeeperDto extends Keeper { + private Integer permissions; + + public Integer getPermissions() { + return permissions; + } + + public void setPermissions(Integer permissions) { + this.permissions = permissions; + } +} diff --git a/src/main/java/zoo/dto/VeterinaryDto.java b/src/main/java/zoo/dto/VeterinaryDto.java new file mode 100644 index 0000000..f44b091 --- /dev/null +++ b/src/main/java/zoo/dto/VeterinaryDto.java @@ -0,0 +1,15 @@ +package zoo.dto; + +import zoo.entity.Veterinary; + +public class VeterinaryDto extends Veterinary { + private Integer permissions; + + public Integer getPermissions() { + return permissions; + } + + public void setPermissions(Integer permissions) { + this.permissions = permissions; + } +} diff --git a/src/main/java/zoo/entity/Account.java b/src/main/java/zoo/entity/Account.java new file mode 100644 index 0000000..3457aef --- /dev/null +++ b/src/main/java/zoo/entity/Account.java @@ -0,0 +1,88 @@ +package zoo.entity; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author DJ + * @since 2024-05-17 + */ +public class Account implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 编号 + */ + private Integer id; + + /** + * 角色id + */ + private Integer roleid; + + /** + * 角色账号 + */ + private String username; + + /** + * 角色密码 + */ + private String password; + + /** + * 权限 + */ + private Integer permissions; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + public Integer getRoleid() { + return roleid; + } + + public void setRoleid(Integer roleid) { + this.roleid = roleid; + } + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + public Integer getPermissions() { + return permissions; + } + + public void setPermissions(Integer permissions) { + this.permissions = permissions; + } + + @Override + public String toString() { + return "Account{" + + "id=" + id + + ", roleid=" + roleid + + ", username=" + username + + ", password=" + password + + ", permissions=" + permissions + + "}"; + } +} diff --git a/src/main/java/zoo/entity/Admin.java b/src/main/java/zoo/entity/Admin.java new file mode 100644 index 0000000..4614744 --- /dev/null +++ b/src/main/java/zoo/entity/Admin.java @@ -0,0 +1,49 @@ +package zoo.entity; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author DJ + * @since 2024-05-17 + */ +public class Admin implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 角色id + */ + private Integer roleid; + + /** + * 管理员名称 + */ + private String name; + + public Integer getRoleid() { + return roleid; + } + + public void setRoleid(Integer roleid) { + this.roleid = roleid; + } + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + @Override + public String toString() { + return "Admin{" + + "roleid=" + roleid + + ", name=" + name + + "}"; + } +} diff --git a/src/main/java/zoo/entity/Animal.java b/src/main/java/zoo/entity/Animal.java new file mode 100644 index 0000000..7e4cbc4 --- /dev/null +++ b/src/main/java/zoo/entity/Animal.java @@ -0,0 +1,166 @@ +package zoo.entity; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author DJ + * @since 2024-05-17 + */ +public class Animal implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 动物ID + */ + private Integer aId; + + /** + * 动物名 + */ + private String name; + + /** + * 性别 + */ + private String sex; + + /** + * 种类 + */ + private String species; + + /** + * 体重 + */ + private Double weight; + + /** + * 身高 + */ + private Double height; + + /** + * 状态(0正常 1异常) + */ + private Integer state; + + /** + * 饲养员ID + */ + private Integer roleId; + + /** + * 颜色 + */ + private String color; + + /** + * 特征 + */ + private String features; + + /** + * 生活习性 + */ + private String habit; + + public Integer getaId() { + return aId; + } + + public void setaId(Integer aId) { + this.aId = aId; + } + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + public String getSpecies() { + return species; + } + + public void setSpecies(String species) { + this.species = species; + } + public Double getWeight() { + return weight; + } + + public void setWeight(Double weight) { + this.weight = weight; + } + public Double getHeight() { + return height; + } + + public void setHeight(Double height) { + this.height = height; + } + public Integer getState() { + return state; + } + + public void setState(Integer state) { + this.state = state; + } + public Integer getRoleId() { + return roleId; + } + + public void setRoleId(Integer roleId) { + this.roleId = roleId; + } + public String getColor() { + return color; + } + + public void setColor(String color) { + this.color = color; + } + public String getFeatures() { + return features; + } + + public void setFeatures(String features) { + this.features = features; + } + public String getHabit() { + return habit; + } + + public void setHabit(String habit) { + this.habit = habit; + } + + @Override + public String toString() { + return "Animal{" + + "aId=" + aId + + ", name=" + name + + ", sex=" + sex + + ", species=" + species + + ", weight=" + weight + + ", height=" + height + + ", state=" + state + + ", roleId=" + roleId + + ", color=" + color + + ", features=" + features + + ", habit=" + habit + + "}"; + } +} diff --git a/src/main/java/zoo/entity/Keeper.java b/src/main/java/zoo/entity/Keeper.java new file mode 100644 index 0000000..7a0ae47 --- /dev/null +++ b/src/main/java/zoo/entity/Keeper.java @@ -0,0 +1,75 @@ +package zoo.entity; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author DJ + * @since 2024-05-17 + */ +public class Keeper implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 角色id + */ + private Integer roleid; + + /** + * 性别 + */ + private String sex; + + /** + * 饲养员名称 + */ + private String name; + + /** + * 手机号码 + */ + private String phone; + + public Integer getRoleid() { + return roleid; + } + + public void setRoleid(Integer roleid) { + this.roleid = roleid; + } + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + @Override + public String toString() { + return "Keeper{" + + "roleid=" + roleid + + ", sex=" + sex + + ", name=" + name + + ", phone=" + phone + + "}"; + } +} diff --git a/src/main/java/zoo/entity/Veterinary.java b/src/main/java/zoo/entity/Veterinary.java new file mode 100644 index 0000000..ca96573 --- /dev/null +++ b/src/main/java/zoo/entity/Veterinary.java @@ -0,0 +1,62 @@ +package zoo.entity; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author DJ + * @since 2024-05-17 + */ +public class Veterinary implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 兽医角色id + */ + private Integer roleid; + + /** + * 名称 + */ + private String name; + + /** + * 治疗记录 + */ + private String record; + + public Integer getRoleid() { + return roleid; + } + + public void setRoleid(Integer roleid) { + this.roleid = roleid; + } + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + public String getRecord() { + return record; + } + + public void setRecord(String record) { + this.record = record; + } + + @Override + public String toString() { + return "Veterinary{" + + "roleid=" + roleid + + ", name=" + name + + ", record=" + record + + "}"; + } +} diff --git a/src/main/java/zoo/mapper/AccountMapper.java b/src/main/java/zoo/mapper/AccountMapper.java new file mode 100644 index 0000000..70fbc48 --- /dev/null +++ b/src/main/java/zoo/mapper/AccountMapper.java @@ -0,0 +1,16 @@ +package zoo.mapper; + +import com.demo.zoo.entity.Account; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author DJ + * @since 2024-05-17 + */ +public interface AccountMapper extends BaseMapper { + +} diff --git a/src/main/java/zoo/mapper/AdminMapper.java b/src/main/java/zoo/mapper/AdminMapper.java new file mode 100644 index 0000000..bbdf12e --- /dev/null +++ b/src/main/java/zoo/mapper/AdminMapper.java @@ -0,0 +1,16 @@ +package zoo.mapper; + +import com.demo.zoo.entity.Admin; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author DJ + * @since 2024-05-17 + */ +public interface AdminMapper extends BaseMapper { + +} diff --git a/src/main/java/zoo/mapper/AnimalMapper.java b/src/main/java/zoo/mapper/AnimalMapper.java new file mode 100644 index 0000000..e692ba5 --- /dev/null +++ b/src/main/java/zoo/mapper/AnimalMapper.java @@ -0,0 +1,16 @@ +package zoo.mapper; + +import com.demo.zoo.entity.Animal; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author DJ + * @since 2024-05-17 + */ +public interface AnimalMapper extends BaseMapper { + +} diff --git a/src/main/java/zoo/mapper/KeeperMapper.java b/src/main/java/zoo/mapper/KeeperMapper.java new file mode 100644 index 0000000..29cf394 --- /dev/null +++ b/src/main/java/zoo/mapper/KeeperMapper.java @@ -0,0 +1,16 @@ +package zoo.mapper; + +import com.demo.zoo.entity.Keeper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author DJ + * @since 2024-05-17 + */ +public interface KeeperMapper extends BaseMapper { + +} diff --git a/src/main/java/zoo/mapper/VeterinaryMapper.java b/src/main/java/zoo/mapper/VeterinaryMapper.java new file mode 100644 index 0000000..db03748 --- /dev/null +++ b/src/main/java/zoo/mapper/VeterinaryMapper.java @@ -0,0 +1,16 @@ +package zoo.mapper; + +import com.demo.zoo.entity.Veterinary; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author DJ + * @since 2024-05-17 + */ +public interface VeterinaryMapper extends BaseMapper { + +} diff --git a/src/main/java/zoo/service/IAccountService.java b/src/main/java/zoo/service/IAccountService.java new file mode 100644 index 0000000..61949b9 --- /dev/null +++ b/src/main/java/zoo/service/IAccountService.java @@ -0,0 +1,20 @@ +package zoo.service; + +import com.demo.zoo.entity.Account; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.Map; + +/** + *

+ * 服务类 + *

+ * + * @author DJ + * @since 2024-05-17 + */ +public interface IAccountService extends IService { + + + +} diff --git a/src/main/java/zoo/service/IAdminService.java b/src/main/java/zoo/service/IAdminService.java new file mode 100644 index 0000000..cac5a0e --- /dev/null +++ b/src/main/java/zoo/service/IAdminService.java @@ -0,0 +1,18 @@ +package zoo.service; + +import com.demo.zoo.entity.Admin; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.Map; + +/** + *

+ * 服务类 + *

+ * + * @author DJ + * @since 2024-05-17 + */ +public interface IAdminService extends IService { + Admin selectById(int roleId); +} diff --git a/src/main/java/zoo/service/IAnimalService.java b/src/main/java/zoo/service/IAnimalService.java new file mode 100644 index 0000000..aec3cdc --- /dev/null +++ b/src/main/java/zoo/service/IAnimalService.java @@ -0,0 +1,16 @@ +package zoo.service; + +import com.demo.zoo.entity.Animal; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author DJ + * @since 2024-05-17 + */ +public interface IAnimalService extends IService { + +} diff --git a/src/main/java/zoo/service/IKeeperService.java b/src/main/java/zoo/service/IKeeperService.java new file mode 100644 index 0000000..a1d38a0 --- /dev/null +++ b/src/main/java/zoo/service/IKeeperService.java @@ -0,0 +1,19 @@ +package zoo.service; + +import com.demo.zoo.entity.Admin; +import com.demo.zoo.entity.Keeper; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.Map; + +/** + *

+ * 服务类 + *

+ * + * @author DJ + * @since 2024-05-17 + */ +public interface IKeeperService extends IService { + Keeper selectById(int roleId); +} diff --git a/src/main/java/zoo/service/IVeterinaryService.java b/src/main/java/zoo/service/IVeterinaryService.java new file mode 100644 index 0000000..3969f03 --- /dev/null +++ b/src/main/java/zoo/service/IVeterinaryService.java @@ -0,0 +1,19 @@ +package zoo.service; + +import com.demo.zoo.entity.Admin; +import com.demo.zoo.entity.Veterinary; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.Map; + +/** + *

+ * 服务类 + *

+ * + * @author DJ + * @since 2024-05-17 + */ +public interface IVeterinaryService extends IService { + Veterinary selectById(int roleId); +} diff --git a/src/main/java/zoo/service/impl/AccountServiceImpl.java b/src/main/java/zoo/service/impl/AccountServiceImpl.java new file mode 100644 index 0000000..5303966 --- /dev/null +++ b/src/main/java/zoo/service/impl/AccountServiceImpl.java @@ -0,0 +1,20 @@ +package zoo.service.impl; + +import com.demo.zoo.entity.Account; +import com.demo.zoo.mapper.AccountMapper; +import zoo.service.IAccountService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author DJ + * @since 2024-05-17 + */ +@Service +public class AccountServiceImpl extends ServiceImpl implements IAccountService { + +} diff --git a/src/main/java/zoo/service/impl/AdminServiceImpl.java b/src/main/java/zoo/service/impl/AdminServiceImpl.java new file mode 100644 index 0000000..1878556 --- /dev/null +++ b/src/main/java/zoo/service/impl/AdminServiceImpl.java @@ -0,0 +1,28 @@ +package zoo.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.demo.zoo.entity.Admin; +import com.demo.zoo.entity.Keeper; +import com.demo.zoo.mapper.AdminMapper; +import zoo.service.IAdminService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author DJ + * @since 2024-05-17 + */ +@Service +public class AdminServiceImpl extends ServiceImpl implements IAdminService { + + @Override + public Admin selectById(int roleId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("roleId",roleId); + return this.getOne(queryWrapper); + } +} diff --git a/src/main/java/zoo/service/impl/AnimalServiceImpl.java b/src/main/java/zoo/service/impl/AnimalServiceImpl.java new file mode 100644 index 0000000..f0705c7 --- /dev/null +++ b/src/main/java/zoo/service/impl/AnimalServiceImpl.java @@ -0,0 +1,20 @@ +package zoo.service.impl; + +import com.demo.zoo.entity.Animal; +import com.demo.zoo.mapper.AnimalMapper; +import zoo.service.IAnimalService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author DJ + * @since 2024-05-17 + */ +@Service +public class AnimalServiceImpl extends ServiceImpl implements IAnimalService { + +} diff --git a/src/main/java/zoo/service/impl/KeeperServiceImpl.java b/src/main/java/zoo/service/impl/KeeperServiceImpl.java new file mode 100644 index 0000000..1bf62a1 --- /dev/null +++ b/src/main/java/zoo/service/impl/KeeperServiceImpl.java @@ -0,0 +1,28 @@ +package zoo.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.demo.zoo.entity.Keeper; +import com.demo.zoo.entity.Veterinary; +import com.demo.zoo.mapper.KeeperMapper; +import zoo.service.IKeeperService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author DJ + * @since 2024-05-17 + */ +@Service +public class KeeperServiceImpl extends ServiceImpl implements IKeeperService { + + @Override + public Keeper selectById(int roleId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("roleId",roleId); + return this.getOne(queryWrapper); + } +} diff --git a/src/main/java/zoo/service/impl/VeterinaryServiceImpl.java b/src/main/java/zoo/service/impl/VeterinaryServiceImpl.java new file mode 100644 index 0000000..2756276 --- /dev/null +++ b/src/main/java/zoo/service/impl/VeterinaryServiceImpl.java @@ -0,0 +1,27 @@ +package zoo.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.demo.zoo.entity.Veterinary; +import com.demo.zoo.mapper.VeterinaryMapper; +import zoo.service.IVeterinaryService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author DJ + * @since 2024-05-17 + */ +@Service +public class VeterinaryServiceImpl extends ServiceImpl implements IVeterinaryService { + + @Override + public Veterinary selectById(int roleId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("roleId",roleId); + return this.getOne(queryWrapper); + } +}