代码框架及用户注册接口

main1
2991692032 2 months ago
parent 283973c673
commit 4ae6e4ce54

@ -2,6 +2,7 @@
<project version="4"> <project version="4">
<component name="CompilerConfiguration"> <component name="CompilerConfiguration">
<annotationProcessing> <annotationProcessing>
<profile default="true" name="Default" enabled="true" />
<profile name="Maven default annotation processors profile" enabled="true"> <profile name="Maven default annotation processors profile" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" /> <sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" /> <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DataSourceManagerImpl" format="xml" multifile-model="true">
<data-source source="LOCAL" name="unilife@localhost" uuid="9c6c9710-15d0-4710-8fca-930cc43549e9">
<driver-ref>mysql.8</driver-ref>
<synchronize>true</synchronize>
<jdbc-driver>com.mysql.cj.jdbc.Driver</jdbc-driver>
<jdbc-url>jdbc:mysql://localhost:3306/unilife</jdbc-url>
<jdbc-additional-properties>
<property name="com.intellij.clouds.kubernetes.db.host.port" />
<property name="com.intellij.clouds.kubernetes.db.enabled" value="false" />
<property name="com.intellij.clouds.kubernetes.db.container.port" />
</jdbc-additional-properties>
<working-dir>$ProjectFileDir$</working-dir>
</data-source>
</component>
</project>

@ -124,7 +124,7 @@ CREATE TABLE `users` (
#### 3.1.1 用户注册 #### 3.1.1 用户注册
- **URL**: `/auth/register` - **URL**: `/users/register`
- **方法**: POST - **方法**: POST
@ -162,7 +162,7 @@ CREATE TABLE `users` (
#### 3.1.2 用户密码登录 #### 3.1.2 用户密码登录
- **URL**: `/auth/login` - **URL**: `/users/login`
- **方法**: POST - **方法**: POST
- **描述**: 用户登录 - **描述**: 用户登录
@ -198,7 +198,7 @@ CREATE TABLE `users` (
#### 3.1.3 获取邮箱验证码 #### 3.1.3 获取邮箱验证码
- **URL**: `/auth/email/code` - **URL**: `/users/code`
- **方法**: POST - **方法**: POST
@ -224,7 +224,7 @@ CREATE TABLE `users` (
#### 3.1.4 邮箱验证码登录 #### 3.1.4 邮箱验证码登录
- **URL**: `/auth/login/code` - **URL**: `/users/login/code`
- **方法**: POST - **方法**: POST
- **描述**: 使用邮箱和验证码进行登录 - **描述**: 使用邮箱和验证码进行登录

@ -39,6 +39,16 @@
<artifactId>spring-boot-starter-test</artifactId> <artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-openapi2-spring-boot-starter</artifactId>
<version>4.4.0</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.16</version>
</dependency>
</dependencies> </dependencies>
<dependencyManagement> <dependencyManagement>
<dependencies> <dependencies>

@ -1,4 +1,4 @@
package com.example.unilife; package com.unilife;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;

@ -0,0 +1,51 @@
package com.unilife.common.result;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Result<T>{
/***
*
*/
private Integer code;
/***
*
*/
private String message;
/***
*
*/
private T data;
/***
*
* @param data
* @return
* @param <T>
*/
public static <T>Result<T>success(T data){
return new Result<T>(200, "success", data);
}
/**
*
* @return
*/
public static Result<Void> success() {
return new Result<>(200, "success", null);
}
/**
*
* @param code
* @param message
* @return
*/
public static <T> Result<T> error(Integer code, String message) {
return new Result<>(code, message, null);
}
}

@ -0,0 +1,27 @@
package com.unilife.controller;
import com.unilife.common.result.Result;
import com.unilife.model.dto.LoginDTO;
import com.unilife.service.UserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Api(tags = "用户管理")
@RestController
@RequestMapping("/users")
public class UserController {
@Autowired
private UserService userService;
@ApiOperation(value = "用户注册")
@PostMapping("register")
public Result register(@RequestBody LoginDTO loginDTO) {
return userService.register(loginDTO);
}
}

@ -0,0 +1,9 @@
package com.unilife.mapper;
import com.unilife.model.entity.User;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface UserMapper {
public void insert(User user) ;
}

@ -0,0 +1,19 @@
package com.unilife.model.dto;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class LoginDTO {
private String username;
private String email;
private String password;
private String nickname;
private String studentId;
private String department;
private String major;
private String grade;
}

@ -0,0 +1,56 @@
package com.unilife.model.entity;
import lombok.*;
import java.io.Serializable;
import java.time.LocalDateTime;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class User implements Serializable {
private static final long serialVersionUID = 1L;
private Long id;
private String username;
private String email;
private String password;
private String nickname;
private String avatar;
private String bio;
private Byte gender;
private String studentId;
private String department;
private String major;
private String grade;
private Integer points = 0;
private Byte role = 0;
private Byte status = 1;
private Byte isVerified = 0;
private String loginIp;
private LocalDateTime loginTime;
private LocalDateTime createdAt;
private LocalDateTime updatedAt;
}

@ -0,0 +1,10 @@
package com.unilife.model.vo;
import lombok.Data;
@Data
public class LoginVO {
private Integer id;
private String username;
private String nickname;
}

@ -0,0 +1,9 @@
package com.unilife.service;
import com.unilife.common.result.Result;
import com.unilife.model.dto.LoginDTO;
public interface UserService {
Result register(LoginDTO loginDTO);
}

@ -0,0 +1,27 @@
package com.unilife.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.unilife.common.result.Result;
import com.unilife.mapper.UserMapper;
import com.unilife.model.dto.LoginDTO;
import com.unilife.model.entity.User;
import com.unilife.model.vo.LoginVO;
import com.unilife.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public Result register(LoginDTO loginDTO) {
User user = new User();
BeanUtil.copyProperties(loginDTO,user);
userMapper.insert(user);
LoginVO loginVO = new LoginVO();
return Result.success(loginVO);
}
}

@ -6,3 +6,25 @@ spring:
username: root username: root
password: 123456 password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver driver-class-name: com.mysql.cj.jdbc.Driver
knife4j:
enable: true
openapi:
title: Knife4j官方文档
description: "测试"
email: xiaoymin@foxmail.com
concat: 八一菜刀
url: https://docs.xiaominfo.com
version: v4.0
license: Apache 2.0
license-url: https://stackoverflow.com/
terms-of-service-url: https://stackoverflow.com/
group:
test1:
group-name: 分组名称
api-rule: package
api-rule-resources:
- com.unilife
mybatis:
mapper-locations: classpath:mappers/*.xml
configuration:
map-underscore-to-camel-case: true

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.unilife.mapper.UserMapper">
<insert id="insert" parameterType="com.unilife.model.entity.User" useGeneratedKeys="true" keyProperty="id">
INSERT INTO users (
username,
email,
password,
nickname,
avatar,
bio,
gender,
student_id,
department,
major,
grade,
points,
role,
status,
is_verified,
login_ip,
login_time
) VALUES (
#{username},
#{email},
#{password},
#{nickname},
#{avatar},
#{bio},
#{gender},
#{studentId},
#{department},
#{major},
#{grade},
#{points},
#{role},
#{status},
#{isVerified},
#{loginIp},
#{loginTime}
)
</insert>
</mapper>

@ -1,4 +1,4 @@
package com.example.unilife; package com.unilife;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
Loading…
Cancel
Save