Commit ce3f2625 by Aeolus

update

parent d9785a10
...@@ -152,54 +152,53 @@ def get_business_account_list(): ...@@ -152,54 +152,53 @@ def get_business_account_list():
select_sql = """select admin_account.id, admin_account.user_no,admin_account.user_name, admin_account.phone, select_sql = """select admin_account.id, admin_account.user_no,admin_account.user_name, admin_account.phone,
admin_account.level, admin_business.rate """ admin_account.level, admin_business.rate """
count_sql = "select count(admin_account.id) as total_count" count_sql = "select count(admin_account.id) as total_count"
from_sql = """ from admin_account left join admin_business on admin_account.id = admin_business.user_id """ from_sql = """ from admin_account left join admin_business on admin_account.id = admin_business.user_id """
where_sql = """ where admin_business.business_id = '{}' and admin_business.status = '1'
where_sql = """ where admin_business.business_id = {} and admin_business.status = 1 and admin_account.level >= '{}'
and admin_account.status = 1 """.format(business_id, admin.level)
""".format(business_id)
if keyword: if keyword:
where_sql += """ and CONCAT(admin_account.user_name, admin_account.phone) LIKE '%{keyword}%' where_sql += """ and CONCAT(admin_account.user_name, admin_account.phone) LIKE '%{keyword}%'
""".format(keyword=keyword) """.format(keyword=keyword)
order_sql = " ORDER BY admin_account.id ASC" order_sql = " ORDER BY admin_account.id ASC"
limit_sql = " LIMIT {offset} , {page_size} ".format(offset=(page - 1) * page_size, page_size=page_size) limit_sql = " LIMIT {offset} , {page_size} ".format(offset=(page - 1) * page_size, page_size=page_size)
count_result = db.session.execute(count_sql + from_sql + where_sql).fetchone() count_result = db.session.execute(count_sql + from_sql + where_sql).fetchone()
if not count_result: if not count_result:
return BaseResponse(data={"list": [], "page": page, "pageSize": page_size, "total_count": 0}) return BaseResponse(data={"list": [], "page": page, "pageSize": page_size, "total_count": 0})
else: else:
total_count = count_result.total_count total_count = count_result.total_count
result = db.session.execute(select_sql + from_sql + where_sql + order_sql + limit_sql).fetchall() result = db.session.execute(select_sql + from_sql + where_sql + order_sql + limit_sql).fetchall()
return_data = [] return_data = []
# super_admin = {"user_name": "咻咻公司", "user_id": 0, "user_no": "0",
# "phone": "0", "level": 1, "rate": 0}
for info in result: for info in result:
# if info.level == 1 or info.level == 4:
# super_admin["rate"] += info.rate
# else:
return_data.append({"user_name": info.user_name, "user_id": info.id, "user_no": info.user_no, return_data.append({"user_name": info.user_name, "user_id": info.id, "user_no": info.user_no,
"phone": info.phone, "level": info.level, "rate": info.rate "phone": info.phone, "level": info.level, "rate": info.rate
}) })
# return_data.append(super_admin) super_sql = """ where admin_business.business_id = '{}' and admin_business.status = '1'
return BaseResponse({"list": return_data, "page": page, "pageSize": page_size, "total_count": total_count}) and admin_account.status = '1' and admin_account.level < '{}'
""".format(business_id, admin.level)
super_result = db.session.execute(select_sql + from_sql + super_sql).fetchall()
super_data = [{"user_name": "咻咻科技", "user_id": 0, "user_no": '0', "phone": "0", "level": 1, "rate": 0}]
for info in super_result:
if info.level in (1, 3):
super_data[0]["rate"] += info.rate
else:
super_data.append({"user_name": info.user_name, "user_id": info.id, "user_no": info.user_no,
"phone": info.phone, "level": info.level, "rate": info.rate
})
return BaseResponse({"super_list": super_data, "list": return_data, "page": page, "pageSize": page_size,
"total_count": total_count})
@business_route.route("add_admin_account", methods=["POST"]) @business_route.route("edit_admin_account", methods=["POST"])
def run_add_admin_account(): def run_edit_admin_account():
""" """
:return: :return:
""" """
json_data = request.get_json() json_data = request.get_json()
business_id = json_data["business_id"] business_id = json_data["business_id"]
user_id = json_data["user_id"] user_data = json_data["user_data"]
rate = int(json_data["rate"])
admin = g.user admin = g.user
if admin.level not in (1, 2, 4, 5): if admin.level not in (1, 2, 4, 5):
...@@ -209,63 +208,51 @@ def run_add_admin_account(): ...@@ -209,63 +208,51 @@ def run_add_admin_account():
if not result: if not result:
return jsonify(ADMIN_BUSINESS_NOT_EXIST) return jsonify(ADMIN_BUSINESS_NOT_EXIST)
result = AdminService.get_admin_account_list(user_id=user_id) select_sql = """select sum(rate) as total_rate """
if result["total_count"] != 1: from_sql = """ from admin_account left join admin_business on admin_account.id = admin_business.user_id """
return BaseResponse(**ACCOUNT_NOT_EXISTS_ERROR) super_sql = """ where admin_business.business_id = '{}' and admin_business.status = '1'
user_info = json2obj(result["list"][0]) and admin_account.level < '{}'
""".format(business_id, admin.level)
result = AdminBusiness.query.filter_by(business_id=business_id, status=1).all() super_rate = db.session.execute(select_sql + from_sql + super_sql).fetchone()["total_rate"]
total_rate = 0
for i in result: total_rate = 100 - super_rate
total_rate += i.rate for i in user_data:
if (total_rate + rate) > 100: rate = int(i["rate"])
total_rate = total_rate - rate
if total_rate < 0:
return jsonify(RATE_INVALID_ERROR) return jsonify(RATE_INVALID_ERROR)
AdminService.add_or_edit_admin_business(user_info, business_id, rate) select_sql = """select admin_account.id as user_id"""
return BaseResponse() from_sql = """ from admin_account left join admin_business on admin_account.id = admin_business.user_id """
where_sql = """ where admin_business.business_id = '{}' and admin_business.status = '1'
and admin_account.level >= '{}'
@business_route.route("edit_admin_account", methods=["POST"]) """.format(business_id, admin.level)
def run_edit_admin_account(): user_id_list = [x["user_id"] for x in (db.session.execute(select_sql + from_sql + where_sql).fetchall())]
"""
AdminBusiness.query.filter(AdminBusiness.business_id == business_id,
:return: AdminBusiness.user_id.in_(user_id_list)).update({"status": -1})
""" for i in user_data:
json_data = request.get_json() user_id = i["user_id"]
business_id = json_data["business_id"] rate = int(i["rate"])
user_id = json_data["user_id"] if user_id == admin.id:
rate = json_data.get("rate", None) user_info = admin
status = json_data.get("status", None) else:
result = AdminService.get_admin_account_list(user_id=user_id)
admin = g.user if result["total_count"] != 1:
if admin.level not in (1, 2, 4, 5): return BaseResponse(**ACCOUNT_NOT_EXISTS_ERROR)
return jsonify(OPERATE_LEVEL_ERROR) user_info = json2obj(result["list"][0])
if admin.level != 1: admin_business = AdminBusiness.query.filter_by(business_id=business_id, user_id=user_id).first()
result = AdminBusiness.query.filter_by(business_id=business_id, user_id=admin.id, status=1).first() if admin_business:
if not result: admin_business.rate = rate
return jsonify(OPERATE_LEVEL_ERROR) admin_business.status = 1
user_info = AdminAccount.query.filter_by(id=user_id).first() else:
if not user_info: admin_business = AdminBusiness()
return jsonify(ACCOUNT_NOT_EXISTS_ERROR) admin_business.user_id = user_id
if user_info.level <= admin.level: admin_business.user_no = user_info.user_no
return jsonify(OPERATE_LEVEL_ERROR) admin_business.business_id = business_id
admin_business.rate = rate
admin_business = AdminBusiness.query.filter_by(business_id=business_id, user_id=user_id).first() admin_business.status = 1
if not admin_business: db.session.add(admin_business)
return jsonify(ADMIN_BUSINESS_NOT_EXIST)
if rate:
result = AdminBusiness.query.filter_by(business_id=business_id, status=1).all()
total_rate = 0
for i in result:
if i.user_id != int(user_id):
total_rate += i.rate
if (total_rate + int(rate)) > 100:
return jsonify(RATE_INVALID_ERROR)
admin_business.rate = rate
if status:
admin_business.status = int(status)
db.session.add(admin_business)
db.session.commit() db.session.commit()
return BaseResponse() return BaseResponse()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment