|
|
@@ -0,0 +1,131 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+namespace App\Http\Controllers\Manager\Personnel;
|
|
|
+
|
|
|
+use App\Http\Controllers\Controller;
|
|
|
+use App\Http\Requests\Manager\Personnel\NoticeConfig as Request;
|
|
|
+use App\Models\Manager\Personnel\NoticeConfig as NoticeConfigModel;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 人员管理-消息通知配置-控制器
|
|
|
+ * @author 唐远望
|
|
|
+ * @version 1.0
|
|
|
+ * @date 2026-04-10
|
|
|
+ */
|
|
|
+class NoticeConfig extends Controller
|
|
|
+{
|
|
|
+ /**
|
|
|
+ * 详情
|
|
|
+ * @author 唐远望
|
|
|
+ * @version 1.0
|
|
|
+ * @date 2026-04-10
|
|
|
+ */
|
|
|
+ public function detail(Request $request, NoticeConfigModel $NoticeConfigModel)
|
|
|
+ {
|
|
|
+ $request->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' => '']);
|
|
|
+ }
|
|
|
+ $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' => '']);
|
|
|
+ }
|
|
|
+}
|