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() { - } - -}