xiaoyu 3 роки тому
батько
коміт
389920f2d9

+ 37 - 13
admin/control/ordersendlist.php

@@ -122,24 +122,26 @@ class ordersendlistControl extends SystemControl
             return;
         }
 
+        $merchant_list = $this->merchants();
+        $provider_list = $this->providers();
+        [$merchant_stat, $order_stat] = $this->merchant_timeout_stats($orders_cond);
+        if (empty($_GET['mchid'])) {
+            $order_count = $order_stat['order_count'];
+        }else{
+            $order_count = $merchant_stat[$_GET['mchid']]['order_count'];
+        }
         $fields = 'refill_order.*,vr_order.order_state';
         $order_by = "( {$cur_time} - refill_order.commit_time ) desc";
-        $order_stat = Model('')->table('refill_order,vr_order,merchant')
-            ->join('inner,inner')
-            ->on('refill_order.order_id=vr_order.order_id,refill_order.mchid=merchant.mchid')
-            ->field('count(*) as order_count ,sum(refill_amount) as refill_amounts, sum(channel_amount) as channel_amounts, sum(mch_amount) as mch_amounts')
-            ->where($orders_cond)->find();
-        $order_list = $model_refill_order->getMerchantTimeOut($orders_cond, 200, $order_stat['order_count'], $fields, $order_by);
+        $order_list = $model_refill_order->getMerchantTimeOut($orders_cond, 200, $order_count, $fields, $order_by);
 
         $special_stat = $this->extra_stats($base_cond, $timeout_type,$cur_time);
-        $merchant_list = $this->merchants();
 
         if(!empty($order_list)) {
             $order_list = $this->orderFormat($order_list, $merchant_list);
         }
-        $provider_list = $this->providers();
         Tpl::output('stat', $order_stat);
         Tpl::output('count', $special_stat);
+        Tpl::output('merchant_stat', $merchant_stat);
         Tpl::output('order_list', $order_list);
         Tpl::output('merchant_list', $merchant_list);
         Tpl::output('provider_list', $provider_list);
@@ -190,6 +192,33 @@ class ordersendlistControl extends SystemControl
         return $result;
     }
 
+    private function merchant_timeout_stats($cond)
+    {
+        unset($cond['refill_order.mchid']);
+        $stats = Model('')->table('refill_order,vr_order,merchant')
+            ->join('inner,inner')
+            ->on('refill_order.order_id=vr_order.order_id,refill_order.mchid=merchant.mchid')
+            ->field('count(*) as order_count, sum(refill_amount) as refill_amounts, merchant.mchid, merchant.company_name, merchant.name')
+            ->where($cond)
+            ->group('refill_order.mchid')
+            ->order('order_count desc')
+            ->select();
+        $special_stat = [];
+        $order_stat = ['order_count' => 0, 'refill_amounts' => 0];
+        if(empty($stats)) return [$special_stat, $order_stat];
+
+        foreach ($stats as $stat) {
+            $mchid = intval($stat['mchid']);
+            $special_stat[$mchid] = [
+                'mchid' => $mchid, 'order_count' => $stat['order_count'], 'refill_amounts' => $stat['refill_amounts'],
+                'company_name' => $stat['company_name'], 'name' => $stat['name']
+            ];
+            $order_stat['order_count'] += $stat['order_count'];
+            $order_stat['refill_amounts'] += $stat['refill_amounts'];
+        }
+        return [$special_stat, $order_stat];
+    }
+
     private function notify_time($cur_time,$period)
     {
         $start_day = strtotime("-5 days",$cur_time);
@@ -231,11 +260,6 @@ class ordersendlistControl extends SystemControl
 
         if (!empty($_GET['mchid'])) {
             $base_cond['refill_order.mchid'] = $_GET['mchid'];
-        } elseif(!empty($_GET['no_mchid'])) {
-            $no_mchid = explode(',', $_GET['no_mchid']);
-            $base_cond['refill_order.mchid'] = ['not in', $no_mchid];
-        } elseif(!empty($mch_cond)) {
-            $base_cond = array_merge($base_cond,$mch_cond);
         }
 
         if (!empty($card_type))

+ 6 - 7
admin/templates/default/refill.order.monitor.notify.php

@@ -216,6 +216,9 @@
         <table class="tb-type1 noborder search">
             <tr>
                 <td>
+                    <a href="javascript:void(0);" id="order_query" class="btns" style="margin-right: 59px;">
+                        <span><i class="icon-edit"></i>更新待收货订单状态</span>
+                    </a>
                     <a href="#" class="btns" onclick="hCopyOrder(event)">
                         <span><i class="icon-edit"></i>拷贝我方订单号</span>
                     </a>
@@ -232,17 +235,13 @@
                     <a href="javascript:void(0);" id="ncexport" class="btns" style="margin: 0 59px;">
                         <span><i class="icon-edit"></i>导出Excel</span>
                     </a>
-                    <a href="javascript:void(0);" id="order_query" class="btns">
-                        <span><i class="icon-edit"></i>更新待收货订单状态</span>
-                    </a>
-                    <a href="#" class="btns fail">
-                        <span><i class="icon-edit"></i>批量失败</span>
-                    </a>
                 </td>
             </tr>
             <tr>
                 <td>
-               
+                    <a href="#" class="btns fail">
+                        <span><i class="icon-edit"></i>批量失败</span>
+                    </a>
                 </td>
             </tr>
         </table>

+ 14 - 4
admin/templates/default/refill.order.send.index.php

@@ -88,7 +88,7 @@
                 <td class="layui-form">
                     <select name="mchid" class="querySelect" lay-verify="" lay-search>
                         <option value=""><?php echo $lang['nc_please_choose']; ?></option>
-                        <?php foreach ($output['merchant_list'] as $merchant) { ?>
+                        <?php foreach ($output['merchant_stat'] as $merchant) { ?>
                             <option value="<?php echo $merchant['mchid'] ?>"<?php if ($_GET['mchid'] == $merchant['mchid']){ ?>selected<?php } ?>><?php echo $merchant['company_name'] == '' ? $merchant['name'] : $merchant['company_name']; ?></option>
                         <?php } ?>
                     </select>
@@ -215,6 +215,9 @@
         <table class="tb-type1 noborder search">
             <tr>
                 <td>
+                     <a href="javascript:void(0);" id="order_query" class="btns" style="margin-right: 60px;">
+                        <span><i class="icon-edit"></i>更新待收货订单状态</span>
+                    </a>
                     <a href="#" class="btns" onclick="hCopyOrder(event)">
                         <span><i class="icon-edit"></i>拷贝我方订单号</span>
                     </a>
@@ -230,9 +233,6 @@
                     <a href="javascript:void(0);" id="ncexport" class="btns" style="margin: 0 60px;">
                         <span><i class="icon-edit"></i>导出Excel</span>
                     </a>
-                    <a href="javascript:void(0);" id="order_query" class="btns" >
-                        <span><i class="icon-edit"></i>更新待收货订单状态</span>
-                    </a>
                 </td>
             </tr>
         </table>
@@ -265,6 +265,16 @@
                         <li class="lineLi" style="color:#000;">超过两小时订单数量:<?php echo $output['count'][2] ?? 0 ?></li>
                     <?php } ?>
                 </ul>
+                <ul id="merchant_stat">
+                    <?php if(!empty($output['merchant_stat'])) {
+                        foreach ($output['merchant_stat'] as $stat){
+                            ?>
+                            <li class="lineLi" style="color:#000;"><?php
+                                $name = $stat['company_name'] ??$stat['name'];
+                                echo "{$name} :{$stat['order_count']}";
+                                ?></li>
+                        <?php }}?>
+                </ul>
             </td>
         </tr>
         </tbody>

Різницю між файлами не показано, бо вона завелика
+ 3 - 0
test/TestBigData.php