# encoding: utf-8
from __future__ import absolute_import, unicode_literals
import datetime
from optionaldict import optionaldict
from .base import BaseAPI
[文档]class HuDong(BaseAPI):
"""
互动
"""
API_BASE_URL = 'https://hudong.baijiayun.com'
[文档] def interact_info_get_interact_list(
self,
room_id,
type,
page=1,
page_size=20,
begin_time=None,
end_time=None,
):
"""
签到汇总数据
:param room_id: 教室id
:param type: 类型
:param page: 页数
:param page_size: 每页数据条数
:param begin_time: 开始时间
:param end_time: 结束时间
"""
if isinstance(begin_time, datetime.datetime):
begin_time = begin_time.strftime('%Y-%m-%d %H:%M:%S')
if isinstance(end_time, datetime.datetime):
end_time = end_time.strftime('%Y-%m-%d %H:%M:%S')
return self._post(
'/openapi/interact_info/getInteractList',
optionaldict({
'partner_id': self.partner_id,
'room_id': room_id,
'type': type,
'page': page,
'page_size': page_size,
'begin_time': begin_time,
'end_time': end_time,
}),
)
[文档] def interact_info_get_interact_detail(
self,
room_id,
type,
page=1,
page_size=20,
begin_time=None,
end_time=None,
):
"""
签到明细数据
:param room_id: 教室id
:param type: 类型
:param page: 页数
:param page_size: 每页数据条数
:param begin_time: 开始时间
:param end_time: 结束时间
"""
if isinstance(begin_time, datetime.datetime):
begin_time = begin_time.strftime('%Y-%m-%d %H:%M:%S')
if isinstance(end_time, datetime.datetime):
end_time = end_time.strftime('%Y-%m-%d %H:%M:%S')
return self._post(
'/openapi/interact_info/getInteractDetail',
optionaldict({
'partner_id': self.partner_id,
'room_id': room_id,
'type': type,
'page': page,
'page_size': page_size,
'begin_time': begin_time,
'end_time': end_time,
}),
)
[文档] def interact_data_get_class_vote_data(
self,
room_id,
type=None,
sub_type=None,
date=None,
page=1,
page_size=20,
):
"""
获取班级投票数据
:param room_id: 教室id
:param type: 题型
:param sub_type: 题目类型
:param date: 日期,格式类似于:2019-10-10
:param page: 页数
:param page_size: 每页数据条数
"""
if isinstance(date, datetime.date):
date = date.strftime('%Y-%m-%d')
return self._post(
'/openapi/interact_data/getClassVoteData',
optionaldict({
'partner_id': self.partner_id,
'room_id': room_id,
'type': type,
'sub_type': sub_type,
'date': date,
'page': page,
'page_size': page_size,
}),
)
[文档] def interact_data_get_red_package_data(
self,
room_id,
type=None,
date=None,
page=1,
page_size=20,
):
"""
获取班级红包数据
:param room_id: 教室id
:param type: 红包类型
:param date: 日期 格式类似于:2019-10-10
:param page: 页数
:param page_size: 每页数据条数
"""
if isinstance(date, datetime.date):
date = date.strftime('%Y-%m-%d')
return self._post(
'/openapi/interact_data/getRedPackageData',
optionaldict({
'partner_id': self.partner_id,
'room_id': room_id,
'type': type,
'date': date,
'page': page,
'page_size': page_size,
}),
)
[文档] def interact_data_get_random_ask_data(
self,
room_id,
type=None,
date=None,
page=1,
page_size=20,
):
"""
获取班级随机点名数据
:param room_id: 教室id
:param type: 类型
:param date: 日期 格式类似于:2019-10-10
:param page: 页数
:param page_size: 每页数据条数
"""
if isinstance(date, datetime.date):
date = date.strftime('%Y-%m-%d')
return self._post(
'/openapi/interact_data/getRandomAskData',
optionaldict({
'partner_id': self.partner_id,
'room_id': room_id,
'type': type,
'date': date,
'page': page,
'page_size': page_size,
}),
)
[文档] def interact_data_get_ai_user_count_data(
self,
room_id,
date=None,
page=1,
page_size=20,
):
"""
获取AI班级数人数列表
:param room_id: 教室id
:param date: 日期 格式类似于:2019-10-10
:param page: 页数
:param page_size: 每页数据条数
"""
if isinstance(date, datetime.date):
date = date.strftime('%Y-%m-%d')
return self._post(
'/openapi/interact_data/getAiUserCountData',
optionaldict({
'partner_id': self.partner_id,
'room_id': room_id,
'date': date,
'page': page,
'page_size': page_size,
}),
)
[文档] def interact_data_save(
self,
assist_teacher_id,
assist_teacher_name,
assist_teacher_mobile,
class_id,
class_name,
student_list,
origin,
):
"""
双师人员数据保存
客户使用的新排课系统,数据接入到双师系统中
:param assist_teacher_id: 客户助教id
:param assist_teacher_name: 助教姓名
:param assist_teacher_mobile: 助教电话
:param class_id: 客户班级 id
:param class_name: 班级名称
:param student_list: 学生明细内容
:param origin: huatu
"""
return self._post(
'/openapi/interact_data/save',
optionaldict({
'partner_id': self.partner_id,
'assist_teacher_id': assist_teacher_id,
'assist_teacher_name': assist_teacher_name,
'assist_teacher_mobile': assist_teacher_mobile,
'class_id': class_id,
'class_name': class_name,
'student_list': student_list,
'origin': origin,
}),
)
[文档] def interact_data_get_checkin_data(
self,
checkin_id,
):
"""
根据签到id,获取签到信息
根据checkin_id,获取签到明细数据
:param checkin_id: 签到id
"""
return self._post(
'/openapi/interact_data/getCheckinData',
optionaldict({
'partner_id': self.partner_id,
'checkin_id': checkin_id,
}),
)
[文档] def interact_data_delete(
self,
class_ids,
):
"""
删除班级、助教、学生信息
根据 class_id,可以删除跟班级关联的学生、老师和班级信息
:param class_ids: 班级 id
"""
return self._post(
'/openapi/interact_data/delete',
optionaldict({
'partner_id': self.partner_id,
'class_ids': class_ids,
}),
result_processor=lambda x: x['result']
)
[文档] def interact_data_list(
self,
class_id,
):
"""
获取班级、助教、学生信息列表
根据class_id, 获取班级,和关联班级的学生、老师
:param class_id: 班级 id
"""
return self._post(
'/openapi/interact_data/list',
optionaldict({
'partner_id': self.partner_id,
'class_id': class_id,
}),
)
[文档] def teacher_save(
self,
teacher_id,
teacher_name,
teacher_mobile,
role,
):
"""
老师添加、修改接口
增加和修改老师信息
:param teacher_id: 客户老师id
:param teacher_name: 老师姓名
:param teacher_mobile: 老师电话
:param role: 老师角色
"""
return self._post(
'/openapi/teacher/save',
optionaldict({
'partner_id': self.partner_id,
'teacher_id': teacher_id,
'teacher_name': teacher_name,
'teacher_mobile': teacher_mobile,
'role': role,
}),
)
[文档] def teacher_delete(
self,
teacher_id,
role,
):
"""
老师删除接口
根据teacher_id,删除老师信息
:param teacher_id: 第三方老师id
:param role: 老师角色
"""
return self._post(
'/openapi/teacher/delete',
optionaldict({
'partner_id': self.partner_id,
'teacher_id': teacher_id,
'role': role,
}),
)
[文档] def teacher_list(
self,
role,
page,
page_size,
):
"""
获取老师信息接口
获取老师列表
:param role: 老师角色
:param page: 页码
:param page_size: 每页条数
"""
return self._post(
'/openapi/teacher/list',
optionaldict({
'partner_id': self.partner_id,
'role': role,
'page': page,
'page_size': page_size,
}),
)
[文档] def interact_data_update_callback_url(
self,
callback_url,
):
"""
修改回调地址
:param callback_url: 回调地址
"""
return self._post(
'/openapi/interact_data/updateCallbackUrl',
optionaldict({
'partner_id': self.partner_id,
'callback_url': callback_url,
}),
)