Commit d00ce21d authored by etscript's avatar etscript

添加课程包

parent 31416e2e
......@@ -70,6 +70,22 @@ tamp_zhibo_engine = create_engine(
# pool_recycle=60
)
tamp_course_engine = create_engine(
'mysql+pymysql://{user}:{password}@{host}:{port}/{db}?charset={charset}'.format(
db=config[env]['MySQL']['tamp_course_db'],
host=config[env]['MySQL']['host'],
port=config[env]['MySQL']['port'],
user=config[env]['MySQL']['user'],
password=config[env]['MySQL']['password'],
charset="utf8"
),
poolclass=NullPool
# max_overflow=0, # 超过连接池大小外最多创建的连接
# pool_size=10, # 连接池大小
# pool_timeout=5,
# pool_recycle=60
)
redis = redis.Redis(
host=config[env]['redis']['host'],
port=config[env]['redis']['port'],
......
......@@ -12,13 +12,14 @@ import time
from sqlalchemy import and_
from sqlalchemy.testing import in_
from app.api.engine import TAMP_SQL, tamp_pay_engine, tamp_user_engine, config, env, tamp_zhibo_engine
from app.api.engine import TAMP_SQL, tamp_pay_engine, tamp_user_engine, config, env, tamp_zhibo_engine, tamp_course_engine
from app.config.errors import Errors
from app.controller.errorhandler import CustomFlaskErr
from app.model.account_balance import AccountBalance
# from app.model.account_topup_order import AccountTopupOrder
from app.model.curriculum_order import OrderFlow
from app.model.tamp_user_models import CurriculumPrice, CurriculumColumn, CurriculumRes
from app.model.tamp_course_models import CoursePackage
from xml.etree import cElementTree as etree
from app.model.tamp_zhibo_models import ZhiboTheme, ZhiboFile
......@@ -136,9 +137,10 @@ class CurriculumOrderService:
pageSize = args['pageSize']
user_id = args['user_id']
offset = (pageNumber - 1) * pageSize
with TAMP_SQL(tamp_user_engine) as tamp_user, TAMP_SQL(tamp_zhibo_engine) as tamp_zhibo:
with TAMP_SQL(tamp_user_engine) as tamp_user, TAMP_SQL(tamp_zhibo_engine) as tamp_zhibo, TAMP_SQL(tamp_course_engine) as tamp_course:
tamp_user_session = tamp_user.session
tamp_zhibo_session = tamp_zhibo.session
tamp_course_session = tamp_course.session
# curriculum_column = tamp_user_session.query(CurriculumColumn.id, CurriculumColumn.title, CurriculumColumn.cover, CurriculumColumn.info).all()
# curriculum_res = tamp_user_session.query(CurriculumRes.id, CurriculumRes.title, CurriculumRes.cover, CurriculumRes.teacher_name).all()
# zhibo = tamp_zhibo_session.query(ZhiboTheme.id, ZhiboTheme.zt_name, ZhiboTheme.zt_img, ZhiboTheme.manager_name, ZhiboTheme.zt_starttime).all()
......@@ -162,11 +164,11 @@ class CurriculumOrderService:
# 找出 1栏目表 , 3直播间信息表, [4,5]课程资源, 7附件 的list id
orders = [r.to_dict() for r in res if r.to_dict()['ab_status'] == 'SUCCESS']
orders_dict = {'1':[], '3':[], '4':[], '5':[], '7':[]}
orders_dict = {'1':[], '3':[], '4':[], '5':[], '7':[], '300':[]}
for i in orders:
prod_type = i.get('ab_type', '')
prod_id = i.get('ab_proid', '')
if prod_type in '13457' and prod_id:
if (prod_type in '13457' or prod_type == '300') and prod_id:
orders_dict[prod_type].append(prod_id)
# 四组组合查询,将 需要的 1栏目表 , 3直播间信息表, [4,5]课程资源, 7附件 查出
......@@ -182,15 +184,20 @@ class CurriculumOrderService:
filter(ZhiboTheme.id.in_(orders_dict["3"])).all()
zhibo_file = tamp_zhibo_session.query(ZhiboFile.id, ZhiboFile.remark).\
filter(ZhiboFile.id.in_(orders_dict["7"])).all()
course_package = tamp_course_session.query(CoursePackage.id, CoursePackage.main_title,
CoursePackage.square_img, CoursePackage.bg_status,
CoursePackage.bg_img).\
filter(CoursePackage.id.in_(orders_dict["300"])).all()
curriculum_column = {r[0]: {'title': r[1], 'cover': r[2], 'info': r[3]} for r in curriculum_column}
curriculum_res = {r[0]: {'title': r[1], 'cover': r[2], 'info': r[3]} for r in curriculum_res}
zhibo = {r[0]: {'title': r[1], 'cover': r[2], 'info': r[3], 'zb_start_time': int(r[4].timestamp()) if r[4] else 0} for r in zhibo}
zhibo_file = {r[0]: {'title': r[1]} for r in zhibo_file}
# orders = [r.to_dict() for r in res if r.to_dict()['ab_status'] == 'SUCCESS']
course_package = {r[0]: {'title': r[1], 'square_img': r[2], 'bg_status': r[3], 'bg_img': r[4]} for r in course_package}
allowed = {'id', 'title', 'cover', 'info', 'ab_type', 'ab_payment', 'ab_score', 'ab_pay_mode', 'ab_ordernum', 'transaction_serial_no', 'pay_method', 'createtime', 'pay_time', 'complete_time',
'ab_status', 'ab_pro_siid', 'zb_start_time'}
'ab_status', 'ab_pro_siid', 'zb_start_time', 'square_img', 'bg_status', 'bg_img'}
temp_orders = []
for order in orders:
prod_type = order.get('ab_type', '')
......@@ -203,6 +210,9 @@ class CurriculumOrderService:
order = {**order, **curriculum_res.get(prod_id, None)}
elif prod_type == '7' and zhibo_file.get(prod_id, None):
order = {**order, **zhibo_file.get(prod_id, None)}
elif prod_type == '300' and course_package.get(prod_id, None):
order = {**order, **course_package.get(prod_id, None)}
keys = set(order.keys()) - allowed
for key in keys:
del order[key]
......@@ -229,10 +239,13 @@ class CurriculumOrderService:
with TAMP_SQL(tamp_user_engine) as tamp_user, TAMP_SQL(tamp_pay_engine) as tamp_pay:
tamp_user_session, tamp_pay_session = tamp_user.session, tamp_pay.session
args['ab_ordernum'] = time.strftime('%Y%m%d', time.localtime(time.time())) + str(int(time.time() * 100000))
amount = tamp_user_session.query(CurriculumPrice.price).filter(CurriculumPrice.rel_id == args['ab_proid']).first()
if not amount:
raise CustomFlaskErr(Errors.PROD_NOPRICE)
amount = amount[0]
# if args['ab_type'] != "300":
# amount = tamp_user_session.query(CurriculumPrice.price).filter(CurriculumPrice.rel_id == args['ab_proid']).first()
# if not amount:
# raise CustomFlaskErr(Errors.PROD_NOPRICE)
# else:
# amount = amount[0]
amount = 0.01
args['id'] = OrderFlow.__tablename__ + str(int(time.time() * 100000))
args['ab_payment'] = amount
args['ab_status'] = 'WAIT'
......@@ -417,9 +430,10 @@ def getAllOrders(args):
pageSize = args['pageSize']
user_id = args['user_id']
offset = (pageNumber - 1) * pageSize
with TAMP_SQL(tamp_user_engine) as tamp_user, TAMP_SQL(tamp_zhibo_engine) as tamp_zhibo:
with TAMP_SQL(tamp_user_engine) as tamp_user, TAMP_SQL(tamp_zhibo_engine) as tamp_zhibo, TAMP_SQL(tamp_course_engine) as tamp_course:
tamp_user_session = tamp_user.session
tamp_zhibo_session = tamp_zhibo.session
tamp_course_session = tamp_course.session
# 全部订单
# curriculum_column = tamp_user_session.query(CurriculumColumn.id, CurriculumColumn.title, CurriculumColumn.cover,
......@@ -440,13 +454,13 @@ def getAllOrders(args):
# 找出 1栏目表 , 3直播间信息表, [4,5]课程资源, 7附件 的list id
orders = [r.to_dict() for r in res if r.to_dict()['ab_status'] == 'SUCCESS']
orders_dict = {'1':[], '3':[], '4':[], '5':[], '7':[]}
orders_dict = {'1':[], '3':[], '4':[], '5':[], '7':[], '300':[]}
for i in orders:
prod_type = i.get('ab_type', '')
prod_id = i.get('ab_proid', '')
if prod_type in '13457' and prod_id:
if (prod_type in '13457' or prod_type == '300') and prod_id:
orders_dict[prod_type].append(prod_id)
# 四组组合查询,将 需要的 1栏目表 , 3直播间信息表, [4,5]课程资源, 7附件 查出
# 四组组合查询,将 需要的 1栏目表 , 3直播间信息表, [4,5]课程资源, 7附件, 300 课程包 查出
curriculum_column = tamp_user_session.query(CurriculumColumn.id, CurriculumColumn.title,
CurriculumColumn.cover, CurriculumColumn.info).\
......@@ -459,16 +473,21 @@ def getAllOrders(args):
filter(ZhiboTheme.id.in_(orders_dict["3"])).all()
zhibo_file = tamp_zhibo_session.query(ZhiboFile.id, ZhiboFile.remark).\
filter(ZhiboFile.id.in_(orders_dict["7"])).all()
course_package = tamp_course_session.query(CoursePackage.id, CoursePackage.main_title,
CoursePackage.square_img, CoursePackage.bg_status,
CoursePackage.bg_img).\
filter(CoursePackage.id.in_(orders_dict["300"])).all()
curriculum_column = {r[0]: {'title': r[1], 'cover': r[2], 'info': r[3]} for r in curriculum_column}
curriculum_res = {r[0]: {'title': r[1], 'cover': r[2], 'info': r[3]} for r in curriculum_res}
zhibo = {r[0]: {'title': r[1], 'cover': r[2], 'info': r[3], 'zb_start_time': int(r[4].timestamp()) if r[4] else 0} for r in zhibo}
zhibo_file = {r[0]: {'title': r[1]} for r in zhibo_file}
course_package = {r[0]: {'main_title': r[1], 'square_img': r[2], 'bg_status': r[3], 'bg_img': r[4]} for r in course_package}
allowed = {'id', 'title', 'cover', 'info', 'ab_type', 'ab_payment', 'ab_score', 'ab_pay_mode', 'ab_ordernum',
'transaction_serial_no', 'pay_method', 'createtime', 'pay_time', 'complete_time',
'ab_status', 'ab_pro_siid', 'zt_start_time'}
'ab_status', 'ab_pro_siid', 'zt_start_time', 'square_img', 'bg_status', 'bg_img'}
temp_orders = []
for order in orders:
prod_type = order.get('ab_type', '')
......@@ -482,6 +501,8 @@ def getAllOrders(args):
order = {**order, **curriculum_res.get(prod_id, None)}
elif prod_type == '7' and zhibo_file.get(prod_id, None):
order = {**order, **zhibo_file.get(prod_id, None)}
elif prod_type == '300' and course_package.get(prod_id, None):
order = {**order, **course_package.get(prod_id, None)}
# 将多余字段删除
keys = set(order.keys()) - allowed
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment