瀏覽代碼

活动区域图片限制添加数量

evoxwht 4 年之前
父節點
當前提交
8c95b58fc3
共有 1 個文件被更改,包括 69 次插入6 次删除
  1. 69 6
      crmeb/app/admin/controller/setting/SystemGroupData.php

+ 69 - 6
crmeb/app/admin/controller/setting/SystemGroupData.php

@@ -114,10 +114,46 @@ class SystemGroupData extends AuthController
     {
         $Fields = GroupModel::getField($gid);
         $params = request()->post();
+        $config_name = GroupModel::get(['id' => $gid])['config_name'];
+        //秒杀时间短判断
+        if ($config_name == 'routine_seckill_time') {
+            if ($params['time'] == '') {
+                return Json::fail('请输入开始时间');
+            }
+            if (!$params['continued']) {
+                return Json::fail('请输入持续时间');
+            }
+            if (!preg_match('/^(\d|1\d|2[0-3])$/', $params['time'])) {
+                return Json::fail('请输入0-23点之前的整点数');
+            }
+            if (!preg_match('/^([1-9]|1\d|2[0-4])$/', $params['continued'])) {
+                return Json::fail('请输入1-24点之前的持续时间');
+            }
+            if (($params['time'] + $params['continued']) > 24) {
+                return Json::fail('开始时间+持续时间不能大于24小时');
+            }
+            $list = GroupDataModel::where('gid', $gid)->column('value', 'id');
+            $times = $time = [];
+            foreach ($list as $item) {
+                $info = json_decode($item, true);
+                for ($i = 0; $i < $info['continued']['value']; $i++) {
+                    $times[] = $info['time']['value'] + $i;
+                }
+            }
+            for ($i = 0; $i < $params['continued']; $i++) {
+                $time[] = $params['time'] + $i;
+            }
+            foreach ($time as $v) {
+                if (in_array($v, $times)) return Json::fail('时段已占用');
+            }
+        }
+        //活动区域图片最多为3个
+        if ($config_name == 'routine_home_activity') {
+            if (GroupDataModel::where('gid', $gid)->count() >= 3) return Json::fail('获取区域图片不能大于三个');
+        }
         foreach ($params as $key => $param) {
             foreach ($Fields['fields'] as $index => $field) {
                 if ($key == $field["title"]) {
-//                    if($param == "" || count($param) == 0)
                     if ($param == "")
                         return Json::fail($field["name"] . "不能为空!");
                     else {
@@ -228,17 +264,44 @@ class SystemGroupData extends AuthController
     {
         $GroupData = GroupDataModel::get($id);
         $group = GroupModel::where('id', $GroupData['gid'])->find();
-        if(!$GroupData || !$group){
+        if (!$GroupData || !$group) {
             return Json::fail('请检查配置');
         }
         $params = request()->post();
         //秒杀
-        if($group['config_name'] == 'routine_seckill_time'){
-            if((int)($params['time'] + $params['continued']) > 24){
-                return Json::fail('请重新填写持续时间或者开始时间(时间跨度超过了一天)');
+        if ($group['config_name'] == 'routine_seckill_time') {
+            if ($params['time'] == '') {
+                return Json::fail('请输入开始时间');
+            }
+            if (!$params['continued']) {
+                return Json::fail('请输入持续时间');
+            }
+            if (!preg_match('/^(\d|1\d|2[0-3])$/', $params['time'])) {
+                return Json::fail('请输入0-23点之前的整点数');
+            }
+            if (!preg_match('/^([1-9]|1\d|2[0-4])$/', $params['continued'])) {
+                return Json::fail('请输入1-24点之前的持续时间');
+            }
+            if (($params['time'] + $params['continued']) > 24) {
+                return Json::fail('开始时间+持续时间不能大于24小时');
+            }
+            $list = GroupDataModel::where('gid', $GroupData['gid'])->column('value', 'id');
+            $times = $time = [];
+            if ($id) unset($list[$id]);
+            foreach ($list as $item) {
+                $info = json_decode($item, true);
+                for ($i = 0; $i < $info['continued']['value']; $i++) {
+                    $times[] = $info['time']['value'] + $i;
+                }
+            }
+            for ($i = 0; $i < $params['continued']; $i++) {
+                $time[] = $params['time'] + $i;
+            }
+            foreach ($time as $v) {
+                if (in_array($v, $times)) return Json::fail('时段已占用');
             }
         }
-        $Fields = json_decode( $group['fields'],true) ?? [];
+        $Fields = json_decode($group['fields'], true) ?? [];
 
         foreach ($params as $key => $param) {
             foreach ($Fields as $index => $field) {