Browse Source

修改接口

master
王泽彦 9 months ago
parent
commit
44b785686c
  1. 9
      niucloud/app/api/controller/apiController/Course.php
  2. 2
      niucloud/app/api/route/route.php
  3. 3
      niucloud/app/command/TestCommand.php
  4. 14
      niucloud/app/dict/schedule/schedule.php
  5. 43
      niucloud/app/job/schedule/HandleCourseSchedule.php
  6. 2
      niucloud/app/job/transfer/schedule/CourseScheduleJob.php
  7. 52
      niucloud/app/service/api/apiService/CourseService.php

9
niucloud/app/api/controller/apiController/Course.php

@ -114,5 +114,14 @@ class Course extends BaseApiService
return success((new CourseService())->schedule_list($data)); return success((new CourseService())->schedule_list($data));
} }
public function schedule_del(Request $request)
{
$data = $this->request->params([
["id", ''],
["resources_id", ''],
["remark", '']
]);
return (new CourseService())->schedule_del($data);
}
} }

2
niucloud/app/api/route/route.php

@ -341,6 +341,8 @@ Route::group(function () {
Route::get('course/scheduleList', 'apiController.course/schedule_list'); Route::get('course/scheduleList', 'apiController.course/schedule_list');
Route::post('course/schedule_del', 'apiController.course/schedule_del');
Route::get('per_list_call_up', 'member.Member/list_call_up'); Route::get('per_list_call_up', 'member.Member/list_call_up');
Route::post('per_update_call_up', 'member.Member/update_call_up'); Route::post('per_update_call_up', 'member.Member/update_call_up');

3
niucloud/app/command/TestCommand.php

@ -3,6 +3,7 @@ declare (strict_types = 1);
namespace app\command; namespace app\command;
use app\job\transfer\schedule\CourseScheduleJob;
use app\job\transfer\schedule\ResourceAutoAllocation; use app\job\transfer\schedule\ResourceAutoAllocation;
use think\console\Command; use think\console\Command;
use think\console\Input; use think\console\Input;
@ -22,7 +23,7 @@ class TestCommand extends Command
protected function execute(Input $input, Output $output) protected function execute(Input $input, Output $output)
{ {
// 指令输出 // 指令输出
$obj = new ResourceAutoAllocation(); $obj = new CourseScheduleJob();
$obj->doJob(); $obj->doJob();
$output->writeln('testcommand'); $output->writeln('testcommand');
} }

14
niucloud/app/dict/schedule/schedule.php

@ -40,5 +40,17 @@ return [
'class' => 'app\job\transfer\schedule\PerformanceCalculation', 'class' => 'app\job\transfer\schedule\PerformanceCalculation',
'function' => '' 'function' => ''
], ],
[
'key' => 'HandleCourseSchedule',
'name' => '处理课程状态和学员状态',
'desc' => '',
'time' => [
'type' => 'day',
'day' => 1,
'hour' => 0,
'min' => 5
],
'class' => 'app\job\schedule\HandleCourseSchedule',
'function' => ''
],
]; ];

43
niucloud/app/job/schedule/HandleCourseSchedule.php

@ -0,0 +1,43 @@
<?php
// +----------------------------------------------------------------------
// | Niucloud-admin 企业快速开发的多应用管理平台
// +----------------------------------------------------------------------
// | 官方网址:https://www.niucloud.com
// +----------------------------------------------------------------------
// | niucloud团队 版权所有 开源版本可自由商用
// +----------------------------------------------------------------------
// | Author: Niucloud Team
// +----------------------------------------------------------------------
namespace app\job\schedule;
use app\model\course_schedule\CourseSchedule;
use core\base\BaseJob;
use think\facade\Log;
/**
* 队列异步调用定时任务
*/
class HandleCourseSchedule extends BaseJob
{
public function doJob()
{
Log::write('课程状态自动化任务开始' . date('Y-m-d h:i:s'));
$this->handleCourseStatus();
return true;
}
private function handleCourseStatus()
{
$list = CourseSchedule::where('course_date','<',date('Y-m-d'))->select();
if (!empty($list)) {
foreach ($list as $item) {
CourseSchedule::update([
'status' => 'completed'
], [
'id' => $item['id']
]);
}
}
}
}

2
niucloud/app/job/transfer/schedule/CourseScheduleJob.php

@ -189,7 +189,7 @@ class CourseScheduleJob extends BaseJob
$newSchedule->auto_schedule = 1; $newSchedule->auto_schedule = 1;
// 复制其他所有字段(除了id和主键相关字段) // 复制其他所有字段(除了id和主键相关字段)
$attributes = $schedule->getAttributes(); $attributes = $schedule->toArray(); // 使用toArray()替代getAttributes()
foreach ($attributes as $key => $value) { foreach ($attributes as $key => $value) {
// 跳过id和主键相关字段 // 跳过id和主键相关字段
if ($key !== 'id' && $key !== 'course_date' && $key !== 'auto_schedule') { if ($key !== 'id' && $key !== 'course_date' && $key !== 'auto_schedule') {

52
niucloud/app/service/api/apiService/CourseService.php

@ -263,7 +263,8 @@ class CourseService extends BaseApiService
$query->select(); $query->select();
},'venue' => function($query) { },'venue' => function($query) {
$query->select(); $query->select();
},'campus','studentCourses'])->select()->toArray(); },'campus','studentCourses'])
->select()->toArray();
foreach ($list as $k => $v) { foreach ($list as $k => $v) {
$student = Db::name('person_course_schedule') $student = Db::name('person_course_schedule')
->alias('pcs') ->alias('pcs')
@ -307,12 +308,57 @@ class CourseService extends BaseApiService
$list = $personCourseSchedule $list = $personCourseSchedule
->alias('a') ->alias('a')
->join(['school_customer_resources' => 'b'],'a.resources_id = b.id','left') ->join(['school_customer_resources' => 'b'],'a.resources_id = b.id','left')
->join(['school_course_schedule' => 'c'],'c.id = a.schedule_id','left')
->where('a.schedule_id',$data['schedule_id']) ->where('a.schedule_id',$data['schedule_id'])
->field("b.name,a.status") ->field("b.name,a.status,a.person_type,c.campus_id,b.id as resources_id")
->select()->toArray(); ->select()
->toArray();
return $list; return $list;
} }
public function schedule_del(array $data)
{
$personCourseSchedule = new PersonCourseSchedule();
// 查询记录
$record = $personCourseSchedule->where([
'schedule_id' => $data['id'],
'resources_id' => $data['resources_id']
])->find();
if (!$record) {
return fail('未找到相关记录');
}
// 根据person_type执行不同操作
if ($record['person_type'] == 'customer_resource') {
// 如果是客户资源类型,直接删除记录
$personCourseSchedule->where([
'schedule_id' => $data['id'],
'resources_id' => $data['resources_id']
])->delete();
// 更新课程安排表的可用容量
$CourseSchedule = new CourseSchedule();
$CourseSchedule->where(['id' => $record['schedule_id']])->inc("available_capacity")->update();
return success('删除成功');
} else if ($record['person_type'] == 'student') {
// 如果是学生类型,更新状态为2并更新备注
$personCourseSchedule->where([
'id' => $data['id'],
'resources_id' => $data['resources_id']
])->update([
'status' => 2,
'remark' => $data['remark']
]);
return success('更新成功');
} else {
return fail('未知的人员类型');
}
}
} }

Loading…
Cancel
Save