From 50220334d7099180851d8b81e03591099eed3d64 Mon Sep 17 00:00:00 2001 From: wzp Date: Sat, 6 Apr 2024 19:32:14 +0800 Subject: [PATCH] =?UTF-8?q?feat(all):=20=E6=B7=BB=E5=8A=A0=E4=BA=86?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=9B=B8=E5=85=B3=E6=95=B0=E6=8D=AE=E7=BB=93?= =?UTF-8?q?=E6=9E=84=E3=80=81=E8=A1=A8=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/dataSources.xml | 19 +++++++++ .idea/modules.xml | 8 ++++ .idea/modules/clubs.main.iml | 8 ++++ README.md | 33 ++++++++++++++- build.gradle.kts | 6 ++- .../configuration/DocsConfiguration.java | 16 ++++++++ .../mmga/clubs/controller/UserController.java | 35 ++++++++++++++++ src/main/java/org/mmga/clubs/dao/AuthDao.java | 8 ++++ .../org/mmga/clubs/dao/AuthPermissionDao.java | 7 ++++ .../org/mmga/clubs/dao/PermissionDao.java | 7 ++++ .../mmga/clubs/dao/PermissionRouterDao.java | 7 ++++ .../java/org/mmga/clubs/dao/RouterDao.java | 7 ++++ src/main/java/org/mmga/clubs/dao/UserDao.java | 13 ++++++ .../mmga/clubs/entities/AuthPermissionVo.java | 6 +++ .../org/mmga/clubs/entities/BaseResponse.java | 28 +++++++++++++ .../clubs/entities/PermissionRouterVo.java | 6 +++ .../org/mmga/clubs/entities/auth/Auth.java | 18 +++++++++ .../org/mmga/clubs/entities/auth/AuthVo.java | 7 ++++ .../clubs/entities/permission/Permission.java | 18 +++++++++ .../entities/permission/PermissionVo.java | 6 +++ .../mmga/clubs/entities/router/Router.java | 19 +++++++++ .../mmga/clubs/entities/router/RouterVo.java | 6 +++ .../org/mmga/clubs/entities/user/User.java | 18 +++++++++ .../mmga/clubs/entities/user/UserLoginVo.java | 4 ++ .../entities/user/UserRegResponseVo.java | 17 ++++++++ .../mmga/clubs/entities/user/UserRegVo.java | 4 ++ .../org/mmga/clubs/entities/user/UserVo.java | 6 +++ .../org/mmga/clubs/service/AuthService.java | 17 ++++++++ .../mmga/clubs/service/PermissionService.java | 15 +++++++ .../org/mmga/clubs/service/RouterService.java | 12 ++++++ .../org/mmga/clubs/service/UserService.java | 40 +++++++++++++++++++ src/main/resources/application.properties | 4 ++ .../resources/org/mmga/clubs/dao/AuthDao.xml | 6 +++ .../org/mmga/clubs/dao/AuthPermissionDao.xml | 6 +++ .../org/mmga/clubs/dao/PermissionDao.xml | 6 +++ .../mmga/clubs/dao/PermissionRouterDao.xml | 6 +++ .../org/mmga/clubs/dao/RouterDao.xml | 6 +++ .../resources/org/mmga/clubs/dao/UserDao.xml | 18 +++++++++ 38 files changed, 470 insertions(+), 3 deletions(-) create mode 100644 .idea/dataSources.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/modules/clubs.main.iml create mode 100644 src/main/java/org/mmga/clubs/configuration/DocsConfiguration.java create mode 100644 src/main/java/org/mmga/clubs/controller/UserController.java create mode 100644 src/main/java/org/mmga/clubs/dao/AuthDao.java create mode 100644 src/main/java/org/mmga/clubs/dao/AuthPermissionDao.java create mode 100644 src/main/java/org/mmga/clubs/dao/PermissionDao.java create mode 100644 src/main/java/org/mmga/clubs/dao/PermissionRouterDao.java create mode 100644 src/main/java/org/mmga/clubs/dao/RouterDao.java create mode 100644 src/main/java/org/mmga/clubs/dao/UserDao.java create mode 100644 src/main/java/org/mmga/clubs/entities/AuthPermissionVo.java create mode 100644 src/main/java/org/mmga/clubs/entities/BaseResponse.java create mode 100644 src/main/java/org/mmga/clubs/entities/PermissionRouterVo.java create mode 100644 src/main/java/org/mmga/clubs/entities/auth/Auth.java create mode 100644 src/main/java/org/mmga/clubs/entities/auth/AuthVo.java create mode 100644 src/main/java/org/mmga/clubs/entities/permission/Permission.java create mode 100644 src/main/java/org/mmga/clubs/entities/permission/PermissionVo.java create mode 100644 src/main/java/org/mmga/clubs/entities/router/Router.java create mode 100644 src/main/java/org/mmga/clubs/entities/router/RouterVo.java create mode 100644 src/main/java/org/mmga/clubs/entities/user/User.java create mode 100644 src/main/java/org/mmga/clubs/entities/user/UserLoginVo.java create mode 100644 src/main/java/org/mmga/clubs/entities/user/UserRegResponseVo.java create mode 100644 src/main/java/org/mmga/clubs/entities/user/UserRegVo.java create mode 100644 src/main/java/org/mmga/clubs/entities/user/UserVo.java create mode 100644 src/main/java/org/mmga/clubs/service/AuthService.java create mode 100644 src/main/java/org/mmga/clubs/service/PermissionService.java create mode 100644 src/main/java/org/mmga/clubs/service/RouterService.java create mode 100644 src/main/java/org/mmga/clubs/service/UserService.java create mode 100644 src/main/resources/org/mmga/clubs/dao/AuthDao.xml create mode 100644 src/main/resources/org/mmga/clubs/dao/AuthPermissionDao.xml create mode 100644 src/main/resources/org/mmga/clubs/dao/PermissionDao.xml create mode 100644 src/main/resources/org/mmga/clubs/dao/PermissionRouterDao.xml create mode 100644 src/main/resources/org/mmga/clubs/dao/RouterDao.xml create mode 100644 src/main/resources/org/mmga/clubs/dao/UserDao.xml diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml new file mode 100644 index 0000000..b813e49 --- /dev/null +++ b/.idea/dataSources.xml @@ -0,0 +1,19 @@ + + + + + mysql.8 + true + true + $PROJECT_DIR$/src/main/resources/application.properties + com.mysql.cj.jdbc.Driver + jdbc:mysql://wzpmc.cn:3306/itzx + + + + + + $ProjectFileDir$ + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..ccfd51a --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/modules/clubs.main.iml b/.idea/modules/clubs.main.iml new file mode 100644 index 0000000..afc1871 --- /dev/null +++ b/.idea/modules/clubs.main.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/README.md b/README.md index 808c9f5..4c5e8ba 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,33 @@ # ITZX-Clubs-Home-Server -A clubs home for Hangzhou Electron & Information Vocational School -building by springboot3.0 with mysql db \ No newline at end of file +A clubs home for Hangzhou Electron & Information Vocational School +building by springboot3.0 with mysql db +--- +## Usage + +### 1.Create user table + +```mysql +create table user +( + id int comment '用户ID(自增)', + name varchar(20) not null comment '用户名', + password char(40) not null comment '密码(使用SHA1)', + auth int default 0 not null comment '用户对应权限组ID', + avatar char(40) null comment '用户头像sha1', + create_time datetime default now() not null comment '用户创建时间', + update_time datetime default now() not null on update now() comment '用户数据更新时间' +) + comment '用户表'; + +create unique index user_id_index + on user (id) + comment '用户表主键'; + +alter table user + add constraint user_pk + primary key (id) comment '用户表主键'; + +alter table user + modify id int auto_increment comment '用户ID(自增)'; +``` diff --git a/build.gradle.kts b/build.gradle.kts index 5e1afd8..1aedf92 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -4,6 +4,7 @@ plugins { id("io.spring.dependency-management") version "1.1.4" id("org.graalvm.buildtools.native") version "0.9.28" id("org.asciidoctor.jvm.convert") version "3.3.2" + id("org.springdoc.openapi-gradle-plugin") version "1.8.0" } group = "org.mmga" @@ -32,13 +33,16 @@ dependencies { implementation("org.springframework.boot:spring-boot-starter-websocket") implementation("org.mybatis.spring.boot:mybatis-spring-boot-starter:3.0.3") implementation("org.springframework.shell:spring-shell-starter") + implementation("org.springdoc:springdoc-openapi-starter-webmvc-api:2.5.0") + implementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:2.5.0") + // https://mvnrepository.com/artifact/commons-codec/commons-codec + implementation("commons-codec:commons-codec:1.16.1") compileOnly("org.projectlombok:lombok") developmentOnly("org.springframework.boot:spring-boot-devtools") runtimeOnly("com.mysql:mysql-connector-j") annotationProcessor("org.projectlombok:lombok") testImplementation("org.springframework.boot:spring-boot-starter-test") testImplementation("org.mybatis.spring.boot:mybatis-spring-boot-starter-test:3.0.3") - testImplementation("org.springframework.restdocs:spring-restdocs-mockmvc") } dependencyManagement { diff --git a/src/main/java/org/mmga/clubs/configuration/DocsConfiguration.java b/src/main/java/org/mmga/clubs/configuration/DocsConfiguration.java new file mode 100644 index 0000000..90b68dc --- /dev/null +++ b/src/main/java/org/mmga/clubs/configuration/DocsConfiguration.java @@ -0,0 +1,16 @@ +package org.mmga.clubs.configuration; + +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.info.Info; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class DocsConfiguration { + @Bean + public OpenAPI api(){ + return new OpenAPI().info(new Info() + .title("ITZX-Clubs-Home") + .description("杭州电子信息职业学校社团主页")); + } +} diff --git a/src/main/java/org/mmga/clubs/controller/UserController.java b/src/main/java/org/mmga/clubs/controller/UserController.java new file mode 100644 index 0000000..f8b30d2 --- /dev/null +++ b/src/main/java/org/mmga/clubs/controller/UserController.java @@ -0,0 +1,35 @@ +package org.mmga.clubs.controller; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.extern.slf4j.Slf4j; +import org.mmga.clubs.entities.BaseResponse; +import org.mmga.clubs.entities.user.User; +import org.mmga.clubs.entities.user.UserLoginVo; +import org.mmga.clubs.entities.user.UserRegVo; +import org.mmga.clubs.service.UserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/api/user") +@Tag(name = "用户", description = "用户相关接口") +@Slf4j +public class UserController { + private final UserService service; + @Autowired + public UserController(UserService userService){ + this.service = userService; + } + @PostMapping("/login") + @Operation(description = "用户登录", responses = {@ApiResponse(description = "返回是否登录成功", responseCode = "200")}) + public BaseResponse login(@RequestBody UserLoginVo user){ + return service.login(user); + } + @PutMapping("/create") + @Operation(description = "创建用户", responses = {@ApiResponse(description = "返回创建后的用户")}) + public BaseResponse createUser(@RequestBody UserRegVo user){ + return service.createUser(user); + } +} diff --git a/src/main/java/org/mmga/clubs/dao/AuthDao.java b/src/main/java/org/mmga/clubs/dao/AuthDao.java new file mode 100644 index 0000000..44bd1c8 --- /dev/null +++ b/src/main/java/org/mmga/clubs/dao/AuthDao.java @@ -0,0 +1,8 @@ +package org.mmga.clubs.dao; + +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface AuthDao { + +} diff --git a/src/main/java/org/mmga/clubs/dao/AuthPermissionDao.java b/src/main/java/org/mmga/clubs/dao/AuthPermissionDao.java new file mode 100644 index 0000000..b1ca95e --- /dev/null +++ b/src/main/java/org/mmga/clubs/dao/AuthPermissionDao.java @@ -0,0 +1,7 @@ +package org.mmga.clubs.dao; + +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface AuthPermissionDao { +} diff --git a/src/main/java/org/mmga/clubs/dao/PermissionDao.java b/src/main/java/org/mmga/clubs/dao/PermissionDao.java new file mode 100644 index 0000000..b148b1f --- /dev/null +++ b/src/main/java/org/mmga/clubs/dao/PermissionDao.java @@ -0,0 +1,7 @@ +package org.mmga.clubs.dao; + +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface PermissionDao { +} diff --git a/src/main/java/org/mmga/clubs/dao/PermissionRouterDao.java b/src/main/java/org/mmga/clubs/dao/PermissionRouterDao.java new file mode 100644 index 0000000..0f925da --- /dev/null +++ b/src/main/java/org/mmga/clubs/dao/PermissionRouterDao.java @@ -0,0 +1,7 @@ +package org.mmga.clubs.dao; + +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface PermissionRouterDao { +} diff --git a/src/main/java/org/mmga/clubs/dao/RouterDao.java b/src/main/java/org/mmga/clubs/dao/RouterDao.java new file mode 100644 index 0000000..e4e3de8 --- /dev/null +++ b/src/main/java/org/mmga/clubs/dao/RouterDao.java @@ -0,0 +1,7 @@ +package org.mmga.clubs.dao; + +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface RouterDao { +} diff --git a/src/main/java/org/mmga/clubs/dao/UserDao.java b/src/main/java/org/mmga/clubs/dao/UserDao.java new file mode 100644 index 0000000..832cf83 --- /dev/null +++ b/src/main/java/org/mmga/clubs/dao/UserDao.java @@ -0,0 +1,13 @@ +package org.mmga.clubs.dao; + +import org.apache.ibatis.annotations.Mapper; +import org.mmga.clubs.entities.user.UserRegResponseVo; +import org.mmga.clubs.entities.user.UserVo; + +@Mapper +public interface UserDao { + UserVo getUser(String username, String password); + void addUser(UserRegResponseVo userVo); + int countUser(String username); + UserVo getUserById(int id); +} diff --git a/src/main/java/org/mmga/clubs/entities/AuthPermissionVo.java b/src/main/java/org/mmga/clubs/entities/AuthPermissionVo.java new file mode 100644 index 0000000..5183fad --- /dev/null +++ b/src/main/java/org/mmga/clubs/entities/AuthPermissionVo.java @@ -0,0 +1,6 @@ +package org.mmga.clubs.entities; + +import java.util.Date; + +public record AuthPermissionVo(int authId, int permissionId, Date createTime, Date updateTime) { +} diff --git a/src/main/java/org/mmga/clubs/entities/BaseResponse.java b/src/main/java/org/mmga/clubs/entities/BaseResponse.java new file mode 100644 index 0000000..65dc0b7 --- /dev/null +++ b/src/main/java/org/mmga/clubs/entities/BaseResponse.java @@ -0,0 +1,28 @@ +package org.mmga.clubs.entities; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.mmga.clubs.entities.user.User; + +@Data +@Schema(description = "基础返回值") +public class BaseResponse { + @Schema(description = "返回代码(参考HTTP响应码)", examples = {"200", "404", "500", "403"}) + private int code; + @Schema(description = "返回信息(自定义)") + private String msg; + @Schema(description = "返回数据") + private T data; + private BaseResponse(int code, String msg, T data){ + this.code = code; + this.msg = msg; + this.data = data; + } + public static BaseResponse success(T data){ + return new BaseResponse<>(200, "接口执行成功", data); + } + + public static BaseResponse failed(int code, String msg) { + return new BaseResponse<>(code, msg, null); + } +} diff --git a/src/main/java/org/mmga/clubs/entities/PermissionRouterVo.java b/src/main/java/org/mmga/clubs/entities/PermissionRouterVo.java new file mode 100644 index 0000000..4aebccf --- /dev/null +++ b/src/main/java/org/mmga/clubs/entities/PermissionRouterVo.java @@ -0,0 +1,6 @@ +package org.mmga.clubs.entities; + +import java.util.Date; + +public record PermissionRouterVo (int permissionId, int routerId, Date createTime, Date updateTime) { +} diff --git a/src/main/java/org/mmga/clubs/entities/auth/Auth.java b/src/main/java/org/mmga/clubs/entities/auth/Auth.java new file mode 100644 index 0000000..7ccad51 --- /dev/null +++ b/src/main/java/org/mmga/clubs/entities/auth/Auth.java @@ -0,0 +1,18 @@ +package org.mmga.clubs.entities.auth; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.mmga.clubs.entities.permission.Permission; + +import java.util.List; + +@Data +@Schema(description = "用户权限组") +public class Auth { + @Schema(description = "权限组ID") + private int id; + @Schema(description = "权限组名称") + private String name; + @Schema(description = "权限组所拥有的权限") + private List permissions; +} diff --git a/src/main/java/org/mmga/clubs/entities/auth/AuthVo.java b/src/main/java/org/mmga/clubs/entities/auth/AuthVo.java new file mode 100644 index 0000000..0ec535f --- /dev/null +++ b/src/main/java/org/mmga/clubs/entities/auth/AuthVo.java @@ -0,0 +1,7 @@ +package org.mmga.clubs.entities.auth; + +import java.util.Date; + +public record AuthVo(int id, String name, Date createTime, Date updateTime) { + +} diff --git a/src/main/java/org/mmga/clubs/entities/permission/Permission.java b/src/main/java/org/mmga/clubs/entities/permission/Permission.java new file mode 100644 index 0000000..daf2771 --- /dev/null +++ b/src/main/java/org/mmga/clubs/entities/permission/Permission.java @@ -0,0 +1,18 @@ +package org.mmga.clubs.entities.permission; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.mmga.clubs.entities.router.Router; + +import java.util.List; + +@Data +@Schema(description = "单个权限") +public class Permission { + @Schema(description = "权限ID") + private int id; + @Schema(description = "权限名称") + private String name; + @Schema(description = "此权限可访问的Router") + private List routers; +} diff --git a/src/main/java/org/mmga/clubs/entities/permission/PermissionVo.java b/src/main/java/org/mmga/clubs/entities/permission/PermissionVo.java new file mode 100644 index 0000000..cbf0273 --- /dev/null +++ b/src/main/java/org/mmga/clubs/entities/permission/PermissionVo.java @@ -0,0 +1,6 @@ +package org.mmga.clubs.entities.permission; + +import java.util.Date; + +public record PermissionVo(int id, String name, Date createTime, Date updateTime) { +} diff --git a/src/main/java/org/mmga/clubs/entities/router/Router.java b/src/main/java/org/mmga/clubs/entities/router/Router.java new file mode 100644 index 0000000..8c25138 --- /dev/null +++ b/src/main/java/org/mmga/clubs/entities/router/Router.java @@ -0,0 +1,19 @@ +package org.mmga.clubs.entities.router; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Data +@Schema(description = "路由节点") +public class Router { + @Schema(description = "节点ID") + private int id; + @Schema(description = "节点名称") + private String name; + @Schema(description = "节点对应组件名称") + private String component; + @Schema(description = "节点的子节点") + private List children; +} diff --git a/src/main/java/org/mmga/clubs/entities/router/RouterVo.java b/src/main/java/org/mmga/clubs/entities/router/RouterVo.java new file mode 100644 index 0000000..7fe8212 --- /dev/null +++ b/src/main/java/org/mmga/clubs/entities/router/RouterVo.java @@ -0,0 +1,6 @@ +package org.mmga.clubs.entities.router; + +import java.util.Date; + +public record RouterVo(int id, String name, int parent, String component, Date createTime, Date updateTime) { +} diff --git a/src/main/java/org/mmga/clubs/entities/user/User.java b/src/main/java/org/mmga/clubs/entities/user/User.java new file mode 100644 index 0000000..c59298c --- /dev/null +++ b/src/main/java/org/mmga/clubs/entities/user/User.java @@ -0,0 +1,18 @@ +package org.mmga.clubs.entities.user; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.mmga.clubs.entities.auth.Auth; + +@Data +@Schema(description = "用户") +public class User { + @Schema(description = "用户ID") + private int id; + @Schema(description = "用户名") + private String name; + @Schema(description = "用户所在权限组") + private Auth auth; + @Schema(description = "用户头像SHA1值") + private String avatar; +} diff --git a/src/main/java/org/mmga/clubs/entities/user/UserLoginVo.java b/src/main/java/org/mmga/clubs/entities/user/UserLoginVo.java new file mode 100644 index 0000000..b63125b --- /dev/null +++ b/src/main/java/org/mmga/clubs/entities/user/UserLoginVo.java @@ -0,0 +1,4 @@ +package org.mmga.clubs.entities.user; + +public record UserLoginVo(String name, String password) { +} diff --git a/src/main/java/org/mmga/clubs/entities/user/UserRegResponseVo.java b/src/main/java/org/mmga/clubs/entities/user/UserRegResponseVo.java new file mode 100644 index 0000000..9d2cf83 --- /dev/null +++ b/src/main/java/org/mmga/clubs/entities/user/UserRegResponseVo.java @@ -0,0 +1,17 @@ +package org.mmga.clubs.entities.user; + +import lombok.Data; +import org.apache.commons.codec.digest.DigestUtils; + +@Data +public class UserRegResponseVo { + private int id; + private final String username; + private final String password; + private final int auth; + public UserRegResponseVo(UserRegVo userRegVo) { + this.username = userRegVo.username(); + this.password = DigestUtils.sha1Hex(userRegVo.password()); + this.auth = userRegVo.auth(); + } +} diff --git a/src/main/java/org/mmga/clubs/entities/user/UserRegVo.java b/src/main/java/org/mmga/clubs/entities/user/UserRegVo.java new file mode 100644 index 0000000..2f3175b --- /dev/null +++ b/src/main/java/org/mmga/clubs/entities/user/UserRegVo.java @@ -0,0 +1,4 @@ +package org.mmga.clubs.entities.user; + +public record UserRegVo(String username, String password, int auth) { +} diff --git a/src/main/java/org/mmga/clubs/entities/user/UserVo.java b/src/main/java/org/mmga/clubs/entities/user/UserVo.java new file mode 100644 index 0000000..8afcce0 --- /dev/null +++ b/src/main/java/org/mmga/clubs/entities/user/UserVo.java @@ -0,0 +1,6 @@ +package org.mmga.clubs.entities.user; + +import java.util.Date; + +public record UserVo(int id, String name, String password, int auth, String avatar, Date createTime, Date updateTime) { +} diff --git a/src/main/java/org/mmga/clubs/service/AuthService.java b/src/main/java/org/mmga/clubs/service/AuthService.java new file mode 100644 index 0000000..91a91eb --- /dev/null +++ b/src/main/java/org/mmga/clubs/service/AuthService.java @@ -0,0 +1,17 @@ +package org.mmga.clubs.service; + +import org.mmga.clubs.dao.AuthDao; +import org.mmga.clubs.dao.AuthPermissionDao; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class AuthService { + private final AuthDao authDao; + private final AuthPermissionDao authPermissionDao; + @Autowired + public AuthService(AuthDao authDao, AuthPermissionDao authPermissionDao) { + this.authDao = authDao; + this.authPermissionDao = authPermissionDao; + } +} diff --git a/src/main/java/org/mmga/clubs/service/PermissionService.java b/src/main/java/org/mmga/clubs/service/PermissionService.java new file mode 100644 index 0000000..c8485ef --- /dev/null +++ b/src/main/java/org/mmga/clubs/service/PermissionService.java @@ -0,0 +1,15 @@ +package org.mmga.clubs.service; + +import org.mmga.clubs.dao.PermissionDao; +import org.mmga.clubs.dao.PermissionRouterDao; +import org.springframework.stereotype.Service; + +@Service +public class PermissionService { + private final PermissionDao permissionDao; + private final PermissionRouterDao permissionRouterDao; + public PermissionService(PermissionDao permissionDao, PermissionRouterDao permissionRouterDao) { + this.permissionDao = permissionDao; + this.permissionRouterDao = permissionRouterDao; + } +} diff --git a/src/main/java/org/mmga/clubs/service/RouterService.java b/src/main/java/org/mmga/clubs/service/RouterService.java new file mode 100644 index 0000000..7170b72 --- /dev/null +++ b/src/main/java/org/mmga/clubs/service/RouterService.java @@ -0,0 +1,12 @@ +package org.mmga.clubs.service; + +import org.mmga.clubs.dao.RouterDao; +import org.springframework.stereotype.Service; + +@Service +public class RouterService { + private final RouterDao routerDao; + public RouterService(RouterDao routerDao) { + this.routerDao = routerDao; + } +} diff --git a/src/main/java/org/mmga/clubs/service/UserService.java b/src/main/java/org/mmga/clubs/service/UserService.java new file mode 100644 index 0000000..4fc5815 --- /dev/null +++ b/src/main/java/org/mmga/clubs/service/UserService.java @@ -0,0 +1,40 @@ +package org.mmga.clubs.service; + +import org.apache.commons.codec.digest.DigestUtils; +import org.mmga.clubs.dao.UserDao; +import org.mmga.clubs.entities.BaseResponse; +import org.mmga.clubs.entities.user.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class UserService { + private final UserDao userDao; + @Autowired + public UserService(UserDao userDao){ + this.userDao = userDao; + } + + public BaseResponse login(UserLoginVo user) { + UserVo userVo = userDao.getUser(user.name(), DigestUtils.sha1Hex(user.name())); + User u = packageUser(userVo); + return u == null ? BaseResponse.failed(404, "无效用户") : BaseResponse.success(u); + } + + public BaseResponse createUser(UserRegVo user) { + String username = user.username(); + if (userDao.countUser(username) > 0) { + return BaseResponse.failed(409, "用户已存在"); + } + UserRegResponseVo response = new UserRegResponseVo(user); + userDao.addUser(response); + int newUserId = response.getId(); + return BaseResponse.success(packageUser(userDao.getUserById(newUserId))); + } + private User packageUser(UserVo vo) { + if (vo == null){ + return null; + } + return null; + } +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 4417e0c..fa2059e 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1 +1,5 @@ spring.application.name=ITZX-Clubs-Home-Server +spring.datasource.url=jdbc:mysql://wzpmc.cn:3306/itzx +spring.datasource.username=itzx +spring.datasource.password=jdy53QFMm3yATQk3 +springdoc.swagger-ui.path=/docs \ No newline at end of file diff --git a/src/main/resources/org/mmga/clubs/dao/AuthDao.xml b/src/main/resources/org/mmga/clubs/dao/AuthDao.xml new file mode 100644 index 0000000..2244e52 --- /dev/null +++ b/src/main/resources/org/mmga/clubs/dao/AuthDao.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/org/mmga/clubs/dao/AuthPermissionDao.xml b/src/main/resources/org/mmga/clubs/dao/AuthPermissionDao.xml new file mode 100644 index 0000000..6526335 --- /dev/null +++ b/src/main/resources/org/mmga/clubs/dao/AuthPermissionDao.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/org/mmga/clubs/dao/PermissionDao.xml b/src/main/resources/org/mmga/clubs/dao/PermissionDao.xml new file mode 100644 index 0000000..66e547d --- /dev/null +++ b/src/main/resources/org/mmga/clubs/dao/PermissionDao.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/org/mmga/clubs/dao/PermissionRouterDao.xml b/src/main/resources/org/mmga/clubs/dao/PermissionRouterDao.xml new file mode 100644 index 0000000..94b3a72 --- /dev/null +++ b/src/main/resources/org/mmga/clubs/dao/PermissionRouterDao.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/org/mmga/clubs/dao/RouterDao.xml b/src/main/resources/org/mmga/clubs/dao/RouterDao.xml new file mode 100644 index 0000000..dc0a90d --- /dev/null +++ b/src/main/resources/org/mmga/clubs/dao/RouterDao.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/org/mmga/clubs/dao/UserDao.xml b/src/main/resources/org/mmga/clubs/dao/UserDao.xml new file mode 100644 index 0000000..a1f60ec --- /dev/null +++ b/src/main/resources/org/mmga/clubs/dao/UserDao.xml @@ -0,0 +1,18 @@ + + + + + insert into `user`(`name`, `password`, `auth`) values(#{username}, #{password}, #{auth}); + + + + + \ No newline at end of file