├── example1.png ├── example2.png ├── user表结构.png ├── review408表结构.png ├── review408_vue ├── dist.zip ├── dist (2).zip ├── vite.config.js ├── index.html ├── src │ ├── assets │ │ └── vue.svg │ ├── main.js │ ├── style.css │ └── App.vue ├── dist │ ├── index.html │ ├── vite.svg │ └── assets │ │ └── index-5a9ec5be.css ├── README.md ├── package.json ├── public │ └── vite.svg └── package-lock.json ├── src ├── main │ ├── java │ │ └── top │ │ │ └── nysxzs │ │ │ └── review408 │ │ │ ├── demos │ │ │ ├── service │ │ │ │ ├── CaptchaService.java │ │ │ │ ├── UserService.java │ │ │ │ ├── ReviewService.java │ │ │ │ ├── UserServiceImpl.java │ │ │ │ ├── CaptchaServiceImpl.java │ │ │ │ └── ReviewServiceImpl.java │ │ │ ├── pojo │ │ │ │ ├── query │ │ │ │ │ ├── checkTokenQuery.java │ │ │ │ │ ├── reviewCheckQuery.java │ │ │ │ │ ├── reviewStatusQuery.java │ │ │ │ │ ├── Return.java │ │ │ │ │ ├── UserQuery.java │ │ │ │ │ └── insertReviewQuery.java │ │ │ │ ├── ReviewInit.java │ │ │ │ ├── Token.java │ │ │ │ ├── User.java │ │ │ │ ├── WdQuestion.java │ │ │ │ └── review408.java │ │ │ ├── dao │ │ │ │ ├── UserDao.java │ │ │ │ └── ReviewDao.java │ │ │ ├── User.java │ │ │ ├── BasicController.java │ │ │ ├── config │ │ │ │ ├── JwtAuthenticationManager.java │ │ │ │ └── JwtConfig.java │ │ │ ├── PathVariableController.java │ │ │ └── controller │ │ │ │ ├── UserController.java │ │ │ │ └── ReviewController.java │ │ │ └── Review408Application.java │ └── resources │ │ ├── static │ │ ├── index.html │ │ ├── vite.svg │ │ └── assets │ │ │ └── index-240d2bed.css │ │ ├── application.yml │ │ └── mybatis │ │ ├── UserMapper.xml │ │ └── Review408Mapper.xml └── test │ └── java │ └── top │ └── nysxzs │ └── review408 │ └── Review408ApplicationTests.java ├── README.md ├── HELP.md └── pom.xml /example1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3t3rn41/review408/HEAD/example1.png -------------------------------------------------------------------------------- /example2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3t3rn41/review408/HEAD/example2.png -------------------------------------------------------------------------------- /user表结构.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3t3rn41/review408/HEAD/user表结构.png -------------------------------------------------------------------------------- /review408表结构.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3t3rn41/review408/HEAD/review408表结构.png -------------------------------------------------------------------------------- /review408_vue/dist.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3t3rn41/review408/HEAD/review408_vue/dist.zip -------------------------------------------------------------------------------- /review408_vue/dist (2).zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3t3rn41/review408/HEAD/review408_vue/dist (2).zip -------------------------------------------------------------------------------- /review408_vue/vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import vue from '@vitejs/plugin-vue' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [vue()], 7 | }) 8 | -------------------------------------------------------------------------------- /src/main/java/top/nysxzs/review408/demos/service/CaptchaService.java: -------------------------------------------------------------------------------- 1 | package top.nysxzs.review408.demos.service; 2 | 3 | import java.io.IOException; 4 | 5 | public interface CaptchaService { 6 | byte[] generateCaptcha(String username) throws IOException; 7 | String verifyCode(String username,String verifyCode); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /src/test/java/top/nysxzs/review408/Review408ApplicationTests.java: -------------------------------------------------------------------------------- 1 | package top.nysxzs.review408; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class Review408ApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/top/nysxzs/review408/demos/pojo/query/checkTokenQuery.java: -------------------------------------------------------------------------------- 1 | package top.nysxzs.review408.demos.pojo.query; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class checkTokenQuery { 11 | private String token; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/top/nysxzs/review408/demos/pojo/query/reviewCheckQuery.java: -------------------------------------------------------------------------------- 1 | package top.nysxzs.review408.demos.pojo.query; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class reviewCheckQuery { 11 | public Integer id; 12 | public String answer; 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/top/nysxzs/review408/demos/pojo/query/reviewStatusQuery.java: -------------------------------------------------------------------------------- 1 | package top.nysxzs.review408.demos.pojo.query; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class reviewStatusQuery { 11 | private Integer id; 12 | private String status; 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/top/nysxzs/review408/demos/pojo/query/Return.java: -------------------------------------------------------------------------------- 1 | package top.nysxzs.review408.demos.pojo.query; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class Return { 11 | private Integer code; 12 | private String message; 13 | private Object data; 14 | } 15 | -------------------------------------------------------------------------------- /review408_vue/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | review408 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/main/java/top/nysxzs/review408/demos/pojo/query/UserQuery.java: -------------------------------------------------------------------------------- 1 | package top.nysxzs.review408.demos.pojo.query; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class UserQuery { 11 | private String username; 12 | private String password; 13 | private String verifyCode; 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/top/nysxzs/review408/Review408Application.java: -------------------------------------------------------------------------------- 1 | package top.nysxzs.review408; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class Review408Application { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(Review408Application.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/top/nysxzs/review408/demos/pojo/ReviewInit.java: -------------------------------------------------------------------------------- 1 | package top.nysxzs.review408.demos.pojo; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class ReviewInit { 11 | private Integer sjjg; 12 | private Integer jz; 13 | private Integer czxt; 14 | private Integer jw; 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/top/nysxzs/review408/demos/pojo/Token.java: -------------------------------------------------------------------------------- 1 | package top.nysxzs.review408.demos.pojo; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class Token { 11 | private Integer enScore; 12 | private Integer sqlScore; 13 | private Integer pcoScore; 14 | private Boolean isAdmin; 15 | } 16 | -------------------------------------------------------------------------------- /review408_vue/src/assets/vue.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /review408_vue/src/main.js: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import './style.css' 3 | import App from './App.vue' 4 | import Antd from 'ant-design-vue' 5 | import 'ant-design-vue/dist/reset.css' 6 | import VueCropper from 'vue-cropperjs'; 7 | import 'cropperjs/dist/cropper.css'; // 导入cropperjs的样式 8 | import md5 from 'js-md5'; 9 | const app=createApp(App) 10 | app.use(Antd) 11 | app.component('vue-cropper', VueCropper); 12 | try{ 13 | app.use(md5) 14 | } 15 | catch 16 | { 17 | 18 | } 19 | app.mount('#app') 20 | -------------------------------------------------------------------------------- /review408_vue/dist/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | review408 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /src/main/java/top/nysxzs/review408/demos/pojo/User.java: -------------------------------------------------------------------------------- 1 | package top.nysxzs.review408.demos.pojo; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class User { 11 | private Integer id; 12 | private String username; 13 | private String token; 14 | private Integer enScore; 15 | private Integer sqlScore; 16 | private Integer pcoScore; 17 | private Long lastLoginTime; 18 | } 19 | -------------------------------------------------------------------------------- /src/main/resources/static/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | review408 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /review408_vue/README.md: -------------------------------------------------------------------------------- 1 | # Vue 3 + Vite 2 | 3 | This template should help get you started developing with Vue 3 in Vite. The template uses Vue 3 ` 1703 | 1704 | --------------------------------------------------------------------------------