添加图片管理接口
This commit is contained in:
parent
28a00f301c
commit
eba34c5b1e
@ -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)
|
||||
except Exception:
|
||||
log.error(f"remove {id} failed!", exc_info=True)
|
||||
return jsonify({'code': 500})
|
||||
return jsonify({'code': 200})
|
||||
except Exception:
|
||||
log.error(f"remove {args} failed!", exc_info=True)
|
||||
return jsonify({'code': 500})
|
||||
|
||||
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})
|
||||
|
1
ops/__init__.py
Normal file
1
ops/__init__.py
Normal file
@ -0,0 +1 @@
|
||||
# -*- coding: utf-8 -*-
|
13
ops/base.py
Normal file
13
ops/base.py
Normal file
@ -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)
|
Loading…
x
Reference in New Issue
Block a user