addproject
This commit is contained in:
204
zhyy/library/CommonFun/handle_login.py
Normal file
204
zhyy/library/CommonFun/handle_login.py
Normal file
@@ -0,0 +1,204 @@
|
||||
# -*- coding:utf-8 -*-
|
||||
"""
|
||||
Author: qiaoxinjiu
|
||||
Email: qiaoxinjiu@sparkedu.com
|
||||
Create Date: 2022/05/08 5:58 下午
|
||||
"""
|
||||
import os
|
||||
from urllib import parse
|
||||
|
||||
from base_framework.public_tools import read_config
|
||||
import requests
|
||||
import sys
|
||||
import json
|
||||
|
||||
|
||||
class auth_login():
|
||||
def __init__(self):
|
||||
self.config_login_path = os.path.dirname(os.path.abspath(__file__))
|
||||
self.config_login_filePath = os.path.join(self.config_login_path, "../Config/team_config.ini")
|
||||
self.config_login_content = read_config.ReadConfig(filename=self.config_login_filePath)
|
||||
|
||||
def get_json_result(self, url, request_data=None, headers=None, send_way="GET"):
|
||||
"""
|
||||
# url: 测试的url
|
||||
# request_data: url请求时发送的数据
|
||||
# headers: url请求时发送的消息头
|
||||
# 功能:获取json格式的数据
|
||||
"""
|
||||
if send_way == "GET":
|
||||
response = requests.request(send_way, url, headers=headers, params=json.dumps(request_data))
|
||||
else:
|
||||
response = requests.request(send_way, url, headers=headers, data=json.dumps(request_data))
|
||||
try:
|
||||
response_data = json.loads(response.text)
|
||||
except:
|
||||
info = sys.exc_info()
|
||||
response_data = info[1], info[2]
|
||||
return response_data
|
||||
|
||||
def get_m_online_token(self):
|
||||
'''
|
||||
获取家长端线上登录的token
|
||||
:param username:
|
||||
:param password:
|
||||
:return:
|
||||
'''
|
||||
headers = {
|
||||
"Content-Type": "application/json;charset=UTF-8",
|
||||
"sso-client-id": "gmp"
|
||||
}
|
||||
get_login_info = eval(
|
||||
self.config_login_content.get_value(sections="m-userinfo", options="login_parent_info")) # 获取配置文件中的默认请求参数值
|
||||
get_url_info = eval(self.config_login_content.get_value(sections="m-userinfo", options="parent_url"))
|
||||
m_token = requests.post(url=get_url_info.get("login_url"), json=get_login_info, verify=False, headers=headers)
|
||||
if m_token.status_code == 200:
|
||||
token = m_token.json()
|
||||
token = token['data']['token']
|
||||
return token
|
||||
else:
|
||||
raise KeyError('获取 parent token失败!')
|
||||
|
||||
def get_student_online_token(self):
|
||||
'''
|
||||
获取学生端线上登录的token
|
||||
:param username:
|
||||
:param password:
|
||||
:return:
|
||||
'''
|
||||
headers = {
|
||||
"Content-Type": "application/json;charset=UTF-8",
|
||||
"sso-client-id": "gmp"
|
||||
}
|
||||
get_login_info = eval(
|
||||
self.config_login_content.get_value(sections="m-userinfo", options="login_student_info")) # 获取配置文件中的默认请求参数值
|
||||
get_url_info = eval(self.config_login_content.get_value(sections="m-userinfo", options="student_url"))
|
||||
m_token = requests.post(url=get_url_info.get("login_url"), json=get_login_info, verify=False, headers=headers)
|
||||
if m_token.status_code == 200:
|
||||
token = m_token.json()
|
||||
token = token['data']['token']
|
||||
return token
|
||||
else:
|
||||
raise KeyError('获取 parent token失败!')
|
||||
|
||||
def get_m_headers(self, m_token):
|
||||
'''
|
||||
获取请求的header
|
||||
:return:
|
||||
'''
|
||||
headers = {
|
||||
"Content-Type": "application/json;charset=UTF-8",
|
||||
"sso-client-id": "gmp",
|
||||
"user-token": m_token,
|
||||
}
|
||||
return headers
|
||||
|
||||
def get_parent_config_info(self, url_name):
|
||||
'''
|
||||
获取家长端配置文件中的url信息
|
||||
:return:
|
||||
'''
|
||||
get_parent_url_info = eval(self.config_login_content.get_value(sections="m-userinfo", options="parent_url"))
|
||||
get_realm_name = eval(self.config_login_content.get_value(sections="m-userinfo", options="realm_name"))
|
||||
get_url = get_realm_name.get("parent_api") + get_parent_url_info.get(url_name)
|
||||
return get_url
|
||||
|
||||
def get_visaprk_parent_config_info(self, url_name):
|
||||
'''
|
||||
获取海外家长端配置文件中的url信息
|
||||
:return:
|
||||
'''
|
||||
get_parent_url_info = eval(self.config_login_content.get_value(sections="m-userinfo", options="parent_course_url"))
|
||||
get_realm_name = eval(self.config_login_content.get_value(sections="m-userinfo", options="realm_name"))
|
||||
get_url = get_realm_name.get("parent_vispark_api") + get_parent_url_info.get(url_name)
|
||||
return get_url
|
||||
|
||||
def get_student_config_info(self, url_name):
|
||||
'''
|
||||
获取学生端配置文件中的url信息
|
||||
:return:
|
||||
'''
|
||||
get_student_url_info = eval(self.config_login_content.get_value(sections="m-userinfo", options="student_url"))
|
||||
get_realm_name = eval(self.config_login_content.get_value(sections="m-userinfo", options="realm_name"))
|
||||
get_url = get_realm_name.get("student_api") + get_student_url_info.get(url_name)
|
||||
return get_url
|
||||
|
||||
|
||||
class m_parent():
|
||||
def __init__(self):
|
||||
self.get_url = auth_login()
|
||||
|
||||
def get_parentPayEditionPage(self):
|
||||
'''
|
||||
首页轮播页面展示
|
||||
:return:
|
||||
'''
|
||||
|
||||
m_token = self.get_url.get_m_online_token()
|
||||
headers = self.get_url.get_m_headers(m_token=m_token)
|
||||
url = self.get_url.get_parent_config_info(url_name="parentPayEditionPage_url")
|
||||
get_response_data = self.get_url.get_json_result(url=url, headers=headers, request_data={"terminalType": 5})
|
||||
return get_response_data
|
||||
|
||||
def get_recommendedCourse(self):
|
||||
'''
|
||||
家长端获取课程信息
|
||||
:return:
|
||||
'''
|
||||
m_token = self.get_url.get_m_online_token()
|
||||
headers = self.get_url.get_m_headers(m_token=m_token)
|
||||
url = self.get_url.get_parent_config_info(url_name="recommendedCourse_url")
|
||||
get_response_data = self.get_url.get_json_result(url=url, headers=headers)
|
||||
return get_response_data
|
||||
|
||||
def get_trial_level(self,courseSubtype):
|
||||
'''
|
||||
获取试听课级别
|
||||
ap为21,cp为20
|
||||
:return:
|
||||
'''
|
||||
m_token = self.get_url.get_m_online_token()
|
||||
headers = self.get_url.get_m_headers(m_token=m_token)
|
||||
url = self.get_url.get_visaprk_parent_config_info(url_name="get_trial_url")
|
||||
request_url = url +"?courseSubtype={0}&subjectType=1".format(courseSubtype)
|
||||
get_response_data = self.get_url.get_json_result(url=request_url, headers=headers)
|
||||
# 针对ap或者cp获取级别,查看是否存在重复的level
|
||||
list_level = []
|
||||
for trial_data in get_response_data.get("data"):
|
||||
list_level.append(trial_data.get("level"))
|
||||
set_level = set(list_level)
|
||||
dict_response = {}
|
||||
for level in set_level:
|
||||
if list_level.count(level) > 1:
|
||||
dict_response[level] = list_level.count(level)
|
||||
if dict_response:
|
||||
return {"code":500,"data":dict_response}
|
||||
else:
|
||||
return {"code":200,"data":dict_response}
|
||||
|
||||
class student_verity():
|
||||
def __init__(self):
|
||||
self.get_url = auth_login()
|
||||
|
||||
def get_schedule_count(self):
|
||||
'''
|
||||
|
||||
:return:
|
||||
'''
|
||||
m_token = self.get_url.get_m_online_token()
|
||||
headers = self.get_url.get_m_headers(m_token=m_token)
|
||||
url = self.get_url.get_student_config_info(url_name="scheduleCount_url")
|
||||
print(url)
|
||||
get_response_data = self.get_url.get_json_result(url=url, headers=headers, request_data={"subjectType": 4})
|
||||
|
||||
return get_response_data
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
test = auth_login()
|
||||
test1 = m_parent()
|
||||
test2 = student_verity()
|
||||
# print(test.get_student_online_token())
|
||||
# print(test1.get_recommendedCourse())
|
||||
print(test1.get_trial_level(courseSubtype=22))
|
||||
# print(test2.get_schedule_count())
|
||||
Reference in New Issue
Block a user