addproject

This commit is contained in:
qiaoxinjiu
2026-01-22 19:10:37 +08:00
commit 6994b185a3
184 changed files with 21039 additions and 0 deletions

View File

@@ -0,0 +1,272 @@
# -*- coding:utf-8 -*-
"""
Author: 罗志鹏
Email: luozhipeng@huohua.cn
Create Date: 2022/03/03 11:25 下午
"""
from base_framework.public_tools import log
from base_framework.public_tools.sqlhelper import MySqLHelper
from library.UBRD_interface import UBRDInterface
from base_framework.public_tools.edu_user_helper import EDUUserHelper
from base_framework.public_tools.redis_api import RedisApi
from base_framework.public_tools.read_config import ReadConfig
from base_framework.base_config.current_pth import env_choose_path
from redis import Redis
from base_framework.public_tools.runner import Runner
from base_framework.public_tools.utils import Tools
from base_framework.public_business.common.UBRD.UBRD_public_business import BaseLogic
from base_framework.public_business.common.UBRD.kw.user_keyword import UserKW
from Crypto.Cipher import AES
from Crypto.Util.Padding import pad
import base64
obj_runner = Runner()
obj_log = log.get_logger()
obj_my_sql_helper = MySqLHelper()
obj_edu_user_helper = EDUUserHelper()
obj_redis_api = RedisApi()
obj_tools = Tools()
obj_base_logic = BaseLogic()
user_kw_obj = UserKW()
class UserCommon(UBRDInterface):
def __init__(self):
super().__init__()
self.evn_cfg = ReadConfig(env_choose_path)
self.current_business = self.evn_cfg.get_value(sections="run_evn_name", options="current_business")
@staticmethod
def update_user_pwd_by_phone(phone):
"""
功能初始化用户密码为A123456
| 输入参数: | phone string | 手机号 |
| 作者: | lzp | 2022.03.07 |
"""
sql_user_by_phone = "SELECT x.id FROM ucenter.user_profile x WHERE x.phone IN ('{0}')".format(phone)
user_by_phone = obj_my_sql_helper.select_all(sql_user_by_phone)
if isinstance(user_by_phone, tuple):
raise RuntimeError("未找到手机号为{0}的用户".format(phone))
sql_update_pwd = "update ucenter.user_profile set auth_hash = '2ad5381b6a2952287a95b9accb0bb51c'," \
"auth_salt='fFRzeLZGR5' WHERE phone IN ('{0}')".format(phone)
obj_my_sql_helper.update(sql_update_pwd)
obj_log.info('成功更新{0}用户密码为A123456'.format(phone))
def update_teacher_pwd_by_classroom(self, classroom_Code):
"""
功能初始化教师账号密码为Huohua123456
| 输入参数: | classroom_Code string | 课堂code |
| 作者: | lzp | 2022.03.07 |
"""
teacher_info = self.get_teacher_info_by_classroom(classroom_Code)
sql_update_pwd = "update account.account set pwd = 'e1NTSEF9dzE4ZlFhRytVNzZWeFVKMFFIV2VUNy83U2hxOE5oNUhMT0doTnc9PQ==' WHERE id ={0}".format(
teacher_info["account_id"])
obj_my_sql_helper.update(sql_update_pwd)
obj_log.info('成功更新{0}课堂教师{1}密码为Mima@123'.format(classroom_Code, teacher_info["phone"]))
def update_teacher_pwd_by_classroom_2(self,classroom_Code):
"""
功能初始化教师账号密码为MIma@123456
| 输入参数: | classroom_Code string | 课堂code |
| 作者: | lrq | 2024.06.12 |
"""
teacher_info = self.get_teacher_info_by_classroom(classroom_Code)
sql_update_pwd = "update account.account set pwd = 'e1NTSEF9dzE4ZlFhRytVNzZWeFVKMFFIV2VUNy83U2hxOE5oNUhMT0doTnc9PQ==' WHERE id ={0}".format(teacher_info["account_id"])
obj_my_sql_helper.update(sql_update_pwd)
obj_log.info('成功更新{0}课堂教师{1}密码为MIma@123456'.format(classroom_Code,teacher_info["phone"]))
def update_teacher_pwd_by_teacher_id(self, teacher_id):
"""
功能初始化教师账号密码为Huohua123456
| 输入参数: | classroom_Code string | 课堂code |
| 作者: | lzp | 2022.03.07 |
"""
teacher_info = self.get_teacher_info_by_teacher_id(teacher_id)
sql_update_pwd = "update account.account set pwd = 'e1NTSEF9dzE4ZlFhRytVNzZWeFVKMFFIV2VUNy83U2hxOE5oNUhMT0doTnc9PQ==' WHERE id ={0}".format(
teacher_info["account_id"])
obj_my_sql_helper.update(sql_update_pwd)
obj_log.info('成功更新{0}教师{1}密码为Mima@123'.format(teacher_id, teacher_info["phone"]))
def get_chess_classroom_by_mcr_code(self, mcr_code):
"""
功能:获取课堂教师信息 仅支持emp教师
| 输入参数: | teacher_id int | 老师id |
| 作者: | lzp | 2022.03.07 |
"""
sql_chess_classroom = "SELECT x.relation_classroom_code FROM learning_plan.classroom_relation x WHERE x.classroom_code IN ('{0}') and status =1 and relation_type = 1".format(
mcr_code)
chess_classroom = obj_my_sql_helper.select_all(sql_chess_classroom)
return chess_classroom
def get_teacher_info_by_teacher_id(self, teacher_id):
"""
功能:获取课堂教师信息 仅支持emp教师
| 输入参数: | teacher_id int | 老师id |
| 作者: | lzp | 2022.03.07 |
"""
sql_phone_by_classroom_code = "select tp.id,e.phone,tp.account_id from emp.employee e inner join teach_teacher.teacher_profile tp on tp.employee_id = e.id inner join account.account a on a.id= tp.account_id where tp.id = {0}".format(
teacher_id)
teacher_info = obj_my_sql_helper.select_all(sql_phone_by_classroom_code)
return teacher_info[0]
def get_teacher_info_by_classroom(self, classroom_Code):
"""
功能:获取课堂教师信息 仅支持emp教师
| 输入参数: | classroom_Code string | 课堂code |
| 作者: | lzp | 2022.03.07 |
"""
sql_phone_by_classroom_code = "select c.teacher_id,e.phone,tp.account_id from emp.employee e inner join teach_teacher.teacher_profile tp on tp.employee_id = e.id inner join teach_classes.classroom c on c.teacher_id = tp.id inner join account.account a on a.id= tp.account_id where c.code = '{0}'".format(
classroom_Code)
teacher_info = obj_my_sql_helper.select_all(sql_phone_by_classroom_code)
return teacher_info[0]
def get_student_info_by_phone(self, phone):
"""
功能:根据手机号码获取学生基本信息
| 输入参数: | phone string | 手机号 |
"""
user_info = user_kw_obj.kw_ubrd_public_get_user_info_by_phone(phone)
sql = "SELECT id studentId FROM ucenter.student_profile where user_id ='{}'".format(user_info["user_id"])
return obj_my_sql_helper.select_one(sql)
def get_classroom_info_by_code(self, code):
"""
功能:根据课堂号获取课堂信息
| 输入参数: | phone string | 手机号 |
"""
sql = "SELECT id,code,classes_id,classes_code,course_id,course_name,lesson_id,lesson_name,teacher_id,open_time,close_time,is_closed,status FROM teach_classes.classroom where code = '{0}'".format(
code)
return obj_my_sql_helper.select_one(sql)
def register_by_code_phone(self, phone, countryCode=86):
auth_code_send_result = obj_base_logic.logic_public_send_auth_code(
{'h': {'accept-language': 'en'}, 'phone': phone, 'countryCode': '{}'.format(countryCode), 'authType': 2,
'verifyAppId': 2})
obj_log.info(auth_code_send_result)
sms_code = obj_edu_user_helper.get_sms_code_by_phone(phone)
obj_log.info(sms_code)
login_post_result = self.kw_in_ubrd_login_post(
**{'phone': phone, 'countryCode': '86', 'password': 'A123456', 'authCode': sms_code})
obj_log.info(login_post_result)
# 更新密码
obj_my_sql_helper.update(
"update ucenter.user_profile set auth_hash = 'e2a0c8ec7503d1bfea587d5ffa0efc2f',auth_salt='fTvsqofig7' WHERE phone='{}'".format(
phone))
def get_change_pwd_vcode_by_sms_code(self, phone):
""" 获取学生端修改密码验证码 """
sms_code = obj_edu_user_helper.get_sms_code_by_phone(phone)
return sms_code
def get_register_vccode_by_redis(self, phone):
"""
获取学生端注册验证码
"""
key = "api:AUTH_CODE:{0}_SIGN_IN".format(phone)
obj_log.info(key)
return self.get_student_key_value_by_redis(key, 9)
def delete_change_student_pwd_limit_redis(self, phone):
"""
功能:删除学生端修改密码次数限制缓存
| 作者: | lzp | 2021.08. 15 |
"""
key_1 = "GRANULARITY:PHONE_AUTH_RECEIVE_COUNT_CHANNEL_MOBILE_API{0}".format(phone)
key_2 = "GRANULARITY:PHONE_AUTH_RECEIVE_COUNT_CHANNEL_MOBILE_API{0}_1".format(phone)
self.delete_student_key_redis(key_1, 9)
self.delete_student_key_redis(key_2, 9)
def delete_student_key_redis(self, key: object, db: object):
"""
删除指定key
"""
if self.current_business == "hh":
host = 'redis.qa.huohua.cn'
password = 'AcUVeRb8lN'
port = 6379
elif self.current_business == "hhi":
host = 'redis.qa.visparklearning.com'
password = 'hxTjlWBYdK6UpAGF'
port = 6379
else:
raise RuntimeError("读取本地配置环境失败未能正常连接redis")
pool = Redis(host=host, port=port, password=password, db=db)
pool.delete(key)
def get_student_key_value_by_redis(self, key, db):
"""
获取指定key的value
"""
if self.current_business == "hh":
host = 'redis.qa.huohua.cn'
password = 'AcUVeRb8lN'
port = 6379
elif self.current_business == "hhi":
host = 'redis.qa.visparklearning.com'
password = 'hxTjlWBYdK6UpAGF'
port = 6379
else:
raise RuntimeError("读取本地配置环境失败未能正常连接redis")
pool = Redis(host=host, port=port, password=password, db=db, decode_responses=True)
value = pool.get(key)
return value
def check_data_in_list(self, array: list, item):
"""
判断某个数据是否在数组中
"""
if item in array:
return True
else:
return False
def update_classroom_data_to_join(self, classroom_id):
"""
更新学习服务课堂数据
"""
open_time_timestamp = obj_tools.get_format_date(r_type=12)
close_time_timestamp = obj_tools.get_format_date(r_type=12, add_hours=1)
open_time_standard_time = obj_tools.get_format_date(r_type=4)
close_time_standard_time = obj_tools.get_format_date(r_type=4, add_hours=1)
# 更新学员课表数据
sql_learning_schedule = "update learning_plan.learning_schedule set open_time ='{0}',close_time = '{1}' " \
"where classroom_id = {2}".format(open_time_standard_time, close_time_standard_time,
classroom_id)
obj_my_sql_helper.update(sql_learning_schedule)
# 更新教师课表数据
sql_teaching_schedule = "update learning_plan.teaching_schedule set open_time ='{0}',close_time = '{1}', class_status =0 " \
"where classroom_id = {2}".format(open_time_timestamp, close_time_timestamp,
classroom_id)
obj_my_sql_helper.update(sql_teaching_schedule)
def check_data_in_db(self, sql, retry_count):
"""
判断某个数据是否在数据库中
"""
obj_my_sql_helper.check_result_exist(sql, retry_count=retry_count)
def encryption_aes(self,data,key=None):
if not key:
key = b"y3wa93twda35eqer"
cipher = AES.new(key, AES.MODE_ECB)
padded_data = pad(data.encode(), AES.block_size) # PKCS5Padding
encrypted_data = cipher.encrypt(padded_data)
return base64.b64encode(encrypted_data).decode()
if __name__ == '__main__':
user_common_obj = UserCommon()
a = 138475
s=user_common_obj.update_teacher_pwd_by_teacher_id(teacher_id=183152 )
print(s)
# print(user_common_obj.get_user_info_by_phone('13458500234'))
# phone_dict ={'phone': '65-98760021'}
# user_common_obj.get_register_vccode_by_redis('65-98760021')
# user_common_obj.update_classroom_data_to_join(classroom_id=500852944)