From eba34c5b1e1f63a03007e65508b44b6a3a51a724 Mon Sep 17 00:00:00 2001 From: pengtao Date: Mon, 9 Sep 2019 11:37:06 +0800 Subject: [PATCH 01/30] =?UTF-8?q?=20=E6=B7=BB=E5=8A=A0=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- handler/priv_map.py | 113 +++++++++++++++++--------------------------- ops/__init__.py | 1 + ops/base.py | 13 +++++ 3 files changed, 57 insertions(+), 70 deletions(-) create mode 100644 ops/__init__.py create mode 100644 ops/base.py diff --git a/handler/priv_map.py b/handler/priv_map.py index eb1dd8b..0244eaa 100644 --- a/handler/priv_map.py +++ b/handler/priv_map.py @@ -1,93 +1,72 @@ # -*- coding: utf-8 -*- from __future__ import absolute_import -from flask import Flask, jsonify -from flask_restful import reqparse, abort, Api, Resource + import logging +from ops.base import my_unquote +from flask import jsonify +from flask_restful import reqparse, Resource from mysql.mmysql import MysqlBase from prod_config import mysql_promotion_config -import pdb - log = logging.getLogger(__name__) parser = reqparse.RequestParser() parser.add_argument('id') -parser.add_argument('name') -parser.add_argument('contact') -parser.add_argument('appid') -parser.add_argument('appkey') -parser.add_argument('status') -parser.add_argument('tel') parser.add_argument('user') +parser.add_argument('url') +parser.add_argument('args') - -class Company(Resource): +class PrivMaps(Resource): def __init__(self): self.args = parser.parse_args() self.mydb = MysqlBase(**mysql_promotion_config) def get(self): - status = self.args['status'] - id = self.args['id'] - user = self.args['user'] + args = my_unquote(self.args['args']) + users = args.get('args', None) + status = args.get('status', 0) all_data = [] try: - if status: - sql = f"select id,name,contact,tel,appid,appkey,status,user from company where status={status};" - elif id: - sql = f"select id,name,contact,tel,appid,appkey,status,user from company where id={id};" - elif user: - sql = f"select id,name,contact,tel,appid,appkey,status,user from company where user='{user}';" + if users: + sql = f"select user,mapid,url,status from mymaps where user={users};" + elif status: + sql = f"select user,mapid,url,status from mymaps where status={status};" else: - sql = f"select id,name,contact,tel,appid,appkey,status,user from company ;" + sql = f"SELECT user,mapid,url,status FROM mymaps ;" data = self.mydb.query(sql) log.info(f"get data from db was {data}") if data: for line in data: if line: - company = {} - company['id'], company['name'], company['contact'], company['tel'], company['appid'], company[ - 'appkey'], company['status'], company['user'] = line - all_data.append(company) - del company + mymaps = {} + mymaps['user'], mymaps['mapid'], mymaps['url'], mymaps['status'] = line + all_data.append(mymaps) + del mymaps else: log.info(f"{data} not found in mysql !") return jsonify({'code': 200, 'message': []}) except Exception: - log.error(f"get company status={status} failed! ", exc_info=True) + log.error(f"get maps via args={args} failed! ", exc_info=True) return jsonify({'code': 500}) return jsonify({'code': 200, 'message': all_data}) def delete(self): - id = self.args['id'] + args = my_unquote(self.args['args']) try: - del_sql = f'update ad set in_used=0 where id={id};' + del_sql = f"update mymaps set status=0 where mapid={args['mapid']};" self.mydb.change(del_sql) + return jsonify({'code': 200}) except Exception: - log.error(f"remove {id} failed!", exc_info=True) + log.error(f"remove {args} failed!", exc_info=True) return jsonify({'code': 500}) - return jsonify({'code': 200}) - def get_random(self, num=8): - import random - import string - return ''.join(random.sample(string.ascii_letters + string.digits, num)) - def get_appid(self): - appid = self.get_random() - # check appid not in db - check_appid = f"select appid from company where appid='{appid}'" - data = self.mydb.query(check_appid) - if data: - self.get_appid() - return appid - - def get_companyid(self): - max_id = f"select id from company order by id desc limit 1" + def get_newid(self): + max_id = f"SELECT mapid FROM mymaps ORDER BY mapid DESC LIMIT 1" data = self.mydb.query(max_id) log.info(f"1 {data}") try: @@ -100,42 +79,36 @@ class Company(Resource): def post(self): + args = my_unquote(self.args['args']) try: - company = {} - company['name'] = self.args['name'] - company['contact'] = self.args['contact'] - company['tel'] = self.args['tel'] - company['user'] = self.args['user'] - company['id'] = self.get_companyid() - company['appid'] = self.get_appid() - company['appkey'] = 'undefined' - self.mydb.insert("company", company) + mymaps = {} + mymaps['mapid'] = self.get_newid() + mymaps['user'] = args['user'] + mymaps['url'] = args['url'] + self.mydb.insert("mymaps", mymaps) + return jsonify({'code': 200}) except Exception: log.error("set values to company mysql failed!", exc_info=True) return jsonify({'code': 500}) - return jsonify({'code': 200}) def put(self): + args = my_unquote(self.args['args']) try: - company = {} - company['id'] = self.args['id'] - company['name'] = self.args['name'] - company['contact'] = self.args['contact'] - company['tel'] = self.args['tel'] - company['user'] = self.args['user'] - company['status'] = self.args['status'] or 0 - company['appid'] = self.args['appid'] - company['appkey'] = self.args['appkey'] + mymaps = {} + mymaps['mapid'] = args['mapid'] + mymaps['user'] = args['user'] + mymaps['url'] = args['url'] + mymaps['status'] = args.get('status', 1) - sel_sql = f"select name from company where id={self.args['id']};" + sel_sql = f"select url from mymaps where mapid={args['mapid']};" data = self.mydb.query(sel_sql) if data: - condition = f"id='{self.args['id']}'" - self.mydb.update("company", company, condition) + condition = f"mapid={args['mapid']}" + self.mydb.update("mymaps", mymaps, condition) return jsonify({'code': 200}) else: - return jsonify({'code': 404, 'message': f"{self.args['id']} not found in mysql!"}) + return jsonify({'code': 404, 'message': f"{args['mapid']} not found in mysql!"}) except Exception: log.error("update values to company mysql failed!", exc_info=True) return jsonify({'code': 500}) diff --git a/ops/__init__.py b/ops/__init__.py new file mode 100644 index 0000000..7c68785 --- /dev/null +++ b/ops/__init__.py @@ -0,0 +1 @@ +# -*- coding: utf-8 -*- \ No newline at end of file diff --git a/ops/base.py b/ops/base.py new file mode 100644 index 0000000..45ec066 --- /dev/null +++ b/ops/base.py @@ -0,0 +1,13 @@ +# -*- coding: utf-8 -*- +from urllib.parse import unquote, quote, urlencode + + +def my_unquote(data): + return unquote(str(data), 'utf-8') + + +def my_quote(data): + if isinstance(data, 'dict'): + return urlencode(data) + elif isinstance(data, 'str'): + return quote(data) From 36d6da45173fe2d695ef0bb644b2ccdc4348af58 Mon Sep 17 00:00:00 2001 From: pengtao Date: Mon, 9 Sep 2019 16:59:07 +0800 Subject: [PATCH 02/30] =?UTF-8?q?=E6=B7=BB=E5=8A=A0maps=E7=B3=BB=E5=88=97?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/server.py b/server.py index f145ccb..2d54a23 100644 --- a/server.py +++ b/server.py @@ -10,6 +10,7 @@ from handler.company import Company from handler.location import Location from handler.ad import Ad from handler.ad_image_upload import Cos_sdk +from handler.priv_map import PrivMaps define_logger("/data/logs/promotion.log") log = logging.getLogger(__name__) @@ -23,7 +24,7 @@ api.add_resource(Company, '/interface/company') api.add_resource(Location, '/interface/location') api.add_resource(Ad, '/interface/promotion') api.add_resource(Cos_sdk, '/interface/cos_upload') - +api.add_resource(PrivMaps, '/interface/maps') if __name__ == '__main__': app.run(host='0.0.0.0', debug=True, port=5015) From f694411add505aa540db54aa22904fdcae3c7139 Mon Sep 17 00:00:00 2001 From: pengtao Date: Mon, 9 Sep 2019 17:19:06 +0800 Subject: [PATCH 03/30] =?UTF-8?q?=E6=B7=BB=E5=8A=A0maps=E7=B3=BB=E5=88=97?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- handler/priv_map.py | 6 +++++- priv_maps.md | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/handler/priv_map.py b/handler/priv_map.py index 0244eaa..d53e59b 100644 --- a/handler/priv_map.py +++ b/handler/priv_map.py @@ -25,7 +25,11 @@ class PrivMaps(Resource): def get(self): - args = my_unquote(self.args['args']) + try: + args = my_unquote(self.args['args']) + except Exception: + log.error(f"get args failed!", exc_info=True) + args = {} users = args.get('args', None) status = args.get('status', 0) all_data = [] diff --git a/priv_maps.md b/priv_maps.md index f37d4fb..f98d94d 100644 --- a/priv_maps.md +++ b/priv_maps.md @@ -62,7 +62,7 @@ http://154.8.214.202:5015/interface/maps ##### 请求示范 -http://154.8.214.202:5015/interface/company? +http://154.8.214.202:5015/interface/maps? ##### 请求参数说明 From 102d52068e8964a333ef1b02508e04ade6701dbe Mon Sep 17 00:00:00 2001 From: pengtao Date: Mon, 9 Sep 2019 17:21:39 +0800 Subject: [PATCH 04/30] =?UTF-8?q?=E6=B7=BB=E5=8A=A0maps=E7=B3=BB=E5=88=97?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- handler/priv_map.py | 1 + 1 file changed, 1 insertion(+) diff --git a/handler/priv_map.py b/handler/priv_map.py index d53e59b..605c2be 100644 --- a/handler/priv_map.py +++ b/handler/priv_map.py @@ -30,6 +30,7 @@ class PrivMaps(Resource): except Exception: log.error(f"get args failed!", exc_info=True) args = {} + print(f"args={args}") users = args.get('args', None) status = args.get('status', 0) all_data = [] From 0e898d323e568a7a585e5257d5911287cdea24cb Mon Sep 17 00:00:00 2001 From: pengtao Date: Mon, 9 Sep 2019 17:22:28 +0800 Subject: [PATCH 05/30] =?UTF-8?q?=E6=B7=BB=E5=8A=A0maps=E7=B3=BB=E5=88=97?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- handler/priv_map.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/handler/priv_map.py b/handler/priv_map.py index 605c2be..718379f 100644 --- a/handler/priv_map.py +++ b/handler/priv_map.py @@ -30,9 +30,9 @@ class PrivMaps(Resource): except Exception: log.error(f"get args failed!", exc_info=True) args = {} - print(f"args={args}") - users = args.get('args', None) - status = args.get('status', 0) + if args: + users = args.get('args', None) + status = args.get('status', 0) all_data = [] try: if users: From 2d11969fcfb7833315bd500908db6f82a8a091d1 Mon Sep 17 00:00:00 2001 From: pengtao Date: Mon, 9 Sep 2019 17:24:23 +0800 Subject: [PATCH 06/30] =?UTF-8?q?=E6=B7=BB=E5=8A=A0maps=E7=B3=BB=E5=88=97?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- handler/priv_map.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/handler/priv_map.py b/handler/priv_map.py index 718379f..5e328aa 100644 --- a/handler/priv_map.py +++ b/handler/priv_map.py @@ -8,7 +8,7 @@ from flask_restful import reqparse, Resource from mysql.mmysql import MysqlBase from prod_config import mysql_promotion_config - +import json log = logging.getLogger(__name__) parser = reqparse.RequestParser() @@ -26,7 +26,7 @@ class PrivMaps(Resource): def get(self): try: - args = my_unquote(self.args['args']) + args = json.loads(my_unquote(self.args['args'])) except Exception: log.error(f"get args failed!", exc_info=True) args = {} From 1a166bab25d0b8d0892189721588f4ce578b8177 Mon Sep 17 00:00:00 2001 From: pengtao Date: Mon, 9 Sep 2019 17:25:31 +0800 Subject: [PATCH 07/30] =?UTF-8?q?=E6=B7=BB=E5=8A=A0maps=E7=B3=BB=E5=88=97?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- handler/priv_map.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/handler/priv_map.py b/handler/priv_map.py index 5e328aa..33f03d3 100644 --- a/handler/priv_map.py +++ b/handler/priv_map.py @@ -33,6 +33,9 @@ class PrivMaps(Resource): if args: users = args.get('args', None) status = args.get('status', 0) + else: + users = None + status = 0 all_data = [] try: if users: From f3c37b1ef7e235816ca7a20e944b08144ba59e76 Mon Sep 17 00:00:00 2001 From: pengtao Date: Mon, 9 Sep 2019 17:37:30 +0800 Subject: [PATCH 08/30] fix bug --- ops/base.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ops/base.py b/ops/base.py index 45ec066..fbf593a 100644 --- a/ops/base.py +++ b/ops/base.py @@ -7,7 +7,7 @@ def my_unquote(data): def my_quote(data): - if isinstance(data, 'dict'): + if isinstance(data, dict): return urlencode(data) - elif isinstance(data, 'str'): + elif isinstance(data, str): return quote(data) From 5a3b66924f0caf18f3ac5192e752fbe29c7fcada Mon Sep 17 00:00:00 2001 From: pengtao Date: Mon, 9 Sep 2019 17:47:20 +0800 Subject: [PATCH 09/30] fix bug --- handler/priv_map.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/handler/priv_map.py b/handler/priv_map.py index 33f03d3..9806eac 100644 --- a/handler/priv_map.py +++ b/handler/priv_map.py @@ -81,7 +81,7 @@ class PrivMaps(Resource): max = int(data[0][0]) + 1 log.info(f"max id was {max}!") except Exception: - log.error(f"error with get company id ", exc_info=True) + log.error(f"error with get maps id ", exc_info=True) max = 1001 return max @@ -96,12 +96,14 @@ class PrivMaps(Resource): self.mydb.insert("mymaps", mymaps) return jsonify({'code': 200}) except Exception: - log.error("set values to company mysql failed!", exc_info=True) + log.error("set values to maps mysql failed!", exc_info=True) return jsonify({'code': 500}) def put(self): + print(f"args={self.args}") args = my_unquote(self.args['args']) + print(f"2={args}") try: mymaps = {} mymaps['mapid'] = args['mapid'] From 057a54fa045052bf7ce8dfe6ef5a30a5c1a17e85 Mon Sep 17 00:00:00 2001 From: pengtao Date: Mon, 9 Sep 2019 17:50:10 +0800 Subject: [PATCH 10/30] fix bug --- handler/priv_map.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/handler/priv_map.py b/handler/priv_map.py index 9806eac..14ae359 100644 --- a/handler/priv_map.py +++ b/handler/priv_map.py @@ -101,9 +101,9 @@ class PrivMaps(Resource): def put(self): - print(f"args={self.args}") + log.info(f"args={self.args}") args = my_unquote(self.args['args']) - print(f"2={args}") + log.info(f"2={args}") try: mymaps = {} mymaps['mapid'] = args['mapid'] From c84867b0d63cc11475ead5f7d0192cb11eda47d2 Mon Sep 17 00:00:00 2001 From: pengtao Date: Mon, 9 Sep 2019 17:54:22 +0800 Subject: [PATCH 11/30] fix bug --- handler/priv_map.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/handler/priv_map.py b/handler/priv_map.py index 14ae359..b80436a 100644 --- a/handler/priv_map.py +++ b/handler/priv_map.py @@ -87,7 +87,9 @@ class PrivMaps(Resource): def post(self): + log.info(f"args={self.args}") args = my_unquote(self.args['args']) + log.info(f"2={args}") try: mymaps = {} mymaps['mapid'] = self.get_newid() From b319cde849706c3565253ad316e7ef6b638a50d7 Mon Sep 17 00:00:00 2001 From: pengtao Date: Mon, 9 Sep 2019 20:30:49 +0800 Subject: [PATCH 12/30] fix bug --- handler/priv_map.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/handler/priv_map.py b/handler/priv_map.py index b80436a..92eaedb 100644 --- a/handler/priv_map.py +++ b/handler/priv_map.py @@ -10,7 +10,7 @@ from mysql.mmysql import MysqlBase from prod_config import mysql_promotion_config import json log = logging.getLogger(__name__) - +import pdb parser = reqparse.RequestParser() parser.add_argument('id') parser.add_argument('user') @@ -87,10 +87,11 @@ class PrivMaps(Resource): def post(self): - log.info(f"args={self.args}") + # log.info(f"args={self.args}") args = my_unquote(self.args['args']) log.info(f"2={args}") try: + pdb.set_trace() mymaps = {} mymaps['mapid'] = self.get_newid() mymaps['user'] = args['user'] From ef8796c473fcddab9eb5e8c32260818acbbfe7ab Mon Sep 17 00:00:00 2001 From: pengtao Date: Mon, 9 Sep 2019 20:42:34 +0800 Subject: [PATCH 13/30] fix bug --- handler/priv_map.py | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/handler/priv_map.py b/handler/priv_map.py index 92eaedb..deffa26 100644 --- a/handler/priv_map.py +++ b/handler/priv_map.py @@ -26,13 +26,13 @@ class PrivMaps(Resource): def get(self): try: - args = json.loads(my_unquote(self.args['args'])) + myargs = json.loads(my_unquote(self.args['args'])) except Exception: log.error(f"get args failed!", exc_info=True) args = {} - if args: - users = args.get('args', None) - status = args.get('status', 0) + if myargs: + users = myargs.get('args', None) + status = myargs.get('status', 0) else: users = None status = 0 @@ -63,13 +63,13 @@ class PrivMaps(Resource): return jsonify({'code': 200, 'message': all_data}) def delete(self): - args = my_unquote(self.args['args']) + myargs = my_unquote(self.args['args']) try: - del_sql = f"update mymaps set status=0 where mapid={args['mapid']};" + del_sql = f"update mymaps set status=0 where mapid={myargs['mapid']};" self.mydb.change(del_sql) return jsonify({'code': 200}) except Exception: - log.error(f"remove {args} failed!", exc_info=True) + log.error(f"remove {myargs} failed!", exc_info=True) return jsonify({'code': 500}) @@ -88,14 +88,14 @@ class PrivMaps(Resource): def post(self): # log.info(f"args={self.args}") - args = my_unquote(self.args['args']) - log.info(f"2={args}") + myargs = my_unquote(self.args['args']) + log.info(f"2={myargs}") try: pdb.set_trace() mymaps = {} mymaps['mapid'] = self.get_newid() - mymaps['user'] = args['user'] - mymaps['url'] = args['url'] + mymaps['user'] = myargs['user'] + mymaps['url'] = myargs['url'] self.mydb.insert("mymaps", mymaps) return jsonify({'code': 200}) except Exception: @@ -105,23 +105,23 @@ class PrivMaps(Resource): def put(self): log.info(f"args={self.args}") - args = my_unquote(self.args['args']) - log.info(f"2={args}") + myargs = my_unquote(self.args['args']) + log.info(f"2={myargs}") try: mymaps = {} - mymaps['mapid'] = args['mapid'] - mymaps['user'] = args['user'] - mymaps['url'] = args['url'] - mymaps['status'] = args.get('status', 1) + mymaps['mapid'] = myargs['mapid'] + mymaps['user'] = myargs['user'] + mymaps['url'] = myargs['url'] + mymaps['status'] = myargs.get('status', 1) - sel_sql = f"select url from mymaps where mapid={args['mapid']};" + sel_sql = f"select url from mymaps where mapid={myargs['mapid']};" data = self.mydb.query(sel_sql) if data: - condition = f"mapid={args['mapid']}" + condition = f"mapid={myargs['mapid']}" self.mydb.update("mymaps", mymaps, condition) return jsonify({'code': 200}) else: - return jsonify({'code': 404, 'message': f"{args['mapid']} not found in mysql!"}) + return jsonify({'code': 404, 'message': f"{myargs['mapid']} not found in mysql!"}) except Exception: log.error("update values to company mysql failed!", exc_info=True) return jsonify({'code': 500}) From e45eb4ce65edc577cbbdb34e9b82156c121a4e44 Mon Sep 17 00:00:00 2001 From: pengtao Date: Mon, 9 Sep 2019 20:45:56 +0800 Subject: [PATCH 14/30] fix bug --- handler/priv_map.py | 2 +- ops/base.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/handler/priv_map.py b/handler/priv_map.py index deffa26..dfb23c8 100644 --- a/handler/priv_map.py +++ b/handler/priv_map.py @@ -88,7 +88,7 @@ class PrivMaps(Resource): def post(self): # log.info(f"args={self.args}") - myargs = my_unquote(self.args['args']) + myargs = json.loads(my_unquote(self.args['args'])) log.info(f"2={myargs}") try: pdb.set_trace() diff --git a/ops/base.py b/ops/base.py index fbf593a..74705e2 100644 --- a/ops/base.py +++ b/ops/base.py @@ -3,7 +3,7 @@ from urllib.parse import unquote, quote, urlencode def my_unquote(data): - return unquote(str(data), 'utf-8') + return unquote(data, 'utf-8') def my_quote(data): From f91243802f5848290e833ab3772c762422571ac1 Mon Sep 17 00:00:00 2001 From: pengtao Date: Mon, 9 Sep 2019 20:47:25 +0800 Subject: [PATCH 15/30] fix bug --- handler/priv_map.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/handler/priv_map.py b/handler/priv_map.py index dfb23c8..a5b9554 100644 --- a/handler/priv_map.py +++ b/handler/priv_map.py @@ -88,10 +88,11 @@ class PrivMaps(Resource): def post(self): # log.info(f"args={self.args}") + pdb.set_trace() myargs = json.loads(my_unquote(self.args['args'])) log.info(f"2={myargs}") try: - pdb.set_trace() + mymaps = {} mymaps['mapid'] = self.get_newid() mymaps['user'] = myargs['user'] From 81100ec08d8da29bcef803913eca8957c547bb48 Mon Sep 17 00:00:00 2001 From: pengtao Date: Mon, 9 Sep 2019 20:49:58 +0800 Subject: [PATCH 16/30] fix bug --- handler/priv_map.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handler/priv_map.py b/handler/priv_map.py index a5b9554..54f1795 100644 --- a/handler/priv_map.py +++ b/handler/priv_map.py @@ -89,7 +89,7 @@ class PrivMaps(Resource): def post(self): # log.info(f"args={self.args}") pdb.set_trace() - myargs = json.loads(my_unquote(self.args['args'])) + myargs = json.loads(my_unquote(self.args['args']).replace("'",'"')) log.info(f"2={myargs}") try: From 9b239e42e2cebe0f06f09d1280aa374f70bd4372 Mon Sep 17 00:00:00 2001 From: pengtao Date: Mon, 9 Sep 2019 20:53:00 +0800 Subject: [PATCH 17/30] fix bug --- handler/priv_map.py | 5 ++--- ops/base.py | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/handler/priv_map.py b/handler/priv_map.py index 54f1795..8b9d18a 100644 --- a/handler/priv_map.py +++ b/handler/priv_map.py @@ -30,6 +30,7 @@ class PrivMaps(Resource): except Exception: log.error(f"get args failed!", exc_info=True) args = {} + myargs = None if myargs: users = myargs.get('args', None) status = myargs.get('status', 0) @@ -88,11 +89,9 @@ class PrivMaps(Resource): def post(self): # log.info(f"args={self.args}") - pdb.set_trace() - myargs = json.loads(my_unquote(self.args['args']).replace("'",'"')) + myargs = json.loads(my_unquote(self.args['args'])) log.info(f"2={myargs}") try: - mymaps = {} mymaps['mapid'] = self.get_newid() mymaps['user'] = myargs['user'] diff --git a/ops/base.py b/ops/base.py index 74705e2..9a29f3b 100644 --- a/ops/base.py +++ b/ops/base.py @@ -3,7 +3,7 @@ from urllib.parse import unquote, quote, urlencode def my_unquote(data): - return unquote(data, 'utf-8') + return unquote(data, 'utf-8').replace("'",'"') def my_quote(data): From 393b5a9e1c5b1658febd19568be4bdce0e90dbf1 Mon Sep 17 00:00:00 2001 From: pengtao Date: Tue, 10 Sep 2019 10:25:50 +0800 Subject: [PATCH 18/30] fix bug --- priv_maps.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/priv_maps.md b/priv_maps.md index f98d94d..ef74d26 100644 --- a/priv_maps.md +++ b/priv_maps.md @@ -62,7 +62,7 @@ http://154.8.214.202:5015/interface/maps ##### 请求示范 -http://154.8.214.202:5015/interface/maps? +http://154.8.214.202:5015/interface/maps?args=%7B%27user%27%3A%20%27pengtao%40kingsome.cn%27%2C%20%27url%27%3A%20%27http%3A//1223.com%27%7D ##### 请求参数说明 @@ -84,7 +84,7 @@ http://154.8.214.202:5015/interface/maps? "code": 200 } -#### 3、更改公司信息 +#### 3、更改图片信息 ##### 接口地址 @@ -96,7 +96,7 @@ http://154.8.214.202:5015/interface/mpas ##### 请求示范 -http://154.8.214.202:5015/interface/company?appid=zpoHY37u&appkey=undefined&contact=miles001&id=1006&name=kingsome&status=1&tel=17771&user=assd +http://154.8.214.202:5015/interface/maps?args=%7B%27user%27%3A%20%27pengtao%40kingsome.cn%27%2C%20%27url%27%3A%20%27http%3A//1223.com%27%7D ##### 请求参数说明 From 7accb6d877d2cd7dab639e7969be0231f5026aa2 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 10 Sep 2019 13:57:32 +0800 Subject: [PATCH 19/30] add check ads redis --- check_redis.py | 35 ++++++++++++++++++++ handler/__pycache__/company.cpython-36.pyc | Bin 4476 -> 4488 bytes handler/__pycache__/location.cpython-36.pyc | Bin 4120 -> 4293 bytes myredis/__pycache__/myredis.cpython-36.pyc | Bin 508 -> 513 bytes print_redis.py | 24 ++++++++++++++ 5 files changed, 59 insertions(+) create mode 100644 check_redis.py create mode 100644 print_redis.py diff --git a/check_redis.py b/check_redis.py new file mode 100644 index 0000000..5da492a --- /dev/null +++ b/check_redis.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +from myredis.myredis import my_redis + + +def main(): + # key = '1066' + # ad::2001::6001::1::1063 ad::{\d+}::{\d+}::{\d}::{\d+} + all_keys = my_redis.keys() + ads_list = [] + if all_keys: + for item in all_keys: + if len(item.split("::")) > 3: + print(f"find item = {item}! ") + try: + for one in my_redis.smembers(item): + ads_list.append(one) + except Exception: + print(f"{all_keys} get from redis via 'ad::[1004|2001]*' ") + else: + raise Exception("redis is nothing!") + + print(f"redis ad list ={ads_list}") + for ad in ads_list: + name = f"ad::{ad}::info" + temp_data = my_redis.hgetall(name) + if temp_data: + pass + #print(temp_data) + else: + print(f"{name} ]\tnot found!") + + +if __name__ == "__main__": + main() + diff --git a/handler/__pycache__/company.cpython-36.pyc b/handler/__pycache__/company.cpython-36.pyc index 2965e3bda3094796e98f026e44f0deff813c91dd..d520f91e9b179519c33a323664ca622df5d47427 100644 GIT binary patch delta 73 zcmeyP)S=92%*)Hg|1&t&b0cR0yM$tCK}uptszPFlLUC$|LS|lkX>n?bt-<74c2|xl dw&aY&y!6z~$JymL*`v4%it$B9lAV?O2Nx85kHQzvmI%{Ft4S Mlj#=QF-s#s6rQ(9*2!qHF?SLUB&>>PB!!@rn)Bc+)y6^*RMxz8-PP>I*^Oc@AY9tJ zYMKM@nrjXOizC0m#zM4BXJun4f}L-p4D)^88{YT5dB4o75iyg=h}oC5t=-&zahWm( z8Dn4Rh8i$-daW+Rk`j913=lps`J)A>y>sH7lRajh<|UA~piM@9AxdHz1$C3_oMC^9 zc`SC49_VRulg{)sC7iQA9J9Z*HmtFA=1(PAlsXXd30Qn0ebVbg19Ld|lj12nk7*a; z=8d=N!&_DQ*zxpRSaiwAnt8{LOiMbUd18emY^&1L%h74wj=2^fF)uq-&33U;(&RAh zEsF$dj?XB`$8*W}Wh92t7{=5;UV@^!<3lMEa@v>913v~>>1>Pd8f>cjf#>2xqmEW& zn}H$GTPZ$FZgSto|CuuZ$RWasU7T delta 283 zcmX@AI75NUn3tC;&EGQChkqm2T2_8;1_lOaATC}4Br06Tq)eWK=~5(6rL2`OvYx$V1@_?j}OArTE>m0_+nO_(ub8xB)C<1LMQUVdmAcAGGJ*TF)6p+cl%EZXR$OnZ&j694&o0~by z7#Y1b|Ke(5Vho>L%ll1KE+sW5wIo#`ttdZNAtygMu_QA;Z}LPwKc*su$%eeblfUz6 zGv-ZJ=FelanLLSKhf!qme*RoJw&eW0w9ND(E}%WPm7Pb*-rKs GC<6dwmqiQ! diff --git a/myredis/__pycache__/myredis.cpython-36.pyc b/myredis/__pycache__/myredis.cpython-36.pyc index 2ff9c186f1df61f67ca41bf4db084d24cf44dcfa..09bfe88920870248f3e0daf0d5e313f158aff141 100644 GIT binary patch delta 67 zcmeyv+{nUd%*)HA@z5vs*F?_ij8PLGO7KK+6eJcGm**Fy6tPccW%Oa=E-1=RiJu(A XXvG*cxtCFrjgNtWp@?tt8pZ$s;^Gt} delta 82 zcmZo<`NPa<%*)FqU!@!Sbt30=##<8~O7Ps`C`c?WF3&GYDdL#S%IL$$HaVQpO5qku jL4JNt6l+jwN@npbj@-)lA`ojOLy;f@1CW@!kud-Oe@7cn diff --git a/print_redis.py b/print_redis.py new file mode 100644 index 0000000..e5128a8 --- /dev/null +++ b/print_redis.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +from myredis.myredis import my_redis + +def main(): + key = '1066' + all_keys = my_redis.keys(pattern=f'*::{key}') + ads_list = [] + if all_keys: + for item in all_keys: + try: + for one in my_redis.smembers(item): + ads_list.append(one) + except Exception: + print(f"{all_keys} get from redis via '*::{key}' ") + + for ad in ads_list: + name = f"ad::{ad}::info" + temp_data = my_redis.hgetall(name) + print(temp_data) + + +if __name__ == "__main__": + main() + From 9ed941b93286047ebbdf18176c33c5f67b213afa Mon Sep 17 00:00:00 2001 From: pengtao Date: Tue, 10 Sep 2019 14:29:09 +0800 Subject: [PATCH 20/30] fix bug --- check_redis.py | 2 -- handler/priv_map.py | 30 +++++++++++------------------- ops/reflush_ad.py | 44 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 55 insertions(+), 21 deletions(-) create mode 100644 ops/reflush_ad.py diff --git a/check_redis.py b/check_redis.py index 5da492a..d91018c 100644 --- a/check_redis.py +++ b/check_redis.py @@ -3,8 +3,6 @@ from myredis.myredis import my_redis def main(): - # key = '1066' - # ad::2001::6001::1::1063 ad::{\d+}::{\d+}::{\d}::{\d+} all_keys = my_redis.keys() ads_list = [] if all_keys: diff --git a/handler/priv_map.py b/handler/priv_map.py index 8b9d18a..13a8ba6 100644 --- a/handler/priv_map.py +++ b/handler/priv_map.py @@ -12,12 +12,11 @@ import json log = logging.getLogger(__name__) import pdb parser = reqparse.RequestParser() -parser.add_argument('id') +parser.add_argument('mapid') parser.add_argument('user') parser.add_argument('url') parser.add_argument('args') - class PrivMaps(Resource): def __init__(self): self.args = parser.parse_args() @@ -25,22 +24,12 @@ class PrivMaps(Resource): def get(self): - try: - myargs = json.loads(my_unquote(self.args['args'])) - except Exception: - log.error(f"get args failed!", exc_info=True) - args = {} - myargs = None - if myargs: - users = myargs.get('args', None) - status = myargs.get('status', 0) - else: - users = None - status = 0 + users = self.args['users'] + status = self.args['status'] all_data = [] try: if users: - sql = f"select user,mapid,url,status from mymaps where user={users};" + sql = f"select user,mapid,url,status from mymaps where user='{users}';" elif status: sql = f"select user,mapid,url,status from mymaps where status={status};" else: @@ -59,18 +48,18 @@ class PrivMaps(Resource): log.info(f"{data} not found in mysql !") return jsonify({'code': 200, 'message': []}) except Exception: - log.error(f"get maps via args={args} failed! ", exc_info=True) + log.error(f"get maps via args={self.args} failed! ", exc_info=True) return jsonify({'code': 500}) return jsonify({'code': 200, 'message': all_data}) def delete(self): - myargs = my_unquote(self.args['args']) + mapid = self.args['mapid'] try: - del_sql = f"update mymaps set status=0 where mapid={myargs['mapid']};" + del_sql = f"update mymaps set status=0 where mapid={mapid};" self.mydb.change(del_sql) return jsonify({'code': 200}) except Exception: - log.error(f"remove {myargs} failed!", exc_info=True) + log.error(f"remove {self.args} failed!", exc_info=True) return jsonify({'code': 500}) @@ -88,6 +77,9 @@ class PrivMaps(Resource): def post(self): + print(self.args) + pdb.set_trace() + mapid = self.args['mapid'] # log.info(f"args={self.args}") myargs = json.loads(my_unquote(self.args['args'])) log.info(f"2={myargs}") diff --git a/ops/reflush_ad.py b/ops/reflush_ad.py new file mode 100644 index 0000000..9be4ee0 --- /dev/null +++ b/ops/reflush_ad.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +from myredis.myredis import my_redis +from mysql.mmysql import MysqlBase +from prod_config import mysql_promotion_config +from log.mylog import define_logger +import logging + + +define_logger("/data/logs/reflush_ad.log") +log = logging.getLogger(__name__) + + +class Reflush_AdInfo(): + def __init__(self): + self.myredis = my_redis + self.mysql = MysqlBase(**mysql_promotion_config) + + def reflush_ad_via_localtionid(self, locationid): + all = self.myredis.keys() + change_key = [] + if all: + for one_key in all: + if len(one_key.split("::")) > 3 and one_key.split("::")[-1] == locationid: + change_key.append(one_key) + else: + raise Exception("Redis is null!") + + for item in change_key: + pass + + + self.reflush_ad(item) + + + def reflush_ad(self, adid): + pass + + +def main(): + pass + + +if __name__ == "__main__": + main() From 115e443127720ed4aa28c42a0e285b21a8e1a1a9 Mon Sep 17 00:00:00 2001 From: pengtao Date: Tue, 10 Sep 2019 14:39:47 +0800 Subject: [PATCH 21/30] fix bug --- handler/priv_map.py | 31 +++++++++++-------------------- 1 file changed, 11 insertions(+), 20 deletions(-) diff --git a/handler/priv_map.py b/handler/priv_map.py index 13a8ba6..03e2dbf 100644 --- a/handler/priv_map.py +++ b/handler/priv_map.py @@ -15,7 +15,7 @@ parser = reqparse.RequestParser() parser.add_argument('mapid') parser.add_argument('user') parser.add_argument('url') -parser.add_argument('args') +parser.add_argument('status') class PrivMaps(Resource): def __init__(self): @@ -77,43 +77,34 @@ class PrivMaps(Resource): def post(self): - print(self.args) - pdb.set_trace() - mapid = self.args['mapid'] - # log.info(f"args={self.args}") - myargs = json.loads(my_unquote(self.args['args'])) - log.info(f"2={myargs}") + print(f"args={self.args}") try: mymaps = {} mymaps['mapid'] = self.get_newid() - mymaps['user'] = myargs['user'] - mymaps['url'] = myargs['url'] + mymaps['user'] = self.args['user'] + mymaps['url'] = self.args['url'] self.mydb.insert("mymaps", mymaps) return jsonify({'code': 200}) except Exception: log.error("set values to maps mysql failed!", exc_info=True) return jsonify({'code': 500}) - def put(self): - log.info(f"args={self.args}") - myargs = my_unquote(self.args['args']) - log.info(f"2={myargs}") try: mymaps = {} - mymaps['mapid'] = myargs['mapid'] - mymaps['user'] = myargs['user'] - mymaps['url'] = myargs['url'] - mymaps['status'] = myargs.get('status', 1) + mymaps['mapid'] = self.args['mapid'] + mymaps['user'] = self.args['user'] + mymaps['url'] = self.args['url'] + mymaps['status'] = self.args['status'] - sel_sql = f"select url from mymaps where mapid={myargs['mapid']};" + sel_sql = f"select url from mymaps where mapid={self.args['mapid']};" data = self.mydb.query(sel_sql) if data: - condition = f"mapid={myargs['mapid']}" + condition = f"mapid={self.args['mapid']}" self.mydb.update("mymaps", mymaps, condition) return jsonify({'code': 200}) else: - return jsonify({'code': 404, 'message': f"{myargs['mapid']} not found in mysql!"}) + return jsonify({'code': 404, 'message': f"{self.args['mapid']} not found in mysql!"}) except Exception: log.error("update values to company mysql failed!", exc_info=True) return jsonify({'code': 500}) From 3a67f7d2e3a1736e3c517b15a00cd855d66ec05f Mon Sep 17 00:00:00 2001 From: pengtao Date: Tue, 10 Sep 2019 14:43:37 +0800 Subject: [PATCH 22/30] fix bug --- handler/priv_map.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/handler/priv_map.py b/handler/priv_map.py index 03e2dbf..29df3d3 100644 --- a/handler/priv_map.py +++ b/handler/priv_map.py @@ -24,8 +24,12 @@ class PrivMaps(Resource): def get(self): - users = self.args['users'] - status = self.args['status'] + try: + users = self.args['users'] + status = self.args['status'] + except Exception: + log.info(f"get args Failed,{self.args}") + return jsonify({'code': 500, "message": f"get args Failed,{self.args}"}) all_data = [] try: if users: @@ -53,7 +57,11 @@ class PrivMaps(Resource): return jsonify({'code': 200, 'message': all_data}) def delete(self): - mapid = self.args['mapid'] + try: + mapid = self.args['mapid'] + except Exception: + log.info(f"get args Failed,{self.args}") + return jsonify({'code': 500, "message": f"get args Failed,{self.args}"}) try: del_sql = f"update mymaps set status=0 where mapid={mapid};" self.mydb.change(del_sql) @@ -87,7 +95,7 @@ class PrivMaps(Resource): return jsonify({'code': 200}) except Exception: log.error("set values to maps mysql failed!", exc_info=True) - return jsonify({'code': 500}) + return jsonify({'code': 500,"message":f"get args failed,{self.args}"}) def put(self): try: From 6b02cfd8ef0cfd4062a1aefe23918eb8bf5a9497 Mon Sep 17 00:00:00 2001 From: pengtao Date: Tue, 10 Sep 2019 14:45:35 +0800 Subject: [PATCH 23/30] fix bug --- handler/priv_map.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handler/priv_map.py b/handler/priv_map.py index 29df3d3..aae0401 100644 --- a/handler/priv_map.py +++ b/handler/priv_map.py @@ -29,7 +29,7 @@ class PrivMaps(Resource): status = self.args['status'] except Exception: log.info(f"get args Failed,{self.args}") - return jsonify({'code': 500, "message": f"get args Failed,{self.args}"}) + #return jsonify({'code': 500, "message": f"get args Failed,{self.args}"}) all_data = [] try: if users: From 77259e5ed5bfbf9c7e7991aaf0a88405ce362d14 Mon Sep 17 00:00:00 2001 From: pengtao Date: Tue, 10 Sep 2019 14:46:57 +0800 Subject: [PATCH 24/30] fix bug --- handler/priv_map.py | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/handler/priv_map.py b/handler/priv_map.py index aae0401..2d73b67 100644 --- a/handler/priv_map.py +++ b/handler/priv_map.py @@ -24,12 +24,8 @@ class PrivMaps(Resource): def get(self): - try: - users = self.args['users'] - status = self.args['status'] - except Exception: - log.info(f"get args Failed,{self.args}") - #return jsonify({'code': 500, "message": f"get args Failed,{self.args}"}) + users = self.args['users'] + status = self.args['status'] all_data = [] try: if users: @@ -57,11 +53,7 @@ class PrivMaps(Resource): return jsonify({'code': 200, 'message': all_data}) def delete(self): - try: - mapid = self.args['mapid'] - except Exception: - log.info(f"get args Failed,{self.args}") - return jsonify({'code': 500, "message": f"get args Failed,{self.args}"}) + mapid = self.args['mapid'] try: del_sql = f"update mymaps set status=0 where mapid={mapid};" self.mydb.change(del_sql) From 346374936b87352c263d266c3d3cc191971b2dea Mon Sep 17 00:00:00 2001 From: pengtao Date: Tue, 10 Sep 2019 14:48:00 +0800 Subject: [PATCH 25/30] fix bug --- handler/priv_map.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handler/priv_map.py b/handler/priv_map.py index 2d73b67..34d40f6 100644 --- a/handler/priv_map.py +++ b/handler/priv_map.py @@ -24,7 +24,7 @@ class PrivMaps(Resource): def get(self): - users = self.args['users'] + users = self.args['user'] status = self.args['status'] all_data = [] try: From 46d4a18eb20f59ba2ace5d0ed3021e6f296f0d3c Mon Sep 17 00:00:00 2001 From: pengtao Date: Tue, 10 Sep 2019 14:48:21 +0800 Subject: [PATCH 26/30] fix bug --- handler/priv_map.py | 1 + 1 file changed, 1 insertion(+) diff --git a/handler/priv_map.py b/handler/priv_map.py index 34d40f6..c0c46fb 100644 --- a/handler/priv_map.py +++ b/handler/priv_map.py @@ -90,6 +90,7 @@ class PrivMaps(Resource): return jsonify({'code': 500,"message":f"get args failed,{self.args}"}) def put(self): + try: mymaps = {} mymaps['mapid'] = self.args['mapid'] From bac163a5959c73dcde36b4760772901607a35051 Mon Sep 17 00:00:00 2001 From: pengtao Date: Tue, 10 Sep 2019 14:52:47 +0800 Subject: [PATCH 27/30] fix bug --- handler/priv_map.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/handler/priv_map.py b/handler/priv_map.py index c0c46fb..49def8b 100644 --- a/handler/priv_map.py +++ b/handler/priv_map.py @@ -24,6 +24,8 @@ class PrivMaps(Resource): def get(self): + print(f"{self.args}") + pdb.set_trace() users = self.args['user'] status = self.args['status'] all_data = [] From 69166e72fc2cd1705a7536fa519fdf85a192c6c5 Mon Sep 17 00:00:00 2001 From: pengtao Date: Tue, 10 Sep 2019 14:59:19 +0800 Subject: [PATCH 28/30] fix bug --- handler/priv_map.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/handler/priv_map.py b/handler/priv_map.py index 49def8b..c0c46fb 100644 --- a/handler/priv_map.py +++ b/handler/priv_map.py @@ -24,8 +24,6 @@ class PrivMaps(Resource): def get(self): - print(f"{self.args}") - pdb.set_trace() users = self.args['user'] status = self.args['status'] all_data = [] From 17bf55d03e4aa71c79c125ea211556544ecb22ab Mon Sep 17 00:00:00 2001 From: pengtao Date: Tue, 10 Sep 2019 15:02:43 +0800 Subject: [PATCH 29/30] fix bug --- priv_maps.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/priv_maps.md b/priv_maps.md index ef74d26..71ea66c 100644 --- a/priv_maps.md +++ b/priv_maps.md @@ -22,7 +22,7 @@ http://154.8.214.202:5015/interface/maps http://154.8.214.202:5015/maps -http://154.8.214.202:5015/interface/maps?user=xxx +http://154.8.214.202:5015/interface/maps?status=0 ##### 请求参数说明 @@ -62,7 +62,7 @@ http://154.8.214.202:5015/interface/maps ##### 请求示范 -http://154.8.214.202:5015/interface/maps?args=%7B%27user%27%3A%20%27pengtao%40kingsome.cn%27%2C%20%27url%27%3A%20%27http%3A//1223.com%27%7D +http://154.8.214.202:5015/interface/maps ##### 请求参数说明 @@ -96,7 +96,7 @@ http://154.8.214.202:5015/interface/mpas ##### 请求示范 -http://154.8.214.202:5015/interface/maps?args=%7B%27user%27%3A%20%27pengtao%40kingsome.cn%27%2C%20%27url%27%3A%20%27http%3A//1223.com%27%7D +http://154.8.214.202:5015/interface/maps ##### 请求参数说明 @@ -124,14 +124,13 @@ http://154.8.214.202:5015/interface/maps?args=%7B%27user%27%3A%20%27pengtao%40ki ##### 接口地址 http://154.8.214.202:5015/interface/maps - ##### 返回格式:json ##### 请求方式:delete ##### 请求示范 -http://154.8.214.202:5015/interface/maps +http://154.8.214.202:5015/interface/maps?mapid=1006 ##### 请求参数说明 From 0ac61402dbe2ec23d77b2b5e03972b7301dbc596 Mon Sep 17 00:00:00 2001 From: pengtao Date: Tue, 10 Sep 2019 15:17:03 +0800 Subject: [PATCH 30/30] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=B9=BF=E5=91=8A?= =?UTF-8?q?=E4=BD=8D=E7=BD=AE=E5=88=B7=E6=96=B0=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ops/reflush_ad.py | 117 ++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 108 insertions(+), 9 deletions(-) diff --git a/ops/reflush_ad.py b/ops/reflush_ad.py index 9be4ee0..04dad5d 100644 --- a/ops/reflush_ad.py +++ b/ops/reflush_ad.py @@ -4,7 +4,7 @@ from mysql.mmysql import MysqlBase from prod_config import mysql_promotion_config from log.mylog import define_logger import logging - +import json define_logger("/data/logs/reflush_ad.log") log = logging.getLogger(__name__) @@ -12,11 +12,10 @@ log = logging.getLogger(__name__) class Reflush_AdInfo(): def __init__(self): - self.myredis = my_redis self.mysql = MysqlBase(**mysql_promotion_config) def reflush_ad_via_localtionid(self, locationid): - all = self.myredis.keys() + all = my_redis.keys() change_key = [] if all: for one_key in all: @@ -24,20 +23,120 @@ class Reflush_AdInfo(): change_key.append(one_key) else: raise Exception("Redis is null!") - + ad_list = [] for item in change_key: - pass + temp = my_redis.smembers(item) + for one in temp: + ad_list.append(one) + self.reflush_ad(ad_list) - self.reflush_ad(item) + def reflush_ad(self, adids): + # expirt key via localtionid + for item in adids: + key = f"ad::{item}::info" + my_redis.expire(key, 1) + all_data = [] + # add new key + sql = f"""select + a.id, + a.name, + a.ad_num, + a.ad_title, + a.ad_body, + a.ad_image, + a.jump_param, + a.ad_sort, + a.companyid, + a.gameid, + a.channelid, + a.jump_status, + a.ad_property, + b.area, + b.type, + b.mode, + a.locationid + from + (select + id, + name, + ad_num, + ad_title, + ad_body, + ad_image, + jump_param, + ad_sort, + companyid, + gameid, + channelid, + jump_status, + locationid , + ad_property + from + ad + where + status=1 + and in_used=1 + and id={item})a , + (select + id, + area, + type, + mode + from + location) b + where + a.locationid=b.id + """ + data = self.mysql.query(sql) + if data: + for line in data: + item = {} + try: + item['id'], item['name'], item['ad_num'], item['ad_title'], item['ad_body'], item['ad_image'], \ + item['jump_param'], item['ad_sort'], item['companyid'], item['gameid'], item['channelid'], \ + item['jump_status'], item['ad_property'], item['area'], item['type'], item['mode'], item[ + 'locationid'] = line + try: + item['x_offset'] = item['area'].split(',')[-2].strip() + except: + item['x_offset'] = 0 + try: + item['y_offset'] = item['area'].split(',')[-1].strip().strip(')') + except: + item['y_offset'] = 0 + + if item.get('jump_param', "") and (item['ad_property'].find("jump_param") == -1): + try: + temp = {} + temp['jump_param'] = item.get('jump_param', "") + if not item['ad_property']: + item['ad_property'] = {} + if not isinstance(item.get('ad_property', {}), dict): + if not item.get('ad_property', {}): + item['ad_property'] = {}.update(temp) + else: + item['ad_property'] = json.loads( + item.get('ad_property', {}).replace("‘", '"').replace("’", '"')) + item['ad_property'].update(temp) + item['ad_property'] = json.dumps(item['ad_property']) + except Exception: + log.error(f"write {item}", exc_info=True) + + all_data.append(item) + except Exception: + log.error("split data failed", exc_info=True) + + for item in all_data: + my_redis.hmset(f"ad::{item['id']}::info", item) + my_redis.expire(f"ad::{item['id']}::info", 3600 * 24) - def reflush_ad(self, adid): - pass def main(): - pass + cc = Reflush_AdInfo() + cc.reflush_ad_via_localtionid('1016') if __name__ == "__main__":