# -*- 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}})