xiaoyu 3 éve
szülő
commit
d4f63af867

+ 2 - 3
admin/control/merchant.php

@@ -1174,9 +1174,9 @@ class merchantControl extends SystemControl
             $trans = new trans_wapper($mod_stat, __METHOD__);
             //更新新数据
             if($stats_data['type'] == 'merchant') {
-                $refill->merchant_stat($stats_data['time_stamp'],$stats_data['cid']);
+                $refill->merchant_stat($stats_data['time_stamp'],$stats_data['cid'],$stats_data['order_time_type']);
             }elseif ($stats_data['type'] == 'provider') {
-                $refill->provider_stat($stats_data['time_stamp'],$stats_data['cid']);
+                $refill->provider_stat($stats_data['time_stamp'],$stats_data['cid'],$stats_data['order_time_type']);
             }
             $trans->commit();
             showMessage('操作成功');
@@ -1185,5 +1185,4 @@ class merchantControl extends SystemControl
             showMessage('操作失败');
         }
     }
-
 }

+ 31 - 18
admin/control/orderstats.php

@@ -17,6 +17,9 @@ class orderstatsControl extends SystemControl
         if (!empty($_GET['cid'])) {
             $condition['cid'] = $_GET['cid'];
         }
+        if (!empty($_GET['order_time_type'])) {
+            $condition['order_time_type'] = $_GET['order_time_type'];
+        }
         $start_unixtime = intval(strtotime($_GET['query_start_time']));
         $end_unixtime = intval(strtotime($_GET['query_end_time']));
         if ($start_unixtime > 0 && $end_unixtime > $start_unixtime) {
@@ -37,21 +40,7 @@ class orderstatsControl extends SystemControl
             $merchant_list = Model('')->table('merchant')->limit(1000)->select();
             Tpl::output('merchant_list', $merchant_list);
         }
-        $success_count_total = $success_refill_amounts_total = $success_mch_amounts_toatl = $success_channel_amounts_total = $profit_amounts_total = 0;
-        foreach ($stats_list as $stats) {
-            $success_count_total += $stats['success_count'];
-            $success_refill_amounts_total += $stats['success_refill_amounts'];
-            $success_mch_amounts_toatl += $stats['success_mch_amounts'];
-            $success_channel_amounts_total += $stats['success_channel_amounts'];
-            $profit_amounts_total += $stats['profit_amounts'];
-        }
-        $total_stats = [
-            'success_count_total' => $success_count_total,
-            'success_refill_amounts_total' => $success_refill_amounts_total,
-            'success_mch_amounts_toatl' => $success_mch_amounts_toatl,
-            'success_channel_amounts_total' => $success_channel_amounts_total,
-            'profit_amounts_total' => $profit_amounts_total
-        ];
+        $total_stats = $this->stats($stats_list);
         $check_text = ['未编辑', '匹配', '不匹配'];
         Tpl::output('total_stats', $total_stats);
         Tpl::output('stats_list', $stats_list);
@@ -79,18 +68,18 @@ class orderstatsControl extends SystemControl
         }
         $stats_list = $model_refill_order->getOrderStatsList($condition,'','*','time_stamp asc');
 
-        $success_count_total = $success_refill_amounts_total = $success_mch_amounts_toatl = $success_channel_amounts_total = $profit_amounts_total = 0;
+        $success_count_total = $success_refill_amounts_total = $success_mch_amounts_total = $success_channel_amounts_total = $profit_amounts_total = 0;
         foreach ($stats_list as $stats) {
             $success_count_total += $stats['success_count'];
             $success_refill_amounts_total += $stats['success_refill_amounts'];
-            $success_mch_amounts_toatl += $stats['success_mch_amounts'];
+            $success_mch_amounts_total += $stats['success_mch_amounts'];
             $success_channel_amounts_total += $stats['success_channel_amounts'];
             $profit_amounts_total += $stats['profit_amounts'];
         }
         $total_stats = [
             'success_count_total' => ncPriceFormat($success_count_total),
             'success_refill_amounts_total' => ncPriceFormat($success_refill_amounts_total),
-            'success_mch_amounts_toatl' => ncPriceFormat($success_mch_amounts_toatl),
+            'success_mch_amounts_toatl' => ncPriceFormat($success_mch_amounts_total),
             'success_channel_amounts_total' => ncPriceFormat($success_channel_amounts_total),
             'profit_amounts_total' => ncPriceFormat($profit_amounts_total)
         ];
@@ -99,4 +88,28 @@ class orderstatsControl extends SystemControl
         echo(json_encode($result));
         exit;
     }
+
+    private function stats($stats_list): array
+    {
+        $order_time_type = ['notify_time','order_time'];
+        foreach ($order_time_type as $type){
+            $success_count_total = $success_refill_amounts_total = $success_mch_amounts_total = $success_channel_amounts_total = $profit_amounts_total = 0;
+            foreach ($stats_list as $stats) {
+                if($stats['order_time_type'] != $type) continue;
+                $success_count_total += $stats['success_count'];
+                $success_refill_amounts_total += $stats['success_refill_amounts'];
+                $success_mch_amounts_total += $stats['success_mch_amounts'];
+                $success_channel_amounts_total += $stats['success_channel_amounts'];
+                $profit_amounts_total += $stats['profit_amounts'];
+            }
+            $total_stats[$type] = [
+                'success_count_total' => $success_count_total,
+                'success_refill_amounts_total' => $success_refill_amounts_total,
+                'success_mch_amounts_toatl' => $success_mch_amounts_total,
+                'success_channel_amounts_total' => $success_channel_amounts_total,
+                'profit_amounts_total' => $profit_amounts_total
+            ];
+        }
+        return $total_stats;
+    }
 }

+ 36 - 6
admin/templates/default/merchant.order.stats.php

@@ -14,7 +14,21 @@
     input::placeholder{ 
         color:#333; 
     }
-    
+    .row_q {
+    display: flex;
+        
+    }
+    .row_q ul li {
+        height: 30px;
+        line-height: 30px;
+    }
+    #merchant_name_form {
+        display: block;
+        margin-top: 123px;
+    }
+    .moveright {
+        margin-left: 40px;
+    }
 </style>
 <div class="page">
     <div class="fixed-bar">
@@ -43,6 +57,14 @@
                     <input class="txt date" type="text" value="<?php echo $_GET['query_end_time']; ?>"
                            id="endTime" name="query_end_time" autocomplete="off" style="width:120px" />
                 </td>
+                <th><label>统计日期类型</label></th>
+                <td>
+                    <select name="order_time_type">
+                        <option value="">请选择...</option>
+                        <option value="notify_time" <?php if($_GET['order_time_type'] == 'notify_time'){ echo 'selected';}?>>回调日期</option>
+                        <option value="order_time" <?php if($_GET['order_time_type'] == 'order_time'){ echo 'selected';}?>>下单日期</option>
+                    </select>
+                </td>
                 <th><label>商户名称</label></th>
                 <td>
                     <select name="cid" class="querySelect" lay-verify="" lay-search>
@@ -77,12 +99,20 @@
                     <span class="arrow"></span></div></th>
         </tr>
         <tr>
-            <td>
+            <td class="row_q">
                 <ul>
-                    <li class="lineLi" style="color:#000;">总计成功订单量: <?php echo $output['total_stats']['success_count_total'] ?? 0?></li>
-                    <li class="lineLi" style="color:#000;">总计成功订单金额:<?php echo $output['total_stats']['success_refill_amounts_total'] ?? 0?></li>
-                    <li class="lineLi" style="color:#000;">总计下游扣款金额:<?php echo $output['total_stats']['success_mch_amounts_toatl'] ?? 0?></li>
-                    <li class="lineLi" style="color:#000;">总计上游扣款金额:<?php echo $output['total_stats']['success_channel_amounts_total'] ?? 0?></li>
+                    <li>回调日期统计</li>
+                    <li class="lineLi" style="color:#000;">总计成功订单量: <?php echo $output['total_stats']['notify_time']['success_count_total'] ?? 0?></li>
+                    <li class="lineLi" style="color:#000;">总计成功订单金额:<?php echo $output['total_stats']['notify_time']['success_refill_amounts_total'] ?? 0?></li>
+                    <li class="lineLi" style="color:#000;">总计下游扣款金额:<?php echo $output['total_stats']['notify_time']['success_mch_amounts_toatl'] ?? 0?></li>
+                    <li class="lineLi" style="color:#000;">总计上游扣款金额:<?php echo $output['total_stats']['notify_time']['success_channel_amounts_total'] ?? 0?></li>
+                </ul>
+                <ul class="moveright">
+                    <li>下单日期统计</li>
+                    <li class="lineLi" style="color:#000;">总计成功订单量: <?php echo $output['total_stats']['order_time']['success_count_total'] ?? 0?></li>
+                    <li class="lineLi" style="color:#000;">总计成功订单金额:<?php echo $output['total_stats']['order_time']['success_refill_amounts_total'] ?? 0?></li>
+                    <li class="lineLi" style="color:#000;">总计下游扣款金额:<?php echo $output['total_stats']['order_time']['success_mch_amounts_toatl'] ?? 0?></li>
+                    <li class="lineLi" style="color:#000;">总计上游扣款金额:<?php echo $output['total_stats']['order_time']['success_channel_amounts_total'] ?? 0?></li>
                 </ul>
             </td>
         </tr>

+ 36 - 5
admin/templates/default/provider.order.stats.php

@@ -14,6 +14,21 @@
     input::placeholder{ 
         color:#333; 
     }
+    .row_q {
+    display: flex;
+        
+    }
+    .row_q ul li {
+        height: 30px;
+        line-height: 30px;
+    }
+    #merchant_name_form {
+        display: block;
+        margin-top: 123px;
+    }
+    .moveright {
+        margin-left: 40px;
+    }
 </style>
 <div class="page">
     <div class="fixed-bar">
@@ -42,6 +57,14 @@
                     <input class="txt date" type="text" value="<?php echo $_GET['query_end_time']; ?>"
                            id="endTime" name="query_end_time" autocomplete="off" style="width:120px" />
                 </td>
+                <th><label>统计日期类型</label></th>
+                <td>
+                    <select name="order_time_type">
+                        <option value="">请选择...</option>
+                        <option value="notify_time" <?php if($_GET['order_time_type'] == 'notify_time'){ echo 'selected';}?>>回调日期</option>
+                        <option value="order_time" <?php if($_GET['order_time_type'] == 'order_time'){ echo 'selected';}?>>下单日期</option>
+                    </select>
+                </td>
                 <th><label>通道名称</label></th>
                 <td>
                     <select name="cid" class="querySelect" lay-verify="" lay-search>
@@ -76,12 +99,20 @@
                     <span class="arrow"></span></div></th>
         </tr>
         <tr>
-            <td>
+            <td class="row_q">
                 <ul>
-                    <li class="lineLi" style="color:#000;">总计成功订单量: <?php echo $output['total_stats']['success_count_total'] ?? 0?></li>
-                    <li class="lineLi" style="color:#000;">总计成功订单金额:<?php echo $output['total_stats']['success_refill_amounts_total'] ?? 0?></li>
-                    <li class="lineLi" style="color:#000;">总计下游扣款金额:<?php echo $output['total_stats']['success_mch_amounts_toatl'] ?? 0?></li>
-                    <li class="lineLi" style="color:#000;">总计上游扣款金额:<?php echo $output['total_stats']['success_channel_amounts_total'] ?? 0?></li>
+                    <li>回调日期统计</li>
+                    <li class="lineLi" style="color:#000;">总计成功订单量: <?php echo $output['total_stats']['notify_time']['success_count_total'] ?? 0?></li>
+                    <li class="lineLi" style="color:#000;">总计成功订单金额:<?php echo $output['total_stats']['notify_time']['success_refill_amounts_total'] ?? 0?></li>
+                    <li class="lineLi" style="color:#000;">总计下游扣款金额:<?php echo $output['total_stats']['notify_time']['success_mch_amounts_toatl'] ?? 0?></li>
+                    <li class="lineLi" style="color:#000;">总计上游扣款金额:<?php echo $output['total_stats']['notify_time']['success_channel_amounts_total'] ?? 0?></li>
+                </ul>
+                <ul class="moveright">
+                    <li>下单日期统计</li>
+                    <li class="lineLi" style="color:#000;">总计成功订单量: <?php echo $output['total_stats']['order_time']['success_count_total'] ?? 0?></li>
+                    <li class="lineLi" style="color:#000;">总计成功订单金额:<?php echo $output['total_stats']['order_time']['success_refill_amounts_total'] ?? 0?></li>
+                    <li class="lineLi" style="color:#000;">总计下游扣款金额:<?php echo $output['total_stats']['order_time']['success_mch_amounts_toatl'] ?? 0?></li>
+                    <li class="lineLi" style="color:#000;">总计上游扣款金额:<?php echo $output['total_stats']['order_time']['success_channel_amounts_total'] ?? 0?></li>
                 </ul>
             </td>
         </tr>

+ 43 - 5
admin/templates/default/system.order.stats.php

@@ -1,5 +1,25 @@
 <?php defined('InShopNC') or exit('Access Invalid!'); ?>
+<style>
+.row_q {
+    display: inline-block;
+        
+    }
+    .row_q ul {
+    display: inline-block;
 
+    }
+    .row_q ul li {
+        height: 30px;
+        line-height: 30px;
+    }
+    #merchant_name_form {
+        display: block;
+        margin-top: 123px;
+    }
+    .moveright {
+        margin-left: 40px;
+    }
+</style>
 <div class="page">
     <div class="fixed-bar">
         <div class="item-title">
@@ -25,6 +45,16 @@
                     <label for="query_start_time">~</label>
                     <input class="txt date" type="text" value="<?php echo $_GET['query_end_time']; ?>"
                            id="endTime" name="query_end_time" autocomplete="off" style="width:120px" /></td>
+                <td>
+                <th><label>统计日期类型</label></th>
+                <td>
+                    <select name="order_time_type">
+                        <option value="">请选择...</option>
+                        <option value="notify_time" <?php if($_GET['order_time_type'] == 'notify_time'){ echo 'selected';}?>>回调日期</option>
+                        <option value="order_time" <?php if($_GET['order_time_type'] == 'order_time'){ echo 'selected';}?>>下单日期</option>
+                    </select>
+                </td>
+                </td>
                 <td><a href="javascript:void(0);" id="ncsubmit" class="btn-search "
                        title="<?php echo $lang['nc_query']; ?>">&nbsp;</a>
                     <?php if ($output['mch_name'] != '') { ?>
@@ -48,12 +78,20 @@
                 <span class="arrow"></span></div></th>
           </tr>
           <tr>
-            <td>
+            <td class="row_q">
                 <ul>
-                    <li class="lineLi" style="color:#000;">总计成功订单量: <?php echo $output['total_stats']['success_count_total'] ?? 0?></li>
-                    <li class="lineLi" style="color:#000;">总计成功订单金额:<?php echo $output['total_stats']['success_refill_amounts_total'] ?? 0?></li>
-                    <li class="lineLi" style="color:#000;">总计下游扣款金额:<?php echo $output['total_stats']['success_mch_amounts_toatl'] ?? 0?></li>
-                    <li class="lineLi" style="color:#000;">总计上游扣款金额:<?php echo $output['total_stats']['success_channel_amounts_total'] ?? 0?></li>
+                    <li>回调日期统计</li>
+                    <li class="lineLi" style="color:#000;">总计成功订单量: <?php echo $output['total_stats']['notify_time']['success_count_total'] ?? 0?></li>
+                    <li class="lineLi" style="color:#000;">总计成功订单金额:<?php echo $output['total_stats']['notify_time']['success_refill_amounts_total'] ?? 0?></li>
+                    <li class="lineLi" style="color:#000;">总计下游扣款金额:<?php echo $output['total_stats']['notify_time']['success_mch_amounts_toatl'] ?? 0?></li>
+                    <li class="lineLi" style="color:#000;">总计上游扣款金额:<?php echo $output['total_stats']['notify_time']['success_channel_amounts_total'] ?? 0?></li>
+                </ul>
+                <ul class="moveright">
+                    <li>下单日期统计</li>
+                    <li class="lineLi" style="color:#000;">总计成功订单量: <?php echo $output['total_stats']['order_time']['success_count_total'] ?? 0?></li>
+                    <li class="lineLi" style="color:#000;">总计成功订单金额:<?php echo $output['total_stats']['order_time']['success_refill_amounts_total'] ?? 0?></li>
+                    <li class="lineLi" style="color:#000;">总计下游扣款金额:<?php echo $output['total_stats']['order_time']['success_mch_amounts_toatl'] ?? 0?></li>
+                    <li class="lineLi" style="color:#000;">总计上游扣款金额:<?php echo $output['total_stats']['order_time']['success_channel_amounts_total'] ?? 0?></li>
                 </ul>
             </td>
           </tr>

+ 15 - 6
helper/statistics/stat_refill.php

@@ -72,14 +72,20 @@ class stat_refill
                 $this->merchant_stat($start_tm);
                 $this->provider_stat($start_tm);
             }
+
+            $order_count = $this->system_stat($start_tm,'order_time');
+            if ($order_count > 0) {
+                $this->merchant_stat($start_tm,0,'order_time');
+                $this->provider_stat($start_tm,0,'order_time');
+            }
         }
     }
 
-    private function system_stat($day_time)
+    private function system_stat($day_time, $order_time_type='notify_time')
     {
         $cond = [
             'refill_order.inner_status' => 0,
-            'refill_order.notify_time&refill_order.notify_time' => ['_multi' => true, ['egt', $day_time], ['lt', $day_time + stat_refill::DaySecs]]
+            "refill_order.{$order_time_type}" => ['_multi' => true, ['egt', $day_time], ['lt', $day_time + stat_refill::DaySecs]]
         ];
 
         $items = Model('')->table('refill_order,vr_order')
@@ -96,6 +102,7 @@ class stat_refill
         $params['type'] = 'system';
         $params['cid'] = 0;
         $params['cname'] = 'system';
+        $params['order_time_type'] = $order_time_type;
 
         $order_count = 0;
         foreach ($items as $item)
@@ -142,12 +149,12 @@ class stat_refill
         return $order_count;
     }
 
-    public function merchant_stat($day_time,$cur_mchid = 0)
+    public function merchant_stat($day_time,$cur_mchid = 0,$order_time_type='notify_time')
     {
         $cond = [
             'refill_order.inner_status' => 0,
             'vr_order.order_state' => ORDER_STATE_SUCCESS,
-            'refill_order.notify_time&refill_order.notify_time' => ['_multi' => true, ['egt', $day_time], ['lt', $day_time + stat_refill::DaySecs]],
+            "refill_order.{$order_time_type}" => ['_multi' => true, ['egt', $day_time], ['lt', $day_time + stat_refill::DaySecs]],
         ];
 
         $items = Model('')->table('refill_order,vr_order')
@@ -164,6 +171,7 @@ class stat_refill
             $params['time_text'] = date("Y-m-d" , $day_time);
             $params['time_stamp'] = $day_time;
             $params['type'] = 'merchant';
+            $params['order_time_type'] = $order_time_type;
 
             $mchid = intval($item['mchid']);
             if($mchid <= 0) continue;
@@ -187,12 +195,12 @@ class stat_refill
         }
     }
 
-    public function provider_stat($day_time,$cur_storeid = 0)
+    public function provider_stat($day_time,$cur_storeid = 0,$order_time_type='notify_time')
     {
         $cond = [
             'refill_order.inner_status' => 0,
             'vr_order.order_state' => ORDER_STATE_SUCCESS,
-            'refill_order.notify_time&refill_order.notify_time' => ['_multi' => true, ['egt', $day_time], ['lt', $day_time + stat_refill::DaySecs]],
+            "refill_order.{$order_time_type}" => ['_multi' => true, ['egt', $day_time], ['lt', $day_time + stat_refill::DaySecs]],
         ];
 
         $items = Model('')->table('refill_order,vr_order')
@@ -209,6 +217,7 @@ class stat_refill
             $params['time_text'] = date("Y-m-d" , $day_time);
             $params['time_stamp'] = $day_time;
             $params['type'] = 'provider';
+            $params['order_time_type'] = $order_time_type;
 
             $store_id = intval($item['store_id']);
             if($store_id <= 0) continue;