From 8c95b58fc31df85e2850cc1c8dcd096a82f6201e Mon Sep 17 00:00:00 2001 From: evoxwht <442384644@qq.com> Date: Mon, 19 Apr 2021 16:33:03 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B4=BB=E5=8A=A8=E5=8C=BA=E5=9F=9F=E5=9B=BE?= =?UTF-8?q?=E7=89=87=E9=99=90=E5=88=B6=E6=B7=BB=E5=8A=A0=E6=95=B0=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/setting/SystemGroupData.php | 75 +++++++++++++++++-- 1 file changed, 69 insertions(+), 6 deletions(-) diff --git a/crmeb/app/admin/controller/setting/SystemGroupData.php b/crmeb/app/admin/controller/setting/SystemGroupData.php index 9acee931f..163e4e47d 100644 --- a/crmeb/app/admin/controller/setting/SystemGroupData.php +++ b/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) {