$params['title'], 'type' => $params['type'], 'start_time' => $start_time, 'end_time' => $end_time, 'remind_type' => $params['remind_type'], 'remind_time' => $remind_time, 'remark' => $params['remark'] ?? '', 'admin_id' => $admin_id ]); Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } /** * @notes 编辑日程安排 * @param array $params * @return bool * @author likeadmin * @date 2024/05/23 11:53 */ public static function edit(array $params): bool { $start_time = strtotime($params['start_time']); $end_time = strtotime($params['end_time']); $remind_time = 0; if (isset($param['remind_type'])) { if($param['remind_type']==1){ $remind_time = $start_time-5*60; } if($param['remind_type']==2){ $remind_time = $start_time-15*60; } if($param['remind_type']==3){ $remind_time = $start_time-30*60; } if($param['remind_type']==4){ $remind_time = $start_time-60*60; } if($param['remind_type']==5){ $remind_time = $start_time-120*60; } if($param['remind_type']==6){ $remind_time = $start_time-1440*60; } } Db::startTrans(); try { OaPlan::where('id', $params['id'])->update([ 'title' => $params['title'], 'type' => $params['type'], 'start_time' => $start_time, 'end_time' => $end_time, 'remind_type' => $params['remind_type'], 'remind_time' => $remind_time, 'remark' => $params['remark'] ?? '' ]); Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } /** * @notes 删除日程安排 * @param array $params * @return bool * @author likeadmin * @date 2024/05/23 11:53 */ public static function delete(array $params): bool { return OaPlan::destroy($params['id']); } /** * @notes 获取日程安排详情 * @param $params * @return array * @author likeadmin * @date 2024/05/23 11:53 */ public static function detail($params): array { $data = OaPlan::findOrEmpty($params['id']); $data['type_text'] = $data->type_text; $data['remind_type_text'] = $data->remind_type_text; return $data->toArray(); } /** * @notes 获取日程安排日历 * @param $params * @return array * @author likeadmin * @date 2024/05/23 11:53 */ public static function calendar($params){ $where[] = [ ['admin_id','=',$params['admin_id']], ['start_time','>=',strtotime($params['start_time'])], ['end_time','<=',strtotime($params['end_time'])] ]; $data = OaPlan::where($where)->select()->toArray(); return $data; } }