Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in
Toggle navigation
T
tamp_course_order
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
彭熊
tamp_course_order
Commits
d00ce21d
Commit
d00ce21d
authored
Apr 19, 2021
by
etscript
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加课程包
parent
31416e2e
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
51 additions
and
14 deletions
+51
-14
engine.py
app/api/engine.py
+16
-0
order_service.py
app/service/order_service.py
+35
-14
No files found.
app/api/engine.py
View file @
d00ce21d
...
...
@@ -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'
],
...
...
app/service/order_service.py
View file @
d00ce21d
...
...
@@ -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
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment