promotion/adlist.py
2019-07-12 17:34:37 +08:00

64 lines
1.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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