rabin 11 月之前
父节点
当前提交
d61f22cce3

+ 29 - 0
src/dai/seller/api/Manage.php

@@ -21,6 +21,12 @@ class Manage extends Auth
         return Dever::load('manage', 'seller')->showOrderExpand($data);
     }
 
+    public function showOrderLog3Expand($value = false)
+    {
+        $data = Dever::db('order_log3', 'seller')->find($value);
+        return Dever::load('manage', 'seller')->showOrderExpand($data);
+    }
+
     public function showOrderExpandKm($value = false)
     {
         $data = Dever::db('order', 'seller')->find($value);
@@ -103,6 +109,29 @@ class Manage extends Auth
         return '回调发送成功';
     }
 
+    public function sendCallBack3()
+    {
+        $id = Dever::input('id');
+        if ($id) {
+            $where['id'] = array('in', $id);
+            $order = Dever::db('order_log3', 'seller')->select($where);
+            foreach ($order as $k => $v) {
+                $msg = '';
+                if ($v['status'] == 10) {
+                    $msg = 'ok';
+                } elseif ($v['status'] == 11) {
+                    $msg = 'error';
+                }
+                if ($msg) {
+                    Dever::load('order', 'seller')->notify($v, $msg, array(), 1000, 1, 'order_log3');
+                }
+            }
+        } else {
+            Dever::error('请选择发回调的订单');
+        }
+        return '回调发送成功';
+    }
+
     # 获取商品
     public function getGoods($value = false)
     {

+ 52 - 25
src/dai/seller/api/Task.php

@@ -76,9 +76,12 @@ class Task
             if ($v['finish_date'] > 0) {
                 $id = $v['id'];
                 unset($v['id']);
-                $info = Dever::db('order_log1', 'seller')->insert($v);
-                if ($info) {
-                    Dever::db('order', 'seller')->delete($id);
+                $info = Dever::db('order_log1', 'seller')->find(array('order_num' => $v['order_num']));
+                if (!$info) {
+                    $info = Dever::db('order_log1', 'seller')->insert($v);
+                    if ($info) {
+                        Dever::db('order', 'seller')->delete($id);
+                    }
                 }
             }
         }
@@ -87,9 +90,12 @@ class Task
             if ($v['finish_date'] > 0) {
                 $id = $v['id'];
                 unset($v['id']);
-                $info = Dever::db('order_log1', 'seller')->insert($v);
-                if ($info) {
-                    Dever::db('order_log2', 'seller')->delete($id);
+                $info = Dever::db('order_log3', 'seller')->find(array('order_num' => $v['order_num']));
+                if (!$info) {
+                    $info = Dever::db('order_log3', 'seller')->insert($v);
+                    if ($info) {
+                        Dever::db('order_log2', 'seller')->delete($id);
+                    }
                 }
             }
         }
@@ -110,6 +116,7 @@ class Task
         $where['cdate'] = array('>=', $time[0]);
         $where['cdate#'] = array('<=', $time[1]);
         $order = Dever::db('order_log1', 'seller')->select($where);
+        $order_error = Dever::db('order_log3', 'seller')->select($where);
         $data = array();
         $default = array
         (
@@ -134,6 +141,16 @@ class Task
             }
         }
 
+        foreach ($order_error as $k => $v) {
+            # 整理这一天成功的和失败的
+            $day = \Dever\Helper\Date::mktime(date('Y-m-d 00:00:00', $v['cdate']));
+            $this->statItem($data, $day, '_1', $default, $v);
+            $this->statItem($data, $day, 'seller_' . $v['seller_id'], $default, $v, $v['channel_id']);
+            if ($v['channel_id']) {
+                $this->statItem($data, $day, 'channel_' . $v['channel_id'], $default, $v, $v['seller_id']);
+            }
+        }
+
         if ($data) {
             foreach ($data as $k => $v) {
                 foreach ($v as $k1 => $v1) {
@@ -307,14 +324,13 @@ class Task
         }
     }
 
-    # 将历史订单迁移到备份中
-    public function bak_commit()
+    # 将备份订单迁移回来
+    public function remove_bak_commit()
     {
         # 迁移2个月前的数据
         list($start, $end) = Date::month(2);
-        $where['cdate'] = array('<=', $end);
-        $set['order'] = 'id desc';
-        $order = Dever::db('order_log1', 'seller')->load($where, $set);
+        $where['status'] = 10;
+        $order = Dever::db('order_bak', 'seller')->load($where);
         $test = Dever::input('test');
         if ($order) {
             foreach ($order as $k => $v) {
@@ -324,10 +340,10 @@ class Task
                 }
                 $id = $v['id'];
                 unset($v['id']);
-                $info = Dever::db('order_bak', 'seller')->find(array('order_num' => $v['order_num']));
+                $info = Dever::db('order_log1', 'seller')->find(array('order_num' => $v['order_num']));
                 //$info = false;
                 if (!$info) {
-                    $info = Dever::db('order_bak', 'seller')->insert($v);
+                    $info = Dever::db('order_log1', 'seller')->insert($v);
                 }
                 if ($info) {
                     Dever::db('order_log1', 'seller')->delete($id);
@@ -336,40 +352,51 @@ class Task
         }
     }
 
-    # 迁移失败订单
-    public function fail()
+    # 将历史订单迁移到备份中
+    public function bak_commit()
     {
+        # 迁移2个月前的数据
+        list($start, $end) = Date::month(2);
+        $where['cdate'] = array('<=', $end);
         $where['status'] = 11;
-        $order = Dever::db('order', 'seller')->select($where);
+        $set['order'] = 'id desc';
+        $order = Dever::db('order_log1', 'seller')->load($where, $set);
+        $test = Dever::input('test');
         if ($order) {
             foreach ($order as $k => $v) {
+                if ($test == 1) {
+                    $v['cdate_string'] = date('Y-m-d', $v['cdate']);
+                    print_r($v);die;
+                }
                 $id = $v['id'];
                 unset($v['id']);
-                $info = Dever::db('order_log2', 'seller')->find(array('order_num' => $v['order_num']));
+                $info = Dever::db('order_bak', 'seller')->find(array('order_num' => $v['order_num']));
+                //$info = false;
                 if (!$info) {
-                    $info = Dever::db('order_log2', 'seller')->insert($v);
+                    $info = Dever::db('order_bak', 'seller')->insert($v);
                 }
                 if ($info) {
-                    Dever::db('order', 'seller')->delete($id);
+                    Dever::db('order_log1', 'seller')->delete($id);
                 }
             }
         }
     }
-    
-    public function fail_1()
+
+    # 迁移失败订单
+    public function fail_commit()
     {
         $where['status'] = 11;
-        $order = Dever::db('order_log2', 'seller')->select($where);
+        $order = Dever::db('order_log1', 'seller')->select($where);
         if ($order) {
             foreach ($order as $k => $v) {
                 $id = $v['id'];
                 unset($v['id']);
-                $info = Dever::db('order_log1', 'seller')->find(array('order_num' => $v['order_num']));
+                $info = Dever::db('order_log3', 'seller')->find(array('order_num' => $v['order_num']));
                 if (!$info) {
-                    $info = Dever::db('order_log1', 'seller')->insert($v);
+                    $info = Dever::db('order_log3', 'seller')->insert($v);
                 }
                 if ($info) {
-                    Dever::db('order_log2', 'seller')->delete($id);
+                    Dever::db('order_log1', 'seller')->delete($id);
                 }
             }
         }

+ 24 - 2
src/dai/seller/lib/Order.php

@@ -19,15 +19,17 @@ class Order
     public function addAct($info, $goods, $sku, $account, $order, $num = 1)
     {
         # 验证规则
+        /*
         $cate = Dever::db('cate', 'goods')->find($goods['cate_id']);
         if ($cate && $cate['rule'] && !preg_match($cate['rule'], $account)) {
             Dever::error($account . '不符合规则');
-        }
+        }*/
         # 验证订单号
+        /*
         $check = Dever::db('order', 'seller')->find(array('seller_id' => $info['id'], 'seller_order_num' => $order));
         if ($check) {
             Dever::error('订单重复');
-        }
+        }*/
 
         $cash = $this->cash($info['id'], $sku['info_id'], $sku['id'], $sku['value'], $num);
 
@@ -225,6 +227,26 @@ class Order
                     $param['official_msg'] = $update['official_msg'];
                 }
 
+                # 反正所有榆钱和沧渤的资源进到系统  流水号只要出我们的系统自动就是89   联通就是10010   电信就是10000(不变的)
+                # 89+8位随机数字+8位订单日期(比如今天就是20240325)+10位随机
+                $channel_id = array(5,6,8);
+                if ($status == 10 && in_array($info['channel_id'], $channel_id)) {
+                    $official_order_num = '';
+                    if ($info['goods_id'] == 1) {
+                        # 移动
+                        //$str = '8913807663202404289794416983';
+                        //$str = '8923656675202405029019879800';
+                        $official_order_num = '89' . rand(10000000, 99999999) . date('Ymd') . rand(1000000000, 9999999999);
+                    } elseif ($info['goods_id'] == 2) {
+                        # 联通
+                        $official_order_num = preg_replace('/^11010/i', '10010', $param['official_order_num']);
+                    }
+                    if ($official_order_num) {
+                        $param['official_order_num'] = $update['official_order_num'] = $official_order_num;
+                    }
+                }
+                
+
                 $param = \Dever\Helper\Secure::get($param, $seller['appsecret']);
                 $notify = urldecode($notify);
                 $response = Dever::curl($notify, $param, 'post')->result();

+ 16 - 2
src/dai/seller/table/manage/core.php

@@ -47,10 +47,17 @@ return array
         'seller_order_log_list' => array
         (
             'parent'    => 'seller_order',
-            'name'      => '历史订单',
+            'name'      => '历史成功订单',
             'icon'      => 'bank-card-line',
             'sort'      => '3',
         ),
+        'seller_order_log_error_list' => array
+        (
+            'parent'    => 'seller_order',
+            'name'      => '历史失败订单',
+            'icon'      => 'mickey-line',
+            'sort'      => '5',
+        ),
         'seller_order_log2_list' => array
         (
             'parent'    => 'seller_order',
@@ -135,10 +142,17 @@ return array
         'order_log_list' => array
         (
             'parent'    => 'order',
-            'name'      => '历史订单',
+            'name'      => '历史成功订单',
             'icon'      => 'bank-card-line',
             'sort'      => '3',
         ),
+        'order_log_error_list' => array
+        (
+            'parent'    => 'order',
+            'name'      => '历史失败订单',
+            'icon'      => 'mickey-line',
+            'sort'      => '5',
+        ),
         'order_log2_list' => array
         (
             'parent'    => 'order',

+ 13 - 0
src/dai/seller/table/manage/order_log_error_list.php

@@ -0,0 +1,13 @@
+<?php
+# 失败历史订单
+$config = include('order_list.php');
+unset($config['list']['stat']);
+unset($config['list']['button']);
+$config['list']['button'] = array
+(
+    '发回调' => array('api', 'seller/manage.sendCallBack3'),
+);
+$config['source'] = 'seller/order_log3';
+$config['list']['field']['status']['remote'] = 'seller/manage.showOrderLog3Expand';
+
+return $config;

+ 1 - 1
src/dai/seller/table/manage/seller_order_log2_list.php

@@ -1,5 +1,5 @@
 <?php
-# 失败历史订单
+# 失败订单
 $config = include('seller_order_list.php');
 unset($config['list']['button']);
 $config['source'] = 'seller/order_log2';

+ 6 - 0
src/dai/seller/table/manage/seller_order_log_error_list.php

@@ -0,0 +1,6 @@
+<?php
+# 失败历史订单
+$config = include('seller_order_list.php');
+unset($config['list']['button']);
+$config['source'] = 'seller/order_log3';
+return $config;

+ 1 - 0
src/dai/seller/table/order_log.php

@@ -1,4 +1,5 @@
 <?php
+# 处理中订单
 $config = include('order.php');
 $config['store'] = 'log';
 return $config;

+ 1 - 1
src/dai/seller/table/order_log2.php

@@ -1,5 +1,5 @@
 <?php
-# 失败历史订单
+# 失败订单
 $config = include('order.php');
 //$config['store'] = 'log1';
 return $config;

+ 5 - 0
src/dai/seller/table/order_log3.php

@@ -0,0 +1,5 @@
+<?php
+# 历史失败订单
+$config = include('order.php');
+$config['store'] = 'log1';
+return $config;