stanley-king 3 tahun lalu
induk
melakukan
c6c96b1171

+ 24 - 3
admin/control/merchant.php

@@ -8,6 +8,7 @@ defined('InShopNC') or exit('Access Invalid!');
 
 include(BASE_CONFIG_PATH . CONFIG_PREFIX . '/refill.ini.php');
 require_once(BASE_HELPER_PATH . '/stat_helper.php');
+require_once(BASE_ROOT_PATH . '/helper/refill/functional.php');
 
 class merchantControl extends SystemControl
 {
@@ -152,7 +153,8 @@ class merchantControl extends SystemControl
             showMessage('机构信息有误');
         }
 
-        if (chksubmit()) {
+        if (chksubmit())
+        {
             $update_credit_bonus = ncPriceFormat($_POST['credit_bonus']);
             $operatetype = $_POST['operatetype'];
             if ($update_credit_bonus > 0) {
@@ -170,8 +172,27 @@ class merchantControl extends SystemControl
             $update['org_pwd'] = trim($_POST['password']);
             $update['password'] = md5($update['org_pwd']);
             $update['alarm_amount'] = $_POST['alarm_amount'] ?? 0;
-            $update['time_out'] = intval($_POST['time_out']);
-            $update['night_timeout'] = intval($_POST['night_timeout']);
+
+            $day_timeout = intval($_POST['day_timeout']);
+            $night_timeout = intval($_POST['night_timeout']);
+
+            if($day_timeout <= 0) {
+                $day_timeout = 180;
+            }
+
+            if($night_timeout < $day_timeout) {
+                $night_timeout = $day_timeout;
+            }
+
+            $update['day_timeout'] = $day_timeout;
+            $update['night_timeout'] = $night_timeout;
+
+            if(refill\functional::isDay()) {
+                $update['time_out'] = intval($_POST['day_timeout']);
+            } else {
+                $update['time_out'] = intval($_POST['night_timeout']);
+            }
+
             $update['quality'] = intval($_POST['quality']);
             $update['oil_quality'] = intval($_POST['oil_quality']);
             $member_id = $merchant['admin_id'];

+ 5 - 4
admin/templates/default/merchant.edit.php

@@ -52,6 +52,7 @@
                     <select name="operatetype">
                         <option value="add">增加</option>
                         <option value="del">减少</option>
+                        <option value="del">减少</option>
                     </select>
                     <input type="text" id="credit_bonus" name="credit_bonus" class="txt" value="0">
                     <div id="money" style="color:red; display: inline-block"></div>
@@ -59,17 +60,17 @@
                 <td class="vatop tips"></td>
             </tr>
             <tr>
-                <td colspan="2" class="required"><label for="time_out">白天超时时间(秒数):</label></td>
+                <td colspan="2" class="required"><label for="day_timeout">白天(6:00~24:00)超时秒数(不设置默认为180秒):</label></td>
             </tr>
             <tr class="noborder">
-                <td class="vatop"><input type="text" id="time_out" name="time_out" class="txt" value="<?php echo $output['merchant']['time_out'];?>"></td>
+                <td class="vatop"><input type="text" id="day_timeout" name="day_timeout" class="txt" value="<?php echo $output['merchant']['day_timeout'];?>"></td>
                 <td class="vatop tips"></td>
             </tr>
             <tr>
-                <td colspan="2" class="required"><label for="night_timeout">夜里超时时间(秒数):</label></td>
+                <td colspan="2" class="required"><label for="night_timeout">夜里(0:00~6:00)超时秒数(不可以小于白天时间):</label></td>
             </tr>
             <tr class="noborder">
-                <td class="vatop"><input type="text" id="time_out" name="night_timeout" class="txt" value="<?php echo $output['merchant']['night_timeout'];?>"></td>
+                <td class="vatop"><input type="text" id="night_timeout" name="night_timeout" class="txt" value="<?php echo $output['merchant']['night_timeout'];?>"></td>
                 <td class="vatop tips"></td>
             </tr>
             <tr>

+ 44 - 0
crontab/control/date.php

@@ -115,6 +115,50 @@ class dateControl extends BaseCronControl
         $refill->run();
     }
 
+    public function merchant_daytimeOp()
+    {
+        $this->update_timeout(true);
+    }
+
+    public function merchant_nightimeOp()
+    {
+        $this->update_timeout(false);
+    }
+
+    private function update_timeout($toDay)
+    {
+        $i = 0;
+        while (true)
+        {
+            $start = $i * 100;
+            $items = Model()->table('merchant')->where(['mchid' => ['gt',0]])->field('mchid,day_timeout,night_timeout')->order('mchid asc')->limit("{$start},100")->select();
+            if(empty($items)) {
+                return;
+            }
+            $i++;
+
+            foreach ($items as $item)
+            {
+                $mchid = intval($item['mchid']);
+                if($mchid <= 0) continue;
+
+                $day_timeout = intval($item['day_timeout']);
+                $night_timeout = intval($item['night_timeout']);
+                if($night_timeout <= 0) {
+                    $night_timeout = $day_timeout;
+                }
+
+                if($toDay) {
+                    $time_out = $day_timeout;
+                } else {
+                    $time_out = $night_timeout;
+                }
+
+                Model()->table('merchant')->where(['mchid' => $mchid])->update(['time_out' => $time_out]);
+            }
+        }
+    }
+
     public function merchant_availableOp()
     {
         $merchant = Model('merchant')->getMerchantList([], 1000, '', true,'merchant.mchid,member.available_predeposit,merchant.credit_bonus');