TaskService.class.php
2.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<?php
/**
* Created by PhpStorm.
* User: liyifei2012it
* Date: 18/3/26
* Time: 17:00
*/
namespace Common\Service;
use Common\Common\Constant;
use Common\Common\Msg;
use Common\Model\CommonModel;
use Common\Model\TaskModel;
class TaskService extends AbstractService
{
// 构造方法
public function __construct()
{
$this->_d = new TaskModel();
parent::__construct();
}
/**
* 批量保存授课任务
* @author zhonglei
* @param array $teacher 讲师数据
* @param array $task_datas 任务数据
* @return bool
*/
public function batchSave($teacher, $task_datas)
{
$tasks_existed = $this->list_by_conds(['teacher_id' => $teacher['teacher_id']]);
$ids_delete = array_diff(array_column($tasks_existed, 'task_id'), array_column($task_datas, 'task_id'));
// 删除的任务
if (!empty($ids_delete)) {
$this->delete($ids_delete);
// 更新课程主表,解除关联关系
$model = new CommonModel('Article', 'oa_course_');
$model->update_by_conds(['teacher_task_id' => $ids_delete], ['teacher_task_id' => 0]);
}
foreach ($task_datas as $task_data) {
$task_id = $task_data['task_id'];
unset($task_data['task_id']);
// 新建
if ($task_id == 0) {
$task_data['teacher_id'] = $teacher['teacher_id'];
$task_data['task_id'] = $this->insert($task_data);
if ($teacher['teacher_type'] == Constant::TEACHER_TYPE_INSIDE && !empty($teacher['uid'])) {
$this->sendTaskNotice($teacher['uid'], $task_data);
}
// 编辑
} else {
$this->update($task_id, $task_data);
}
}
return true;
}
/**
* 发送任务通知
* @author zhonglei
* @param string $uid 用户ID
* @param array $task_data 任务数据
* @return void
*/
public function sendTaskNotice($uid, $task_data)
{
$url = oaUrl('Frontend/Index/Task/Index', ['task_id' => $task_data['task_id']]);
$start_time = rgmdate($task_data['start_time'], 'Y/m/d');
$end_time = rgmdate($task_data['end_time'], 'Y/m/d');
$desc = "任务名称:{$task_data['task_name']}\n";
$desc .= "任务时间:{$start_time} - {$end_time}\n";
$desc .= "授课指标:{$task_data['target']}课时";
$msg_data = [
[
'title' => '【讲师通知】您的授课任务有新安排!',
'description' => $desc,
'url' => $url,
]
];
$msgServ = &Msg::instance();
$msgServ->sendNews($uid, null, null, $msg_data);
}
}