diff --git a/pom.xml b/pom.xml
index 6f087fe26eee039ec564dd711b6575ac13a89f6d..ef654a28d87003fc7fb45ae524028fd9d2d89920 100644
--- a/pom.xml
+++ b/pom.xml
@@ -8,12 +8,15 @@
MisLab
MisLab
- 1.8
+ 17
UTF-8
UTF-8
2.6.13
+ 0.11.5
+ 3.5.2
+
org.springframework.boot
spring-boot-starter
@@ -22,30 +25,86 @@
org.springframework.boot
spring-boot-starter-web
+
+
com.mysql
mysql-connector-j
+ 8.0.33
+ runtime
+
+
+
+
+ com.baomidou
+ mybatis-plus-boot-starter
+ 3.5.1
+
+
+
+ com.alibaba
+ druid-spring-boot-starter
+ 1.2.8
+
+
+
+
+ io.jsonwebtoken
+ jjwt-api
+ ${jjwt.version}
+
+
+ io.jsonwebtoken
+ jjwt-impl
+ ${jjwt.version}
runtime
+
+ io.jsonwebtoken
+ jjwt-jackson
+ ${jjwt.version}
+ runtime
+
+
+
org.projectlombok
lombok
true
+
+
org.springframework.boot
spring-boot-starter-test
test
+
+
+ org.mockito
+ mockito-core
+
+
+ org.junit.vintage
+ junit-vintage-engine
+
+
-
+
- com.baomidou
- mybatis-plus-boot-starter
- 3.5.2
+ org.assertj
+ assertj-core
+ test
+
+
+ com.github.pagehelper
+ pagehelper
+ 5.3.2
+
+
@@ -60,24 +119,23 @@
+
org.apache.maven.plugins
maven-compiler-plugin
- 3.8.1
+ 3.10.1
- 1.8
- 1.8
+ ${java.version}
+ ${java.version}
UTF-8
+
+
org.springframework.boot
spring-boot-maven-plugin
${spring-boot.version}
-
- com.xinguan.mislab.MisLabApplication
- true
-
repackage
@@ -89,5 +147,4 @@
-
diff --git a/src/main/java/com/xinguan/mislab/MisLabApplication.java b/src/main/java/com/xinguan/mislab/MisLabApplication.java
index 769c0beac563549dd0e830eb9085738a9768f911..2e4f9da25e69f2b237e7892dfa6a468e8faa95b6 100644
--- a/src/main/java/com/xinguan/mislab/MisLabApplication.java
+++ b/src/main/java/com/xinguan/mislab/MisLabApplication.java
@@ -1,13 +1,18 @@
package com.xinguan.mislab;
+import com.xinguan.mislab.properties.JwtProperties;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
@SpringBootApplication
+@EnableTransactionManagement
public class MisLabApplication {
public static void main(String[] args) {
SpringApplication.run(MisLabApplication.class, args);
+
}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/com/xinguan/mislab/common/config/MybatisPlusConfig.java b/src/main/java/com/xinguan/mislab/common/config/MybatisPlusConfig.java
new file mode 100644
index 0000000000000000000000000000000000000000..6d782ca95a8356bc6dcb2ff0ab739cc8daf42b79
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/common/config/MybatisPlusConfig.java
@@ -0,0 +1,30 @@
+package com.xinguan.mislab.common.config;
+
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer;
+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;
+
+@Configuration
+public class MybatisPlusConfig {
+
+ /**
+ * 配置分页插件,避免使用过时的执行器。
+ */
+ @Bean
+ public MybatisPlusInterceptor mybatisPlusInterceptor() {
+ MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+
+ // 创建分页插件并设置数据库类型(MySQL)
+ PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();
+ paginationInnerInterceptor.setDbType(DbType.MYSQL);
+ paginationInnerInterceptor.setOverflow(true); // 超过最大页码后是否跳到第一页
+
+ // 添加分页插件到拦截器中
+ interceptor.addInnerInterceptor(paginationInnerInterceptor);
+ return interceptor;
+ }
+}
+
diff --git a/src/main/java/com/xinguan/mislab/config/SimpleCORSFilter.java b/src/main/java/com/xinguan/mislab/common/config/SimpleCORSFilter.java
similarity index 97%
rename from src/main/java/com/xinguan/mislab/config/SimpleCORSFilter.java
rename to src/main/java/com/xinguan/mislab/common/config/SimpleCORSFilter.java
index 5a859e87db93fbdd32ca9d32a1dcfa18d8335003..26680367b7b9df463995b19379527ac3a97d116d 100644
--- a/src/main/java/com/xinguan/mislab/config/SimpleCORSFilter.java
+++ b/src/main/java/com/xinguan/mislab/common/config/SimpleCORSFilter.java
@@ -1,4 +1,4 @@
-package com.xinguan.mislab.config;
+package com.xinguan.mislab.common.config;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/xinguan/mislab/common/config/WebMvcConfiguration.java b/src/main/java/com/xinguan/mislab/common/config/WebMvcConfiguration.java
new file mode 100644
index 0000000000000000000000000000000000000000..0d7e6a6e3e225d68c5f6a236be22ecbee3f6d104
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/common/config/WebMvcConfiguration.java
@@ -0,0 +1,33 @@
+package com.xinguan.mislab.common.config;
+
+import com.xinguan.mislab.common.interceptor.JwtTokenUserInterceptor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
+
+@Configuration
+@Slf4j
+public class WebMvcConfiguration extends WebMvcConfigurationSupport {
+
+
+ @Autowired
+ private JwtTokenUserInterceptor jwtTokenUserInterceptor;
+
+ /**
+ * 注册自定义拦截器
+ *
+ * @param registry
+ */
+ protected void addInterceptors(InterceptorRegistry registry) {
+ registry.addInterceptor(jwtTokenUserInterceptor)
+ .addPathPatterns("/**")
+ .excludePathPatterns("/user/login")
+ .excludePathPatterns("/department/all")
+ .excludePathPatterns("/item/all")
+ .excludePathPatterns("/graduate/all")
+ .excludePathPatterns("/freshman/new");
+
+ }
+}
diff --git a/src/main/java/com/xinguan/mislab/common/constant/JwtClaimsConstant.java b/src/main/java/com/xinguan/mislab/common/constant/JwtClaimsConstant.java
new file mode 100644
index 0000000000000000000000000000000000000000..418d63e8f92a11d578805e74365f1edc63aca5cd
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/common/constant/JwtClaimsConstant.java
@@ -0,0 +1,10 @@
+package com.xinguan.mislab.common.constant;
+
+public class JwtClaimsConstant {
+
+
+ public static final String USER_ID = "userId";
+
+
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/xinguan/mislab/common/constant/MessageConstant.java b/src/main/java/com/xinguan/mislab/common/constant/MessageConstant.java
new file mode 100644
index 0000000000000000000000000000000000000000..9696ca86f80dfb12336e3fb05c1511bb5925824a
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/common/constant/MessageConstant.java
@@ -0,0 +1,10 @@
+package com.xinguan.mislab.common.constant;
+
+/**
+ * 密码常量
+ */
+public class MessageConstant {
+
+ public static final String DEFAULT_PASSWORD = "123456";
+
+}
diff --git a/src/main/java/com/xinguan/mislab/common/exception/AccountNotFoundException.java b/src/main/java/com/xinguan/mislab/common/exception/AccountNotFoundException.java
new file mode 100644
index 0000000000000000000000000000000000000000..36b06e21394f889e8f18c47276559cf90d803a6c
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/common/exception/AccountNotFoundException.java
@@ -0,0 +1,7 @@
+package com.xinguan.mislab.common.exception;
+
+public class AccountNotFoundException extends BaseException{
+ public AccountNotFoundException(String mes){
+ super(mes);
+ }
+}
diff --git a/src/main/java/com/xinguan/mislab/common/exception/BaseException.java b/src/main/java/com/xinguan/mislab/common/exception/BaseException.java
new file mode 100644
index 0000000000000000000000000000000000000000..57dbf807075550ff5972fc53c5bcf0c41ba4f08c
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/common/exception/BaseException.java
@@ -0,0 +1,15 @@
+package com.xinguan.mislab.common.exception;
+
+/**
+ * 业务异常
+ */
+public class BaseException extends RuntimeException {
+
+ public BaseException() {
+ }
+
+ public BaseException(String msg) {
+ super(msg);
+ }
+
+}
diff --git a/src/main/java/com/xinguan/mislab/common/exception/FilePutError.java b/src/main/java/com/xinguan/mislab/common/exception/FilePutError.java
new file mode 100644
index 0000000000000000000000000000000000000000..3b390a2b02b5f4f89410db209a4f9751e0e59899
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/common/exception/FilePutError.java
@@ -0,0 +1,7 @@
+package com.xinguan.mislab.common.exception;
+
+public class FilePutError extends BaseException {
+ public FilePutError(String message) {
+ super(message);
+ }
+}
diff --git a/src/main/java/com/xinguan/mislab/common/exception/LoginFailedException.java b/src/main/java/com/xinguan/mislab/common/exception/LoginFailedException.java
new file mode 100644
index 0000000000000000000000000000000000000000..34f16f341b751eebfff416e052a80dbca10da3ad
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/common/exception/LoginFailedException.java
@@ -0,0 +1,10 @@
+package com.xinguan.mislab.common.exception;
+
+/**
+ * 登录失败
+ */
+public class LoginFailedException extends BaseException{
+ public LoginFailedException(String msg){
+ super(msg);
+ }
+}
diff --git a/src/main/java/com/xinguan/mislab/common/exception/PasswordEditFailedException.java b/src/main/java/com/xinguan/mislab/common/exception/PasswordEditFailedException.java
new file mode 100644
index 0000000000000000000000000000000000000000..da7ff852633ec72b41ae40730a4df5be9734a1a8
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/common/exception/PasswordEditFailedException.java
@@ -0,0 +1,12 @@
+package com.xinguan.mislab.common.exception;
+
+/**
+ * 密码修改失败异常
+ */
+public class PasswordEditFailedException extends BaseException{
+
+ public PasswordEditFailedException(String msg){
+ super(msg);
+ }
+
+}
diff --git a/src/main/java/com/xinguan/mislab/common/exception/PasswordErrorException.java b/src/main/java/com/xinguan/mislab/common/exception/PasswordErrorException.java
new file mode 100644
index 0000000000000000000000000000000000000000..bb226ee8c6e7240d5144c5c29eda7b36c75e08f6
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/common/exception/PasswordErrorException.java
@@ -0,0 +1,15 @@
+package com.xinguan.mislab.common.exception;
+
+/**
+ * 密码错误异常
+ */
+public class PasswordErrorException extends BaseException {
+
+ public PasswordErrorException() {
+ }
+
+ public PasswordErrorException(String msg) {
+ super(msg);
+ }
+
+}
diff --git a/src/main/java/com/xinguan/mislab/common/exception/PwdOrUsernameIsNullException.java b/src/main/java/com/xinguan/mislab/common/exception/PwdOrUsernameIsNullException.java
new file mode 100644
index 0000000000000000000000000000000000000000..b559d35574c3062ed2f4cd63a724e52e81ffb5ad
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/common/exception/PwdOrUsernameIsNullException.java
@@ -0,0 +1,14 @@
+package com.xinguan.mislab.common.exception;
+
+/**
+ * 账号或密码为空
+ */
+public class PwdOrUsernameIsNullException extends BaseException{
+
+ public PwdOrUsernameIsNullException(){}
+
+ public PwdOrUsernameIsNullException(String msg){
+ super(msg);
+ }
+
+}
diff --git a/src/main/java/com/xinguan/mislab/common/exception/UserNotLoginException.java b/src/main/java/com/xinguan/mislab/common/exception/UserNotLoginException.java
new file mode 100644
index 0000000000000000000000000000000000000000..0e306750d3f71b49cc76d492a63d30dbb1fee11e
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/common/exception/UserNotLoginException.java
@@ -0,0 +1,12 @@
+package com.xinguan.mislab.common.exception;
+
+public class UserNotLoginException extends BaseException {
+
+ public UserNotLoginException() {
+ }
+
+ public UserNotLoginException(String msg) {
+ super(msg);
+ }
+
+}
diff --git a/src/main/java/com/xinguan/mislab/common/interceptor/JwtTokenUserInterceptor.java b/src/main/java/com/xinguan/mislab/common/interceptor/JwtTokenUserInterceptor.java
new file mode 100644
index 0000000000000000000000000000000000000000..20b215d17967fa4c7c03cc1c88795af68f0d5963
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/common/interceptor/JwtTokenUserInterceptor.java
@@ -0,0 +1,43 @@
+package com.xinguan.mislab.common.interceptor;
+
+
+import com.xinguan.mislab.common.constant.JwtClaimsConstant;
+import com.xinguan.mislab.context.BaseContext;
+import com.xinguan.mislab.properties.JwtProperties;
+import com.xinguan.mislab.common.utils.JwtUtil;
+import io.jsonwebtoken.Claims;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.web.servlet.HandlerInterceptor;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+
+@Component
+@Slf4j
+public class JwtTokenUserInterceptor implements HandlerInterceptor {
+
+ @Autowired
+ private JwtProperties jwtProperties;
+
+ public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
+
+
+
+ String token = request.getHeader(jwtProperties.getUserTokenName());
+
+ try {
+ log.info("jwt校验:{}", token);
+ Claims claims = JwtUtil.parseJWT(token);
+ Long userId = Long.valueOf(claims.get(JwtClaimsConstant.USER_ID).toString());
+ log.info("当前用户id:{}", userId);
+ BaseContext.setCurrentId(userId);
+ return true;
+ } catch (Exception ex) {
+ response.setStatus(401);
+ return false;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/xinguan/mislab/common/result/PageResult.java b/src/main/java/com/xinguan/mislab/common/result/PageResult.java
new file mode 100644
index 0000000000000000000000000000000000000000..5b6ae17676e094107263de3846100d5f6d46e13a
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/common/result/PageResult.java
@@ -0,0 +1,22 @@
+package com.xinguan.mislab.common.result;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 封装分页查询结果
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class PageResult implements Serializable {
+
+ private long total;
+
+ private List records;
+
+}
diff --git a/src/main/java/com/xinguan/mislab/common/result/Result.java b/src/main/java/com/xinguan/mislab/common/result/Result.java
new file mode 100644
index 0000000000000000000000000000000000000000..62f43577328891633692fc82d78b497b98e92dde
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/common/result/Result.java
@@ -0,0 +1,38 @@
+package com.xinguan.mislab.common.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 后端统一返回结果
+ * @param
+ */
+@Data
+public class Result implements Serializable {
+
+ private Integer code; //200成功,0失败
+ private String msg;
+ private T data;
+
+ public static Result success() {
+ Result result = new Result();
+ result.code = 200;
+ return result;
+ }
+
+ public static Result success(T object) {
+ Result result = new Result();
+ result.data = object;
+ result.code = 1;
+ return result;
+ }
+
+ public static Result error(Integer code, String msg) {
+ Result result = new Result();
+ result.msg = msg;
+ result.code = code;
+ return result;
+ }
+
+}
diff --git a/src/main/java/com/xinguan/mislab/common/utils/JwtUtil.java b/src/main/java/com/xinguan/mislab/common/utils/JwtUtil.java
new file mode 100644
index 0000000000000000000000000000000000000000..16b39b332f837ffcb60fc2ed97fadb70f50dee90
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/common/utils/JwtUtil.java
@@ -0,0 +1,47 @@
+package com.xinguan.mislab.common.utils;
+
+import io.jsonwebtoken.Claims;
+import io.jsonwebtoken.JwtBuilder;
+import io.jsonwebtoken.Jwts;
+import io.jsonwebtoken.SignatureAlgorithm;
+
+import java.util.Date;
+import java.util.Map;
+
+public class JwtUtil {
+ /**
+ * 生成jwt
+ * 使用Hs256算法, 私匙使用固定秘钥
+ *
+ *
+ * @param ttlMillis jwt过期时间(毫秒)
+ * @param claims 设置的信息
+ * @return
+ */
+ public static String createJWT(long ttlMillis, Map claims) {
+ //时间
+ long expMillis = System.currentTimeMillis() + ttlMillis;
+ Date exp = new Date(expMillis);
+
+ JwtBuilder builder = Jwts.builder()
+ .setClaims(claims)
+ .signWith(SignatureAlgorithm.HS256, "mislabmislabmislabmislabmislabmislabmislabmis")
+ .setExpiration(exp);
+
+ return builder.compact();
+ }
+
+ /**
+ * Token解密
+ *
+ * @param token 加密后的token
+ * @return
+ */
+ public static Claims parseJWT( String token) {
+ Claims claims = Jwts.parser()
+ .setSigningKey("mislabmislabmislabmislabmislabmislabmislabmis")
+ .parseClaimsJws(token).getBody();
+ return claims;
+ }
+
+}
diff --git a/src/main/java/com/xinguan/mislab/context/BaseContext.java b/src/main/java/com/xinguan/mislab/context/BaseContext.java
new file mode 100644
index 0000000000000000000000000000000000000000..3dd5759820d725058487e58de47d53c7133a31d7
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/context/BaseContext.java
@@ -0,0 +1,19 @@
+package com.xinguan.mislab.context;
+
+public class BaseContext {
+
+ public static ThreadLocal threadLocal = new ThreadLocal<>();
+
+ public static void setCurrentId(Long id) {
+ threadLocal.set(id);
+ }
+
+ public static Long getCurrentId() {
+ return threadLocal.get();
+ }
+
+ public static void removeCurrentId() {
+ threadLocal.remove();
+ }
+
+}
diff --git a/src/main/java/com/xinguan/mislab/controller/CommonController.java b/src/main/java/com/xinguan/mislab/controller/CommonController.java
new file mode 100644
index 0000000000000000000000000000000000000000..34f089557e53830068be866ca01a5904434f3816
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/controller/CommonController.java
@@ -0,0 +1,76 @@
+package com.xinguan.mislab.controller;
+
+import com.xinguan.mislab.common.result.Result;
+import com.xinguan.mislab.pojo.entity.Graduate;
+import com.xinguan.mislab.service.FreshmanService;
+import com.xinguan.mislab.service.GraduateService;
+import com.xinguan.mislab.service.OfficialService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Set;
+import java.util.UUID;
+@RestController
+@RequestMapping("/common")
+@Slf4j
+public class CommonController {
+
+ @Autowired
+ private FreshmanService freshmanService;
+
+ // 配置文件保存目录
+ private static final String UPLOAD_DIR = "file:/usr/local/JAVA/project/photo/";
+
+ @PostMapping("/upload")
+ public Result upload(MultipartFile file) {
+ log.info("文件上传:{}", file);
+
+ // 文件为空时,返回 400 错误
+ if (file.isEmpty()) {
+ return Result.error(400, "文件不能为空");
+ }
+
+ try {
+ // 原始文件名
+ String originalFilename = file.getOriginalFilename();
+ // 获取文件扩展名
+ String extension = originalFilename.substring(originalFilename.lastIndexOf("."));
+
+ // 限制文件格式为图片
+ List allowedExtensions = Arrays.asList(".jpg", ".jpeg", ".png", ".gif");
+ if (!allowedExtensions.contains(extension.toLowerCase())) {
+ return Result.error(415, "只允许上传图片文件"); // 415 表示不支持的文件类型
+ }
+
+ // 生成唯一的文件名
+ String newFileName = UUID.randomUUID().toString() + extension;
+
+ // 保存文件到本地
+ File dest = new File(UPLOAD_DIR + newFileName);
+ file.transferTo(dest);
+
+ // 返回文件的访问路径
+ String fileUrl = "http://localhost:8080/images/" + newFileName;
+
+ log.info("文件上传成功,文件路径:{}", fileUrl);
+ return Result.success(fileUrl); // 返回文件的URL路径
+
+ } catch (IOException e) {
+ log.error("文件上传失败:{}", e);
+ return Result.error(500, "文件上传失败"); // 500 表示服务器错误
+ }
+ }
+
+
+ @GetMapping("/grade")
+ public Result> gradeQuery(){
+ Set result = freshmanService.gradeQuery();
+ return Result.success(result);
+ }
+}
diff --git a/src/main/java/com/xinguan/mislab/controller/DepartmentController.java b/src/main/java/com/xinguan/mislab/controller/DepartmentController.java
new file mode 100644
index 0000000000000000000000000000000000000000..776ec54f898f3946c043a65a6e236ea5e8205e34
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/controller/DepartmentController.java
@@ -0,0 +1,52 @@
+package com.xinguan.mislab.controller;
+
+import com.xinguan.mislab.common.result.PageResult;
+import com.xinguan.mislab.common.result.Result;
+import com.xinguan.mislab.pojo.DTO.DepartmentDTO;
+import com.xinguan.mislab.pojo.entity.Department;
+import com.xinguan.mislab.service.DepartmentService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("/department")
+@Slf4j
+public class DepartmentController {
+
+ @Autowired
+ private DepartmentService departmentService;
+
+ @PostMapping
+ public Result save(@RequestBody DepartmentDTO departmentDTO){
+ departmentService.saveNew(departmentDTO);
+ return Result.success();
+ }
+
+ @GetMapping("list")
+ public Result pageQuery(int page, int pageSize){
+ PageResult pageResult = departmentService.pageQuery(page, pageSize);
+ return Result.success(pageResult);
+ }
+
+ @PutMapping
+ public Result update(@RequestBody Department department){
+ departmentService.updateMsg(department);
+ return Result.success();
+ }
+
+ @DeleteMapping("/{id}")
+ public Result delete(@PathVariable("id") Long id) {
+ departmentService.removeById(id);
+ return Result.success();
+ }
+
+ @GetMapping("/all")
+ public Result getAll(){
+ List list = departmentService.getAll();
+ return Result.success(list);
+ }
+}
diff --git a/src/main/java/com/xinguan/mislab/controller/FreshmanController.java b/src/main/java/com/xinguan/mislab/controller/FreshmanController.java
new file mode 100644
index 0000000000000000000000000000000000000000..f521e0f74954f6dcd9b1262c17da788539ae33be
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/controller/FreshmanController.java
@@ -0,0 +1,56 @@
+package com.xinguan.mislab.controller;
+
+import com.xinguan.mislab.pojo.DTO.FreshmanDTO;
+import com.xinguan.mislab.pojo.DTO.FreshmanPageQueryDTO;
+import com.xinguan.mislab.pojo.entity.Freshman;
+import com.xinguan.mislab.common.result.PageResult;
+import com.xinguan.mislab.common.result.Result;
+import com.xinguan.mislab.service.FreshmanService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Set;
+
+@RestController
+@RequestMapping("freshman")
+@Slf4j
+public class FreshmanController {
+
+ @Autowired
+ private FreshmanService freshmanService;
+
+ @PostMapping("/list")
+ public Result list(@RequestBody FreshmanPageQueryDTO freshmanPageQueryDTO) {
+ PageResult pageResult = freshmanService.pageQuery(freshmanPageQueryDTO);
+ return Result.success(pageResult);
+ }
+
+
+ @PostMapping("/new")
+ public Result save(@RequestBody FreshmanDTO freshmanDTO){
+ log.info("正在添加新生:{}",freshmanDTO);
+ freshmanService.saveNewMenber(freshmanDTO);
+ return Result.success();
+ }
+
+ @DeleteMapping("/{id}")
+ public Result delete(@PathVariable Long id){
+ log.info("正在删除:{}",id);
+ freshmanService.deleteById(id);
+
+ return Result.success();
+ }
+
+ @PutMapping
+ public Result update(@RequestBody Freshman freshman){
+ log.info("正在更改:{}", freshman.getId());
+ freshmanService.updateMsg(freshman);
+ return Result.success();
+
+ }
+
+
+
+}
diff --git a/src/main/java/com/xinguan/mislab/controller/GraduateController.java b/src/main/java/com/xinguan/mislab/controller/GraduateController.java
new file mode 100644
index 0000000000000000000000000000000000000000..01c52ec3492f1891d27a1613c76e4901e6dbf5d9
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/controller/GraduateController.java
@@ -0,0 +1,58 @@
+package com.xinguan.mislab.controller;
+
+import com.xinguan.mislab.pojo.DTO.GraduateDTO;
+import com.xinguan.mislab.pojo.DTO.GraduatePageQuery;
+import com.xinguan.mislab.pojo.entity.Graduate;
+import com.xinguan.mislab.common.result.PageResult;
+import com.xinguan.mislab.common.result.Result;
+import com.xinguan.mislab.service.GraduateService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
+import java.util.UUID;
+
+@RestController
+@RequestMapping("/graduate")
+@Slf4j
+public class GraduateController {
+
+ @Autowired
+ private GraduateService graduateService;
+
+ @PostMapping("/create")
+ public Result save(@RequestBody GraduateDTO graduateDTO){
+ log.info("正在储存对象:{}",graduateDTO);
+ graduateService.saveGraduate(graduateDTO);
+ return Result.success();
+ }
+ @DeleteMapping("{id}")
+ public Result delete(@PathVariable Long id){
+ log.info("正在删除:{}",id);
+ graduateService.removeById(id);
+ return Result.success();
+ }
+
+ @PostMapping("/list")
+ public Result list(@RequestBody GraduatePageQuery graduatePageQuery){
+ PageResult pageResult = graduateService.pageQuery(graduatePageQuery);
+ return Result.success(pageResult);
+ }
+
+ @GetMapping("/all")
+ public Result> getAll(){
+ List graduate = graduateService.getALL();
+ return Result.success(graduate);
+ }
+
+ @PutMapping
+ public Result update(@RequestBody Graduate graduate){
+ log.info("正在更改:{}", graduate.getId());
+ graduateService.updateMsg(graduate);
+ return Result.success();
+ }
+
+}
diff --git a/src/main/java/com/xinguan/mislab/controller/ItemController.java b/src/main/java/com/xinguan/mislab/controller/ItemController.java
new file mode 100644
index 0000000000000000000000000000000000000000..7bb26c791eb08e89da8348059c87533503202175
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/controller/ItemController.java
@@ -0,0 +1,50 @@
+package com.xinguan.mislab.controller;
+
+import com.xinguan.mislab.common.result.PageResult;
+import com.xinguan.mislab.common.result.Result;
+import com.xinguan.mislab.pojo.entity.Item;
+import com.xinguan.mislab.pojo.DTO.ItemDTO;
+import com.xinguan.mislab.service.ItemService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("/item")
+public class ItemController {
+
+ @Autowired
+ private ItemService itemService;
+
+ @PostMapping
+ public Result save(@RequestBody ItemDTO itemDTO){
+ itemService.saveNew(itemDTO);
+ return Result.success();
+ }
+
+ @PutMapping("update")
+ public Result update(@RequestBody Item item){
+ itemService.updateById(item);
+ return Result.success();
+ }
+
+ @DeleteMapping("/{id}")
+ public Result delete(@PathVariable("id") Long id){
+ itemService.removeById(id);
+ return Result.success();
+ }
+
+ @GetMapping("/list")
+ public Result list(int page, int pageSize){
+ PageResult pageResult = itemService.pageQuery(page, pageSize);
+ return Result.success(pageResult);
+ }
+
+ @GetMapping("/all")
+ public Result> getAll(){
+ List- list = itemService.getAll();
+ return Result.success(list);
+ }
+
+}
diff --git a/src/main/java/com/xinguan/mislab/controller/OfficialControlller.java b/src/main/java/com/xinguan/mislab/controller/OfficialControlller.java
new file mode 100644
index 0000000000000000000000000000000000000000..5d12ed59965ed3d2771479d5d6bf0f6158bbed92
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/controller/OfficialControlller.java
@@ -0,0 +1,47 @@
+package com.xinguan.mislab.controller;
+
+
+import com.xinguan.mislab.common.result.PageResult;
+import com.xinguan.mislab.common.result.Result;
+import com.xinguan.mislab.pojo.DTO.OfficialDTO;
+import com.xinguan.mislab.pojo.DTO.OfficialPageQueryDTO;
+import com.xinguan.mislab.pojo.entity.Official;
+import com.xinguan.mislab.service.OfficialService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("/Officail")
+@Slf4j
+public class OfficialControlller {
+ @Autowired
+ private OfficialService officialService;
+
+ @PostMapping("/create")
+ public Result save(@RequestBody OfficialDTO officialDTO){
+ log.info("正在储存对象:{}",officialDTO);
+ officialService.saveOfficial(officialDTO);
+ return Result.success();
+ }
+ @DeleteMapping("{id}")
+ public Result delete(@PathVariable Long id){
+ log.info("正在删除:{}",id);
+ officialService.removeById(id);
+ return Result.success();
+ }
+
+ @PostMapping("/list")
+ public Result list(@RequestBody OfficialPageQueryDTO officialPageQueryDTO){
+ PageResult pageResult = officialService.pageQuery(officialPageQueryDTO);
+ return Result.success(pageResult);
+ }
+
+
+ @PutMapping
+ public Result update(@RequestBody Official official){
+ log.info("正在更改:{}", official.getId());
+ officialService.updateMsg(official);
+ return Result.success();
+ }
+}
diff --git a/src/main/java/com/xinguan/mislab/controller/UserController.java b/src/main/java/com/xinguan/mislab/controller/UserController.java
new file mode 100644
index 0000000000000000000000000000000000000000..58ab92de2002a34c5cb6609248096e36eadd2da2
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/controller/UserController.java
@@ -0,0 +1,75 @@
+package com.xinguan.mislab.controller;
+
+import com.xinguan.mislab.pojo.DTO.UserDTO;
+import com.xinguan.mislab.pojo.DTO.UserLoginDTO;
+import com.xinguan.mislab.pojo.VO.UserLoginVO;
+import com.xinguan.mislab.common.constant.JwtClaimsConstant;
+import com.xinguan.mislab.pojo.entity.User;
+import com.xinguan.mislab.properties.JwtProperties;
+import com.xinguan.mislab.common.result.PageResult;
+import com.xinguan.mislab.common.result.Result;
+import com.xinguan.mislab.service.UserService;
+import com.xinguan.mislab.common.utils.JwtUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@RestController
+@RequestMapping("user")
+@Slf4j
+public class UserController {
+
+ @Autowired
+ private UserService userService;
+ @Autowired
+ private JwtProperties jwtProperties;
+
+ @PostMapping("/login")
+ public Result login(@RequestBody UserLoginDTO userLoginDTO) {
+ log.info("用户登录:{}", userLoginDTO);
+
+ User user = userService.login(userLoginDTO);
+
+ //登录成功后,生成jwt令牌
+ Map claims = new HashMap<>();
+ claims.put(JwtClaimsConstant.USER_ID, user.getId());
+ String token = JwtUtil.createJWT(
+ jwtProperties.getUserTtl(),
+ claims);
+
+ UserLoginVO employeeLoginVO = UserLoginVO.builder()
+ .id(user.getId())
+ .userName(user.getUsername())
+ .name(user.getName())
+ .token(token)
+ .build();
+
+
+
+
+ return Result.success(employeeLoginVO);
+ }
+
+ @PostMapping("/sign")
+ public Result sign(@RequestBody UserLoginDTO userLoginDTO){
+ log.info("用户登录:{}",userLoginDTO);
+ userService.sign(userLoginDTO);
+ return Result.success();
+ }
+
+ @PutMapping
+ public Result update(@RequestBody UserDTO userDTO){
+ userService.updateUserMes(userDTO);
+ return Result.success();
+ }
+
+ @GetMapping("/account")
+ public Result page(int page, int pageSize){
+ PageResult pageResult = userService.pageQuery(page, pageSize);
+ return Result.success(pageResult);
+ }
+
+}
diff --git a/src/main/java/com/xinguan/mislab/mapper/DepartmentMapper.java b/src/main/java/com/xinguan/mislab/mapper/DepartmentMapper.java
new file mode 100644
index 0000000000000000000000000000000000000000..6760e78b213bf5696c38a9aeb2312d21789564e2
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/mapper/DepartmentMapper.java
@@ -0,0 +1,22 @@
+package com.xinguan.mislab.mapper;
+
+import com.github.pagehelper.Page;
+import com.xinguan.mislab.pojo.entity.Department;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @author gyklc
+* @description 针对表【department(项目信息)】的数据库操作Mapper
+* @createDate 2024-11-18 20:01:09
+* @Entity com.xinguan.mislab.pojo.entity.Department
+*/
+@Mapper
+public interface DepartmentMapper extends BaseMapper {
+
+
+}
+
+
+
+
diff --git a/src/main/java/com/xinguan/mislab/mapper/FreshmanMapper.java b/src/main/java/com/xinguan/mislab/mapper/FreshmanMapper.java
new file mode 100644
index 0000000000000000000000000000000000000000..0ceef0ff3ce599b00e6381c20c92fba433b0ef8e
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/mapper/FreshmanMapper.java
@@ -0,0 +1,34 @@
+package com.xinguan.mislab.mapper;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.xinguan.mislab.pojo.DTO.FreshmanPageQueryDTO;
+import com.xinguan.mislab.pojo.VO.FreshmanVO;
+import com.xinguan.mislab.pojo.entity.Freshman;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Set;
+
+/**
+* @author gyklc
+* @description 针对表【freshman(新生信息)】的数据库操作Mapper
+* @createDate 2024-11-18 20:01:54
+* @Entity com.xinguan.mislab.pojo.entity.Freshman
+*/
+@Mapper
+public interface FreshmanMapper extends BaseMapper {
+
+ IPage pageQuery(Page page, @Param("queryDTO") FreshmanPageQueryDTO freshmanPageQueryDTO);
+
+
+ void updateMsg(Freshman freshman);
+
+ Set gradeQuery();
+}
+
+
+
+
diff --git a/src/main/java/com/xinguan/mislab/mapper/GraduateMapper.java b/src/main/java/com/xinguan/mislab/mapper/GraduateMapper.java
new file mode 100644
index 0000000000000000000000000000000000000000..cbe410d175f0645d44bff1f054f574544dd0554a
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/mapper/GraduateMapper.java
@@ -0,0 +1,27 @@
+package com.xinguan.mislab.mapper;
+
+import com.github.pagehelper.Page;
+import com.xinguan.mislab.pojo.DTO.GraduatePageQuery;
+import com.xinguan.mislab.pojo.entity.Graduate;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.Set;
+
+/**
+* @author gyklc
+* @description 针对表【graduate(毕业人员)】的数据库操作Mapper
+* @createDate 2024-11-18 20:01:54
+* @Entity com.xinguan.mislab.pojo.entity.Graduate
+*/
+@Mapper
+public interface GraduateMapper extends BaseMapper {
+
+ Page pageQuery(GraduatePageQuery graduatePageQuery);
+
+ Set gradeQuery();
+}
+
+
+
+
diff --git a/src/main/java/com/xinguan/mislab/mapper/ItemMapper.java b/src/main/java/com/xinguan/mislab/mapper/ItemMapper.java
new file mode 100644
index 0000000000000000000000000000000000000000..cd5ad73a82eedc7172f21eaeb817d144a4d22a49
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/mapper/ItemMapper.java
@@ -0,0 +1,20 @@
+package com.xinguan.mislab.mapper;
+
+import com.xinguan.mislab.pojo.entity.Item;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @author gyklc
+* @description 针对表【item(项目信息)】的数据库操作Mapper
+* @createDate 2024-11-18 20:01:54
+* @Entity com.xinguan.mislab.pojo.entity.Item
+*/
+@Mapper
+public interface ItemMapper extends BaseMapper
- {
+
+}
+
+
+
+
diff --git a/src/main/java/com/xinguan/mislab/mapper/OfficialMapper.java b/src/main/java/com/xinguan/mislab/mapper/OfficialMapper.java
new file mode 100644
index 0000000000000000000000000000000000000000..bd63c516b23c951f12b30a333f122455c2ead99d
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/mapper/OfficialMapper.java
@@ -0,0 +1,32 @@
+package com.xinguan.mislab.mapper;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.xinguan.mislab.pojo.DTO.OfficialPageQueryDTO;
+import com.xinguan.mislab.pojo.VO.FreshmanVO;
+import com.xinguan.mislab.pojo.VO.OfficialVO;
+import com.xinguan.mislab.pojo.entity.Freshman;
+import com.xinguan.mislab.pojo.entity.Official;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Set;
+
+/**
+* @author lenovo
+* @description 针对表【official】的数据库操作Mapper
+* @createDate 2024-12-08 18:52:06
+* @Entity com.xinguan.mislab.pojo.entity.Official
+*/
+@Mapper
+public interface OfficialMapper extends BaseMapper {
+ IPage pageQuery(Page page, @Param("queryDTO") OfficialPageQueryDTO officialPageQueryDTO);
+
+ void updateMsg(Official official);
+ Set gradeQuery();
+}
+
+
+
+
diff --git a/src/main/java/com/xinguan/mislab/mapper/UserMapper.java b/src/main/java/com/xinguan/mislab/mapper/UserMapper.java
new file mode 100644
index 0000000000000000000000000000000000000000..ea8436f8cae69e3fa291a2d7e5e08024c34cb1c4
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/mapper/UserMapper.java
@@ -0,0 +1,32 @@
+package com.xinguan.mislab.mapper;
+
+import com.github.pagehelper.Page;
+import com.xinguan.mislab.pojo.entity.User;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Select;
+
+/**
+* @author gyklc
+* @description 针对表【user(员工信息)】的数据库操作Mapper
+* @createDate 2024-11-18 20:01:54
+* @Entity com.xinguan.mislab.pojo.entity.User
+*/
+@Mapper
+public interface UserMapper extends BaseMapper {
+
+ @Select("select * from MisLab.user where username = #{username}")
+ User getByUsername(String username);
+
+ void updateUserMes(User user);
+
+
+ void saveNewAccount(User user);
+
+ @Select("select * from mislab.freshman")
+ Page pageQuery(int page, int pageSize);
+}
+
+
+
+
diff --git a/src/main/java/com/xinguan/mislab/pojo/DTO/DepartmentDTO.java b/src/main/java/com/xinguan/mislab/pojo/DTO/DepartmentDTO.java
new file mode 100644
index 0000000000000000000000000000000000000000..d118f12fd877276e5843d75be23cf435b67f46d4
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/pojo/DTO/DepartmentDTO.java
@@ -0,0 +1,12 @@
+package com.xinguan.mislab.pojo.DTO;
+
+import lombok.Data;
+
+@Data
+public class DepartmentDTO {
+ private String name;
+ private String photo;
+ private String intro;
+ private String recruitmentRequirements;
+ private String recruitmentTarget;
+}
diff --git a/src/main/java/com/xinguan/mislab/pojo/DTO/FreshmanDTO.java b/src/main/java/com/xinguan/mislab/pojo/DTO/FreshmanDTO.java
new file mode 100644
index 0000000000000000000000000000000000000000..d16e06240dca75973cf0e312f3d95ebff73131de
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/pojo/DTO/FreshmanDTO.java
@@ -0,0 +1,24 @@
+package com.xinguan.mislab.pojo.DTO;
+
+import lombok.Data;
+
+@Data
+public class FreshmanDTO {
+ private String name;
+
+ private String sex;
+
+ private String phone;
+
+ private String grade;
+
+ private String departmentId;
+
+ private String major;
+
+ private String studentId;
+
+ private String emailId;
+
+
+}
diff --git a/src/main/java/com/xinguan/mislab/pojo/DTO/FreshmanPageQueryDTO.java b/src/main/java/com/xinguan/mislab/pojo/DTO/FreshmanPageQueryDTO.java
new file mode 100644
index 0000000000000000000000000000000000000000..7c0298893dea7f4868a75e8a88d7cc8bb8219291
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/pojo/DTO/FreshmanPageQueryDTO.java
@@ -0,0 +1,16 @@
+package com.xinguan.mislab.pojo.DTO;
+
+
+import lombok.Data;
+
+@Data
+public class FreshmanPageQueryDTO {
+ private Integer page;
+ private Integer pageSize;
+ private String name;
+ private String sex;
+ private String grade;
+ private String departmentId;
+ private String major;
+ private String studentId;
+}
diff --git a/src/main/java/com/xinguan/mislab/pojo/DTO/GraduateDTO.java b/src/main/java/com/xinguan/mislab/pojo/DTO/GraduateDTO.java
new file mode 100644
index 0000000000000000000000000000000000000000..c08a0feaa3c5a66d62ac95ff28f671e86689975b
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/pojo/DTO/GraduateDTO.java
@@ -0,0 +1,28 @@
+package com.xinguan.mislab.pojo.DTO;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.time.LocalDateTime;
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class GraduateDTO {
+ private String name;
+
+ private String sex;
+
+ private String phone;
+
+ private String grade;
+
+ private String photo;
+
+ private String company;
+
+ private String emailId;
+}
diff --git a/src/main/java/com/xinguan/mislab/pojo/DTO/GraduatePageQuery.java b/src/main/java/com/xinguan/mislab/pojo/DTO/GraduatePageQuery.java
new file mode 100644
index 0000000000000000000000000000000000000000..ae93fd71385f13ad04d8dbf108502e4137e79d23
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/pojo/DTO/GraduatePageQuery.java
@@ -0,0 +1,15 @@
+package com.xinguan.mislab.pojo.DTO;
+
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Data
+public class GraduatePageQuery {
+ private Integer page;
+ private Integer pageSize;
+ private String name;
+ private String grade;
+ private String company;
+ private String emailId;
+}
diff --git a/src/main/java/com/xinguan/mislab/pojo/DTO/ItemDTO.java b/src/main/java/com/xinguan/mislab/pojo/DTO/ItemDTO.java
new file mode 100644
index 0000000000000000000000000000000000000000..ae10ecf86e2b8de3dc105df75083be8f48cf11fc
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/pojo/DTO/ItemDTO.java
@@ -0,0 +1,16 @@
+package com.xinguan.mislab.pojo.DTO;
+
+import lombok.Data;
+
+@Data
+public class ItemDTO {
+ private Long id;
+
+ private String name;
+
+ private String photo;
+
+ private String intro;
+
+ private String address;
+}
diff --git a/src/main/java/com/xinguan/mislab/pojo/DTO/OfficialDTO.java b/src/main/java/com/xinguan/mislab/pojo/DTO/OfficialDTO.java
new file mode 100644
index 0000000000000000000000000000000000000000..9d65a8c5138fd4d6443d9e9dd00aee5a2f357ed0
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/pojo/DTO/OfficialDTO.java
@@ -0,0 +1,21 @@
+package com.xinguan.mislab.pojo.DTO;
+
+
+import lombok.Data;
+
+@Data
+public class OfficialDTO {
+ private String name;
+
+ private String sex;
+
+ private String phone;
+
+ private String departmentId;
+
+ private String major;
+
+ private String studentId;
+
+ private String emailId;
+}
diff --git a/src/main/java/com/xinguan/mislab/pojo/DTO/OfficialPageQueryDTO.java b/src/main/java/com/xinguan/mislab/pojo/DTO/OfficialPageQueryDTO.java
new file mode 100644
index 0000000000000000000000000000000000000000..911843c4815b648c89915d1e40cc0a6bb466c1b6
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/pojo/DTO/OfficialPageQueryDTO.java
@@ -0,0 +1,15 @@
+package com.xinguan.mislab.pojo.DTO;
+
+import lombok.Data;
+
+@Data
+public class OfficialPageQueryDTO {
+ private Integer page;
+ private Integer pageSize;
+ private String name;
+ private String sex;
+ private String departmentId;
+ private String major;
+ private String studentId;
+ private String emailId;
+}
diff --git a/src/main/java/com/xinguan/mislab/pojo/DTO/UserDTO.java b/src/main/java/com/xinguan/mislab/pojo/DTO/UserDTO.java
new file mode 100644
index 0000000000000000000000000000000000000000..c914d3ccb317470f7b83c333a9c88b7d86b81f30
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/pojo/DTO/UserDTO.java
@@ -0,0 +1,22 @@
+package com.xinguan.mislab.pojo.DTO;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class UserDTO implements Serializable {
+
+ private Long id;
+
+ private String username;
+
+ private String password;
+
+ private String name;
+
+ private String phone;
+
+ private String sex;
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/xinguan/mislab/pojo/DTO/UserLoginDTO.java b/src/main/java/com/xinguan/mislab/pojo/DTO/UserLoginDTO.java
new file mode 100644
index 0000000000000000000000000000000000000000..ac43ea7e0397dbce716c02a6fa9152350b2f568f
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/pojo/DTO/UserLoginDTO.java
@@ -0,0 +1,14 @@
+package com.xinguan.mislab.pojo.DTO;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class UserLoginDTO implements Serializable {
+
+ private String username;
+
+ private String password;
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/xinguan/mislab/pojo/VO/FreshmanVO.java b/src/main/java/com/xinguan/mislab/pojo/VO/FreshmanVO.java
new file mode 100644
index 0000000000000000000000000000000000000000..cbd4f616b8a8c89f8ff821f8abdf89f41f87549c
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/pojo/VO/FreshmanVO.java
@@ -0,0 +1,34 @@
+package com.xinguan.mislab.pojo.VO;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.time.LocalDateTime;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+public class FreshmanVO {
+ private Long id;
+
+ private String name;
+
+ private String sex;
+
+ private String phone;
+
+ private String grade;
+
+ private String department;
+
+ private LocalDateTime createTime;
+
+ private String major;
+
+ private String studentId;
+
+ private String emailId;
+}
diff --git a/src/main/java/com/xinguan/mislab/pojo/VO/OfficialVO.java b/src/main/java/com/xinguan/mislab/pojo/VO/OfficialVO.java
new file mode 100644
index 0000000000000000000000000000000000000000..be90c0ad04b6f464b675ded0c4d55bcd64e60f20
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/pojo/VO/OfficialVO.java
@@ -0,0 +1,28 @@
+package com.xinguan.mislab.pojo.VO;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+public class OfficialVO {
+ private Long id;
+
+ private String name;
+
+ private String sex;
+
+ private String phone;
+
+ private String department;
+
+ private String major;
+
+ private String studentId;
+
+ private String emailId;
+}
\ No newline at end of file
diff --git a/src/main/java/com/xinguan/mislab/pojo/VO/UserLoginVO.java b/src/main/java/com/xinguan/mislab/pojo/VO/UserLoginVO.java
new file mode 100644
index 0000000000000000000000000000000000000000..d5b467c95d05cef1468f018bbd932de359a17e9b
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/pojo/VO/UserLoginVO.java
@@ -0,0 +1,24 @@
+package com.xinguan.mislab.pojo.VO;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class UserLoginVO implements Serializable {
+
+ private Long id;
+
+ private String userName;
+
+ private String name;
+
+ private String token;
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/xinguan/mislab/pojo/entity/Department.java b/src/main/java/com/xinguan/mislab/pojo/entity/Department.java
new file mode 100644
index 0000000000000000000000000000000000000000..f895091dd76c96ce34490c0f2f8250868ee55333
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/pojo/entity/Department.java
@@ -0,0 +1,28 @@
+package com.xinguan.mislab.pojo.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * @TableName department
+ */
+@TableName(value ="department")
+@Data
+public class Department implements Serializable {
+ private Long id;
+
+ private String name;
+
+ private String photo;
+
+ private String intro;
+
+ private String recruitmentRequirements;
+
+ private String recruitmentTarget;
+
+ private static final long serialVersionUID = 1L;
+}
\ No newline at end of file
diff --git a/src/main/java/com/xinguan/mislab/pojo/entity/Freshman.java b/src/main/java/com/xinguan/mislab/pojo/entity/Freshman.java
new file mode 100644
index 0000000000000000000000000000000000000000..8394b6e91f9926e3cfc2374911340041ff71ee38
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/pojo/entity/Freshman.java
@@ -0,0 +1,32 @@
+package com.xinguan.mislab.pojo.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+import lombok.Data;
+
+/**
+ * @TableName freshman
+ */
+@TableName(value ="freshman")
+@Data
+public class Freshman implements Serializable {
+ private Long id;
+
+ private String name;
+
+ private String sex;
+
+ private String phone;
+
+ private String departmentId;
+
+ private String major;
+
+ private String studentId;
+
+ private String emailId;
+
+ private static final long serialVersionUID = 1L;
+}
\ No newline at end of file
diff --git a/src/main/java/com/xinguan/mislab/pojo/entity/Graduate.java b/src/main/java/com/xinguan/mislab/pojo/entity/Graduate.java
new file mode 100644
index 0000000000000000000000000000000000000000..daa23495a2befb05dc2840c6ad45786a4035c6a2
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/pojo/entity/Graduate.java
@@ -0,0 +1,32 @@
+package com.xinguan.mislab.pojo.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+import lombok.Data;
+
+/**
+ * @TableName graduate
+ */
+@TableName(value ="graduate")
+@Data
+public class Graduate implements Serializable {
+ private Long id;
+
+ private String name;
+
+ private String sex;
+
+ private String phone;
+
+ private String departmentId;
+
+ private String major;
+
+ private String studentId;
+
+ private String emailId;
+
+ private static final long serialVersionUID = 1L;
+}
\ No newline at end of file
diff --git a/src/main/java/com/xinguan/mislab/pojo/entity/Item.java b/src/main/java/com/xinguan/mislab/pojo/entity/Item.java
new file mode 100644
index 0000000000000000000000000000000000000000..d70d7d8ef381768065349864ca530df0fa9c6b52
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/pojo/entity/Item.java
@@ -0,0 +1,26 @@
+package com.xinguan.mislab.pojo.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * @TableName item
+ */
+@TableName(value ="item")
+@Data
+public class Item implements Serializable {
+ private Long id;
+
+ private String name;
+
+ private String photo;
+
+ private String intro;
+
+ private String address;
+
+ private static final long serialVersionUID = 1L;
+}
\ No newline at end of file
diff --git a/src/main/java/com/xinguan/mislab/pojo/entity/Official.java b/src/main/java/com/xinguan/mislab/pojo/entity/Official.java
new file mode 100644
index 0000000000000000000000000000000000000000..d5fc7e4e37a08ce9f6de96100e36fd9da09b433d
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/pojo/entity/Official.java
@@ -0,0 +1,33 @@
+package com.xinguan.mislab.pojo.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import lombok.Data;
+
+/**
+ * @TableName official
+ */
+@TableName(value ="official")
+@Data
+public class Official implements Serializable {
+ private Long id;
+
+ private String name;
+
+ private String sex;
+
+ private String phone;
+
+ private String departmentId;
+
+ private String major;
+
+ private String studentId;
+
+ private String emailId;
+
+ private static final long serialVersionUID = 1L;
+}
\ No newline at end of file
diff --git a/src/main/java/com/xinguan/mislab/pojo/entity/User.java b/src/main/java/com/xinguan/mislab/pojo/entity/User.java
new file mode 100644
index 0000000000000000000000000000000000000000..63991904d65b58729cea79bad83f76bf0babdd44
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/pojo/entity/User.java
@@ -0,0 +1,31 @@
+package com.xinguan.mislab.pojo.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @TableName user
+ */
+@TableName(value ="user")
+@Data
+@NoArgsConstructor
+@Builder
+@AllArgsConstructor
+public class User implements Serializable {
+ private Long id;
+
+ private String name;
+
+ private String username;
+
+ private String password;
+
+ private Integer status;
+
+ private static final long serialVersionUID = 1L;
+}
\ No newline at end of file
diff --git a/src/main/java/com/xinguan/mislab/properties/JwtProperties.java b/src/main/java/com/xinguan/mislab/properties/JwtProperties.java
new file mode 100644
index 0000000000000000000000000000000000000000..bfec2a3b17ba6461d4392d2d9dcee2b756686ad3
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/properties/JwtProperties.java
@@ -0,0 +1,16 @@
+package com.xinguan.mislab.properties;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+@Component
+@ConfigurationProperties(prefix = "mislab.jwt")
+@Data
+public class JwtProperties {
+
+ private String userSecretKey;
+ private long userTtl;
+ private String userTokenName;
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/xinguan/mislab/service/DepartmentService.java b/src/main/java/com/xinguan/mislab/service/DepartmentService.java
new file mode 100644
index 0000000000000000000000000000000000000000..cbc87c4a5586540403085f3a0e08a4ab70ad8b8a
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/service/DepartmentService.java
@@ -0,0 +1,24 @@
+package com.xinguan.mislab.service;
+
+import com.xinguan.mislab.common.result.PageResult;
+import com.xinguan.mislab.pojo.DTO.DepartmentDTO;
+import com.xinguan.mislab.pojo.entity.Department;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+
+/**
+* @author gyklc
+* @description 针对表【department(项目信息)】的数据库操作Service
+* @createDate 2024-11-18 20:01:09
+*/
+public interface DepartmentService extends IService {
+
+ void saveNew(DepartmentDTO departmentDTO);
+
+ PageResult pageQuery(int page, int pageSize);
+
+ void updateMsg(Department department);
+
+ List getAll();
+}
diff --git a/src/main/java/com/xinguan/mislab/service/FreshmanService.java b/src/main/java/com/xinguan/mislab/service/FreshmanService.java
new file mode 100644
index 0000000000000000000000000000000000000000..3e9bce2a6235ce60f274da7fdb98ae1ea0575c0b
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/service/FreshmanService.java
@@ -0,0 +1,45 @@
+package com.xinguan.mislab.service;
+
+import com.xinguan.mislab.pojo.DTO.FreshmanDTO;
+import com.xinguan.mislab.pojo.DTO.FreshmanPageQueryDTO;
+import com.xinguan.mislab.pojo.entity.Freshman;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.xinguan.mislab.common.result.PageResult;
+
+import java.util.List;
+import java.util.Set;
+
+/**
+* @author gyklc
+* @description 针对表【freshman(新生信息)】的数据库操作Service
+* @createDate 2024-11-18 20:01:54
+*/
+public interface FreshmanService extends IService {
+
+ /**
+ * 新生分页查询
+ * @param freshmanPageQueryDTO
+ * @return
+ */
+ PageResult pageQuery(FreshmanPageQueryDTO freshmanPageQueryDTO);
+
+ /**
+ * 添加新生
+ * @param freshmanDTO
+ */
+ void saveNewMenber(FreshmanDTO freshmanDTO);
+
+ /**
+ * 删除
+ * @param id
+ */
+ void deleteById(Long id);
+
+ /**
+ * 更改新生相关信息
+ * @param freshman
+ */
+ void updateMsg(Freshman freshman);
+
+ Set gradeQuery();
+}
diff --git a/src/main/java/com/xinguan/mislab/service/GraduateService.java b/src/main/java/com/xinguan/mislab/service/GraduateService.java
new file mode 100644
index 0000000000000000000000000000000000000000..f5332c742dff1f248f89a84a032294d6f45a6aa5
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/service/GraduateService.java
@@ -0,0 +1,38 @@
+package com.xinguan.mislab.service;
+
+import com.xinguan.mislab.pojo.DTO.GraduateDTO;
+import com.xinguan.mislab.pojo.DTO.GraduatePageQuery;
+import com.xinguan.mislab.pojo.entity.Graduate;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.xinguan.mislab.common.result.PageResult;
+
+import java.util.List;
+
+/**
+* @author gyklc
+* @description 针对表【graduate(毕业人员)】的数据库操作Service
+* @createDate 2024-11-18 20:01:54
+*/
+public interface GraduateService extends IService {
+
+ /**
+ * 存储毕业的优秀学长学姐
+ * @param graduateDTO
+ */
+ void saveGraduate(GraduateDTO graduateDTO);
+
+ /**
+ * 分页查询
+ * @param graduatePageQuery
+ * @return
+ */
+ PageResult pageQuery(GraduatePageQuery graduatePageQuery);
+
+ /**
+ * 更改毕业生信息
+ * @param graduate
+ */
+ void updateMsg(Graduate graduate);
+
+ List getALL();
+}
diff --git a/src/main/java/com/xinguan/mislab/service/ItemService.java b/src/main/java/com/xinguan/mislab/service/ItemService.java
new file mode 100644
index 0000000000000000000000000000000000000000..c496694ec1a3020b0f0a4c9d7f55dd3334923bba
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/service/ItemService.java
@@ -0,0 +1,22 @@
+package com.xinguan.mislab.service;
+
+import com.xinguan.mislab.common.result.PageResult;
+import com.xinguan.mislab.pojo.entity.Item;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.xinguan.mislab.pojo.DTO.ItemDTO;
+
+import java.util.List;
+
+/**
+* @author gyklc
+* @description 针对表【item(项目信息)】的数据库操作Service
+* @createDate 2024-11-18 20:01:54
+*/
+public interface ItemService extends IService
- {
+
+ void saveNew(ItemDTO itemDTO);
+
+ PageResult pageQuery(int page, int pageSize);
+
+ List
- getAll();
+}
diff --git a/src/main/java/com/xinguan/mislab/service/OfficialService.java b/src/main/java/com/xinguan/mislab/service/OfficialService.java
new file mode 100644
index 0000000000000000000000000000000000000000..7d21768cbf67bddf7dcaaa4aaab624b0f737940e
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/service/OfficialService.java
@@ -0,0 +1,23 @@
+package com.xinguan.mislab.service;
+
+import com.xinguan.mislab.common.result.PageResult;
+import com.xinguan.mislab.pojo.DTO.OfficialDTO;
+import com.xinguan.mislab.pojo.DTO.OfficialPageQueryDTO;
+import com.xinguan.mislab.pojo.entity.Official;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+* @author lenovo
+* @description 针对表【official】的数据库操作Service
+* @createDate 2024-12-08 18:52:06
+*/
+public interface OfficialService extends IService {
+
+ void saveOfficial(OfficialDTO officialDTO);
+
+ PageResult pageQuery(OfficialPageQueryDTO officialPageQueryDTO);
+
+ void removeById(Long id);
+
+ void updateMsg(Official official);
+}
diff --git a/src/main/java/com/xinguan/mislab/service/UserService.java b/src/main/java/com/xinguan/mislab/service/UserService.java
new file mode 100644
index 0000000000000000000000000000000000000000..eabf3ab1991078989d3a2c8c8e1f9b92bb7c5f80
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/service/UserService.java
@@ -0,0 +1,44 @@
+package com.xinguan.mislab.service;
+
+import com.xinguan.mislab.pojo.DTO.UserDTO;
+import com.xinguan.mislab.pojo.DTO.UserLoginDTO;
+import com.xinguan.mislab.pojo.entity.User;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.xinguan.mislab.common.result.PageResult;
+
+/**
+* @author gyklc
+* @description 针对表【user(员工信息)】的数据库操作Service
+* @createDate 2024-11-18 20:01:54
+*/
+public interface UserService extends IService {
+
+ /**
+ * 登录
+ * @param userLoginDTO
+ * @return
+ */
+ User login(UserLoginDTO userLoginDTO);
+
+
+
+ /**
+ * 更新账号信息
+ * @param userDTO
+ */
+ void updateUserMes(UserDTO userDTO);
+
+ /**
+ * 注册账号
+ * @param userLoginDTO
+ */
+ void sign(UserLoginDTO userLoginDTO);
+
+ /**
+ * 分页查询
+ * @param page
+ * @param pageSize
+ * @return
+ */
+ PageResult pageQuery(int page, int pageSize);
+}
diff --git a/src/main/java/com/xinguan/mislab/service/impl/DepartmentServiceImpl.java b/src/main/java/com/xinguan/mislab/service/impl/DepartmentServiceImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..874ce170c2426b4519fce544eb9e0f279a0479f4
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/service/impl/DepartmentServiceImpl.java
@@ -0,0 +1,64 @@
+package com.xinguan.mislab.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.pagehelper.PageHelper;
+import com.xinguan.mislab.common.result.PageResult;
+import com.xinguan.mislab.pojo.DTO.DepartmentDTO;
+import com.xinguan.mislab.pojo.entity.Department;
+import com.xinguan.mislab.service.DepartmentService;
+import com.xinguan.mislab.mapper.DepartmentMapper;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+* @author gyklc
+* @description 针对表【department(项目信息)】的数据库操作Service实现
+* @createDate 2024-11-18 20:01:09
+*/
+@Service
+public class DepartmentServiceImpl extends ServiceImpl
+ implements DepartmentService{
+
+ @Autowired
+ private DepartmentMapper departmentMapper;
+
+ @Override
+ public void saveNew(DepartmentDTO departmentDTO) {
+ Department department = new Department();
+ BeanUtils.copyProperties(departmentDTO, department);
+ save(department);
+ }
+
+ @Override
+ public PageResult pageQuery(int page, int pageSize) {
+ Page departmentPage = new Page<>(page, pageSize);
+ IPage page1 = departmentMapper.selectPage(departmentPage, null);
+
+ // 返回分页结果,PageResult 类可以根据实际需求进行调整
+ return new PageResult(page1.getTotal(), page1.getRecords());
+ }
+
+ @Override
+ public void updateMsg(Department department) {
+ updateById(department);
+ }
+
+ @Override
+ public List getAll() {
+ List list = departmentMapper.selectList(null);
+ return list;
+
+ }
+
+
+}
+
+
+
+
diff --git a/src/main/java/com/xinguan/mislab/service/impl/FreshmanServiceImpl.java b/src/main/java/com/xinguan/mislab/service/impl/FreshmanServiceImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..6270ba956b8b278177be076d91d881318ff2bae0
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/service/impl/FreshmanServiceImpl.java
@@ -0,0 +1,96 @@
+package com.xinguan.mislab.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xinguan.mislab.mapper.GraduateMapper;
+import com.xinguan.mislab.mapper.OfficialMapper;
+import com.xinguan.mislab.pojo.DTO.FreshmanDTO;
+import com.xinguan.mislab.pojo.DTO.FreshmanPageQueryDTO;
+import com.xinguan.mislab.pojo.VO.FreshmanVO;
+import com.xinguan.mislab.pojo.entity.Freshman;
+import com.xinguan.mislab.common.result.PageResult;
+import com.xinguan.mislab.service.FreshmanService;
+import com.xinguan.mislab.mapper.FreshmanMapper;
+import com.xinguan.mislab.service.GraduateService;
+import com.xinguan.mislab.service.OfficialService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+import java.util.Set;
+
+import static java.lang.reflect.Array.set;
+
+/**
+* @author gyklc
+* @description 针对表【freshman(新生信息)】的数据库操作Service实现
+* @createDate 2024-11-18 20:01:54
+*/
+@Service
+public class FreshmanServiceImpl extends ServiceImpl
+ implements FreshmanService{
+
+ @Autowired
+ private FreshmanMapper freshmanMapper;
+ @Autowired
+ private GraduateMapper graduateMapper;
+ @Autowired
+ private OfficialMapper officialMapper;
+
+ @Override
+ public PageResult pageQuery(FreshmanPageQueryDTO freshmanPageQueryDTO) {
+ // 创建分页对象,传入页码和每页大小
+ Page page = new Page<>(freshmanPageQueryDTO.getPage(), freshmanPageQueryDTO.getPageSize());
+ // 执行分页查询
+ IPage freshmanPage = freshmanMapper.pageQuery(page,freshmanPageQueryDTO);
+
+ // 返回分页结果
+ return new PageResult(freshmanPage.getTotal(), freshmanPage.getRecords());
+ }
+
+
+
+
+ @Override
+ public void saveNewMenber(FreshmanDTO freshmanDTO) {
+ Freshman freshman = new Freshman();
+ BeanUtils.copyProperties(freshmanDTO, freshman);
+ QueryWrapper wrapper = new QueryWrapper().eq("student_id", freshmanDTO);
+ Freshman one = freshmanMapper.selectOne(wrapper);
+ if (one != null){
+ update(freshman, wrapper);
+ return;
+ }
+ save(freshman);
+ }
+
+ @Override
+ public void deleteById(Long id) {
+ removeById(id);
+ }
+
+ @Override
+ public void updateMsg(Freshman freshman) {
+ freshmanMapper.updateMsg(freshman);
+ }
+
+ @Override
+ public Set gradeQuery() {
+ Set result = freshmanMapper.gradeQuery();
+ Set result1 = graduateMapper.gradeQuery();
+ Set result2 = officialMapper.gradeQuery();
+ result.addAll(result1);
+ result.addAll(result2);
+ return result;
+ }
+
+
+}
+
+
+
+
diff --git a/src/main/java/com/xinguan/mislab/service/impl/GraduateServiceImpl.java b/src/main/java/com/xinguan/mislab/service/impl/GraduateServiceImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..9b4b4665cab9e34f1cf3cf4af412b509126f607f
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/service/impl/GraduateServiceImpl.java
@@ -0,0 +1,96 @@
+package com.xinguan.mislab.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.pagehelper.PageHelper;
+import com.xinguan.mislab.pojo.DTO.GraduateDTO;
+import com.xinguan.mislab.pojo.DTO.GraduatePageQuery;
+import com.xinguan.mislab.pojo.entity.Graduate;
+import com.xinguan.mislab.common.result.PageResult;
+import com.xinguan.mislab.service.GraduateService;
+import com.xinguan.mislab.mapper.GraduateMapper;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.sql.Wrapper;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+* @author gyklc
+* @description 针对表【graduate(毕业人员)】的数据库操作Service实现
+* @createDate 2024-11-18 20:01:54
+*/
+@Service
+public class GraduateServiceImpl extends ServiceImpl
+ implements GraduateService{
+
+ @Autowired
+ private GraduateMapper graduateMapper;
+
+ @Override
+ public void saveGraduate(GraduateDTO graduateDTO) {
+ Graduate graduate = new Graduate();
+ BeanUtils.copyProperties(graduateDTO,graduate);
+ save(graduate);
+ }
+
+ @Override
+ public PageResult pageQuery(GraduatePageQuery graduatePageQuery) {
+ // 创建分页对象
+ Page graduatePage = new Page<>(graduatePageQuery.getPage(), graduatePageQuery.getPageSize());
+ // 构建查询条件
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ if (StringUtils.isNotBlank(graduatePageQuery.getName())) {
+ queryWrapper.like("name", graduatePageQuery.getName());
+ }
+ if (StringUtils.isNotBlank(graduatePageQuery.getGrade())) {
+ queryWrapper.like("grade", graduatePageQuery.getGrade());
+ }
+ if (StringUtils.isNotBlank(graduatePageQuery.getCompany())) {
+ queryWrapper.like("company", graduatePageQuery.getCompany());
+ }
+ if (StringUtils.isNotBlank(graduatePageQuery.getEmailId())) {
+ queryWrapper.like("email_id", graduatePageQuery.getEmailId());
+ }
+ // 执行查询
+ Page graduatePageResult = graduateMapper.selectPage(graduatePage, queryWrapper);
+ // 返回分页结果
+ return new PageResult(graduatePageResult.getTotal(), graduatePageResult.getRecords());
+ }
+
+
+ @Override
+ public void updateMsg(Graduate graduate) {
+ if (graduate == null || graduate.getId() == null) {
+ throw new IllegalArgumentException("Invalid graduate data");
+ }
+
+ // 构建更新条件:根据 ID 查找
+ QueryWrapper eq = new QueryWrapper().eq("id", graduate.getId());
+
+ // 执行更新操作
+ boolean isUpdated = update(graduate, eq);
+
+ // 如果更新没有成功,可以进行适当的异常抛出或日志记录
+ if (!isUpdated) {
+ throw new RuntimeException("Update failed");
+ }
+ }
+
+ @Override
+ public List getALL() {
+ List graduates = graduateMapper.selectList(null);
+ return graduates;
+ }
+
+
+}
+
+
+
+
diff --git a/src/main/java/com/xinguan/mislab/service/impl/ItemServiceImpl.java b/src/main/java/com/xinguan/mislab/service/impl/ItemServiceImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..629fe6c18a9c30dd5b3228daae99d09052f0de2c
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/service/impl/ItemServiceImpl.java
@@ -0,0 +1,53 @@
+package com.xinguan.mislab.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xinguan.mislab.common.result.PageResult;
+import com.xinguan.mislab.pojo.entity.Item;
+import com.xinguan.mislab.pojo.DTO.ItemDTO;
+import com.xinguan.mislab.service.ItemService;
+import com.xinguan.mislab.mapper.ItemMapper;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+* @author gyklc
+* @description 针对表【item(项目信息)】的数据库操作Service实现
+* @createDate 2024-11-18 20:01:54
+*/
+@Service
+public class ItemServiceImpl extends ServiceImpl
+ implements ItemService{
+
+ @Autowired
+ private ItemMapper itemMapper;
+
+ @Override
+ public void saveNew(ItemDTO itemDTO) {
+ Item item = new Item();
+ BeanUtils.copyProperties(itemDTO, item);
+ save(item);
+ }
+
+ @Override
+ public PageResult pageQuery(int page, int pageSize) {
+ Page
- itemPage = new Page<>(page, pageSize);
+ Page
- itemPage1 = itemMapper.selectPage(itemPage, null);
+ return new PageResult(itemPage1.getTotal(), itemPage1.getRecords());
+ }
+
+ @Override
+ public List
- getAll() {
+
+ List
- list = itemMapper.selectList(null);
+ return list;
+ }
+}
+
+
+
+
diff --git a/src/main/java/com/xinguan/mislab/service/impl/OfficialServiceImpl.java b/src/main/java/com/xinguan/mislab/service/impl/OfficialServiceImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..d60f0871651f2787d041d1c7b79a1947cd5e89a4
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/service/impl/OfficialServiceImpl.java
@@ -0,0 +1,63 @@
+package com.xinguan.mislab.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xinguan.mislab.common.result.PageResult;
+import com.xinguan.mislab.pojo.DTO.OfficialDTO;
+import com.xinguan.mislab.pojo.DTO.OfficialPageQueryDTO;
+import com.xinguan.mislab.pojo.VO.FreshmanVO;
+import com.xinguan.mislab.pojo.VO.OfficialVO;
+import com.xinguan.mislab.pojo.entity.Graduate;
+import com.xinguan.mislab.pojo.entity.Official;
+import com.xinguan.mislab.service.OfficialService;
+import com.xinguan.mislab.mapper.OfficialMapper;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+* @author lenovo
+* @description 针对表【official】的数据库操作Service实现
+* @createDate 2024-12-08 18:52:06
+*/
+@Service
+public class OfficialServiceImpl extends ServiceImpl
+ implements OfficialService{
+
+ @Autowired
+ private OfficialMapper officialMapper;
+
+ @Override
+ public void saveOfficial(OfficialDTO officialDTO) {
+ Official official = new Official();
+ BeanUtils.copyProperties(officialDTO,official);
+ save(official);
+
+ }
+
+ @Override
+ public PageResult pageQuery(OfficialPageQueryDTO officialPageQueryDTO) {
+ // 创建分页对象,传入页码和每页大小
+ Page page = new Page<>(officialPageQueryDTO.getPage(), officialPageQueryDTO.getPageSize());
+ // 执行分页查询
+ IPage freshmanPage = officialMapper.pageQuery(page,officialPageQueryDTO);
+
+ // 返回分页结果
+ return new PageResult(freshmanPage.getTotal(), freshmanPage.getRecords());
+ }
+
+ @Override
+ public void removeById(Long id) {
+ removeById(id);
+ }
+
+ @Override
+ public void updateMsg(Official official) {
+ officialMapper.updateMsg(official);
+ }
+}
+
+
+
+
diff --git a/src/main/java/com/xinguan/mislab/service/impl/UserServiceImpl.java b/src/main/java/com/xinguan/mislab/service/impl/UserServiceImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..79fff6399c57878cb9b575651e813cace3ef6477
--- /dev/null
+++ b/src/main/java/com/xinguan/mislab/service/impl/UserServiceImpl.java
@@ -0,0 +1,92 @@
+package com.xinguan.mislab.service.impl;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xinguan.mislab.pojo.DTO.UserDTO;
+import com.xinguan.mislab.pojo.DTO.UserLoginDTO;
+
+import com.xinguan.mislab.pojo.entity.User;
+import com.xinguan.mislab.common.exception.AccountNotFoundException;
+import com.xinguan.mislab.common.exception.PasswordErrorException;
+import com.xinguan.mislab.common.exception.PwdOrUsernameIsNullException;
+import com.xinguan.mislab.common.result.PageResult;
+import com.xinguan.mislab.service.UserService;
+import com.xinguan.mislab.mapper.UserMapper;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.DigestUtils;
+import java.util.UUID;
+
+/**
+* @author gyklc
+* @description 针对表【user(员工信息)】的数据库操作Service实现
+* @createDate 2024-11-18 20:01:54
+*/
+@Service
+public class UserServiceImpl extends ServiceImpl
+ implements UserService{
+
+ @Autowired
+ private UserMapper userMapper;
+
+ @Override
+ public User login(UserLoginDTO userLoginDTO) {
+ String username = userLoginDTO.getUsername();
+ String password = userLoginDTO.getPassword();
+ User user = userMapper.getByUsername(username);
+ if (user == null){
+ throw new AccountNotFoundException("账号不存在");
+ }
+ password = DigestUtils.md5DigestAsHex(password.getBytes());
+ if (!password.equals(user.getPassword())){
+ throw new PasswordErrorException("密码错误");
+ }
+ return user;
+ }
+
+ @Override
+ public void updateUserMes(UserDTO userDTO) {
+ User user = new User();
+ BeanUtils.copyProperties(userDTO, user);
+ user.setPassword(DigestUtils.md5DigestAsHex(userDTO.getPassword().getBytes()));
+ userMapper.updateUserMes(user);
+ }
+
+ @Override
+ public void sign(UserLoginDTO userLoginDTO) {
+ String password = userLoginDTO.getPassword();
+ if (password == null){
+ throw new PwdOrUsernameIsNullException("密码为空");
+ }
+ password = DigestUtils.md5DigestAsHex(password.getBytes());
+ if (userLoginDTO.getUsername() == null){
+ throw new PwdOrUsernameIsNullException("用户名为空");
+ }
+ UUID uuid = UUID.randomUUID();
+ String name = String.valueOf(uuid);
+ User user = User.builder()
+ .name(name)
+ .username(userLoginDTO.getUsername())
+ .password(password)
+ .status(1)
+ .build();
+ save(user);
+
+
+ }
+
+ @Override
+ public PageResult pageQuery(int page, int pageSize) {
+ Page userPage = new Page<>(page, pageSize);
+ Page page1 = userMapper.selectPage(userPage, null);
+ return new PageResult(page1.getTotal(), page1.getRecords());
+ }
+
+
+}
+
+
+
+
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
new file mode 100644
index 0000000000000000000000000000000000000000..51a9995f0f3dd2efa360123870b13eded682b9bc
--- /dev/null
+++ b/src/main/resources/application.yml
@@ -0,0 +1,19 @@
+spring:
+ profiles:
+ active: dev
+ main:
+ allow-circular-references: false
+ datasource:
+ druid:
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ url: jdbc:mysql://1.94.46.230:3306/MisLab?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
+ username: root
+ password: 123
+ web:
+ resources:
+ static-locations: file:/usr/local/JAVA/mislab/photo/
+mislab:
+ jwt:
+ user-ttl: 720000000
+ user-token-name: token
+
diff --git a/src/main/resources/mapper/DepartmentMapper.xml b/src/main/resources/mapper/DepartmentMapper.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ad20cf8bea797c0d29313de63d6897aca75c4c1b
--- /dev/null
+++ b/src/main/resources/mapper/DepartmentMapper.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id,name,photo,
+ intro,
+ recruitment_requirements,recruitment_target
+
+
+
diff --git a/src/main/resources/mapper/FreshmanMapper.xml b/src/main/resources/mapper/FreshmanMapper.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9ac7db437dcba49c3da6f4e718c59c521476301a
--- /dev/null
+++ b/src/main/resources/mapper/FreshmanMapper.xml
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id,name,sex,
+ phone,grade,department_id
+ ,major,student_id,email_id
+
+
+ update MisLab.freshman
+ set name = #{name},
+ sex = #{sex},
+ phone = #{phone},
+ department_id = #{departmentId},
+ major = #{major},
+ student_id = #{studentId},
+ email_id = #{emailId}
+ where id = #{id}
+
+
+
+
+
+
+
+
diff --git a/src/main/resources/mapper/GraduateMapper.xml b/src/main/resources/mapper/GraduateMapper.xml
new file mode 100644
index 0000000000000000000000000000000000000000..76924be6208f963dd35bab19d878cb083b875e27
--- /dev/null
+++ b/src/main/resources/mapper/GraduateMapper.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id, name, sex, phone, department_id, major, student_id, email_id
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/mapper/ItemMapper.xml b/src/main/resources/mapper/ItemMapper.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8d1a3e1d061385be634d66ecc1acda487f19220b
--- /dev/null
+++ b/src/main/resources/mapper/ItemMapper.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id,name,photo,
+ intro,address
+
+
diff --git a/src/main/resources/mapper/OfficialMapper.xml b/src/main/resources/mapper/OfficialMapper.xml
new file mode 100644
index 0000000000000000000000000000000000000000..86901dfab33525f0a6c8b10ba86e2e3e1a5b0e9c
--- /dev/null
+++ b/src/main/resources/mapper/OfficialMapper.xml
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id,name,sex,
+ phone,department_id,major,
+ student_id,email_id
+
+
+ update MisLab.official
+ set name = #{name},
+ sex = #{sex},
+ phone = #{phone},
+ department_id = #{departmentId},
+ major = #{major},
+ student_id = #{studentId},
+ email_id = #{emailId}
+ where id = #{id}
+
+
+
+
diff --git a/src/main/resources/mapper/UserMapper.xml b/src/main/resources/mapper/UserMapper.xml
new file mode 100644
index 0000000000000000000000000000000000000000..50d92a2afb31b97526f494407cb45fb12ec83140
--- /dev/null
+++ b/src/main/resources/mapper/UserMapper.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id, name, username, password, status
+
+
+
+ UPDATE user
+
+ name = #{name},
+ username = #{username},
+ password = #{password},
+ status = #{status},
+
+ WHERE id = #{id}
+
+
+
+ INSERT INTO MisLab.user (name, username, password, status)
+ VALUES (#{name}, #{username}, #{password}, #{status})
+
+
diff --git a/src/test/java/com/xinguan/mislab/MisLabApplicationTests.java b/src/test/java/com/xinguan/mislab/MisLabApplicationTests.java
deleted file mode 100644
index 66cdc659f2ec2423a1b67addc03c58a3c873bf84..0000000000000000000000000000000000000000
--- a/src/test/java/com/xinguan/mislab/MisLabApplicationTests.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.xinguan.mislab;
-
-import org.junit.jupiter.api.Test;
-import org.springframework.boot.test.context.SpringBootTest;
-
-@SpringBootTest
-class MisLabApplicationTests {
-
- @Test
- void contextLoads() {
- }
-
-}