TP6.0从0到1构建高并发电商服务系统

442 阅读2分钟

download:TP6.0从0到1构建高并发电商服务系统

本课程除了对TP6.0基础和电商逻辑整体开发进行讲解,还包含了企业级通用解决方案,如:消息队列、redis集群、分布式session解决方案、支付模块服务化、分布式锁、限流、容灾、服务降级、商品抢购、排队机制等高级的内容。

适合人群

1.有技术语法基础,缺少完整项目开发经验

为找工作增加经验而学习

2.工作2-5年开发者

3.对高并发电商感兴趣的小伙伴

技术储备要求

有PHP框架使用经验即可

熟悉redis基本使用

熟悉Linux基本命令

熟悉mysql

export default {
data() {
/

eslint-disable

/
return {
// 设置属性
mixinViewModuleOptions: {
createdIsNeed: true, // 此页面能否在创立时,调用查询数据列表接口?
activatedIsNeed: true, // 此页面能否在激活(进入)时,调用查询数据列表接口?
getDataListURL: '', // 数据列表接口,API地址
getDataListIsPage: true, // 数据列表接口,能否需求分页?
deleteURL: '', // 删除接口,API地址 state 值改为2
deleteIsBatch: false, // 删除接口,能否需求批量?
deleteIsBatchKey: 'id', // 删除接口,批量状态下由那个key停止标志操作?比方:pid,uid...
exportURL: '' // 导出接口,API地址
},
// 默许属性
dataForm: {}, // 查询条件
dataList: [], // 数据列表
order: '', // 排序,asc/desc
orderField: '', // 排序,字段
page: 1, // 当前页码
limit: 4, // 每页数
total: 0, // 总条数
dataListLoading: false, // 数据列表,loading状态
dataListSelections: [], // 数据列表,多选项
addOrUpdateVisible: false // 新增/更新,弹窗visible状态
}
/

eslint-enable

/
},
created() {
if (this.mixinViewModuleOptions.createdIsNeed) {
this.query()
}
},
activated() {
if (this.mixinViewModuleOptions.activatedIsNeed) {
this.query()
}
},
methods: {
// 关于返回的数据的操作
filterData(data) {
return data
},
// 在查询之前查询的字段需求的操作
beforeQuery(data) {},
// 获取数据列表
query() {
let dataForm = { ...this.dataForm }
this.beforeQuery(dataForm)
for (let val in dataForm) {
if (dataForm[val] === '') {
dataForm[val] = null
}
}
this.dataListLoading = true
this.http .post(this.mixinViewModuleOptions.getDataListURL, { pageNum: this.mixinViewModuleOptions.getDataListIsPage ? this.page : null, pageSize: this.mixinViewModuleOptions.getDataListIsPage ? this.limit : null, ...dataForm }) .then(res => { this.dataListLoading = false if (res.code !== 200) { return this.message.error(res.msg)
}
var data = this.mixinViewModuleOptions.getDataListIsPage ? res.data.list : res.data
this.dataList = this.filterData(data)
this.total = this.mixinViewModuleOptions.getDataListIsPage ? res.data.total : 0
})
.catch(() => {
this.dataListLoading = false
})
},
// 多选
dataListSelectionChangeHandle(val) {
this.dataListSelections = val
},
// 排序
dataListSortChangeHandle(data) {
if (!data.order || !data.prop) {
this.order = ''
this.orderField = ''
return false
}
this.order = data.order.replace(/ending/, '') this.orderField = data.prop.replace(/(\[A-Z\])/g, '\_1').toLowerCase()
this.query()
},
// 分页, 每页条数
pageSizeChangeHandle(val) {
this.page = 1
this.limit = val
this.query()
},
// 分页, 当前页
pageCurrentChangeHandle(val) {
this.page = val
this.query()
},
getDataList: function() {
this.page = 1
this.query()
},
// 新增 / 修正
addOrUpdateHandle(id) {
this.addOrUpdateVisible = true
this.nextTick(() => { this.refs.addOrUpdate.dataForm.id = id
this.refs.addOrUpdate.init() }) }, // 删除 deleteHandle(row, text) { this.confirm({
title: this.$defaultSettings.title,
content: h => {
return

{text || '肯定要删除该数据?'}

},
onOk: () => {
let _row = JSON.parse(JSON.stringify(row))
_row.state = 2