From d43468edb9c65a1a08e2a5e7f8ef10f9544ce1f7 Mon Sep 17 00:00:00 2001
From: zhong-hongye12355 <2742355614@qq.com>
Date: Thu, 20 Mar 2025 17:21:37 +0800
Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E5=85=A5=E4=BA=86=E7=99=BB=E5=BD=95?=
=?UTF-8?q?=E5=8A=9F=E8=83=BD=E7=9A=84=E7=89=88=E6=9C=AC?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.gitignore | 33 +++++
pom.xml | 118 ++++++++++++++++++
.../java/com/unilife/UniLifeApplication.java | 13 ++
.../com/unilife/common/result/Result.java | 59 +++++++++
.../unilife/controller/UserController.java | 32 +++++
.../java/com/unilife/mapper/UserMapper.java | 11 ++
.../java/com/unilife/model/dto/LogDTO.java | 14 +++
.../java/com/unilife/model/dto/LoginDTO.java | 19 +++
.../java/com/unilife/model/entity/User.java | 56 +++++++++
src/main/java/com/unilife/model/vo/LogVO.java | 15 +++
.../java/com/unilife/model/vo/LoginVO.java | 10 ++
.../java/com/unilife/service/UserService.java | 12 ++
.../unilife/service/impl/UserServiceImpl.java | 50 ++++++++
src/main/resources/application.yml | 30 +++++
src/main/resources/mappers/UserMapper.xml | 53 ++++++++
src/main/resources/static/index.html | 6 +
.../com/unilife/BackendApplicationTests.java | 13 ++
17 files changed, 544 insertions(+)
create mode 100644 .gitignore
create mode 100644 pom.xml
create mode 100644 src/main/java/com/unilife/UniLifeApplication.java
create mode 100644 src/main/java/com/unilife/common/result/Result.java
create mode 100644 src/main/java/com/unilife/controller/UserController.java
create mode 100644 src/main/java/com/unilife/mapper/UserMapper.java
create mode 100644 src/main/java/com/unilife/model/dto/LogDTO.java
create mode 100644 src/main/java/com/unilife/model/dto/LoginDTO.java
create mode 100644 src/main/java/com/unilife/model/entity/User.java
create mode 100644 src/main/java/com/unilife/model/vo/LogVO.java
create mode 100644 src/main/java/com/unilife/model/vo/LoginVO.java
create mode 100644 src/main/java/com/unilife/service/UserService.java
create mode 100644 src/main/java/com/unilife/service/impl/UserServiceImpl.java
create mode 100644 src/main/resources/application.yml
create mode 100644 src/main/resources/mappers/UserMapper.xml
create mode 100644 src/main/resources/static/index.html
create mode 100644 src/test/java/com/unilife/BackendApplicationTests.java
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..549e00a
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,33 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..14fd7bc
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,118 @@
+
+
+ 4.0.0
+ com.example
+ unilife-server
+ 0.0.1-SNAPSHOT
+ backend
+ backend
+
+ 1.8
+ UTF-8
+ UTF-8
+ 2.7.6
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.mybatis.spring.boot
+ mybatis-spring-boot-starter
+ 2.3.0
+
+
+
+ javax.persistence
+ javax.persistence-api
+ 2.2
+
+
+
+ com.mysql
+ mysql-connector-j
+ 8.2.0
+ runtime
+
+
+ org.projectlombok
+ lombok
+ 1.18.36
+ true
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+
+ org.springframework.data
+ spring-data-jpa
+ 3.3.4
+
+
+
+ org.apache.tomcat.maven
+ tomcat6-maven-plugin
+ 2.2
+
+
+
+ com.github.xiaoymin
+ knife4j-openapi2-spring-boot-starter
+ 4.4.0
+
+
+ cn.hutool
+ hutool-all
+ 5.8.24
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-dependencies
+ ${spring-boot.version}
+ pom
+ import
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.8.1
+
+ 1.8
+ 1.8
+ UTF-8
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+ ${spring-boot.version}
+
+ com.example.unilife.BackendApplication
+ true
+
+
+
+ repackage
+
+ repackage
+
+
+
+
+
+
+
+
diff --git a/src/main/java/com/unilife/UniLifeApplication.java b/src/main/java/com/unilife/UniLifeApplication.java
new file mode 100644
index 0000000..3cfbd02
--- /dev/null
+++ b/src/main/java/com/unilife/UniLifeApplication.java
@@ -0,0 +1,13 @@
+package com.unilife;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class UniLifeApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(UniLifeApplication.class, args);
+ }
+
+}
diff --git a/src/main/java/com/unilife/common/result/Result.java b/src/main/java/com/unilife/common/result/Result.java
new file mode 100644
index 0000000..f16d1a5
--- /dev/null
+++ b/src/main/java/com/unilife/common/result/Result.java
@@ -0,0 +1,59 @@
+package com.unilife.common.result;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class Result{
+ /***
+ * 状态码
+ */
+ private Integer code;
+ /***
+ * 消息
+ */
+ private String message;
+ /***
+ *数据
+ */
+ private T data;
+
+ /***
+ *
+ * @param data 数据
+ * @return 结果对象
+ * @param 数据类型
+ */
+ public static Resultsuccess(T data){
+ return new Result(200, "success", data);
+ }
+
+ /**
+ * 成功返回结果
+ * @return 结果对象
+ */
+ public static Result success() {
+ return new Result<>(200, "success", null);
+ }
+
+ public static Result success(T data, String message) {
+ return new Result<>(200, message, null);
+ }
+
+ /**
+ * 失败返回结果
+ * @param code 状态码
+ * @param message 消息
+ * @return 结果对象
+ */
+ public static Result error(Integer code, String message) {
+ return new Result<>(code, message, null);
+ }
+
+ public static Result error(T data,String message){
+ return new Result<>(200,message,null);
+ }
+}
diff --git a/src/main/java/com/unilife/controller/UserController.java b/src/main/java/com/unilife/controller/UserController.java
new file mode 100644
index 0000000..e4fdbf9
--- /dev/null
+++ b/src/main/java/com/unilife/controller/UserController.java
@@ -0,0 +1,32 @@
+package com.unilife.controller;
+
+import com.unilife.common.result.Result;
+import com.unilife.model.dto.LogDTO;
+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);
+ }
+
+ @ApiOperation(value = "用户登录")
+ @PostMapping("login")
+ public Result login(@RequestBody LogDTO logDTO) { return userService.login(logDTO); }
+}
diff --git a/src/main/java/com/unilife/mapper/UserMapper.java b/src/main/java/com/unilife/mapper/UserMapper.java
new file mode 100644
index 0000000..4e4d997
--- /dev/null
+++ b/src/main/java/com/unilife/mapper/UserMapper.java
@@ -0,0 +1,11 @@
+package com.unilife.mapper;
+
+import com.unilife.model.entity.User;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface UserMapper {
+ void insert(User user);
+ User FindByEmail(@Param("email") String email, @Param("password") String password);
+}
diff --git a/src/main/java/com/unilife/model/dto/LogDTO.java b/src/main/java/com/unilife/model/dto/LogDTO.java
new file mode 100644
index 0000000..68e2c5a
--- /dev/null
+++ b/src/main/java/com/unilife/model/dto/LogDTO.java
@@ -0,0 +1,14 @@
+package com.unilife.model.dto;
+//这个才是登录的DTO
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class LogDTO {
+ private String email;
+ private String password;
+}
diff --git a/src/main/java/com/unilife/model/dto/LoginDTO.java b/src/main/java/com/unilife/model/dto/LoginDTO.java
new file mode 100644
index 0000000..7643b0b
--- /dev/null
+++ b/src/main/java/com/unilife/model/dto/LoginDTO.java
@@ -0,0 +1,19 @@
+package com.unilife.model.dto;
+//这个是注册的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;
+}
diff --git a/src/main/java/com/unilife/model/entity/User.java b/src/main/java/com/unilife/model/entity/User.java
new file mode 100644
index 0000000..4495243
--- /dev/null
+++ b/src/main/java/com/unilife/model/entity/User.java
@@ -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;
+
+}
diff --git a/src/main/java/com/unilife/model/vo/LogVO.java b/src/main/java/com/unilife/model/vo/LogVO.java
new file mode 100644
index 0000000..21d9f07
--- /dev/null
+++ b/src/main/java/com/unilife/model/vo/LogVO.java
@@ -0,0 +1,15 @@
+package com.unilife.model.vo;
+
+import com.unilife.model.entity.User;
+import lombok.Data;
+
+@Data
+public class LogVO {
+ private String username;
+ private String email;
+ private String nickname;
+ private String studentId;
+ private String department;
+ private String major;
+ private String grade;
+}
diff --git a/src/main/java/com/unilife/model/vo/LoginVO.java b/src/main/java/com/unilife/model/vo/LoginVO.java
new file mode 100644
index 0000000..6df92df
--- /dev/null
+++ b/src/main/java/com/unilife/model/vo/LoginVO.java
@@ -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;
+}
diff --git a/src/main/java/com/unilife/service/UserService.java b/src/main/java/com/unilife/service/UserService.java
new file mode 100644
index 0000000..968da9f
--- /dev/null
+++ b/src/main/java/com/unilife/service/UserService.java
@@ -0,0 +1,12 @@
+package com.unilife.service;
+
+import com.unilife.common.result.Result;
+import com.unilife.model.dto.LogDTO;
+import com.unilife.model.dto.LoginDTO;
+import com.unilife.model.entity.User;
+
+
+public interface UserService {
+ Result register(LoginDTO loginDTO);
+ Result login(LogDTO logDTO);
+}
diff --git a/src/main/java/com/unilife/service/impl/UserServiceImpl.java b/src/main/java/com/unilife/service/impl/UserServiceImpl.java
new file mode 100644
index 0000000..4dfa70c
--- /dev/null
+++ b/src/main/java/com/unilife/service/impl/UserServiceImpl.java
@@ -0,0 +1,50 @@
+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.LogDTO;
+import com.unilife.model.dto.LoginDTO;
+import com.unilife.model.entity.User;
+import com.unilife.model.vo.LogVO;
+import com.unilife.model.vo.LoginVO;
+import com.unilife.service.UserService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Service;
+
+@Slf4j
+@Component
+@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);
+ }
+
+ @Override
+ public Result login(LogDTO logDTO) {
+ User user = new User();
+ BeanUtil.copyProperties(logDTO,user);//将登录的前端传来的消息拷贝给这个user
+ User getuser = userMapper.FindByEmail(user.getEmail(),user.getPassword());
+ if(getuser == null)
+ {
+ return Result.error(logDTO,"用户不存在,登录失败!");
+ }
+ if(!user.getPassword().equals(getuser.getPassword()))
+ {
+ return Result.error(logDTO,"密码错误,登录失败!");
+ }
+ LogVO logVO = new LogVO();
+ return Result.success(logVO);
+ }
+}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
new file mode 100644
index 0000000..8d8e1f5
--- /dev/null
+++ b/src/main/resources/application.yml
@@ -0,0 +1,30 @@
+server:
+ port: 8087
+spring:
+ datasource:
+ url: jdbc:mysql://localhost:3306/UniLife?useSSL=false&serverTimezone=UTC&characterEncoding=UTF-8
+ username: root
+ password: zhong20050428
+ 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
diff --git a/src/main/resources/mappers/UserMapper.xml b/src/main/resources/mappers/UserMapper.xml
new file mode 100644
index 0000000..8bd9f39
--- /dev/null
+++ b/src/main/resources/mappers/UserMapper.xml
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+ 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}
+ )
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/static/index.html b/src/main/resources/static/index.html
new file mode 100644
index 0000000..e2d94a2
--- /dev/null
+++ b/src/main/resources/static/index.html
@@ -0,0 +1,6 @@
+
+
+ hello word!!!
+ this is a html page
+
+
\ No newline at end of file
diff --git a/src/test/java/com/unilife/BackendApplicationTests.java b/src/test/java/com/unilife/BackendApplicationTests.java
new file mode 100644
index 0000000..afe129e
--- /dev/null
+++ b/src/test/java/com/unilife/BackendApplicationTests.java
@@ -0,0 +1,13 @@
+package com.unilife;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.boot.test.context.SpringBootTest;
+
+@SpringBootTest
+class BackendApplicationTests {
+
+ @Test
+ void contextLoads() {
+ }
+
+}