FastAdmin后台 退貨訂單 實時提醒


實現思路

1、當用戶點擊退貨,redis key +1

2、后台做一個輪巡,每間隔 X秒 就發起AJAX請求,查詢是否有新退貨訂單 redis key > 0

3、當返回數據 redis key > 0

  • 響起提示音
  • 彈出提示框

4、后台人員點擊提示框確認按鈕

  • 發起AJAX請求,獎 redis key 設置為 0
  • 關閉提示音
  • 跳轉到訂單tab頁(執行這個菜單的點擊事件)

 

代碼部分

js代碼

 1 // /public/assets/js/backend/index.js
 2     // 輪詢
 3     setInterval(() => {
 4         $.ajax({
 5             type: 'POST',
 6             url: 'index/isHaveNewAfter',
 7             success: function (data) {
 8                 if (data.code == 1) {
 9                     if (data.data > 0) {
10                         // 提示音
11                         var audio = document.getElementById('reftips');
12                         audio.play();
13                         // 提示框
14                         Layer.alert('您有新的退貨訂單,請及時處理', {
15                             skin: 'layui-layer-molv' //樣式類名  自定義樣式
16                             , closeBtn: 0    // 是否顯示關閉按鈕
17                             , anim: 1 //動畫類型
18                             , btn: ['馬上去處理', '我知道了'] //按鈕
19                             , icon: 6    // icon
20                             , yes: function (index) {
21                                 handleTui('go');
22                                 audio.pause();
23                                 audio.currentTime = 0;
24                                 layer.close(index);
25                             }, btn2: function (index) {
26                                 handleTui('know');
27                                 audio.pause();
28                                 audio.currentTime = 0;
29                                 layer.close(index);
30                             }
31                         });
32                     }
33                 }
34             }
35         });
36     }, 1000 * 30);
37     function handleTui(type) {
38         $.ajax({
39             type: 'POST',
40             url: 'index/handleTui',
41             data: { type: type },
42             async: false,//同步
43             success: function (data) {
44                 if (data.code == 1) {
45                     if (data.data == 'go') {
46                         // 點擊菜單 "訂單管理",打開tab頁
47                         $('.sidebar-menu li a[addtabs=3768]').click();
48                     }
49                 }
50             }
51         });
52     }

php代碼

 1 /**
 2      * 檢測是否有新退貨消息
 3      */
 4     public function isHaveNewAfter()
 5     {
 6         $tips = 'aftersale:tips:number';
 7         $redis = (new Redis())->getRedis();
 8         $tipsNumber = $redis->get($tips) ?: 0;
 9         $this->success('獲取新退貨消息數量成功', null, $tipsNumber);
10     }
11 
12     /**
13      * 已確認新退貨消息
14      */
15     public function handleTui()
16     {
17         $type = $this->request->post('type');
18         $tips = 'aftersale:tips:number';
19         $redis = (new Redis())->getRedis();
20         $redis->set($tips, 0);
21         $this->success('確認新退貨消息成功', null, $type);
22     }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM