中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

swoole的自動(dòng)取消訂單還原庫(kù)存等操作教程

2023-11-26    分類: 網(wǎng)站建設(shè)

一、業(yè)務(wù)場(chǎng)景:當(dāng)客戶下單在指定的時(shí)間內(nèi)如果沒有付款,那我們需要將這筆訂單取消掉,比如好的處理方法是運(yùn)用延時(shí)取消,很多人首先想到的當(dāng)然是crontab,這個(gè)也行,不過這里我們運(yùn)用swoole的異步毫秒定時(shí)器來實(shí)現(xiàn),同樣也不會(huì)影響到當(dāng)前程序的運(yùn)行,具體可以參考:https://wiki.swoole.com/wiki/page/319.html

二、說明,order_status為1時(shí)代表客戶下單確定,為2時(shí)代表客戶已付款,為0時(shí)代表訂單已取消(正是swoole來做的)

三、舉例說明,庫(kù)存表csdn_product_stock產(chǎn)品ID為1的產(chǎn)品庫(kù)存數(shù)量為20,產(chǎn)品ID為2的庫(kù)存數(shù)量為40,然后客戶下單一筆產(chǎn)品ID1減10,產(chǎn)品ID2減20,所以庫(kù)存表只夠2次下單,例子中10秒后自動(dòng)還原庫(kù)存,如下圖:

圖解:1、第一次下完單產(chǎn)品ID1庫(kù)存從20減到了10,產(chǎn)品ID2庫(kù)存從40減到了20;2、第二次下完單產(chǎn)品ID的庫(kù)存為0了,產(chǎn)品ID2的庫(kù)存也為0了,3、第三次下單時(shí),程序提示Out of stock;4、過了10秒鐘(每個(gè)訂單下單后往后推10秒),客戶兩次下單,由于沒有付款(csdn_order表的order_status為1),產(chǎn)品1和產(chǎn)品2的庫(kù)存被還原了(csdn_order表的order_status變?yōu)?),客戶又可以繼續(xù)下單了

1、所需要sql數(shù)據(jù)庫(kù)表

DROp table IF EXISTS `csdn_order`;
CREATE table `csdn_order` (
  `order_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `order_amount` float(10,2) unsigned NOT NULL DEFAULT '0.00',
  `user_name` varchar(64) CHARACTER SET latin1 NOT NULL DEFAULT '',
  `order_status` tinyint(2) unsigned NOT NULL DEFAULT '0',
  `date_created` datetime NOT NULL,
  pRIMARY KEY (`order_id`)
) ENGINE=InnoDb AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;

DROp table IF EXISTS `csdn_order_detail`;
CREATE table `csdn_order_detail` (
  `detail_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `order_id` int(10) unsigned NOT NULL,
  `product_id` int(10) NOT NULL,
  `product_price` float(10,2) NOT NULL,
  `product_number` smallint(4) unsigned NOT NULL DEFAULT '0',
  `date_created` datetime NOT NULL,
  pRIMARY KEY (`detail_id`),
  KEY `idx_order_id` (`order_id`)
) ENGINE=InnoDb AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;

DROp table IF EXISTS `csdn_product_stock`;
CREATE table `csdn_product_stock` (
  `auto_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `product_id` int(10) NOT NULL,
  `product_stock_number` int(10) unsigned NOT NULL,
  `date_modified` datetime NOT NULL,
  pRIMARY KEY (`auto_id`),
  KEY `idx_product_id` (`product_id`)
) ENGINE=InnoDb AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

INSERT INTO `csdn_product_stock` VALUES ('1', '1', '20', '2018-09-13 19:36:19');
INSERT INTO `csdn_product_stock` VALUES ('2', '2', '40', '2018-09-13 19:36:19');

下面貼出來純手工pHp,很多同學(xué)用了原生pHp,就不會(huì)運(yùn)用到框架里去,其實(shí)都一樣的,不要想得那么復(fù)雜就是了。只要一點(diǎn)就是你用多了,你就會(huì)這樣覺得咯。

配置文件config.php  ,這個(gè)在框架的話,基本上都是配置好了。

<?php
$dbHost = "192.168.23.110";
$dbUser = "root";
$dbpassword = "123456";
$dbName = "test";
?>

swoole都是用在linux系統(tǒng)里的,這里的host你可以自己搭建虛擬主機(jī),也可以網(wǎng)上購(gòu)買屬于自己的服務(wù)器

訂單提交的文件swoole的自動(dòng)取消訂單還原庫(kù)存等操作教程
文章來源:http://www.rwnh.cn/news39/296889.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、Google、微信公眾號(hào)、外貿(mào)建站虛擬主機(jī)、企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

安达市| 上犹县| 台北县| 金门县| 栾城县| 阿合奇县| 乐东| 固始县| 金乡县| 南昌县| 宁阳县| 嫩江县| 巢湖市| 洛川县| 滦平县| 蓝田县| 六枝特区| 高平市| 陇南市| 南涧| 株洲县| 凤冈县| 安顺市| 巨野县| 横峰县| 东乌珠穆沁旗| 应城市| 南华县| 丁青县| 浙江省| 齐齐哈尔市| 大邑县| 桦川县| 孝义市| 西乌| 宜阳县| 和静县| 徐汇区| 获嘉县| 米脂县| 临湘市|