1.项目介绍&环境搭建
一个以社交平台为核心的轻电商项目,功能如下:
短信登录、商户查询缓存、优惠券秒杀、达人探店、好友关注、附近的商户、用户签到、UV统计
1.1项目架构
1.2项目环境搭建
1.2.1后端项目搭建
mysql的版本采用5.7及以上版本
(1)首先创建数据库,需要创建的表有:
- tb_user:用户表
- tb_user_info:用户详情表
- tb_shop:商品信息表
- tb_shop_type:商品类型表
- tb_blog:用户日记表(达人探店日记)
- tb_follow:用户关注表
- tb_voucher:优惠券表
- tb_voucher_order:优惠券的订单表
(2)导入项目依赖
<dependencies> |
|
<!--SpringBoot整合的redis--> |
|
<dependency> |
|
<groupId>org.springframework.boot</groupId> |
|
<artifactId>spring-boot-starter-data-redis</artifactId> |
|
</dependency> |
|
<!--数据库连接池--> |
|
<dependency> |
|
<groupId>org.apache.commons</groupId> |
|
<artifactId>commons-pool2</artifactId> |
|
</dependency> |
|
<!--web-starter--> |
|
<dependency> |
|
<groupId>org.springframework.boot</groupId> |
|
<artifactId>spring-boot-starter-web</artifactId> |
|
</dependency> |
|
<!--mysql驱动--> |
|
<dependency> |
|
<groupId>mysql</groupId> |
|
<artifactId>mysql-connector-java</artifactId> |
|
<scope>runtime</scope> |
|
<version>5.1.47</version> |
|
</dependency> |
|
<!--Lombok--> |
|
<dependency> |
|
<groupId>org.projectlombok</groupId> |
|
<artifactId>lombok</artifactId> |
|
<optional>true</optional> |
|
</dependency> |
|
<!--springboot-test-starter--> |
|
<dependency> |
|
<groupId>org.springframework.boot</groupId> |
|
<artifactId>spring-boot-starter-test</artifactId> |
|
<scope>test</scope> |
|
</dependency> |
|
<!--mybatisplus--> |
|
<dependency> |
|
<groupId>com.baomidou</groupId> |
|
<artifactId>mybatis-plus-boot-starter</artifactId> |
|
<version>3.4.3</version> |
|
</dependency> |
|
<!--hutool--> |
|
<dependency> |
|
<groupId>cn.hutool</groupId> |
|
<artifactId>hutool-all</artifactId> |
|
<version>5.7.17</version> |
|
</dependency> |
|
</dependencies> |
(3)application.yml配置文件
server: |
|
port: 8081 |
|
spring: |
|
application: |
|
name: hmdp |
|
datasource: |
|
driver-class-name: com.mysql.jdbc.Driver |
|
url: jdbc:mysql://127.0.0.1:3306/hmdp?useSSL=false&serverTimezone=UTC |
|
username: root |
|
password: 123456 |
|
redis: |
|
host: 192.168.1.3 |
|
port: 6379 |
|
password: 123456 |
|
lettuce: |
|
pool: |
|
max-active: 10 |
|
max-idle: 10 |
|
min-idle: 1 |
|
time-between-eviction-runs: 10s |
|
jackson: |
|
default-property-inclusion: non_null # JSON处理时忽略非空字段 |
|
mybatis-plus: |
|
type-aliases-package: com.hmdp.entity # 别名扫描包 |
|
logging: |
|
level: |
|
com.hmdp: debug |
1.2.2部署前端项目
这里部署已经实现好的前端项目
(1)解压文件:
(2)使用CMD窗口启动 nginx.exe:
(3)打开谷歌浏览器---右键页面,点击“检查”--地址栏访问 127.0.0.1:8080,即可看到页面:
(4)若要退出Nginx服务,只需在目录下运行命令 nginx -s quit
参考:Nginx关闭方法
2.功能01-短信登录
2.1基于Session实现登录
2.1.1思路分析
2.1.2代码实现
2.1.2.1发送短信验证码
发送短信验证码:
发送验证码的接口为:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手机号>
请求方式:POST
请求路径:/user/code
请求参数:phone,电话号码
返回值:无
部分代码
(1)User类、UserDTO类(DTO类主要是为了存储非敏感数据)
package com.hmdp.entity; |
|
import com.baomidou.mybatisplus.annotation.IdType; |
|
import com.baomidou.mybatisplus.annotation.TableId; |
|
import com.baomidou.mybatisplus.annotation.TableName; |
|
import lombok.Data; |
|
import lombok.EqualsAndHashCode; |
|
import lombok.experimental.Accessors; |
|
import java.io.Serializable; |
|
import java.time.LocalDateTime; |
|
/** |
|
* 用户实体类 |
|
* |
|
* @author 李 |
|
* @version 1.0 |
|
*/ |
|
@Data |
|
@EqualsAndHashCode(callSuper = false) |
|
//chain = true,则对应字段的setter方法调用后,会返回当前对象 |
|
@Accessors(chain = true) |
|
@TableName("tb_user") |
|
public class |