64 lines
1.7 KiB
Python
64 lines
1.7 KiB
Python
# -*- coding: utf-8 -*-
|
||
from __future__ import absolute_import
|
||
# pip install flask-restful
|
||
from flask import Flask, jsonify
|
||
from flask_restful import reqparse, abort, Api, Resource
|
||
from log.mylog import define_logger
|
||
import logging
|
||
from mysql.mmysql import MysqlBase
|
||
from config import mysql_promotion_config
|
||
from myredis.myredis import my_redis, expire_time
|
||
import datetime
|
||
|
||
define_logger("/data/logs/adlist.log")
|
||
log = logging.getLogger(__name__)
|
||
|
||
parser = reqparse.RequestParser()
|
||
parser.add_argument('gameid')
|
||
parser.add_argument('locationid')
|
||
parser.add_argument('num')
|
||
|
||
parser.add_argument('begin_time')
|
||
parser.add_argument('end_time')
|
||
parser.add_argument('ad_num')
|
||
parser.add_argument('ad_title')
|
||
parser.add_argument('ad_body')
|
||
parser.add_argument('ad_image')
|
||
parser.add_argument('ad_url')
|
||
parser.add_argument('ad_sort')
|
||
parser.add_argument('status')
|
||
parser.add_argument('companyid')
|
||
mydb = MysqlBase(**mysql_promotion_config)
|
||
|
||
|
||
class Adlist(Resource):
|
||
def __init__(self):
|
||
self.args = parser.parse_args()
|
||
self.limit = 20
|
||
|
||
def init_ad(self):
|
||
# 初始化广告信息,将广告明细写入缓存Redis
|
||
pass
|
||
|
||
|
||
def get(self):
|
||
gameid = self.args['gameid']
|
||
locationid = self.args['locationid']
|
||
num = self.args['num'] or self.limit
|
||
if num > self.limit:
|
||
num = self.limit
|
||
|
||
now = datetime.datetime.today().strftime('%Y-%m-%d')
|
||
ad_list_per = my_redis.smembers(f"{gameid}#{locationid}#per")
|
||
ad_list_int = []
|
||
for i in range(num):
|
||
ad_list_int.append(my_redis.spop(f"{gameid}#{locationid}#{now}"))
|
||
ad_list = ad_list_int + ad_list_per
|
||
|
||
ad_info = []
|
||
for item in ad_list:
|
||
ad_info.append(my_redis.smembers[item])
|
||
|
||
return jsonify({'code': 200, 'message': {'total': len(ad_list), 'result': ad_info}})
|
||
|