From 5ba73606ca4f969a6e567f862206405c16013328 Mon Sep 17 00:00:00 2001
From: Bunny <1319900154@qq.com>
Date: Tue, 26 Dec 2023 16:41:54 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BC=9A=E5=91=98=E7=99=BB=E5=BD=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.idea/workspace.xml | 33 ++++++++++---------
.../user/controller/UserinfoController.java | 8 +++++
.../cn/bunny/user/mapper/UserinfoMapper.java | 3 ++
.../bunny/user/service/UserinfoService.java | 3 ++
.../service/impl/UserinfoServiceImpl.java | 32 ++++++++++++++++++
5 files changed, 63 insertions(+), 16 deletions(-)
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index cfed013..812efca 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -4,20 +4,12 @@
-
-
-
-
-
-
-
-
+
-
-
-
-
-
+
+
+
+
@@ -196,7 +188,7 @@
1703487755445
-
+
@@ -270,7 +262,15 @@
1703574739774
-
+
+
+ 1703578711882
+
+
+
+ 1703578711882
+
+
@@ -285,7 +285,8 @@
-
+
+
diff --git a/spzx-service/service-user/src/main/java/cn/bunny/user/controller/UserinfoController.java b/spzx-service/service-user/src/main/java/cn/bunny/user/controller/UserinfoController.java
index d27134e..47ae94a 100644
--- a/spzx-service/service-user/src/main/java/cn/bunny/user/controller/UserinfoController.java
+++ b/spzx-service/service-user/src/main/java/cn/bunny/user/controller/UserinfoController.java
@@ -1,5 +1,6 @@
package cn.bunny.user.controller;
+import cn.bunny.common.spzx.model.dto.h5.UserLoginDto;
import cn.bunny.common.spzx.model.dto.h5.UserRegisterDto;
import cn.bunny.common.spzx.model.vo.common.Result;
import cn.bunny.common.spzx.model.vo.common.ResultCodeEnum;
@@ -19,6 +20,13 @@ public class UserinfoController {
@Resource
private UserinfoService userinfoService;
+ @Operation(summary = "会员登录")
+ @PostMapping("login")
+ public Result login(@RequestBody UserLoginDto userLoginDto) {
+ String token = userinfoService.login(userLoginDto);
+ return Result.build(token, ResultCodeEnum.SUCCESS);
+ }
+
@Operation(summary = "会员注册")
@PostMapping("register")
public Result register(@RequestBody UserRegisterDto userRegisterDto) {
diff --git a/spzx-service/service-user/src/main/java/cn/bunny/user/mapper/UserinfoMapper.java b/spzx-service/service-user/src/main/java/cn/bunny/user/mapper/UserinfoMapper.java
index eb3e240..3d54c61 100644
--- a/spzx-service/service-user/src/main/java/cn/bunny/user/mapper/UserinfoMapper.java
+++ b/spzx-service/service-user/src/main/java/cn/bunny/user/mapper/UserinfoMapper.java
@@ -12,4 +12,7 @@ public interface UserinfoMapper {
// 封装添加数据,调用方法调用添加数据
void save(UserInfo userInfo);
+
+ // 根据用户名查询数据库,得到用户信息
+ UserInfo selectByUsername(String username);
}
diff --git a/spzx-service/service-user/src/main/java/cn/bunny/user/service/UserinfoService.java b/spzx-service/service-user/src/main/java/cn/bunny/user/service/UserinfoService.java
index 542b70f..807215a 100644
--- a/spzx-service/service-user/src/main/java/cn/bunny/user/service/UserinfoService.java
+++ b/spzx-service/service-user/src/main/java/cn/bunny/user/service/UserinfoService.java
@@ -1,9 +1,12 @@
package cn.bunny.user.service;
+import cn.bunny.common.spzx.model.dto.h5.UserLoginDto;
import cn.bunny.common.spzx.model.dto.h5.UserRegisterDto;
public interface UserinfoService {
// 会员注册
void register(UserRegisterDto userLoginDto);
+ // 会员登录
+ String login(UserLoginDto userLoginDto);
}
diff --git a/spzx-service/service-user/src/main/java/cn/bunny/user/service/impl/UserinfoServiceImpl.java b/spzx-service/service-user/src/main/java/cn/bunny/user/service/impl/UserinfoServiceImpl.java
index baa919c..cb5a198 100644
--- a/spzx-service/service-user/src/main/java/cn/bunny/user/service/impl/UserinfoServiceImpl.java
+++ b/spzx-service/service-user/src/main/java/cn/bunny/user/service/impl/UserinfoServiceImpl.java
@@ -1,16 +1,21 @@
package cn.bunny.user.service.impl;
import cn.bunny.common.exception.BunnyException;
+import cn.bunny.common.spzx.model.dto.h5.UserLoginDto;
import cn.bunny.common.spzx.model.dto.h5.UserRegisterDto;
import cn.bunny.common.spzx.model.entity.user.UserInfo;
import cn.bunny.common.spzx.model.vo.common.ResultCodeEnum;
import cn.bunny.user.mapper.UserinfoMapper;
import cn.bunny.user.service.UserinfoService;
+import com.alibaba.fastjson.JSON;
import jakarta.annotation.Resource;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.util.DigestUtils;
+import java.util.UUID;
+import java.util.concurrent.TimeUnit;
+
@Service
public class UserinfoServiceImpl implements UserinfoService {
@Resource
@@ -50,4 +55,31 @@ public class UserinfoServiceImpl implements UserinfoService {
// 6. 从Redis中删除发送验证码
redisTemplate.delete(username);
}
+
+ // 会员登录
+ @Override
+ public String login(UserLoginDto userLoginDto) {
+ // 1. dto获取用户名和密码
+ String username = userLoginDto.getUsername();
+ String password = userLoginDto.getPassword();
+ // 2. 根据用户名查询数据库,得到用户信息
+ UserInfo userInfo = userinfoMapper.selectByUsername(username);
+ // 3. 比较密码是否一致
+ String database_password = userInfo.getPassword();
+ String md5_password = DigestUtils.md5DigestAsHex(password.getBytes());
+ if (!database_password.equals(md5_password)) {
+ throw new BunnyException(ResultCodeEnum.LOGIN_ERROR);
+ }
+ // 4. 校验用户名是否禁用
+ if (userInfo.getStatus() == 0) {
+ throw new BunnyException(ResultCodeEnum.ACCOUNT_STOP);
+ }
+ // 5. 生成token
+ String token = UUID.randomUUID().toString().replaceAll("-", "");
+ // 6. 把用户名信息放到redis中
+ redisTemplate.opsForValue().set("user:spzx" + token,
+ JSON.toJSONString(userInfo), 30, TimeUnit.DAYS);
+ // 7. 返回token
+ return token;
+ }
}