## 快递代拿系统
> 该项目基于[[express-ssm]](https://github.com/jitwxs/express-ssm) 项目全面升级,使用当前最为流行的 SpringBoot 框架,相关技术栈全面更新!是您深入学习 SpringBoot 开发的最佳实践!
### 相关技术栈
1. **前端:** Thymeleaf、Bootstrap、Ajax、JQuery
2. **开发环境:** IDEA 、SpringBoot 2.1、Maven
3. **数据库与缓存**:MySQL 5.7、Redis、Guava Cache
4. **三方服务**:腾讯云短信服务、支付宝支付(沙箱)、百度人脸识别
5. **安全框架**:Spring Security
6. **其他技术**:API 接口限速、二级缓存
### 主要功能
1. **登陆与注册:** 用户名密码、短信验证码、人脸识别登录、QQ登录
2. **权限:** 普通用户、配送员、后台管理员
3. **普通用户**:下单支付、订单查询、意见反馈、订单评价
4. **配送员**:接单、订单管理、意见反馈、订单评价
5. **系统管理员**:用户管理、订单管理、反馈管理
### 默认用户
当您运行初始脚本后,默认存在以下用户,便于测试:
|登录名|密码|用户角色|
|:----:|:---:|:-----:|
|user1|123|普通用户|
|user2|123|普通用户|
|courier1|123|配送用户|
|admin1|123|管理员|
### 项目运行
#### 必读
为最大限度降低大家学习门槛,公开提供了**支付宝支付**和**QQ登录**的配置信息,也就说以下配置流程中你可以略去支付宝配置和QQ登录配置,使用默认配置即可。
百度人脸登录和短信登录由于涉及隐私和费用问题,不予公开,需要大家自己按照流程去申请。
#### 配置文件初始化
本项目支持多环境配置,由于牵扯隐私,dev 环境和 prod 环境的配置文件没有上传到仓库中,因此当你 clone 项目后,新建配置文件 `application-dev.yaml`,并将 `application-test.yaml`内容复制进去。
后续配置修改只需修改 `application-dev.yaml` 即可。
#### 数据库配置【必须】
1. 本地安装 MySQL 环境,所需版本为 `5.7+`
2. 创建数据库名为 `express`,数据库编码采用 `utf8mb4`,排序规则为 `utf8mb4_general_ci`
```
CREATE DATABASE IF NOT EXISTS express default charset utf8mb4 COLLATE utf8mb4_general_ci;
```
3. 导入项目中 `/src/main/resources/db/express.sql` 到 `express`库。
**注:不要使用 Navicat 等图形化导入工具(会导致导入失败),请使用 source 命令!!**
```powershell
use express; # 选择数据库
source /your/path/express.sql; # Source 导入
```
4. 编辑 `application-dev.yaml` 文件,修改数据库连接信息。
```yaml
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver # MySQL驱动,无需修改
# 数据库连接URL,以下为连接本地的 express 库的 url 示例
url: jdbc:mysql://localhost:3306/express?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8
username: root # 数据库连接名
password: root # 数据库连接密码
```
#### Redis配置【必须】
1. 本地安装 Redis 环境,如果你使用的是 Windows 平台,请[点击这里](<https://github.com/MicrosoftArchive/redis/releases>)下载 Windows 版本。如果是 Linunx or Mac 系统,请自行百度即可。
2. 编辑 `application-dev.yaml` 文件,修改 Redis 连接信息。
```yaml
redis:
host: 127.0.0.1 # Redis地址,本地为127.0.0.1
port: 6379 # Redis端口号,默认为6379
password: # Redis密码,没有请保持为空
...
```
#### 支付宝支付【默认已配置,可跳过】
支付宝支付为快递下单的支付方式,因此必须配置,这里采用支付宝的沙箱模式:
```yaml
alipay:
uid: # 商户UID
app-id: # APPID
sign-type: RSA2
gateway-url: https://openapi.alipaydev.com/gateway.do # 支付宝网关
merchant-private-key: # 商户私钥,使用密钥生成工具得到
alipay-public-key: # 支付宝公钥
notify-url: ${server.addr}/order/alipay/notify # 支付异步通知URL,需公网能够访问
return-url: ${server.addr}/order/alipay/return # 同步通知URL,无需公网访问
```
其中 `notify-url` 和 `return-url`为支付宝的支付同步回调和异步回调,请根据自己需求修改 Url 前缀即可,即 `${server.addr}` 部分。
例如,当你处于本地启动,端口号为 8080 时,`notify-url` 和 `return-url` 保持不变,可以接受到同步回调,但是无法接收异步回调。
> 详细流程请参考文章:[Java Web中接入支付宝支付](<https://blog.csdn.net/yuanlaijike/article/details/80575513>)
#### QQ 登录【默认已配置,可跳过】
如需配置QQ登录功能,请按以下步骤操作:
(1)登录[QQ互联管理中心](<https://connect.qq.com/manage.html#/>),创建 **网站应用**。
(2)网站地址为程序配置文件中配置的 `server.add` 属性,例如本地启动,且端口号为 8080 时,则填写为:
```
http://127.0.0.1:8080
```
(3)网站回调域为`${server.addr}/auth/third-login/qqCallback`,当本地启动,且端口号为8080时,填写为:
```
http://127.0.0.1:8080/auth/third-login/qqCallback
```
(4)点击**创建应用**按钮即可。即使提示正在审核,或者审核失败也可以正常使用,仅限申请者的QQ号登录。
(5)编辑 `application-dev.yaml` 文件,将 `app-id` 和 `app-key` 替换为创建应用时得到的即可:
```yaml
third-login:
qq:
app-id: # APP_ID
app-key: # APP_KEY
```
> 详细流程请参考文章:[Web三方登录实现(基于OAuth2.0,包含Github和QQ登录,附源码)](<https://blog.csdn.net/yuanlaijike/article/details/80413181>)
#### 短信登录【可选】
(1)登录[腾讯云短信服务](<https://console.cloud.tencent.com/sms>)
(2)根据[官方指南](<https://cloud.tencent.com/document/product/382/18061>),成功**创建应用**、**短信签名**和**短信正文**后,编辑 `application.yaml`文件:
```yaml
sms:
app-id: # 应用 SDK AppID
app-key: # 应用 App Key
template-id: # 短信正文ID
sign: # 短信签名
```
(3)`application-dev.yaml` 中,以下两项是控制短信的发送间隔和短信的有效时间,请合理配置。
```yaml
sms:
# 短信发送分钟间隔
interval-min: 1
# 短信有效分钟
valid-min: 5
```
**注意事项**
1. `sms.sign` 必须为经过审核的短信签名,否则可能会导致发送失败
2. 短信正文设置建议参考以下,这是因为**程序中限定了发送短信时参数一为短信验证码,参数二为过期时间**。如果你想改变参数的个数或顺序,请修改`com.example.express.service.impl.SmsServiceImpl#send`方法。
```
{1}为您的登录验证码,请于{2}分钟内填写。如非本人操作,请忽略本短信。
```
#### 人脸登录【可选】
1. 登录[百度人脸识别](<https://cloud.baidu.com/product/face>)
2. 创建应用后,修改`application-dev.yaml`文件,复制应用的 `AppID`、`API Key`、`Secret Key`到相对应项。
3. `conn-timeout` 和 `socket-timeout` 为连接超时时间,如无特殊需求,保持默认值即可。
4. `accept-score` 为最低被接受的置信分数,该分数用于人脸登录,只有置信分到达阈值时才能登录成功。如无特殊需求,保持在90以上即可。
```yaml
baidu:
aip:
app-id: # 应用 APPID
app-key: # 应用API KEY
secret-key: # 应用 Secret Key
conn-timeout: 2000 # 连接超时ms,默认 2000
socket-timeout: 60000 # socket超时ms,默认60000
# 最低被接受的人脸置信分数[1,100],分数越高,要求越严格,也越准确。
accept-score: 90
```
### 疑问解答
1. 请您仔细阅读 **项目运行** 章节,**确认已经仔细阅读情况下**,仍存在疑问的。
2. 请提 issue,如需要添加附件、程序等其他 issue 无法较好解决的疑�
没有合适的资源?快使用搜索试试~ 我知道了~
快递代拿系统,SpringBoot的最佳实践express.zip
共220个文件
java:126个
html:33个
js:13个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 180 浏览量
2024-05-14
22:26:16
上传
评论
收藏 2.58MB ZIP 举报
温馨提示
该项目利用了基于springboot + vue + mysql的开发模式框架实现的课设系统,包括了项目的源码资源、sql文件、相关指引文档等等。 【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【技术】 Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes
资源推荐
资源详情
资源评论
收起资源包目录
快递代拿系统,SpringBoot的最佳实践express.zip (220个子文件)
bootstrap.min.css 118KB
layer.css 14KB
bootstrap-table.css 7KB
layer.css 5KB
star-rating.min.css 2KB
login.css 2KB
register.css 942B
completeInfo.css 734B
express.css 481B
404.css 339B
glyphicons-halflings-regular.eot 20KB
loading-0.gif 6KB
loading-2.gif 2KB
loading-1.gif 701B
.gitattributes 30B
.gitignore 350B
info.html 40KB
info.html 37KB
order.html 30KB
feedback.html 28KB
info.html 28KB
history.html 27KB
history.html 24KB
feedback.html 19KB
user.html 14KB
register.html 14KB
recycle.html 13KB
recycle.html 13KB
completeInfo.html 12KB
login.html 12KB
feedback.html 12KB
order.html 10KB
order.html 9KB
payment.html 9KB
evaluate.html 5KB
evaluate.html 5KB
dashboard.html 3KB
dashboard.html 3KB
dashboard.html 3KB
error.html 3KB
500.html 2KB
404.html 2KB
paymentResult.html 2KB
sidebar.html 2KB
sidebar.html 1KB
sidebar.html 1KB
nav.html 1KB
nav.html 1KB
nav.html 1KB
SysUserServiceImpl.java 22KB
OrderInfoServiceImpl.java 18KB
HttpClientUtils.java 16KB
AuthController.java 15KB
OrderApiController.java 13KB
IDValidateUtils.java 11KB
OrderController.java 11KB
AipServiceImpl.java 10KB
OrderEvaluateServiceImpl.java 9KB
OrderPaymentServiceImpl.java 8KB
FeedbackApiController.java 8KB
DoubleUtils.java 7KB
UserFeedbackServiceImpl.java 6KB
UserApiController.java 6KB
ResponseErrorCodeEnum.java 6KB
VerifyServlet.java 6KB
UserPageController.java 5KB
RequestRateLimitAspect.java 5KB
SettingApiController.java 5KB
EvaluateApiController.java 5KB
SmsServiceImpl.java 5KB
WebSecurityConfig.java 4KB
AdminPageController.java 4KB
CollectionUtils.java 4KB
CourierPageController.java 4KB
RandomUtils.java 4KB
SysUserService.java 4KB
SmsCodeAuthenticationProvider.java 4KB
TraditionAuthenticationFilter.java 3KB
UserEvaluateServiceImpl.java 3KB
OrderInfoService.java 3KB
StringUtils.java 3KB
TraditionSecurityConfig.java 3KB
TraditionAuthenticationProvider.java 3KB
PageController.java 3KB
SysUser.java 3KB
SmsCodeAuthenticationFilter.java 3KB
JsonUtils.java 3KB
CommonDataCache.java 3KB
PublicApiController.java 3KB
SecurityConstant.java 3KB
DataCompanyServiceImpl.java 2KB
DataSchoolServiceImpl.java 2KB
TraditionAuthenticationToken.java 2KB
SmsCodeAuthenticationToken.java 2KB
ThirdLoginAuthenticationToken.java 2KB
ThirdLoginAuthenticationProvider.java 2KB
PaymentApiController.java 2KB
OrderInfo.java 2KB
PaymentStatusEnum.java 2KB
ThirdLoginUserDetailsService.java 2KB
共 220 条
- 1
- 2
- 3
资源评论
枫蜜柚子茶
- 粉丝: 7402
- 资源: 5103
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功