swoole的自動取消訂單還原庫存等操作教程

2023-11-26    分類: 網站建設

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

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

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

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

1、所需要sql數據庫表

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,很多同學用了原生pHp,就不會運用到框架里去,其實都一樣的,不要想得那么復雜就是了。只要一點就是你用多了,你就會這樣覺得咯。

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

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

swoole都是用在linux系統里的,這里的host你可以自己搭建虛擬主機,也可以網上購買屬于自己的服務器

訂單提交的文件swoole的自動取消訂單還原庫存等操作教程
文章來源:http://m.kartarina.com/news39/296889.html

成都網站建設公司_創新互聯,為您提供搜索引擎優化Google微信公眾號外貿建站虛擬主機企業建站

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

主站蜘蛛池模板: 国产精品国产免费无码专区不卡| 亚洲AV无码第一区二区三区| 真人无码作爱免费视频| 亚洲AV综合色区无码二区偷拍 | 亚洲色av性色在线观无码| 亚洲人成人伊人成综合网无码| 国产精品无码一二区免费 | 国产AV无码专区亚洲AV漫画 | 无码国产色欲XXXXX视频| 无码中文av有码中文a| 岛国无码av不卡一区二区| 亚洲AV无码一区二区三区电影| 国产成年无码AV片在线韩国| 色欲aⅴ亚洲情无码AV| 精品人妻大屁股白浆无码| 国产台湾无码AV片在线观看| 无码熟妇人妻av| 亚洲国产成人精品无码区二本 | 亚洲国产成人无码AV在线影院| 精品人妻系列无码人妻免费视频| 一本久道综合在线无码人妻| 无码精品人妻一区二区三区中| 久久亚洲AV永久无码精品| 国产乱子伦精品免费无码专区| 日韩乱码人妻无码中文字幕| 亚洲一区二区三区AV无码| 中文成人无码精品久久久不卡| 无码视频一区二区三区| 人妻少妇精品无码专区动漫 | 狠狠躁天天躁无码中文字幕图 | 无码人妻AⅤ一区二区三区| a级毛片无码免费真人久久| 亚洲AV无码一区二区三区国产 | 国产午夜无码片在线观看影院| 精品无码久久久久久午夜| 无码乱人伦一区二区亚洲一| 国产精品三级在线观看无码| 国产色无码专区在线观看| 国产av无码专区亚洲av桃花庵| 国产精品亚洲аv无码播放| 国产产无码乱码精品久久鸭|