Ejemplo n.º 1
0
def get_user_info_by_xid(xid_list):
    edu_config = constants.MYSQL_EDU
    mysql_edu = MyDB(edu_config)
    # xid = ','.join(["'%s'" % str(xid) for xid in xid_list])
    data = list()
    for xid in xid_list:
        sql = "SELECT car.id, car.uid, car.map_id, car.map_type, car.course_id, \
               c.course_name, car.auth_status, car.auth_from, car.xid, s.mobile \
               FROM (course_auth_record car INNER JOIN student s ON car.uid = s.uid) \
               INNER JOIN course c ON car.course_id = c.course_id \
               WHERE xid = '%s'" % xid
        result = mysql_edu.execQuery(sql)
        if result:
            # map_type与uid对应的关联ID类型判断
            if result[3] == 1:
                map_type = "union_id"
            elif result[3] == 2:
                map_type = "uid"
            else:
                map_type = str(result[3])
            # auth_status授权状态判断
            if result[6] == 0:
                auth_status = "未完成"
            elif result[6] == 1:
                auth_status = "已完成"
            elif result[6] == 2:
                auth_status = "已取消"
            else:
                auth_status = str(result[6])
            # auth_status授权状态判断
            if result[7] == 1:
                auth_from = "CRM调用的微信授权"
            elif result[7] == 2:
                auth_from = "app或官网自然流量"
            elif result[7] == 3:
                auth_from = "小课授权"
            elif result[7] == 4:
                auth_from = "企业授权"
            else:
                auth_from = str(result[7])
            record_info = {
                'record_id': result[0],
                'uid': result[1],
                'map_id': result[2],
                'map_type': map_type,
                'course_id': result[4],
                'course_name': result[5],
                'auth_status': auth_status,
                'auth_from': auth_from,
                'xid': result[8],
                'mobile': result[9],
            }
        else:
            record_info = {
                'xid': xid,
                'mobile': '',
            }
        data.append(record_info)
    mysql_edu.closeDB()
    return data
Ejemplo n.º 2
0
def get_live_lesson_yesterday():
    day0 = datetime.date.today() - datetime.timedelta(1)
    day1 = datetime.date.today()
    time0 = int(time.mktime(time.strptime(str(day0), "%Y-%m-%d")))
    time1 = int(time.mktime(time.strptime(str(day1), "%Y-%m-%d")))
    edu_config = constants.MYSQL_EDU
    mysql_edu = MyDB(edu_config)
    sql = "select course_id,content_id,teacher_uid,start_time,callback_key \
            from live_lesson \
            where `start_time` between '%d' and '%d' and live_vendor = 1 \
            order by start_time" % (time0, time1)
    result = mysql_edu.execQuery(sql)
    x = 5
    lesson_list = [result[i:i + x] for i in range(0, len(result), x)]
    data = list()
    for lesson in lesson_list:
        course_id, content_id, teacher_uid, start_time, callback_key = lesson
        sql = "select course_name,school_name \
                from course co inner join school sc on co.school_id = sc.school_id \
                where `course_id` = '%d'" % course_id
        course_name, school_name = mysql_edu.execQuery(sql)
        sql = "select uid from course_auth_record where `course_id` = '%d'" % course_id
        list1 = mysql_edu.execQuery(sql)
        sql = "select student_uid from course_student where `course_id` = '%d'" % course_id
        list2 = mysql_edu.execQuery(sql)
        list3 = [x for x in list1 if x in list2]
        student_number = len(list1 + list2) - len(list3)
        sql = "select content_title from content where `content_id` = '%d'" % content_id
        res = mysql_edu.execQuery(sql)
        if len(res) == 0:
            continue
        content_title = res[0]
        sql = "SELECT count(*) FROM content_study_progress WHERE content_id = '%d' AND content_type = 1" % content_id
        real_number = mysql_edu.execQuery(sql)[0]
        if student_number == 0:
            class_rate = "0%%"
        else:
            class_rate = "%.2f%%" % ((real_number / student_number) * 100)
        start_time = time.strftime("%Y-%m-%d %H:%M:%S",
                                   time.localtime(start_time))
        class_info = {
            'course_name': course_name,
            'content_title': content_title,
            'start_time': start_time,
            'school_name': school_name,
            'student_number': student_number,
            'real_number': real_number,
            'class_rate': class_rate,
        }
        data.append(class_info)
    mysql_edu.closeDB()
    return data
Ejemplo n.º 3
0
def get_live_lesson_today():
    day1 = datetime.date.today()
    day2 = datetime.date.today() + datetime.timedelta(1)
    time1 = int(time.mktime(time.strptime(str(day1), "%Y-%m-%d")))
    time2 = int(time.mktime(time.strptime(str(day2), "%Y-%m-%d")))
    edu_config = constants.MYSQL_EDU
    mysql_edu = MyDB(edu_config)
    sql = "select course_id,content_id,teacher_uid,start_time,callback_key \
            from live_lesson \
            where `start_time` between '%d' and '%d' and live_vendor = 1 \
            order by start_time" % (time1, time2)
    result = mysql_edu.execQuery(sql)
    x = 5
    lesson_list = [result[i:i + x] for i in range(0, len(result), x)]
    data = list()
    for lesson in lesson_list:
        course_id, content_id, teacher_uid, start_time, callback_key = lesson
        sql = "select course_name,school_name \
                from course co inner join school sc on co.school_id = sc.school_id \
                where `course_id` = '%d'" % course_id
        course_name, school_name = mysql_edu.execQuery(sql)
        sql = "select uid from course_auth_record where `course_id` = '%d'" % course_id
        list1 = mysql_edu.execQuery(sql)
        sql = "select student_uid from course_student where `course_id` = '%d'" % course_id
        list2 = mysql_edu.execQuery(sql)
        list3 = [x for x in list1 if x in list2]
        student_number = len(list1 + list2) - len(list3)
        sql = "select content_title from content where `content_id` = '%d'" % content_id
        content_title = mysql_edu.execQuery(sql)[0]
        start_time = time.strftime("%Y-%m-%d %H:%M:%S",
                                   time.localtime(start_time))
        sql = "select nickname,realname,mobile from manager where `uid` = '%d'" % teacher_uid
        nickname, realname, mobile = mysql_edu.execQuery(sql)
        teacher_info = "%d/%s/%s/%s" % (teacher_uid, nickname, realname,
                                        mobile)
        class_info = {
            'course_name': course_name,
            'content_title': content_title,
            'start_time': start_time,
            'school_name': school_name,
            'student_number': student_number,
            'callback_key': callback_key,
            'teacher_info': teacher_info,
        }
        data.append(class_info)
    mysql_edu.closeDB()
    return data
from configs import constants
from lib.mydb import MyDB
from lib import write_excel
import time
import datetime

day0 = datetime.date.today() - datetime.timedelta(1)
day1 = datetime.date.today()
# day0 = "2020-01-04"
# day1 = "2020-01-05"
time0 = int(time.mktime(time.strptime(str(day0), "%Y-%m-%d")))
time1 = int(time.mktime(time.strptime(str(day1), "%Y-%m-%d")))
# print(time1,time2)
edu_config = constants.MYSQL_EDU
mysql_edu = MyDB(edu_config)
sql = "select course_id,content_id,teacher_uid,start_time,callback_key, course_type \
        from live_lesson \
        where `start_time` live_vendor in (1,5) and disabled = 0 and between '%d' and '%d' \
        order by start_time, live_id" % (time0, time1)
result = mysql_edu.execQuery(sql)
x = 6
lesson_list = [result[i:i + x] for i in range(0, len(result), x)]
# print(lesson_list)
row0 = [
    "课程名称", "直播名称", "课程类型", "开课时间", "学院", "报名人数", "上课人数", "到课率", "异常反馈人数",
    "跟课人", "异常原因", "直播服务可靠性"
]
values = list()
values.append(row0)
for lesson in lesson_list:
Ejemplo n.º 5
0
def get_live_lesson_yesterday():
    """昨日hky直播课程数据,1800s缓存"""
    if not MyRedis().check_redis_lock('glly', 'lock', 120):
        return False
    day0 = datetime.date.today() - datetime.timedelta(1)
    day1 = datetime.date.today()
    time0 = int(time.mktime(time.strptime(str(day0), "%Y-%m-%d")))
    time1 = int(time.mktime(time.strptime(str(day1), "%Y-%m-%d")))
    edu_config = constants.MYSQL_EDU
    mysql_edu = MyDB(edu_config)
    sql = "select course_id,content_id,teacher_uid,start_time,callback_key,course_type \
            from live_lesson \
            where live_vendor = 5 and disabled = 0 and `start_time` between '%d' and '%d' \
            order by start_time, live_id" % (time0, time1)
    result = mysql_edu.execQuery(sql)
    x = 6
    lesson_list = [result[i:i + x] for i in range(0, len(result), x)]
    data = list()
    for lesson in lesson_list:
        course_id, content_id, teacher_uid, start_time, callback_key, course_type = lesson
        if course_type == 1:
            course_type = "正价课"
        elif course_type == 2:
            course_type = "公开课"
        elif course_type == 3:
            course_type = "微课"
        else:
            course_type = "直播未知类型%d" % course_type
        sql = "select course_name,school_name \
                from course co inner join school sc on co.school_id = sc.school_id \
                where `course_id` = '%d'" % course_id
        course_name, school_name = mysql_edu.execQuery(sql)
        if school_name == "测试学院":
            continue
        sql = "select uid from course_auth_record where `course_id` = '%d'" % course_id
        list1 = mysql_edu.execQuery(sql)
        sql = "select student_uid from course_student where `course_id` = '%d'" % course_id
        list2 = mysql_edu.execQuery(sql)
        list3 = [x for x in list1 if x in list2]
        student_number = len(list1 + list2) - len(list3)
        sql = "select content_title from content where `content_id` = '%d'" % content_id
        try:
            content_title = mysql_edu.execQuery(sql)[0]
        except:
            content_title = ""
        sql = "SELECT count(*) FROM content_study_progress WHERE content_id = '%d' AND content_type = 1" % content_id
        real_number = mysql_edu.execQuery(sql)[0]
        if student_number == 0:
            class_rate = "0%%"
        else:
            class_rate = "%.2f%%" % ((real_number / student_number) * 100)
        start_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(start_time))
        class_info = {
            'course_name': course_name,
            'content_title': content_title,
            'course_type': course_type,
            'start_time': start_time,
            'school_name': school_name,
            'callback_key': callback_key,
            'student_number': student_number,
            'real_number': real_number,
            'class_rate': class_rate,
        }
        data.append(class_info)
    mysql_edu.closeDB()
    return data
Ejemplo n.º 6
0
def get_live_lesson_today():
    """当日hky直播课程信息,1800s缓存"""
    if not MyRedis().check_redis_lock('gllt', 'lock', 120):
        return False
    day1 = datetime.date.today()
    day2 = datetime.date.today() + datetime.timedelta(1)
    time1 = int(time.mktime(time.strptime(str(day1), "%Y-%m-%d")))
    time2 = int(time.mktime(time.strptime(str(day2), "%Y-%m-%d")))
    edu_config = constants.MYSQL_EDU
    mysql_edu = MyDB(edu_config)
    sql = "select course_id,content_id,teacher_uid,start_time,callback_key,course_type \
            from live_lesson \
            where live_vendor = 5 and disabled = 0 and `start_time` between '%d' and '%d' \
            order by start_time, live_id" % (time1, time2)
    result = mysql_edu.execQuery(sql)
    x = 6
    lesson_list = [result[i:i + x] for i in range(0, len(result), x)]
    data = list()
    for lesson in lesson_list:
        course_id, content_id, teacher_uid, start_time, callback_key, course_type = lesson
        if course_type == 1:
            course_type = "正价课"
        elif course_type == 2:
            course_type = "公开课"
        elif course_type == 3:
            course_type = "微课"
        else:
            course_type = "直播未知类型%d" % course_type
        sql = "select course_name,school_name \
                from course co inner join school sc on co.school_id = sc.school_id \
                where `course_id` = '%d'" % course_id
        course_name, school_name = mysql_edu.execQuery(sql)
        if school_name == "测试学院":
            continue
        sql = "select uid from course_auth_record where `course_id` = '%d'" % course_id
        list1 = mysql_edu.execQuery(sql)
        sql = "select student_uid from course_student where `course_id` = '%d'" % course_id
        list2 = mysql_edu.execQuery(sql)
        list3 = [x for x in list1 if x in list2]
        student_number = len(list1 + list2) - len(list3)
        sql = "select content_title from content where `content_id` = '%d'" % content_id
        try:
            content_title = mysql_edu.execQuery(sql)[0]
        except:
            content_title = ""
        start_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(start_time))
        sql = "select nickname,realname,mobile from manager where `uid` = '%d'" % teacher_uid
        nickname, realname, mobile = mysql_edu.execQuery(sql)
        teacher_info = "%d|%s|%s|%s" % (teacher_uid, nickname, realname, mobile)
        class_info = {
            'course_name': course_name,
            'content_title': content_title,
            'course_type': course_type,
            'start_time': start_time,
            'school_name': school_name,
            'student_number': student_number,
            'callback_key': callback_key,
            'teacher_info': teacher_info,
        }
        data.append(class_info)
    mysql_edu.closeDB()
    return data
Ejemplo n.º 7
0
def get_course_auth_record_by_mobile(mobile):
    edu_config = constants.MYSQL_EDU
    mysql_edu = MyDB(edu_config)
    sql = "SELECT car.id, car.uid, car.map_id, car.map_type, car.course_id, c.course_name, \
           car.auth_status, car.xid, car.xtype, car.auth_from, car.created_at, car.updated_at \
           FROM course_auth_record car INNER JOIN course c ON car.course_id = c.course_id \
           WHERE uid = (SELECT uid FROM student WHERE mobile = %d) \
           ORDER BY id DESC" % int(mobile)
    result = mysql_edu.execQuery(sql)
    x = 12
    record_list = [result[i:i + x] for i in range(0, len(result), x)]
    data = list()
    for record in record_list:
        # map_type与uid对应的关联ID类型判断
        if record[3] == 1:
            map_type = "union_id"
        elif record[3] == 2:
            map_type = "uid"
        else:
            map_type = str(record[3])
        # auth_status授权状态判断
        if record[6] == 0:
            auth_status = "未完成"
        elif record[6] == 1:
            auth_status = "已完成"
        elif record[6] == 2:
            auth_status = "已取消"
        else:
            auth_status = str(record[6])
        # xtype授权的xid对应类型判断
        if record[8] == 1:
            xtype = "订单ID"
        else:
            xtype = str(record[8])
        # auth_status授权状态判断
        if record[9] == 1:
            auth_from = "CRM调用的微信授权"
        elif record[9] == 2:
            auth_from = "app或官网自然流量"
        elif record[9] == 3:
            auth_from = "小课授权"
        elif record[9] == 4:
            auth_from = "企业授权"
        else:
            auth_from = str(record[9])
        record_info = {
            'record_id': record[0],
            'uid': record[1],
            'map_id': record[2],
            'map_type': map_type,
            'course_id': record[4],
            'course_name': record[5],
            'auth_status': auth_status,
            'xid': record[7],
            'xtype': xtype,
            'auth_from': auth_from,
            'created_at': record[10],
            'updated_at': record[11],
        }
        data.append(record_info)
    mysql_edu.closeDB()
    return data
Ejemplo n.º 8
0
def get_course_info_by_mobile(mobile):
    edu_config = constants.MYSQL_EDU
    mysql_edu = MyDB(edu_config)
    sql = "SELECT cs.student_uid, cs.auth_type, cs.expired_at, cs.created_at, \
           c.course_id, c.course_name, c.school_id, c.type, c.expired_info, c.updated_at \
           FROM course_student cs INNER JOIN course c ON cs.course_id = c.course_id \
           WHERE cs.student_uid = (SELECT uid FROM student WHERE mobile = %d) \
           ORDER BY c.course_id DESC" % int(mobile)
    result = mysql_edu.execQuery(sql)
    x = 10
    course_list = [result[i:i + x] for i in range(0, len(result), x)]
    data = list()
    for course in course_list:
        # auth_type授权类型判断
        if course[1] == 1:
            auth_type = "后台授权"
        elif course[1] == 2:
            auth_type = "CRM授权"
        elif course[1] == 3:
            auth_type = "用户报名"
        elif course[1] == 4:
            auth_type = "星球"
        elif course[1] == 5:
            auth_type = "企业授权"
        elif course[1] == 9:
            auth_type = "第三方合作API接口"
        else:
            auth_type = str(course[1])
        # course_type课程类型判断
        if course[7] == 1:
            course_type = "大课"
        elif course[7] == 2:
            course_type = "宇宙公开课"
        elif course[7] == 3:
            course_type = "微课"
        elif course[7] == 4:
            course_type = "小课"
        elif course[7] == 5:
            course_type = "就业课"
        elif course[7] == 6:
            course_type = "内训课"
        elif course[7] == 7:
            course_type = "线下课"
        elif course[7] == 8:
            course_type = "普通公开课"
        elif course[7] == 9:
            course_type = "体验课"
        else:
            course_type = str(course[7])
        course_info = {
            'student_uid': course[0],
            'auth_type': auth_type,
            'expired_at': course[2],
            'created_at': course[3],
            'course_id': course[4],
            'course_name': course[5],
            'school_id': course[6],
            'course_type': course_type,
            'expired_info': course[8],
            'updated_at': course[9],
        }
        data.append(course_info)
    mysql_edu.closeDB()
    return data
Ejemplo n.º 9
0
def get_teacher_info_by_live_id(live_id):
    edu_config = constants.MYSQL_EDU
    mysql_edu = MyDB(edu_config)
    sql = "SELECT live_id,content_id,course_type,teacher_uid, real_start_time,real_end_time,\
          live_vendor,`status`, disabled, start_time, end_time \
          FROM live_lesson \
          WHERE callback_key = '%s'" % live_id
    result = mysql_edu.execQuery(sql)
    course_info = {}
    if result:
        # course_type课程类型判断
        if result[2] == 1:
            course_type = "正价课"
        elif result[2] == 2:
            course_type = "公开课"
        elif result[2] == 3:
            course_type = "微课"
        else:
            course_type = str(result[2])
        # live_vender直播类型判断
        if result[6] == 1:
            live_vendor = "CCLive"
        elif result[6] == 2:
            live_vendor = "classIn互动"
        elif result[6] == 3:
            live_vendor = "classin live直播"
        elif result[6] == 4:
            live_vendor = "CCLive+慧科云IM"
        elif result[6] == 5:
            live_vendor = "慧科云直播"
        else:
            live_vendor = str(result[6])
        # status直播课状态判断
        if result[7] == 0:
            status = "未开始"
        elif result[7] == 1:
            status = "直播中"
        elif result[7] == 2:
            status = "直播结束"
        elif result[7] == 3:
            status = "已生成回放"
        elif result[7] == 4:
            status = "回放异常"
        elif result[7] == 5:
            status = "备课中"
        else:
            status = str(result[7])
        # disabled判断是否为hky备课
        if result[8] == 0:
            disabled = "直播教室"
        elif result[8] == 1:
            disabled = "备课教室"
        else:
            disabled = str(result[8])
        course_sql = "SELECT cou.course_name,con.content_title \
                     FROM course cou INNER JOIN content con ON cou.course_id = con.course_id \
                     WHERE con.content_id = %d" % result[1]
        course = mysql_edu.execQuery(course_sql)
        course_info = {
            'live_id': result[0],
            'callback_key': live_id,
            'course_name': course[0],
            'course_type': course_type,
            'content_title': course[1],
            'live_vendor': live_vendor,
            'status': status,
            'disabled': disabled,
            'start_time': time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(result[9])),
            'end_time': time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(result[10])),
            'real_start_time': '未开始' if result[4] == 0 else time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(result[4])),
            'real_end_time': '未结束' if result[5] == 0 else time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(result[5])),
        }
        teacher_info = get_manager_info(mysql_edu, [result[3]], '老师')
        lla_sql = "SELECT assistant_uid FROM live_lesson_assistant WHERE live_id = %d" % result[0]
        lla_result = mysql_edu.execQuery(lla_sql)
        assistant_list = get_manager_info(mysql_edu, lla_result, '助教')
        teacher_info.extend(assistant_list)
        llct_sql = "SELECT class_teacher_uid FROM live_lesson_class_teacher WHERE live_id = %d" % result[0]
        llct_result = mysql_edu.execQuery(llct_sql)
        class_teacher = get_manager_info(mysql_edu, llct_result, '班主任')
        teacher_info.extend(class_teacher)
        course_info['teacher_info'] = teacher_info
    mysql_edu.closeDB()
    return course_info
Ejemplo n.º 10
0
from configs import constants
from lib.mydb import MyDB
from lib import write_excel
import time
import datetime

day1 = datetime.date.today()
day2 = datetime.date.today() + datetime.timedelta(1)
# day1 = "2019-12-29"
# day2 = "2019-12-30"
time1 = int(time.mktime(time.strptime(str(day1), "%Y-%m-%d")))
time2 = int(time.mktime(time.strptime(str(day2), "%Y-%m-%d")))
# print(time1, time2)
edu_config = constants.MYSQL_EDU
mysql_edu = MyDB(edu_config)
a = time.time()
sql = "select course_id,content_id,teacher_uid,start_time,callback_key,course_type \
        from live_lesson \
        where live_vendor = 5 and disabled = 0 and `start_time` between '%d' and '%d' \
        order by start_time, live_id" % (time1, time2)
result = mysql_edu.execQuery(sql)
b = time.time()
# print("查live_lesson %d" % (b - a))
x = 6
lesson_list = [result[i:i + x] for i in range(0, len(result), x)]
# print(lesson_list)
row0 = ["课程名称", "直播名称", "课程类型", "开课时间", "学院", "报名人数", "room_id", "讲师信息"]
values = list()
values.append(row0)
for lesson in lesson_list: