scene('list')->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'); //是否管理员操作 0=是1=否 // 接收参数 $uid = request('access_token.uid', 0); $map = []; // 权限判断 if ($is_admin != 1 && $company_id != 0) { $map['company_id'] = $company_id; $map['custom_uid'] = $uid; } else { $map['company_id'] = $admin_company_id; } // 接收参数 $status = request('status'); $limit = request('limit', config('page_num', 10)); $start_time = request('start_time', ''); $end_time = request('end_time', ''); // 时间条件 if ($start_time) $map[] = ['insert_time', '>=', strtotime($start_time . ' 00:00:00')]; if ($end_time) $map[] = ['insert_time', '<=', strtotime($end_time . ' 23:59:59')]; if (!is_null($status)) $map[] = ['status', '=', $status]; // 查询系统用户 $result = $StatisticsNoticesModel->where($map)->orderByDesc('id')->paginate($limit)->toarray(); if(!empty($result['data'])){ foreach ($result['data'] as $key => $value) { $result['data'][$key]['ext_data'] = json_decode($value['ext_data'], true); } } // 告知结果 return json_send(['code' => 'success', 'msg' => '获取成功', 'data' => $result]); } /** * 修改状态 * @author: 唐远望 * @version: 1.0 * @date: 2026-04-11 */ public function set_status(Request $request, StatisticsNoticesModel $StatisticsNoticesModel) { // 验证参数 $request->scene('set_status')->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'); //是否管理员操作 0=是1=否 // 接收参数 $uid = request('access_token.uid', 0); $map = []; // 权限判断 if ($is_admin != 1 && $company_id != 0) { $map['company_id'] = $company_id; $map['custom_uid'] = $uid; } else { $map['company_id'] = $admin_company_id; } // 设置状态 $id = request('id', 0); $status = request('status', 0); $map[] = ['id', '=', $id]; // 查询用户 $oldData = $StatisticsNoticesModel->where($map)->first(); // 如果用户不存在 if (!$oldData) return json_send(['code' => 'error', 'msg' => '统计通知消息记录不存在']); // 执行修改 $result = $StatisticsNoticesModel->where($map)->update(['status' => $status, 'update_time' => time()]); // 提示新增失败 if (!$result) return json_send(['code' => 'error', 'msg' => '设置失败']); // 记录行为 $admin_id = request('access_token.uid', 0); //用户ID $table_name = $StatisticsNoticesModel->getTable(); $notes_type = 2; //操作类型,1添加,2修改,3=删除 $this->addAdminHistory('系统统计通知', 0, $admin_id, $is_admin, $table_name, $notes_type, [], ['status' => $status], "修改了记录ID为:$id 的统计通知状态"); // 告知结果 return json_send(['code' => 'success', 'msg' => '设置成功', 'data' => '']); } /** * 消息数统计 * @author: 唐远望 * @version: 1.0 * @date: 2026-04-11 */ public function message_count(Request $Request, StatisticsNoticesModel $StatisticsNoticesModel) { // 验证规则 $Request->scene('message_count')->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'); //是否管理员操作 0=是1=否 // 接收参数 $uid = request('access_token.uid', 0); $map = []; // 权限判断 if ($is_admin != 1 && $company_id != 0) { $map['company_id'] = $company_id; $map['custom_uid'] = $uid; } else { $map['company_id'] = $admin_company_id; } $map[] = ['status', '=', 0]; // 查询未读消息总数 $unread_count = $StatisticsNoticesModel->where($map)->orderByDesc('id')->count(); // 告知结果 return json_send(['code' => 'success', 'msg' => '获取成功', 'data' => ['unread_count' => $unread_count]]); } }