scene('detail')->validate(); $admin_company_id = request('admin_company_id', '0'); $company_id = request('access_token.company_id', '0'); $is_admin = request('access_token.is_admin', '0'); // 权限判断 if ($is_admin != 1 && $company_id != 0) { $map['company_id'] = $company_id; } else { $map['company_id'] = $admin_company_id; } $notice_week_config = [ 'week_1' => '1', //状态 0=开启 1=关闭 'week_2' => '1', //状态 0=开启 1=关闭 'week_3' => '1', //状态 0=开启 1=关闭 'week_4' => '1', //状态 0=开启 1=关闭 'week_5' => '1', //状态 0=开启 1=关闭 'week_6' => '1', //状态 0=开启 1=关闭 'week_7' => '1', //状态 0=开启 1=关闭 ]; $data = $NoticeConfigModel->where($map)->first(); if (!$data) { //计算开启天数 $open_day = 0; foreach ($notice_week_config as $key => $value) { if ($value == '0') { $open_day++; } } //自动创建 $insert_data = [ 'company_id' => $map['company_id'], 'open_day' => $open_day, 'notice_week_config' => json_encode($notice_week_config), 'insert_time' => time(), ]; $NoticeConfigModel->insert($insert_data); $data = $NoticeConfigModel->where($map)->first(); } $data->notice_week_config = json_decode($data->notice_week_config, true); // 加载模板 return json_send(['code' => 'success', 'msg' => '获取成功', 'data' => $data]); } /** * 修改 * @author 唐远望 * @version 1.0 * @date 2026-04-10 * */ public function update(Request $request, NoticeConfigModel $NoticeConfigModel) { $request->scene('update')->validate(); $admin_company_id = request('admin_company_id', '0'); $company_id = request('access_token.company_id', '0'); $is_admin = request('access_token.is_admin', '0'); //接收参数 $week_config = request('week_config', ''); $push_time = trim(request('push_time', '')); // 权限判断 if ($is_admin != 1 && $company_id != 0) { $map['company_id'] = $company_id; } else { $map['company_id'] = $admin_company_id; } $notice_week_config = [ 'week_1' => isset($week_config['week_1']) ? $week_config['week_1'] : '1', //状态 0=开启 1=关闭 'week_2' => isset($week_config['week_2']) ? $week_config['week_2'] : '1', //状态 0=开启 1=关闭 'week_3' => isset($week_config['week_3']) ? $week_config['week_3'] : '1', //状态 0=开启 1=关闭 'week_4' => isset($week_config['week_4']) ? $week_config['week_4'] : '1', //状态 0=开启 1=关闭 'week_5' => isset($week_config['week_5']) ? $week_config['week_5'] : '1', //状态 0=开启 1=关闭 'week_6' => isset($week_config['week_6']) ? $week_config['week_6'] : '1', //状态 0=开启 1=关闭 'week_7' => isset($week_config['week_7']) ? $week_config['week_7'] : '1', //状态 0=开启 1=关闭 ]; //计算开启天数 $open_day = 0; foreach ($notice_week_config as $key => $value) { if ($value == '0') { $open_day++; } } if($open_day > 0 && empty($push_time)){ return json_send(['code' => 'error', 'msg' => '请设置推送时间', 'data' => '']); if(in_array($push_time, ['09:00', '11:00', '14:00','18:00']) == false){ return json_send(['code' => 'error', 'msg' => '推送时间格式错误', 'data' => '']); } } $data = $NoticeConfigModel->where($map)->first(); if (!$data) { //自动创建 $insert_data = [ 'company_id' => $map['company_id'], 'open_day' => $open_day, 'notice_week_config' => json_encode($notice_week_config), 'push_time' => $push_time, 'insert_time' => time(), ]; $NoticeConfigModel->insert($insert_data); $data = $NoticeConfigModel->where($map)->first(); } else { $data->notice_week_config = json_encode($notice_week_config); $data->open_day = $open_day; $data->push_time = $push_time; $data->update_time = time(); $data->save(); } // 加载模板 return json_send(['code' => 'success', 'msg' => '操作成功', 'data' => '']); } }