DSSHOP 后端开发指南

2022-03-29 16:28 更新

首先你得掌握一定的PHP开发基础,并对laravel有一定的了解 该指南不做过多的技术层面介绍,只对一些项目中已经封装的方法/类进行介绍,以方便在需要时快速应用,减少自己写代码的时间

配置文件

后端配置相关

  • 后端配置文件在config目录下,但实际配置时,并不需要去修改该目录下的文件,而是直接修改​.env​、​.env.dev​、​.env.prod
  • 以下是常用的配置参数说明,更多配置参数请查看​api/config
APP_KEY='' #应用程序密钥执行php artisan key:generate可生成
APP_DEBUG=true #测试环境开启,正常环境就关闭
HOMESTEAD_WINDOWS= true #windows下软链接无效,将导致资源无法上传,可以设置为true
DB_HOST=127.0.0.1 #mysql主机IP,一般不需要修改
DB_PORT=3306 #mysql端口号,一般不需要修改
DB_DATABASE=dsshop #mysql表名
DB_USERNAME=dsshop #mysql用户名
DB_PASSWORD=123456 #mysql密码
CACHE_DRIVER=redis #缓存模式
QUEUE_CONNECTION=redis #队列模式
REDIS_HOST=127.0.0.1 #REDIS服务器IP
REDIS_PASSWORD=dsshop #REDIS密码
REDIS_PORT=6379 #REDIS端口
REDIS_DB=0  #REDIS默认数据库
REDIS_CACHE_DB=1 #REDIS缓存数据库
WECHAT_MINI_PROGRAM_APPID=""    #微信小程序appid
WECHAT_MINI_PROGRAM_SECRET="" #微信小程序secret
WECHAT_PAYMENT_APPID="" #微信支付appid
WECHAT_PAYMENT_MCH_ID="" #微信支付mch_id
WECHAT_PAYMENT_KEY="" #微信支付key
WECHAT_PAYMENT_CERT_PATH="storage/pay/weixin/apiclient_cert.pem" #微信支付公钥
WECHAT_PAYMENT_KEY_PATH="storage/pay/weixin/apiclient_key.pem" #微信支付私钥
WECHAT_SUBSCRIPTION_INFORMATION_SHIPMENTS="" #订单发货通知ID
SMS_ALIYUN_ACCESS_ID="" #阿里短信access_id
SMS_ALIYUN_SECRET="" #阿里短信secret
SMS_ALIYUN_SIGNATURE="" #阿里短信签名
SMS_ALIYUN_VERIFICATION_CODE="" #阿里短信短信模板ID
PASSPORT_CLIENT_ID="" #Passport OAuth认证后台的client_id
PASSPORT_CLIENT_SECRET="" #Passport OAuth认证后台的client_secret
PASSPORT_WEB_ID="" #Passport OAuth认证客户端的client_id
PASSPORT_WEB_SECRET=""  #Passport OAuth认证客户端的client_secret
HASH_CLIENT_SECRETS=""  #客户端秘钥的 hash 加密,一旦启用,你的所有客户端秘钥将只有在创建时会显示。由于纯文本的客户秘钥值没有存储在数据库中,所以如果秘钥丢失,也不可能再恢复
BACKUP_SWITCH=true  #备份开关(请先确保已配置邮箱功能,不然备份会报错)
PASSPORT_EXPIRES_IN = 7200  #token失效时间(单位秒),默认为2小时
REFRESH_PASSPORT_EXPIRES_IN = 604800    #oken刷新失效时间(单位秒),默认为7天
BACKUP_TIME=02:00   #备份时间(该时间为每天执行时间,如需按周或其它指定时间,请自行配置backup.php文件)
BACKUP_FILES_TIME=02:00   #数据库备份时间(设置后仅备份数据库,该时间为每天执行时间,如需按周或其它指定时间,请自行配置backup.php文件)
BACKUP_CLEAN_TIME=02:00   #文件备份时间(设置后仅备份文件,该时间为每天执行时间,如需按周或其它指定时间,请自行配置backup.php文件)
BACKUP_CLEAN_TIME=02:20 #旧备份清除时间(该时间为每天执行时间,如需按周或其它指定时间,请自行配置backup.php文件)
BACKUP_RECEIVE_MAIL= #备份结果接收邮箱
PROJECT_KEY #前端密钥
ORDER_OVERTIME=10 #订单超时时间(分钟)
AUTOMATIC_RECEIVING_STATE=true   #是否开启自动收货
AUTOMATIC_RECEIVING=7   #多少天后自动收货
AUTOMATIC_EVALUATE_STATE=true   #是否开启自动评价功能
AUTOMATIC_EVALUATE=12   #多少天后自动好评
MAX_FILE_UPLOAD_SIZE = 2097152  #文件最大上传大小2M

后台配置相关

  • 后台配置只需要修改RSET API地址即可,修改​dev.env.js​、​prod.env.js​的​BASE_API

uni-app配置相关

#client/Dsshop/utils/config.js
#该文件可以配置生产环境、测试环境和本地环境,都有中文注明,修改NODE_ENV即可在打包时区分生产和测试环境
lbsQq: #腾讯地图的key,注意需要开通WebService API
domainName: #API域名
secret: #api密钥,对应api/.env的APP_KEY

微信小程序配置相关

  • 开发->开发设置配置服务器域名、业务域名
  • 功能->订阅消息添加模板,标题为订单发货通知,具体参考下图,然后获取到模板ID,填写到​WECHAT_SUBSCRIPTION_INFORMATION_SHIPMENTS

11

修改后端配置文件,添加微信支付相关配置

WECHAT_PAYMENT_APPID="" #微信支付appid
WECHAT_PAYMENT_MCH_ID="" #微信支付mch_id
WECHAT_PAYMENT_KEY="" #微信支付key
WECHAT_PAYMENT_CERT_PATH="storage/pay/weixin/apiclient_cert.pem" #微信支付公钥
WECHAT_PAYMENT_KEY_PATH="storage/pay/weixin/apiclient_key.pem" #微信支付私钥

工具库

前后端排序转换:sortFormatConversion

  • 前台一般排序会给后端传​+id​、​-id​、​id​格式
  • 后台可以通过以下方法实现排序功能

if($request->has('sort')){
    $sortFormatConversion = sortFormatConversion($request->sort);
    $q->orderBy($sortFormatConversion[0],$sortFormatConversion[1]);
}

用户日志

Event(new UserLogEvent($user, $request));

返回错误信息

// 以异常的形式返回
throw new \Exception('没有生成所需数据库迁移文件', Code::CODE_INEXISTENCE);
// 以JSON的形式返回
return resReturn(0, '参数错误', Code::CODE_PARAMETER_WRONG);

返回json数据:resReturn

# 返回正确数据
return resReturn(1, '更新成功');
# 返回错误数据
return resReturn(0, '请设置产品规格', Code::CODE_PARAMETER_WRONG);
# 返回异常错误数据
throw new \Exception('微信支付失败,请稍后再试!',Code::CODE_PARAMETER_WRONG);

获取用户ID(用户信息)

// 前提是该路由引入用户登录验证中间件
$user_id = auth('web')->user()->id; // 用户ID

在没有登录验证的方法中获取登录的用户信息

use Illuminate\Support\Facades\Auth;
if(Auth::check()){  // 验证是否走登录验证中间件
    $user_id = auth('web')->user()->id; // 用户ID
}

验证某个插件是否已安装

(new Plugin())->has('coupon')

导入数据表

  • 注意sql格式,只能存在数据,不能存在结构 格式:​php artisan generate:sql [数据表名]​ 将sql放到​storage\app​下

# 默认安装demo
php artisan generate:sql
# 纯净数据
php artisan generate:sql pure
# 自定义安装
php artisan generate:sql dsshop


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号