Skip to content

Instantly share code, notes, and snippets.

@nghiahsgs
Created June 27, 2022 04:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nghiahsgs/f62cd4ac6ca650d2a98dad2206fb5d8e to your computer and use it in GitHub Desktop.
Save nghiahsgs/f62cd4ac6ca650d2a98dad2206fb5d8e to your computer and use it in GitHub Desktop.
@router.get("/request-received",tags=["request"])
def get_request_received(user_id:str):
utils_db_order_ads.db.connect(reuse_if_open=True)
# step1: get marketer id
L = utils_db_order_ads.Marketer.select().where(utils_db_order_ads.Marketer.user_meey_id == user_id)
if len(L)==0:
return {'err':'not found marketer_id'}
marketer_id = L[0].marketer_id
# return marketer_id
# step 2: get all request did assign to this marketer_id
L_request = utils_db_order_ads.Request.select().where(utils_db_order_ads.Request.marketer_id == marketer_id).where(utils_db_order_ads.Request.status != 0)
# return len(L_request)
def format_day(x):
if(len('%s'%x)==1):
return f'0{x}'
return '%s'%x
def log_date_start(id,date_start):
# try:
# return date_start.day
# except:
print('id',id)
print('date_start',date_start)
print('date_start.day',date_start.day)
return date_start
def log_date_stop(id,date_stop):
# try:
# return date_stop.day
print('id',id)
print('date_start',date_stop)
print('date_start.day',date_stop.day)
return date_stop
L_request = [{
'order_code':e.order_code,
'order_note_ck':utils_db_order_ads.Order_ads.select().where(utils_db_order_ads.Order_ads.order_code == e.order_code)[0].order_note_ck if len(utils_db_order_ads.Order_ads.select().where(utils_db_order_ads.Order_ads.order_code == e.order_code)) else "",
'request_code':e.request_code,
'target':e.target,
'id':e.request_id,
'_id':e.id,
'platform':'%s'%(int(e.ads_type)-1),
'project_name':e.project_name,
'real_eastate_type':e.real_eastate_type,
'location':e.location,
'hotline':e.phone_contract,
'real_eastate_level':e.real_eastate_level,
'project_document':e.project_document,
'link_website':e.web_url,
'total_budget':e.total_budget,
'daily_budget':e.daily_budget,
'date_range':'%s - %s'%(
'%s-%s-%s'%(format_day(e.date_start.day),format_day(e.date_start.month),format_day(e.date_start.year)) if e.date_start else e.date_start,
'%s-%s-%s'%(format_day(e.date_stop.day),format_day(e.date_stop.month),format_day(e.date_stop.year)) if e.date_stop else e.date_stop
),
# "date_range":'%s - %s'%(
# log_date_start(e.id,e.date_start),
# log_date_stop(e.id,e.date_stop)
# ),
'note':e.note,
'page_id':e.page_id,
'page_name':e.page_name,
'marketer':{
'marketer_id':e.marketer_id,
'name':
utils_db_order_ads.Marketer.select().where(utils_db_order_ads.Marketer.marketer_id==e.marketer_id)[0].fullname if len(utils_db_order_ads.Marketer.select().where(utils_db_order_ads.Marketer.marketer_id==e.marketer_id)) else '',
'avatar':
utils_db_order_ads.Marketer.select().where(utils_db_order_ads.Marketer.marketer_id==e.marketer_id)[0].avatar if len(utils_db_order_ads.Marketer.select().where(utils_db_order_ads.Marketer.marketer_id==e.marketer_id)) else '',
'phone':
utils_db_order_ads.Marketer.select().where(utils_db_order_ads.Marketer.marketer_id==e.marketer_id)[0].phone if len(utils_db_order_ads.Marketer.select().where(utils_db_order_ads.Marketer.marketer_id==e.marketer_id)) else '',
},
'marketer_take': utils_db_order_ads.Marketer_take.select().where(utils_db_order_ads.Marketer_take.marketer_id==e.marketer_id)[0].__data__ if len(utils_db_order_ads.Marketer_take.select().where(utils_db_order_ads.Marketer_take.marketer_id==e.marketer_id)) else {},
'status':e.status,
'connection_to_page':e.connection_to_page,
'list_camp':[
{
'name':e.name,
'camp_id':e.camp_id,
'account_id':e.account_id,
'request_id':e.request_id,
'total_spent':e.total_spent,
'daily_budget':e.daily_budget,
'status':e.status,
'rating':e.rating,
'date_start': '%s/%s/%s'%(format_day(e.date_start.day),format_day(e.date_start.month),format_day(e.date_start.year)) if e.date_start else e.date_start,
'date_stop': '%s/%s/%s'%(format_day(e.date_stop.day),format_day(e.date_stop.month),format_day(e.date_stop.year)) if e.date_stop else e.date_stop
# 'date_start':'%s'%log_date_start(e.id,e.date_start),
# 'date_stop':'%s'%log_date_stop(e.id,e.date_stop)
}
for e in utils_db_order_ads.Requested_camps.select().where(utils_db_order_ads.Requested_camps.request_id==e.request_id)
],
'request_pages':[
{
"id":e.id,
"email":e.email,
"page_avatar":e.page_avatar,
"page_cover":e.page_cover,
"page_name":e.page_name,
"link_web":e.link_web,
"hotline":e.hotline,
"status":e.status,
"request_id":e.request_id,
"link_fanpage":e.link_fanpage
}
for e in utils_db_order_ads.Request_page.select().where(utils_db_order_ads.Request_page.request_id==e.request_id)
],
'commission_fee_real':e.commission_fee_real,
'total_budget_real':e.total_budget_real,
'is_payment_over_50':e.is_payment_over_50
} for e in L_request]
# L_request = L_request[::-1]
# L_request_canceled = list(filter(lambda x:x['status']==4,L_request))
# L_request_not_canceled = list(filter(lambda x:x['status']!=4,L_request))
# L_request = L_request_not_canceled + L_request_canceled
L_request = sorted(L_request,
key=lambda row:
(
row['status'] == 4,
-row['_id']
)
)
utils_db_order_ads.db.close()
return L_request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment