flask-restful依赖替换完成

This commit is contained in:
zhengxinonly
2021-06-28 01:56:05 +08:00
parent e3dd5458ad
commit 17792ccacf
28 changed files with 229 additions and 349 deletions
@@ -1,13 +1,16 @@
from flask import Blueprint, render_template, request, jsonify
from marshmallow import INCLUDE
from flask import Blueprint, render_template, jsonify, make_response
from flask_restful import marshal, Api, Resource, reqparse
from applications.common.serialization import dept_fields
from applications.common.utils.http import success_api, fail_api
from applications.common.utils.rights import authorize
from applications.common.utils.validate import check_data
from applications.models import DeptSchema
from applications.view.company.department import dept_curd as dept_curd
from applications.extensions import db
from applications.models import Dept, User
# from applications.view.company.department import dept_curd
dept_bp = Blueprint('dept', __name__, url_prefix='/dept')
dept_api = Api(dept_bp)
def register_dept_views(app):
@@ -23,90 +26,118 @@ def main():
@dept_bp.get('/data')
@authorize("admin:dept:main", log=True)
def data():
power_data = dept_curd.get_dept_dict()
dept_data = Dept.query.order_by(Dept.sort).all()
res = {
"data": power_data
"data": marshal(dept_data, dept_fields)
}
return jsonify(res)
@dept_bp.get('/add')
@authorize("admin:dept:add", log=True)
def add():
return render_template('admin/dept/add.html')
@dept_api.resource('/add')
class AddDepartment(Resource):
@authorize("admin:dept:add", log=True)
def get(self):
return make_response(render_template('admin/dept/add.html'))
@authorize("admin:dept:add", log=True)
def post(self):
parser = reqparse.RequestParser()
parser.add_argument('address', type=str)
parser.add_argument('deptName', type=str, dest='dept_name')
parser.add_argument('email', type=str)
parser.add_argument('leader', type=str)
parser.add_argument('parentId', type=int, dest='parent_id')
parser.add_argument('phone', type=str)
parser.add_argument('sort', type=int)
parser.add_argument('status', type=int)
res = parser.parse_args()
dept = Dept(
parent_id=res.parent_id,
dept_name=res.dept_name,
sort=res.sort,
leader=res.leader,
phone=res.phone,
email=res.email,
status=res.status,
address=res.address
)
db.session.add(dept)
db.session.commit()
return success_api(msg="成功")
@dept_bp.get('/tree')
@authorize("admin:dept:main", log=True)
def tree():
power_data = dept_curd.get_dept_dict()
dept_data = Dept.query.order_by(Dept.sort).all()
res = {
"status": {"code": 200, "message": "默认"},
"data": power_data
"data": marshal(dept_data, dept_fields)
}
return jsonify(res)
@dept_bp.post('/save')
@authorize("admin:dept:add", log=True)
def save():
req = request.json
check_data(DeptSchema(unknown=INCLUDE), req)
dept_curd.save_dept(req)
return success_api(msg="成功")
@dept_bp.get('/edit')
@authorize("admin:dept:edit", log=True)
def edit():
_id = request.args.get("deptId")
dept = dept_curd.get_dept_by_id(_id)
return render_template('admin/dept/edit.html', dept=dept)
# 启用
@dept_bp.put('/enable')
@authorize("admin:dept:edit", log=True)
def enable():
_id = request.json.get('deptId')
if id:
res = dept_curd.enable_status(_id)
parser = reqparse.RequestParser()
parser.add_argument('deptId', type=int, dest='dept_id', required=True)
parser.add_argument('operate', type=int, choices=[0, 1], required=True)
res = parser.parse_args()
d = Dept.query.filter_by(id=res.dept_id).update({"status": res.operate})
if d:
db.session.commit()
message = '启用成功' if res.operate else '禁用成功'
return success_api(msg=message)
return fail_api(msg="出错啦")
@dept_api.resource('/edit/<int:dept_id>')
class DeptURD(Resource):
@authorize("admin:dept:edit", log=True)
def get(self, dept_id):
dept = Dept.query.filter_by(id=dept_id).first()
return make_response(render_template('admin/dept/edit.html', dept=dept))
@authorize("admin:dept:edit", log=True)
def put(self, dept_id):
parser = reqparse.RequestParser()
parser.add_argument('address', type=str)
parser.add_argument('deptName', type=str, dest='dept_name')
parser.add_argument('email', type=str)
parser.add_argument('leader', type=str)
parser.add_argument('phone', type=str)
parser.add_argument('sort', type=int)
parser.add_argument('status', type=int)
res = parser.parse_args()
data = {
"dept_name": res.dept_name,
"sort": res.sort,
"leader": res.leader,
"phone": res.phone,
"email": res.email,
"status": res.status,
"address": res.address
}
res = Dept.query.filter_by(id=dept_id).update(data)
if not res:
return fail_api(msg="出错啦")
return success_api(msg="启用成功")
return fail_api(msg="数据错误")
return fail_api(msg="更新失败")
db.session.commit()
return success_api(msg="更新成功")
# 禁用
@dept_bp.put('/disable')
@authorize("admin:dept:edit", log=True)
def dis_enable():
_id = request.json.get('deptId')
if id:
res = dept_curd.disable_status(_id)
if not res:
return fail_api(msg="出错啦")
return success_api(msg="禁用成功")
return fail_api(msg="数据错误")
@dept_bp.put('/update')
@authorize("admin:dept:edit", log=True)
def update():
req = request.json
check_data(DeptSchema(unknown=INCLUDE), req)
res = dept_curd.update_dept(req)
if not res:
return fail_api(msg="更新失败")
return success_api(msg="更新成功")
@dept_bp.delete('/remove/<int:_id>')
@authorize("admin:dept:remove", log=True)
def remove(_id):
res = dept_curd.remove_dept(_id)
if res:
return success_api(msg="删除成功")
else:
@authorize("admin:dept:remove", log=True)
def delete(self, dept_id):
ret = Dept.query.filter_by(id=dept_id).delete()
User.query.filter_by(dept_id=dept_id).update({"dept_id": None})
db.session.commit()
if ret:
return success_api(msg="删除成功")
return fail_api(msg="删除失败")