智慧教务系统
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

243 lines
6.7 KiB

<?php
// +----------------------------------------------------------------------
// | Niucloud-admin 企业快速开发的多应用管理平台
// +----------------------------------------------------------------------
// | 官方网址:https://www.niucloud.com
// +----------------------------------------------------------------------
// | niucloud团队 版权所有 开源版本可自由商用
// +----------------------------------------------------------------------
// | Author: Niucloud Team
// +----------------------------------------------------------------------
namespace app\api\controller\apiController;
use app\service\api\apiService\CourseScheduleService;
use core\base\BaseApiController;
/**
* 课程安排控制器
*/
class CourseScheduleController extends BaseApiController
{
/**
* 获取课程安排列表(支持多维度筛选)
*/
public function getScheduleList()
{
$data = $this->request->get();
$service = new CourseScheduleService();
return success('获取成功', $service->getScheduleList($data));
}
/**
* 获取课程安排详情
*/
public function getScheduleInfo()
{
$scheduleId = $this->request->get('schedule_id', 0);
if (empty($scheduleId)) {
return fail('课程安排ID不能为空');
}
$service = new CourseScheduleService();
$result = $service->getScheduleInfo($scheduleId);
if (isset($result['code']) && $result['code'] == 0) {
return fail($result['msg'] ?? '获取课程安排详情失败');
}
return success('获取成功', $result);
}
/**
* 创建课程安排
*/
public function createSchedule()
{
$data = $this->request->post();
$service = new CourseScheduleService();
$result = $service->createSchedule($data);
if ($result['code'] == 1) {
return success($result['msg'], $result['data']);
} else {
return fail($result['msg']);
}
}
/**
* 批量创建课程安排
*/
public function batchCreateSchedule()
{
$data = $this->request->post();
$service = new CourseScheduleService();
$result = $service->batchCreateSchedule($data);
if ($result['code'] == 1) {
return success($result['msg'], $result['data']);
} else {
return fail($result['msg']);
}
}
/**
* 更新课程安排
*/
public function updateSchedule()
{
$data = $this->request->post();
$scheduleId = $data['schedule_id'] ?? 0;
if (empty($scheduleId)) {
return fail('课程安排ID不能为空');
}
$service = new CourseScheduleService();
$result = $service->updateSchedule($scheduleId, $data);
if ($result['code'] == 1) {
return success($result['msg'], $result['data']);
} else {
return fail($result['msg']);
}
}
/**
* 删除课程安排
*/
public function deleteSchedule()
{
$scheduleId = $this->request->post('schedule_id', 0);
if (empty($scheduleId)) {
return fail('课程安排ID不能为空');
}
$service = new CourseScheduleService();
$result = $service->deleteSchedule($scheduleId);
if ($result['code'] == 1) {
return success($result['msg']);
} else {
return fail($result['msg']);
}
}
/**
* 获取场地列表
*/
public function getVenueList()
{
$data = $this->request->get();
$service = new CourseScheduleService();
return success('获取成功', $service->getVenueList($data));
}
/**
* 获取场地可用时间
*/
public function getVenueAvailableTime()
{
$venueId = $this->request->get('venue_id', 0);
$date = $this->request->get('date', '');
if (empty($venueId)) {
return fail('场地ID不能为空');
}
if (empty($date)) {
return fail('日期不能为空');
}
$service = new CourseScheduleService();
return success('获取成功', $service->getVenueAvailableTime($venueId, $date));
}
/**
* 检查教练时间冲突
*/
public function checkCoachConflict()
{
$data = $this->request->get();
$service = new CourseScheduleService();
return success('检查完成', $service->checkCoachConflict($data));
}
/**
* 获取课程安排统计
*/
public function getScheduleStatistics()
{
$data = $this->request->get();
$service = new CourseScheduleService();
return success('获取成功', $service->getScheduleStatistics($data));
}
/**
* 学员加入课程安排
*/
public function joinSchedule()
{
$data = $this->request->post();
$service = new CourseScheduleService();
$result = $service->joinSchedule($data);
if ($result['code'] == 1) {
return success($result['msg'], $result['data']);
} else {
return fail($result['msg']);
}
}
/**
* 学员退出课程安排
*/
public function leaveSchedule()
{
$data = $this->request->post();
$service = new CourseScheduleService();
$result = $service->leaveSchedule($data);
if ($result['code'] == 1) {
return success($result['msg']);
} else {
return fail($result['msg']);
}
}
/**
* 升级等待位学员为正式学员
*/
public function upgradeStudentSchedule()
{
$data = $this->request->post();
// 验证必要参数
if (empty($data['resources_id']) || empty($data['schedule_id'])) {
return fail('参数不完整');
}
if (empty($data['from_schedule_type']) || empty($data['to_schedule_type'])) {
return fail('升级类型参数不完整');
}
$service = new CourseScheduleService();
$result = $service->upgradeStudentSchedule($data);
if ($result['code'] == 1) {
return success($result['msg'], $result['data'] ?? []);
} else {
return fail($result['msg']);
}
}
/**
* 获取筛选选项(教练、课程、班级等)
*/
public function getFilterOptions()
{
$data = $this->request->get();
$service = new CourseScheduleService();
return success('获取成功', $service->getFilterOptions($data));
}
}