forked from pizvue73f/unilife
				
			
							parent
							
								
									283973c673
								
							
						
					
					
						commit
						4ae6e4ce54
					
				@ -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>
 | 
				
			||||
@ -1,4 +1,4 @@
 | 
				
			||||
package com.example.unilife;
 | 
				
			||||
package com.unilife;
 | 
				
			||||
 | 
				
			||||
import org.springframework.boot.SpringApplication;
 | 
				
			||||
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);
 | 
				
			||||
    }
 | 
				
			||||
}
 | 
				
			||||
@ -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.springframework.boot.test.context.SpringBootTest;
 | 
				
			||||
					Loading…
					
					
				
		Reference in new issue