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