diff --git a/unilife-server/src/main/java/com/unilife/common/result/Result.java b/unilife-server/src/main/java/com/unilife/common/result/Result.java index ebcc627..f16d1a5 100644 --- a/unilife-server/src/main/java/com/unilife/common/result/Result.java +++ b/unilife-server/src/main/java/com/unilife/common/result/Result.java @@ -39,6 +39,10 @@ public class Result{ return new Result<>(200, "success", null); } + public static Result success(T data, String message) { + return new Result<>(200, message, null); + } + /** * 失败返回结果 * @param code 状态码 @@ -48,4 +52,8 @@ public class Result{ 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/unilife-server/src/main/java/com/unilife/controller/UserController.java b/unilife-server/src/main/java/com/unilife/controller/UserController.java index 435b499..e4fdbf9 100644 --- a/unilife-server/src/main/java/com/unilife/controller/UserController.java +++ b/unilife-server/src/main/java/com/unilife/controller/UserController.java @@ -1,6 +1,7 @@ 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; @@ -24,4 +25,8 @@ public class UserController { 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/unilife-server/src/main/java/com/unilife/mapper/UserMapper.java b/unilife-server/src/main/java/com/unilife/mapper/UserMapper.java index 5d58437..4e4d997 100644 --- a/unilife-server/src/main/java/com/unilife/mapper/UserMapper.java +++ b/unilife-server/src/main/java/com/unilife/mapper/UserMapper.java @@ -2,8 +2,10 @@ 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 { - public void insert(User user) ; + void insert(User user); + User FindByEmail(@Param("email") String email, @Param("password") String password); } diff --git a/unilife-server/src/main/java/com/unilife/model/dto/LogDTO.java b/unilife-server/src/main/java/com/unilife/model/dto/LogDTO.java new file mode 100644 index 0000000..68e2c5a --- /dev/null +++ b/unilife-server/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/unilife-server/src/main/java/com/unilife/model/dto/LoginDTO.java b/unilife-server/src/main/java/com/unilife/model/dto/LoginDTO.java index d593c47..7643b0b 100644 --- a/unilife-server/src/main/java/com/unilife/model/dto/LoginDTO.java +++ b/unilife-server/src/main/java/com/unilife/model/dto/LoginDTO.java @@ -1,5 +1,5 @@ package com.unilife.model.dto; - +//这个是注册的DTO import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/unilife-server/src/main/java/com/unilife/model/vo/LogVO.java b/unilife-server/src/main/java/com/unilife/model/vo/LogVO.java new file mode 100644 index 0000000..38d0da7 --- /dev/null +++ b/unilife-server/src/main/java/com/unilife/model/vo/LogVO.java @@ -0,0 +1,27 @@ +package com.unilife.model.vo; + +import com.unilife.model.entity.User; +import lombok.Data; + +@Data +public class LogVO { + private Integer id; + private String username; + private String nickname; + private String avatar; + private Byte role; + private Byte isVerified; + private Byte status; + + public LogVO(Integer id,String username,String nickname,String avatar,Byte role,Byte isVerified,Byte status) + { + this.id = id; + this.username = username; + this.nickname = nickname; + this.avatar = avatar; + this.role = role; + this.isVerified = isVerified; + } + +} + diff --git a/unilife-server/src/main/java/com/unilife/model/vo/LoginVO.java b/unilife-server/src/main/java/com/unilife/model/vo/LoginVO.java index 6df92df..4f87b54 100644 --- a/unilife-server/src/main/java/com/unilife/model/vo/LoginVO.java +++ b/unilife-server/src/main/java/com/unilife/model/vo/LoginVO.java @@ -7,4 +7,11 @@ public class LoginVO { private Integer id; private String username; private String nickname; + + public LoginVO(Integer id, String username, String nickname) + { + this.id = id; + this.username = username; + this.nickname = nickname; + } } diff --git a/unilife-server/src/main/java/com/unilife/service/UserService.java b/unilife-server/src/main/java/com/unilife/service/UserService.java index 11c74dd..968da9f 100644 --- a/unilife-server/src/main/java/com/unilife/service/UserService.java +++ b/unilife-server/src/main/java/com/unilife/service/UserService.java @@ -1,9 +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/unilife-server/src/main/java/com/unilife/service/impl/UserServiceImpl.java b/unilife-server/src/main/java/com/unilife/service/impl/UserServiceImpl.java index 75f3fde..eea7766 100644 --- a/unilife-server/src/main/java/com/unilife/service/impl/UserServiceImpl.java +++ b/unilife-server/src/main/java/com/unilife/service/impl/UserServiceImpl.java @@ -3,13 +3,19 @@ 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 { @@ -21,7 +27,25 @@ public class UserServiceImpl implements UserService { User user = new User(); BeanUtil.copyProperties(loginDTO,user); userMapper.insert(user); - LoginVO loginVO = new LoginVO(); + LoginVO loginVO = new LoginVO(Math.toIntExact(user.getId()),user.getUsername(),user.getNickname()); 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(Math.toIntExact(getuser.getId()), getuser.getUsername(), getuser.getNickname(), + getuser.getAvatar(), getuser.getRole(), getuser.getIsVerified(), getuser.getStatus()); + return Result.success(logVO); + } } diff --git a/unilife-server/src/main/resources/application.yml b/unilife-server/src/main/resources/application.yml index a28359d..8d8e1f5 100644 --- a/unilife-server/src/main/resources/application.yml +++ b/unilife-server/src/main/resources/application.yml @@ -1,10 +1,10 @@ server: - port: 8080 + port: 8087 spring: datasource: url: jdbc:mysql://localhost:3306/UniLife?useSSL=false&serverTimezone=UTC&characterEncoding=UTF-8 username: root - password: 123456 + password: zhong20050428 driver-class-name: com.mysql.cj.jdbc.Driver knife4j: enable: true diff --git a/unilife-server/src/main/resources/mappers/UserMapper.xml b/unilife-server/src/main/resources/mappers/UserMapper.xml index 26face9..20a789b 100644 --- a/unilife-server/src/main/resources/mappers/UserMapper.xml +++ b/unilife-server/src/main/resources/mappers/UserMapper.xml @@ -1,6 +1,17 @@ + + + + + + + + + + + INSERT INTO users ( username, @@ -40,4 +51,10 @@ #{loginTime} ) + + \ No newline at end of file